A full-stack job application tracking platform built for structured career management, application workflow tracking, and productivity-focused analytics.
Designed as a personal career operating system - not just a CRUD dashboard.
Job Tracker helps users:
- track job applications
- manage company pipelines
- organize career workflows
- analyze application progress
- monitor interview performance
- maintain structured job-search workflows
The application focuses on:
- operational clarity
- workflow management
- long-session usability
- analytics-driven decisions
- low-distraction UI/UX
- React 19
- TypeScript
- Vite
- React Query
- React Router DOM
- Zustand
- React Hook Form
- Zod
- TailwindCSS v4
- Axios
- Sonner
- React Markdown
- Lucide React
- ASP.NET Core 10
- Entity Framework Core
- PostgreSQL
- JWT Authentication
- BCrypt Password Hashing
- JWT-based authentication
- Login/Register system
- Password complexity validation
- Protected routes
- Persistent auth state with Zustand
- KPI overview
- Application statistics
- Interview tracking
- Offer tracking
- Response rate tracking
- Analytics-ready architecture
Track:
- role
- company
- application status
- source platform
- work type
- salary range
- notes
- markdown notes
- follow-up dates
- resume links
- cover letters
Manage:
- company profiles
- career page URLs
- company websites
- company notes
- favorite companies
- archived companies
Fully managed lookup entities:
- Priorities
- Job Types
- Work Types
- Source Platforms
- Application Statuses
Designed for:
- dropdowns
- filtering
- analytics
- workflow consistency
src
├── components
├── pages
├── services
├── stores
├── routes
├── types
├── lib
├── styles
└── configJobTracker.API
├── Controllers
├── Services
├── Interfaces
├── DTOs
├── Models
├── Configs
├── Middlewares
├── Helpers
└── CommonThe backend follows a layered architecture:
Controller
→ Service
→ DTO
→ Entity
→ DatabaseKey architectural decisions:
- explicit DTO mapping
- service abstraction
- relational entity modeling
- middleware-based exception handling
- lookup-driven workflows
- analytics-ready data structures
Main entities:
- User
- JobApplication
- Company
- Priority
- JobType
- WorkType
- SourcePlatform
- ApplicationStatus
Relationships are explicitly configured using Entity Framework Core.
Authentication uses:
- JWT access tokens
- BCrypt password hashing
- persisted frontend auth state
Password rules:
- minimum 8 characters
- uppercase letter
- lowercase letter
- number
- special character
VITE_API_BASE_URL=http://localhost:5104/apiConnectionStrings__DefaultConnection=YOUR_DATABASE_CONNECTION
Jwt__Key=YOUR_SECRET_KEY
Jwt__Issuer=JobTracker.API
Jwt__Audience=JobTracker.Clientcd client
bun install
bun run devcd JobTracker.API
dotnet restore
dotnet ef database update
dotnet runCreate migration:
dotnet ef migrations add MigrationNameApply migration:
dotnet ef database updatePOST /api/auth/register
POST /api/auth/loginGET /api/dashboard/statsGET /api/jobapplications
GET /api/jobapplications/{id}
POST /api/jobapplications
PUT /api/jobapplications/{id}
DELETE /api/jobapplications/{id}GET /api/companies
GET /api/companies/{id}
POST /api/companies
PUT /api/companies/{id}
DELETE /api/companies/{id}/api/priorities
/api/jobtypes
/api/worktypes
/api/sourceplatforms
/api/applicationstatusesPlanned features:
- advanced filtering
- search
- pagination
- analytics charts
- markdown preview
- interview tracking
- follow-up reminders
- archive workflow
- resume template system
- application insights
- platform performance analytics
- dark mode
- export/import system
This project is built for educational and portfolio purposes.