A therapeutic approach to job searching that combines application tracking with Internal Family Systems (IFS) methodology for emotional well-being during the job search process.
JobPath is a unique job search management application that integrates traditional application tracking with Internal Family Systems (IFS) therapy concepts. It helps job seekers manage their applications while providing structured emotional check-ins for different "parts" (Manager and Firefighter) at each stage of the job search process.
- Notion-Style Interface: Familiar job tracking structure with German/Turkish language support
- IFS Emotional Tracking: Dual-part emotional check-ins (Manager & Firefighter)
- Multi-View Dashboard: Kanban Board, Table View, and Analytics
- CBT Micro-Exercises: Cognitive Behavioral Therapy worksheets integrated with emotional check-ins
- Data Export: CSV exports compatible with Notion and Excel
- Real-time Analytics: Emotional trend visualization and progress tracking
- Node.js 20+
- PostgreSQL database
- Replit account (for authentication)
-
Clone the repository
git clone <repository-url> cd jobpath
-
Install dependencies
npm install
-
Set up environment variables
# Required environment variables DATABASE_URL=your_postgresql_connection_string SESSION_SECRET=your_session_secret REPL_ID=your_replit_id REPLIT_DOMAINS=your_domain.replit.app -
Set up the database
npm run db:push
-
Start the development server
npm run dev
The application will be available at http://localhost:5000
- Framework: React 18 with TypeScript
- UI Library: shadcn/ui components with Radix UI primitives
- Styling: Tailwind CSS with custom IFS-themed colors
- State Management: TanStack Query for server state
- Routing: Wouter for client-side routing
- Forms: React Hook Form with Zod validation
- Server: Express.js with TypeScript
- Database: PostgreSQL with Drizzle ORM
- Authentication: Replit Auth (OpenID Connect)
- Session Management: Express sessions with PostgreSQL storage
- API: RESTful endpoints with comprehensive error handling
-- Core Tables
users -- User profiles and authentication
applications -- Job applications with stages
checkins -- Emotional check-in sessions
part_entries -- IFS parts data (Manager/Firefighter)
cbt_entries -- CBT exercise responses
prompts -- Stage-specific guidance prompts
sessions -- Authentication sessionsManager Part (💼)
- Organized, planning-focused part
- Handles strategic thinking and preparation
- Color-coded in blue throughout the interface
- Tracks logical thoughts and structured approaches
Firefighter Part (🚒)
- Reactive, protective part
- Handles urgent emotions and impulses
- Color-coded in red throughout the interface
- Tracks emotional responses and protective strategies
- Stage Selection: Choose application stage (Seen, Applied, Interview, etc.)
- Part Check-ins: Separate inputs for Manager and Firefighter thoughts/feelings
- Intensity Ratings: 1-10 scale for emotional intensity
- CBT Integration: Optional cognitive exercises for processing emotions
- Progress Tracking: Visual analytics of emotional patterns over time
- Kanban Board: Visual pipeline of applications by stage
- Notion Table: Familiar spreadsheet-style view with sorting/filtering
- IFS Analytics: Emotional trend charts and pattern analysis
- Dashboard: Main application overview with statistics
- Applications: CRUD operations for job applications
- Check-ins: IFS emotional tracking interface
- Insights: Analytics and emotional pattern visualization
- Settings: Profile management and data export options
-
Applications CSV: Complete job application data
- Company, Role, Stage, Source, Location, Dates, Notes
- Compatible with Notion import format
-
IFS Check-ins CSV: Comprehensive emotional tracking data
- Date, Company, Role, Application Stage, Check-in Stage
- Part Type, Thoughts, Feelings, Intensity
- CBT exercise data and responses
jobpath/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utility functions
│ │ └── pages/ # Application pages
├── server/ # Express backend
│ ├── db.ts # Database connection
│ ├── routes.ts # API routes
│ ├── storage.ts # Data access layer
│ └── replitAuth.ts # Authentication logic
├── shared/ # Shared types and schemas
│ └── schema.ts # Database schema definitions
└── package.json # Dependencies and scripts
npm run dev # Start development server
npm run build # Build for production
npm run db:push # Update database schema
npm run db:studio # Open database management UI- Frontend: React, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query
- Backend: Express, Drizzle ORM, Passport.js, OpenID Client
- Database: PostgreSQL, @neondatabase/serverless
- Development: Vite, tsx, ESBuild
- Primary Languages: English, German, Turkish
- IFS Terminology: Localized part names and prompts
- Date Formats: Region-appropriate formatting
- Cultural Adaptation: Job search practices adapted for German market
- Authentication: Secure OpenID Connect with Replit
- Session Management: HTTP-only cookies with secure flags
- Data Protection: User data isolation and secure storage
- GDPR Compliance: Data export and deletion capabilities
- Intensity Trends: Track emotional intensity over time
- Part Balance: Visualize Manager vs Firefighter activity
- Stage Patterns: Identify emotional triggers by application stage
- CBT Effectiveness: Track cognitive exercise impact
- Pipeline Analytics: Application flow and conversion rates
- Source Analysis: Track most effective job sources
- Timeline Tracking: Monitor application response times
- Success Patterns: Identify factors in successful applications
This is a personal project designed for individual job search management. However, feedback and suggestions are welcome.
Private project - All rights reserved
For technical issues or questions about the IFS methodology integration, please refer to the documentation or create an issue in the repository.