An intelligent, full-stack application that evaluates a candidate's resume against a specific job description. This tool uses a hybrid approach, combining mathematical semantic similarity (ATS scoring) with generative AI to provide actionable, qualitative feedback. Features
- Dual-Engine Analysis:
- ATS Similarity Score: Uses BERT embeddings (
all-mpnet-base-v2) to mathematically calculate the cosine similarity between the resume and the job description. - Qualitative AI Feedback: Integrates with the Groq API (running
Llama-3.3-70b-versatile) to act as an AI recruiter, scoring individual job requirements and providing emoji-coded feedback.
- ATS Similarity Score: Uses BERT embeddings (
- Separation of Concerns: Built with a modern architecture featuring a high-performance FastAPI backend and an interactive Streamlit frontend.
- Efficient Processing: The heavy machine learning model (BERT) is cached in memory on server startup to ensure lightning-fast subsequent requests.
- Exportable Reports: Users can download their personalized AI analysis directly as a text file.
- Backend: FastAPI, Uvicorn, Python
- Frontend: Streamlit, Requests
- Machine Learning & NLP: Sentence-Transformers, scikit-learn
- LLM Integration: Groq API (Llama 3)
- Utilities: PDFMiner.six (PDF text extraction), python-dotenv
ai-resume-analyzer/
│
├── backend.py # FastAPI server, ML models, and Groq API logic
├── frontend.py # Streamlit user interface
├── requirements.txt # Python dependencies
├── .env # Environment variables (API keys) - Ignored by Git
└── .gitignore # Git ignore rules
## ⚙️ Installation & Setup
### 1. Clone the Repository
```bash
git clone https://github.com/YourUsername/ai-resume-analyzer.git
cd ai-resume-analyzer
pip install -r requirements.txt- Create an account on Groq and generate an API key.
- Create a
.envfile in the root directory of the project. - Add the following line to the
.envfile:
GROQ_API_KEY=gsk_your_actual_api_key_hereThis project uses a decoupled architecture, so the backend and frontend must be run in two separate terminal windows.
Open a terminal inside the project folder and run:
uvicorn backend:app --reloadWait until you see:
Application startup completeOpen a second terminal in the same project folder and run:
streamlit run frontend.pyThe application interface will automatically open in your default web browser.
-
Upload Resume Upload your resume in PDF format.
-
Paste Job Description Enter the target job description into the provided text area.
-
Analyze Resume Click the Analyze button to generate:
- ATS compatibility score
- Skill match analysis
- AI-generated feedback and suggestions
-
Download Report Save the generated analysis report locally using the Download Report button.