This is a simple yet powerful AI-driven web application that helps screen resumes against a job description using Natural Language Processing (NLP). It calculates a match score, highlights potential resume improvements, and supports batch upload of multiple PDFs.
▶️ Live App on Streamlit
- 📤 Upload multiple resumes (PDFs)
- 🧠 NLP-based similarity matching using TF-IDF + Cosine Similarity
- 📌 Compares resumes against a provided Job Description
- 📊 Match score with progress bars and recommendations
- 🔎 Highlights potential missing keywords
- 🎨 Clean Streamlit UI with sidebar and enhancements
- Upload resumes (PDF format)
- Job description is loaded from a
job_description.txt
file - App cleans and analyzes the text using NLP
- Calculates a similarity score between each resume and the JD
- Displays recommendations:
- ✅ Strong Match (Score ≥ 70%)
⚠️ Needs Improvement (Score < 70%)
- Highlights missing keywords (basic rule-based logic)
- Python
- Streamlit
- Scikit-learn (TF-IDF + Cosine Similarity)
- pdfminer.six (PDF text extraction)
resume-screener-nlp/ ├── app.py # Main Streamlit app ├── utils.py # Text extraction, cleaning, similarity functions ├── job_description.txt # Sample JD file to compare resumes ├── requirements.txt # Dependencies └── sample_resumes/ # (Optional) Folder for testing resumes
- Clone the repository
- Install dependencies
pip install -r requirements.txt - Add your job description in a
job_description.txt
file - Run the app
streamlit run app.py
Resume File | Match Score | Recommendation |
---|---|---|
resume1.pdf |
82.3% | ✅ Strong Match |
resume2.pdf |
56.7% |
- AI-powered resume feedback (LLM-based)
- PDF/Markdown export of resume scores
- JD upload option
- Skill visualization or radar charts
Made with ❤️ by Prakash Sharma
This project is open-source and free to use under the MIT License.