A full-stack job application platform where users can browse jobs, apply with resumes, and admins can manage job listings through a dedicated dashboard.
🔗 Live Demo: https://quick-hire-web-delta.vercel.app
⚙️ API: https://quick-hire-dr7g.onrender.com
- User authentication and authorization (JWT-based)
- Job browsing with search and filtering
- Application submission with resume support
- Admin dashboard for managing job listings
- Responsive UI for mobile and desktop
Next.js, Node.js, Express, MongoDB, Prisma, TypeScript, TailwindCSS
quick-hire/
├── apps/
│ ├── web/ # Next.js frontend (port 3001)
│ └── server/ # Express backend (port 3000)
├── packages/
│ ├── db/ # Prisma schema & client
│ └── env/ # Environment validation (Zod)
└── package.json # Monorepo root (Turborepo)
- Node.js 18+
- MongoDB database
- npm 10.9.4
-
Clone the repository
git clone <your-repo-url> cd quick-hire
-
Install dependencies
npm install
-
Setup environment files
Backend (apps/server/.env):
cp apps/server/.env.example apps/server/.env # Then generate JWT secret: openssl rand -base64 32Frontend (apps/web/.env):
cp apps/web/.env.example apps/web/.env
-
Run database migrations
npm run db:generate npm run db:push
-
Start development servers
npm run dev
-
Open in browser
- Frontend: http://localhost:3001
- Backend API: http://localhost:3000
GET /api/health- API health check
GET /api/jobs- List all jobsGET /api/jobs/:id- Get job detailsPOST /api/jobs- Create job (Admin)DELETE /api/jobs/:id- Delete job (Admin)
POST /api/applications- Submit application
POST /api/auth/signup- Register userPOST /api/auth/login- Login userGET /api/auth/me- Get current user
| Variable | Description | Example |
|---|---|---|
DATABASE_URL |
MongoDB connection string | mongodb+srv://user:pass@cluster/db |
CORS_ORIGIN |
Frontend URL for CORS | http://localhost:3001 |
JWT_SECRET |
Secret for JWT tokens | Generate with: openssl rand -base64 32 |
NEXT_PUBLIC_API_URL |
Backend API URL | http://localhost:3000 |
npm run dev- Start all appsnpm run build- Build all appsnpm run dev:web- Start frontend onlynpm run dev:server- Start backend onlynpm run check-types- Type check all appsnpm run db:push- Push schema to databasenpm run db:generate- Generate Prisma clientnpm run db:studio- Open Prisma Studio