An AI-powered resume optimizer built to help job seekers improve resume quality, increase ATS score, and tailor resumes for different job roles.
HireBoost is a full-stack web application that helps users improve their resumes based on a target job description.
With this app, a user can:
- upload a resume PDF or paste resume text
- paste a job description
- get ATS score and keyword match analysis
- view missing skills and improvement suggestions
- generate an optimized resume using AI
- compare one resume with multiple job descriptions
- export resume content as LaTeX for Overleaf
I built this project to make resume tailoring easier, faster, and more practical for students and job seekers.
- Resume upload using PDF
- Manual resume text input
- Job description analysis
- ATS score breakdown
- Present and missing keyword detection
- Bullet point improvement suggestions
- AI-generated optimized resume
- Multi-job resume comparison
- LinkedIn profile text import
- LaTeX export support
- Resume history storage when MongoDB is connected
- React
- Vite
- Tailwind CSS
- Framer Motion
- React Router
- Axios
- Node.js
- Express
- Multer
- pdf-parse
- Mongoose
- Google Gemini API
HireBoost/
|-- client/
| |-- public/
| |-- src/
| | |-- components/
| | |-- pages/
| | `-- services/
|-- server/
| |-- config/
| |-- controllers/
| |-- middleware/
| |-- models/
| |-- routes/
| `-- services/
|-- test_latex.js
`-- README.md
- The user uploads a resume PDF or pastes resume text.
- The user pastes a target job description.
- The backend extracts resume text if a PDF is uploaded.
- The app compares resume keywords with the job description.
- Gemini provides deeper analysis, suggestions, and optimization.
- The user gets ATS score, keyword gaps, bullet improvements, and feedback.
- The user can also generate an optimized resume and export it as LaTeX.
Create a root .env file and add:
GEMINI_API_KEY=your_gemini_api_key
MONGODB_URI=your_mongodb_connection_string
PORT=5000
GEMINI_MODEL=gemini-2.5-flash
GEMINI_MAX_RETRIES=3
CORS_ALLOWED_ORIGINS=https://your-frontend.vercel.appNotes:
GEMINI_API_KEYis required.MONGODB_URIis optional.- if MongoDB is not connected, the app still runs but history will not be saved.
PORTdefaults to5000.CORS_ALLOWED_ORIGINSis used in production to allow your frontend domain.
Create client/.env for local frontend setup:
VITE_API_URL=http://localhost:5000/apiFor production, set VITE_API_URL in your frontend deployment settings.
git clone <your-repo-url>
cd HireBoostcd server
npm installcd ../client
npm installOpen two terminals.
cd server
npm run devcd client
npm run devLocal URLs:
- Frontend:
http://localhost:5173 - Backend:
http://localhost:5000 - Health check:
http://localhost:5000/api/health
npm run dev
npm startnpm run dev
npm run build
npm run preview
npm run lint| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Check backend status |
| POST | /api/resume/analyze |
Analyze resume against one job description |
| POST | /api/resume/optimize |
Generate optimized resume |
| POST | /api/resume/multi-target |
Compare resume against multiple job descriptions |
| POST | /api/resume/linkedin-import |
Convert LinkedIn text into resume format |
| POST | /api/resume/export/latex |
Generate LaTeX output |
| GET | /api/resume/history |
Fetch saved history |
- deploy frontend and backend separately if needed
- set
VITE_API_URLin frontend deployment - set
GEMINI_API_KEYin backend deployment - set
CORS_ALLOWED_ORIGINSin backend deployment to your frontend domain - add
MONGODB_URIif you want history saving
Make sure GEMINI_API_KEY is present in the root .env file.
Check your MongoDB connection. The app works without MongoDB, but history will stay empty.
Check these things:
VITE_API_URLis correct- backend is running
- frontend domain is included in
CORS_ALLOWED_ORIGINS
Only PDF files are supported, and the file size must be under 5 MB.
- user authentication
- PDF export download
- better resume templates
- dashboard for saved resumes
- more detailed AI suggestions
This project is licensed under the MIT License.

