This project is an AI-powered Resume Screening Agent that ranks candidate resumes based on how well they match a given Job Description (JD).
Unlike many AI agents, this one is:
- ✅ Completely offline (no external APIs)
- ✅ 100% free to run (no OpenAI / Claude / Gemini keys)
- ✅ Fast and lightweight
- ✅ Built with Streamlit + scikit-learn
- You paste a Job Description.
- You upload one or more PDF resumes.
- The agent:
- Extracts text from each resume.
- Uses TF-IDF + Cosine Similarity to measure how close each resume is to the JD.
- Calculates a score (0–100) for each resume.
- Identifies basic strengths (matching keywords) and gaps (missing keywords).
- It then shows a ranked list of candidates from best match → lowest match.
This is ideal as a first-pass resume filter in an HR process.
- Language: Python
- UI: Streamlit
- ML / Scoring:
scikit-learn(TF-IDF, cosine similarity)
- PDF Text Extraction:
PyPDF2
- APIs Used: None (fully offline ML, no external services)
resume-screening-agent/
├── app.py # Streamlit UI
├── screening.py # Core logic: PDF reading + TF-IDF scoring
├── requirements.txt # Python dependencies
└── venv/ # Local virtual environment (not needed on GitHub ideally)