This project is an AI-powered resume screening system designed to automate candidate evaluation by analyzing resumes and ranking them based on their relevance to a given job description.
The system processes multiple resumes, extracts key information, computes similarity with the job description, and ranks candidates using a dynamic scoring approach.
- Upload multiple resumes (PDF/DOCX)
- Automatic resume parsing and information extraction
- Dynamic skill extraction from resume content
- Job Description matching using TF-IDF and cosine similarity
- Candidate scoring and ranking
- Interactive dashboard using Streamlit
git clone https://github.com/vertexbuddy-ai-hiring/ai-resume-ranking-and-candidate-matching-system-Shriya-Guptaa.git
cd ai-resume-ranking-and-candidate-matching-system-Shriya-Guptaapip install -r requirements.txtstreamlit run app.pyproject/
│
├── app.py # Streamlit UI
├── screening.py # Resume parsing & data extraction
├── matching.py # Similarity computation & ranking logic
├── requirements.txt
└── README.md
- Handles resume uploads and job description input
- Triggers processing pipeline
- Displays ranked candidates in a structured table
-
Extracts text from PDF and DOCX resumes
-
Identifies:
- Phone number
- Years of experience
-
Dynamically extracts potential skills from resume text
-
Converts unstructured resumes into structured data
- Converts resume and job description text into vector representations using TF-IDF
- Computes similarity using cosine similarity
- Applies scoring logic to rank candidates
- Returns ranked results
Upload Resumes
↓
Screening (Parsing & Extraction)
↓
Matching (Similarity + Scoring)
↓
Ranking
↓
Display Results
The system ranks candidates using a similarity-driven scoring approach:
- TF-IDF vectorization is used to represent both resumes and the job description
- Cosine similarity measures how closely a resume aligns with the job requirements
- This approach captures semantic relevance rather than relying only on exact keyword matches
- Years of experience are extracted using pattern matching
- Scores are normalized relative to the required experience
- The final score is a weighted combination of similarity and experience
- Candidates are ranked in descending order of this score
The system displays ranked candidates with:
- Name
- Skills
- Experience
- Similarity Score
- Final Score
- Rank
The system is built using a modular architecture:
- Screening layer handles parsing and extraction
- Matching layer handles similarity computation and ranking
Instead of relying on predefined skill lists, the system dynamically analyzes resume content and job descriptions, making it adaptable across different domains.
This project demonstrates how NLP techniques and structured scoring can be used to automate resume screening. The system improves efficiency in candidate evaluation while maintaining a clean, modular, and scalable design.

