An AI-powered web application that evaluates resumes for ATS compatibility, identifies skill gaps, matches them to job roles, and generates a downloadable PDF report.
- 📄 Upload resumes (PDF, DOCX, TXT)
- 🧠 AI-powered analysis (Gemini)
- 📊 ATS Score with detailed breakdown
- 🎯 Job role matching system
- 🔍 Skills detection (present vs missing)
- ✏️ Actionable improvement suggestions
- 📥 Download full analysis as PDF report
Resume_Analyser/
│
├── node_modules/
├── public/
├── src/
│ ├── assets/
│ ├── App.jsx # Core UI + logic + PDF generation
│ ├── App.css
│ ├── index.css
│ └── main.jsx
│
├── proxy.cjs # Backend proxy (Gemini API handler)
├── package.json
├── vite.config.js
└── README.md
git clone https://github.com/RoshRaj01/Smart_Resume_Analyser.git
cd smart_resume_analysernpm installnpm run devApp runs at:
http://localhost:5173
Frontend sends requests to:
http://localhost:3001/api/analyse
So backend must be running.
npm install express cors dotenv node-fetchGEMINI_API_KEY=your_api_key_herenode proxy.cjs-
User uploads resume
-
File is processed:
- PDF →
pdfjs-dist - DOCX →
mammoth - TXT → FileReader
- PDF →
-
Text is trimmed (~8000 chars)
-
Prompt is generated dynamically
-
Sent to proxy server
-
Gemini processes request
-
JSON response returned
-
UI renders:
- ATS Score
- Skills
- Improvements
- Job match
-
User can download full PDF report
pdfjs-dist→ PDF parsingmammoth→ DOCX parsing (fixed implementation)jspdf→ PDF report generationexpress→ backend servercors→ API handling
The app generates a structured report including:
- ATS Score + breakdown
- Job match score
- Skills & gaps
- Improvement suggestions
- Final assessment
Saved automatically as:
resume-report-<filename>.pdf
📸 Screenshots
- Proxy server must be running before analysis
- Gemini API key is required
- Large resumes are truncated for performance
- Resume rewriting with AI
- Multiple resume comparison
- Cloud deployment (Vercel + Render)
- User authentication
- Saved history of reports