An AI-powered web application that evaluates how well a resume matches a job description using modern NLP techniques and transformer-based embeddings.
https://resume-analyzer-bwgxpuyuzru4x9bg3pjqku.streamlit.app/
Note: If the app is 'sleeping' when you click the link, just hit the 'Wake up' button—it takes about 30 seconds to load!
This project analyzes a resume against a job description and returns a semantic similarity score representing how well the candidate aligns with the role.
Unlike traditional keyword-based systems, this app uses transformer-based embeddings to understand contextual meaning and relationships between skills and experience.
- 📄 Upload resume as PDF
- 📝 Paste job description
- 🤖 Semantic similarity scoring using transformer embeddings
- 📊 Match score with interpretation (Strong / Moderate / Weak)
- ⚡ Fast, interactive UI built with Streamlit
- Python
- Sentence Transformers (
all-mpnet-base-v2) - scikit-learn
- pdfplumber
- Streamlit
PDF Resume → Text Extraction → Cleaning → Embedding
Job Description → Cleaning → Embedding
→ Cosine Similarity → Match Score
-
Text Extraction Extracts text from PDF resumes using
pdfplumber -
Preprocessing Cleans and normalizes text (handles Unicode, bullets, whitespace)
-
Embeddings Uses transformer model (
all-mpnet-base-v2) to generate semantic representations -
Similarity Scoring Computes cosine similarity between resume and job description embeddings
| Scenario | Expected Score |
|---|---|
| Excellent Match | 80–90% |
| Good match | 50–70% |
| Unrelated roles | <40% |
git clone https://github.com/your-username/resume-analyzer.git
cd resume-analyzerpip install -r requirements.txtstreamlit run app.py- Used transformer embeddings instead of TF-IDF for better semantic understanding
- Avoided aggressive text preprocessing to preserve contextual meaning
- Choose a simple, stateless architecture (no database required)
- Prioritized usability with an interactive web interface
- Does not handle image-based (scanned) PDFs (no OCR)
- Score is semantic, not a definitive hiring decision
- No section-specific weighting (e.g., skills vs experience)
- Skill gap detection (“missing skills” suggestions)
- Section-aware analysis (Experience, Skills, Education)
- Highlighting relevant parts of the resume
- Support for multiple file formats
MIT License