Resume Screening Using NLP
Screen and rank resumes against job descriptions using Sentence Transformers, cosine similarity, and a Flask web UI. Upload PDF/DOCX/TXT resume and see top job matches with scores.
Overview
An NLP-powered resume screening system that matches candidates to job descriptions using semantic embeddings. The pipeline loads resume and job datasets (CSV), preprocesses text, builds sentence embeddings with Sentence Transformers, and compares embedding models to select the best one. A Flask web app lets users upload a resume (PDF, DOCX, or TXT) and displays the top matching jobs with similarity scores. The project also includes simple skill and experience extraction from resumes.
Challenge
Recruiters spend significant time manually matching resumes to job descriptions, and keyword search misses semantically similar experience. The goal was semantic matching that ranks the most relevant jobs for an uploaded resume.
Solution
Sentence Transformers embeddings with cosine similarity ranking, delivered through a Flask upload UI.
Architecture
Sentence Transformers embeddings · cosine similarity matching · skill/experience extraction · Flask upload UI (PDF/DOCX/TXT)
Results
- Notebook outputs: models/best_model_config.json, job_embeddings.npz
- Flask app: Upload resume → top job matches with scores
- Load resume + job description datasets (CSV) and preprocess text
- Build sentence embeddings and compare embedding models
- Rank resumes/jobs by cosine similarity
- Skill and experience extraction from resumes
- Flask UI: upload PDF/DOCX/TXT and see top job matches with scores
Technologies
- Python
- Flask
- Sentence Transformers
- Pandas
- scikit-learn
- Semantic search
- PDF/DOCX/TXT upload
Loading project…