A comprehensive job application tracking platform built with Next.js 15, featuring job search integration, application management, and progress tracking.
Live demo: Job Tracker Pro
- External Job API Integration: Search jobs from external APIs (Adzuna)
- Advanced Filtering: Filter by location, salary, job type, and keywords
- Pagination: Browse through paginated job results
- Job Details: View comprehensive job information with external links
- One-Click Apply Tracking: Mark jobs as applied with a single click
- Status Management: Track application progress (Applied, Reviewing, Interview, Accepted, Rejected)
- Dashboard View: Centralized view of all job applications
- Smart Sorting: Applications sorted by priority (Interview > Reviewing > Applied > Accepted > Rejected)
- Timeline Tracking: See when applications were submitted with relative timestamps
- NextAuth.js Integration: Secure authentication system
- Multiple Providers: Support for various OAuth providers
- Session Management: Persistent user sessions across the platform
- Next.js 15 with App Router
- React 19 for component architecture
- TypeScript for type safety
- Tailwind CSS 4 for styling
- Client-side State Management with React hooks
- Next.js API Routes for serverless backend
- Prisma ORM for database operations
- PostgreSQL (via Neon) for data persistence
- NextAuth.js with Prisma adapter for authentication
- Adzuna API for job search functionality
- Date-fns for date formatting and manipulation
jobtracker-pro/
βββ app/ # Next.js App Router
β βββ api/ # API Routes
β β βββ applications/ # Application CRUD endpoints
β β βββ auth/ # Authentication endpoints
β βββ auth/signin/ # Authentication pages
β βββ dashboard/ # Application dashboard
β βββ jobs/ # Job search interface
β βββ layout.tsx # Root layout
βββ components/ # Reusable components
β βββ JobCard.tsx # Individual job display
β βββ JobList.tsx # Job listings container
β βββ JobSearchForm.tsx # Search form component
β βββ ApplyButton.tsx # Application tracking button
β βββ StatusSelector.tsx # Application status management
β βββ SmartNavbar.tsx # Navigation component
β βββ DashboardClient.tsx # Client-side dashboard logic
βββ lib/ # Utility libraries
β βββ adzuna.ts # Job API integration
β βββ prisma.ts # Database connection
β βββ auth.ts # Authentication config
β βββ jobService.ts # Job-related business logic
β βββ types.ts # TypeScript type definitions
βββ hooks/ # Custom React hooks
β βββ useSearchState.ts # Search state management
βββ prisma/ # Database schema & migrations
β βββ schema.prisma # Database schema
β βββ migrations/ # Database migrations
βββ public/ # Static assets
- Node.js 18+
- npm or yarn
- PostgreSQL database (recommend Neon for serverless)
-
Clone the repository
git clone <repository-url> cd jobtracker-pro
-
Install dependencies
npm install # or yarn install -
Environment variables Create a
.envfile in the root directory:# Database DATABASE_URL="postgresql://username:password@host:port/database" # NextAuth NEXTAUTH_SECRET="your-secret-key" NEXTAUTH_URL="http://localhost:3000" # Job API (Adzuna) ADZUNA_APP_ID="your-adzuna-app-id" ADZUNA_API_KEY="your-adzuna-api-key"
-
Database setup
# Generate Prisma client npx prisma generate # Run database migrations npx prisma migrate deploy # (Optional) Seed database npx prisma db seed
-
Development server
npm run dev # or yarn devVisit http://localhost:3000 to view the application.
npm run dev- Start development server with Turbopacknpm run build- Build production applicationnpm run start- Start production servernpm run lint- Run ESLint for code qualitynpm run postinstall- Generate Prisma client (auto-runs after install)
- Authentication via NextAuth
- Linked to job applications
- Job application tracking
- Status management
- External job reference
- Timestamps for application tracking
UserβApplications(One-to-Many)- Applications linked to external job sources
GET /api/applications- Fetch user applicationsPOST /api/applications- Create new applicationPUT /api/applications/[id]- Update application statusDELETE /api/applications/[id]- Remove application
POST /api/auth/[...nextauth]- NextAuth.js endpoints
The application is optimized for Vercel deployment:
- Push to GitHub
- Connect to Vercel
- Configure environment variables
- Deploy automatically
postinstallscript ensures Prisma client generation- Build script includes
prisma generate - Optimized for serverless functions
- Next.js: https://nextjs.org/docs
- Prisma: https://www.prisma.io/docs
- NextAuth.js: https://authjs.dev
- Tailwind CSS: https://tailwindcss.com/docs
- Vercel Deployment: https://vercel.com/docs
- Adzuna API: https://developer.adzuna.com
- Job Search: Users search for jobs using the integrated job API
- Browse Results: Paginated job listings with detailed information
- Apply Tracking: One-click application tracking with status management
- Dashboard Management: Centralized view of all applications with status updates
- Progress Tracking: Monitor application progress through various stages
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and proprietary.