PerfectCV is an intelligent platform that helps job seekers create ATS-friendly resumes by analyzing uploaded CVs, providing AI-powered recommendations, calculating ATS compatibility scores, and generating professionally optimized resumes automatically.
The project combines modern full-stack development with Large Language Models (LLMs) to streamline the resume optimization process and improve candidates' chances of passing Applicant Tracking Systems (ATS).
- 📄 Automatic CV parsing and information extraction
- 🎯 ATS compatibility scoring (0–100)
- 📊 Detailed feedback on strengths and weaknesses
- 🧠 Skill, education, and experience detection
- 💡 AI-powered resume improvement suggestions
- 💬 AI chatbot for CV advice and career guidance
- 📝 Professional resume rewriting using LLMs
- 🎯 Personalized career recommendations
- 📥 Generate professionally formatted PDF resumes
- 🎨 Modern, ATS-friendly resume templates
- 🔄 Automatically populate templates using extracted data
- 👤 Secure user authentication
- 📁 Upload and manage multiple resumes
- ☁️ File storage using MongoDB GridFS
| Layer | Technology |
|---|---|
| 🌐 Frontend | React.js, Vite, Tailwind CSS, Axios |
| ⚙️ Backend | FastAPI, Python |
| 🗄️ Database | MongoDB Atlas, MongoDB GridFS |
| 🤖 AI Integration | Google Gemini AI, Groq LLaMA 3.3 |
| 📄 Document Processing | PyPDF2, pdfplumber, Jinja2, xhtml2pdf |
| 🔐 Authentication | JWT (JSON Web Tokens) |
perfectcv/
├── backend/
│ ├── app/
│ │ ├── api/
│ │ ├── services/
│ │ ├── models/
│ │ ├── database/
│ │ ├── utils/
│ │ └── ai/
│ ├── templates/
│ └── main.py
│
├── frontend/
│ └── src/
│ ├── components/
│ ├── pages/
│ ├── services/
│ ├── context/
│ └── assets/
│
├── screenshots/
├── README.md
└── requirements.txt
- Python 3.10+
- Node.js 18+
- MongoDB Atlas
- Google Gemini API Key
- Groq API Key
git clone https://github.com/your-username/perfectcv.git
cd perfectcvpython -m venv venvActivate it:
Windows
venv\Scripts\activateLinux / macOS
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the backend directory.
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_key
GROQ_API_KEY=your_groq_api_key
⚠️ Never commit API keys or secrets to version control.
uvicorn main:app --reloadBackend runs at:
http://localhost:8000
cd frontend
npm installnpm run devFrontend runs at:
http://localhost:5173
| Resource | Endpoint |
|---|---|
| 🔑 Authentication | /api/auth/* |
| 📄 Resume Upload | /api/upload |
| 🤖 AI Analysis | /api/analyze |
| 📊 ATS Score | /api/score |
| 📥 CV Generation | /api/generate |
| 💬 AI Chatbot | /api/chat |
| Variable | Description |
|---|---|
MONGODB_URI |
MongoDB Atlas connection string |
JWT_SECRET |
JWT signing secret |
GEMINI_API_KEY |
Google Gemini API key |
GROQ_API_KEY |
Groq API key |
The application can be deployed using:
- ☁️ Vercel (Frontend)
- ⚙️ Render / Railway / VPS (Backend)
- 🗄️ MongoDB Atlas (Database)
- 🔐 JWT-based authentication
- 📁 Secure file storage using MongoDB GridFS
- 🚫 Environment variables for API keys and secrets
- 🛡️ Input validation and request sanitization
This project was developed as an academic group project to demonstrate the integration of Artificial Intelligence with modern full-stack web development. It focuses on helping job seekers optimize their resumes for Applicant Tracking Systems (ATS) using Large Language Models (LLMs), automated document processing, and intelligent career assistance.