This repository contains a MERN-style job application tracker with AI-assisted parsing and resume suggestion support.
- Frontend: React + TypeScript + Vite + Tailwind CSS
- Backend: Node.js + Express + TypeScript
- Database: MongoDB + Mongoose
- Auth: JWT + bcrypt
- AI: NVIDIA NIM
- State management: React Query
Try a Live Demo at: https://apply-ai-iota.vercel.app/
- Create a Railway account at https://railway.app
- Connect your GitHub repository
- Add these environment variables in Railway:
MONGODB_URIJWT_SECRETNIM_API_KEYNIM_API_URLNIM_MODELFRONTEND_URL(your Vercel/Netlify URL)
- Railway will auto-deploy when you push to main
- Create a Vercel account at https://vercel.com
- Connect your GitHub repository
- Add environment variable:
VITE_API_BASE_URL= your Railway backend URL - Deploy automatically
- Render: Similar to Railway, supports Node.js + MongoDB
- Netlify: Alternative to Vercel for frontend
- Heroku: Traditional but has free tier limitations
NIM_MODEL=llama-3.1-405b-instructcd backend
npm install
npm run devcd frontend
npm install
npm run devPOST /api/auth/register- register a new userPOST /api/auth/login- log in and receive a JWTGET /api/applications- list current user's applicationsPOST /api/applications- create applicationPUT /api/applications/:id- update applicationDELETE /api/applications/:id- delete applicationPOST /api/applications/parse- parse a job description and get resume suggestions
- Do not commit real secret values.
- The backend uses
NIM_API_KEYandNIM_API_URLto connect to NVIDIA NIM. - The frontend reads
VITE_API_BASE_URLto call the backend.
- AI logic is placed in
backend/src/services/aiService.ts. - Auth is separated into service, controller, and route layers.
- The frontend uses React Query for data fetching and cache invalidation.
- The board supports drag-and-drop status updates and card detail display.