**Deploy Link :https://resume-screening-ai-m2duh4xr8i27d9ydvxr7uk.streamlit.app/
Automatic resume ranking system** that helps recruiters quickly shortlist candidates
by comparing resumes against job descriptions using natural language processing.
Recruiting is time‑consuming, especially when sifting through hundreds of resumes. This project provides a prototype AI pipeline that:
- Ingests a corpus of resumes.
- Cleans and vectorizes text data using industry-standard NLP techniques.
- Computes similarity between each resume and a target job description.
- Outputs a ranked list of candidates to streamline hiring decisions.
The implementation is designed as an educational proof‑of‑concept and can be extended to a production‑grade application.
- Data ingestion and exploratory analysis
- Text preprocessing (lowercasing, punctuation removal, stop‑word filtering)
- TF–IDF vectorization of resume text
- Cosine similarity scoring against a sample job description
- Sorted ranking of candidate resumes
| Category | Tools / Libraries |
|---|---|
| Language | Python 3.11 |
| Data | pandas, numpy |
| NLP | NLTK, scikit-learn (TfidfVectorizer) |
| Environment | Jupyter Notebook / Google Colab |
Additional utilities:
refor regular expressions
A virtual environment is recommended (
venv,conda, etc.) to isolate dependencies.
The dataset used for this project is a simple CSV containing sample resumes mapped to job categories.
- File:
data/resume_data.csv(orresume_dataset.csvin earlier notes) - Records: 169 rows
- Columns:
Category,Resume
This repository does not contain private or real candidates; the data is fabricated for demonstration purposes.
-
Clone the repository
git clone <repo-url> cd Resume-Screening-AI
-
Create and activate a virtual environment:
python -m venv env .\env\Scripts\activate # Windows source env/bin/activate # macOS/Linux
-
Install required packages:
pip install -r requirements.txt
If a
requirements.txtfile is not present, you can manually install:pip install pandas nltk scikit-learn
-
Download NLTK resources (if not already available):
import nltk nltk.download('stopwords')
The core logic is implemented in a Jupyter notebook located at:
notebooks/Day1_Day2_ResumeScreening.ipynb.
Steps to run:
-
Open the notebook using Jupyter or Colab:
jupyter notebook notebooks/Day1_Day2_ResumeScreening.ipynb
-
Execute cells sequentially. Key sections of the notebook:
- Data loading & exploration
- Text cleaning and preprocessing
- TF–IDF vectorization
- Job description matching and ranking
-
Modify the sample job description or extend the notebook with additional features (e.g. PDF parsing, classification models).
- TF–IDF matrix (sparse matrix representation)
- Similarity scores for each resume relative to the job description
- Ranked candidates (highest-scoring resumes first)
Screenshots or exported CSVs can be added here for clarity.
flowchart TB
subgraph Data Layer
A[Resume CSV Data] --> B[Data Ingestion]
C[Job Description Input] --> B
end
subgraph Processing Layer
B --> D[Text Preprocessing]
D --> E[TF-IDF Vectorization]
E --> F[Similarity Calculation]
end
subgraph Output Layer
F --> G[Ranked Resume List]
end
classDef data fill:#f9f,stroke:#333,stroke-width:1px;
class A,C data;
flowchart LR
1[Start] --> 2[Load dataset]
2 --> 3[Clean and preprocess text]
3 --> 4[Generate TF-IDF features]
4 --> 5[Specify job description]
5 --> 6[Compute cosine similarity]
6 --> 7[Sort resumes by score]
7 --> 8[End - Output ranked list]
The diagrams above illustrate the major components and data flow of the project, highlighting how resumes are transformed and compared against job descriptions.
The current prototype can be expanded along several dimensions:
- Resume file support – parse PDF/DOCX documents instead of plain text.
- Classification/Matching model – train supervised algorithms to predict best-fit roles.
- Web UI – deploy as a Streamlit/Flask/Django application.
- Explainability – highlight keywords and phrases responsible for scores.
- Integration with ATS – connect the pipeline to Applicant Tracking Systems.
Contributions are welcome! Please follow these guidelines:
- Fork the repository and create a feature branch.
- Make changes and include tests where appropriate.
- Submit a pull request with a clear description of your work.
This project is licensed under the MIT License.
For questions or feedback, reach out to:
- Author: Kavana S Harthal,Preethi kumari,Tejaswini r
Thank you for exploring the Resume Screening AI project! 🙌