A modern and intuitive job application tracking system built with Next.js (App Router) and MongoDB. Keep track of all your job applications, interviews, and follow-ups in one organized place.
jobs-tracker/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ │ ├── auth/[...nextauth]/ # NextAuth authentication
│ │ ├── jobs/ # Job CRUD operations
│ │ │ ├── [id]/
│ │ │ ├── create/
│ │ │ └── get/
│ │ ├── register/
│ │ └── users/
│ │ ├── email/
│ │ └── update/
│ ├── auth/ # Authentication pages
│ │ ├── login.tsx
│ │ └── register.tsx
│ ├── favicon.ico
│ ├── globals.css
│ ├── layout.tsx
│ ├── not-found.tsx
│ ├── _app.tsx
│ ├── dashboard.tsx
│ └── index.tsx
├── components/ # Reusable UI components
│ ├── common/ # Common components
│ │ ├── AdminDashboard.tsx
│ │ ├── ExtraTab.tsx
│ │ ├── JobsTab.tsx
│ │ ├── loader.css
│ │ ├── Loader.tsx
│ │ ├── Navbar.tsx
│ │ ├── ProfileTab.tsx
│ │ ├── SessionExist.tsx
│ │ ├── Sidebar.tsx
│ │ ├── Topbar.tsx
│ │ └── UserDashboard.tsx
│ └── ui/ # UI primitives
│ ├── alert-dialog.tsx
│ ├── alert.tsx
│ ├── button.tsx
│ ├── card.tsx
│ ├── checkbox.tsx
│ ├── dialog.tsx
│ ├── form.tsx
│ ├── input.tsx
│ ├── label.tsx
│ ├── radio-group.tsx
│ ├── select.tsx
│ ├── separator.tsx
│ ├── sonner.tsx
│ ├── textarea.tsx
│ └── tooltip.tsx
├── context/ # React Context
│ └── userContext.js
├── lib/ # Utilities
│ └── utils.ts
├── models/ # MongoDB models
│ ├── job.ts
│ └── user.ts
├── pages/ # Additional pages
│ └── auth/
│ ├── login.tsx
│ ├── register.tsx
│ ├── _app.tsx
│ ├── dashboard.tsx
│ └── index.tsx
├── public/ # Static assets
│ ├── job-search.jpg
│ ├── next.svg
│ ├── profile.jpg
│ ├── samsung.svg
│ └── xbox.svg
├── utils/ # Utility functions
│ └── mongodb.js
├── .env
├── .gitignore
├── components.json
├── global.d.ts
├── LICENSE
├── next-env.d.ts
├── next.config.ts
├── package-lock.json
├── package.json
├── postcss.config.mjs
└── tsconfig.json
- ✅ Track unlimited job applications with detailed information
- ✅ User authentication with NextAuth.js
- ✅ Application status management across 11 different stages
- ✅ Advanced search & filter by company and position
- ✅ Company & position details tracking
- ✅ Multiple application sources (Campus, Referral, LinkedIn, etc.)
- ✅ Job type classification (Full-time, Internship, Part-time, Contract, Remote)
- ✅ Resume version tracking for different applications
- ✅ Follow-up date reminders
- ✅ MongoDB database for persistent storage
Each job application includes:
- Company name
- Job title/position
- Application date (auto-generated)
- Current status (11 different stages)
- Salary range
- Job type (Full-time, Internship, Part-time, Contract, Remote)
- Job location
- Reference/referral name
- Company website
- Application source (Campus, Referral, LinkedIn, Indeed, Company Website, HR Email, Other)
- Personal notes
- Resume version used
- Follow-up date
Clone the repo:
git clone https://github.com/the-bipu/nextjs-starters.git
cd nextjs-starters/jobs-trackerInstall dependencies:
npm install
# or
yarn install
# or
pnpm installSet up environment variables:
Create a .env file in the root directory:
MONGODB_URI=your_mongodb_connection_string
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secretRun the development server:
npm run devOpen http://localhost:3000 to start tracking your applications! 🎉
| Command | Action |
|---|---|
npm run dev |
Start dev server (http://localhost:3000) |
npm run build |
Build production version |
npm run start |
Run production server |
npm run lint |
Run ESLint checks |
The tracker supports the following application stages in sequential order:
- Applied - Application submitted (default status)
- HR Screening - Initial HR screening/review
- Interview Scheduled - Interview date confirmed
- Technical Round - Technical assessment or interview
- Managerial Round - Interview with hiring manager
- Offered - Job offer received
- Accepted - Offer accepted
- Joined - Started working at the company
- Rejected - Application declined
- Ghosted - No response from company
- Withdrawn - You withdrew your application
Deploy your job tracker to:
- Vercel (recommended for Next.js)
- Netlify
- Self-hosted with Docker
- Push your repo to GitHub
- Import into Vercel dashboard
- Add environment variables (MongoDB URI, NextAuth settings)
- Deploy and start tracking! 🎉
Easily customize:
- Application status categories in
models/job.ts - Job types and application sources
- UI components using shadcn/ui primitives
- Authentication flow with NextAuth
- Database schema in MongoDB models
Contributions, issues, and feature requests are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
This project is licensed under the MIT License.
- Track applications immediately after submitting
- Set follow-up reminders for 1-2 weeks after applying
- Keep detailed notes from interviews in the notes field
- Update status regularly to stay organized
- Tag each application with the resume version used
- Record referral names to follow up appropriately
🔥 Start organizing your job search today! Your dream job is just one tracked application away! 💼✨