AI in Recruitment Process: Resume Analysis using NLP
A production-style prototype that uses NLP and Sentence Transformers to automatically screen resumes, match candidates against job descriptions, and rank them with full explainability.
Mam / Evaluator: Sirf neeche diye link pe click karein aur
Runtime β Run Allpress karein. Koi installation nahi, sirf Google account chahiye!
Direct Link:
https://colab.research.google.com/github/rohangargjfl/AI-Resume_Screening_System/blob/main/Run_On_Google_Colab.ipynb
| Module | Description |
|---|---|
| Resume Parser | Extracts text from PDF, DOCX, TXT and preprocesses it |
| NLP Processing | Tokenization, lemmatization, NER, strict regex skill extraction via SpaCy |
| Feature Extraction | Statistical pseudo-semantic TF-IDF N-Grams (1,3) (scikit-learn) |
| Matching Engine | Cosine similarity β dynamic recruiter-weighted multi-variable scoring |
| Explainable AI | Mathematical score breakdown & reasoning text generation |
| Visualization | Interactive Chart.js & dynamic UI score badges |
| Web Application | Flask asynchronous dashboard with interactive uploading and SSO Auth |
Python Β· Flask Β· SpaCy Β· scikit-learn Β· Vanilla JS Β· Bootstrap 5 Β· Chart.js
AI_Resume_Screening_System/
βββ resume_parser/ # PDF/DOCX/TXT extraction & preprocessing
βββ nlp_processing/ # SpaCy NLP pipeline & skill extraction
βββ feature_extraction/ # TF-IDF + Sentence Transformer embeddings
βββ matching_engine/ # Cosine similarity scoring
βββ explainable_ai/ # Skill-level explanations
βββ visualization/ # Matplotlib chart generation
βββ web_app/ # Flask routes, templates, static assets
β βββ templates/
β βββ static/
βββ example_resumes/ # Sample resumes & job description for testing
βββ requirements.txt
βββ app.py # Application entry point
βββ README.md
pip install -r requirements.txt
python -m spacy download en_core_web_sm
python app.py
Visit http://127.0.0.1:5000
The example_resumes/ directory contains:
job_description.txt β Sample Senior Python Developer JDThe absolute final match score is a dynamic, recruiter-controlled blend of four core similarity measures:
| Component | Default Weight | Description |
|---|---|---|
| Tech Skills | 60% | Strict Regex Exact-Match Intersection against SpaCy NER |
| Contextual Match | 15% | Semantic N-Gram (1,3) + TF-IDF Cosine Trajectory |
| Years of Experience | 15% | Linear Threshold Ratio |
| Soft Skills | 10% | Strict Regex Exact-Match Intersection |
Plus an autonomous mathematically bounded Extra Skills bonus (Default cap: +5%) for tech skills discovered but not mathematically requested in the JD.
All weights, metrics, and bonus caps are actively customizable by the recruiter via UI Range Sliders on the Upload Dashboard before firing the background Analysis thread!
B.Tech Final Year Project β AI in Recruitment Process
17 commits
2 commits
Python
34.0%
Jupyter Notebook
24.7%
TeX
24.1%
HTML
10.9%
CSS
5.6%
AI in Recruitment Process: Resume Analysis using NLP
A production-style prototype that uses NLP and Sentence Transformers to automatically screen resumes, match candidates against job descriptions, and rank them with full explainability.
Mam / Evaluator: Sirf neeche diye link pe click karein aur
Runtime β Run Allpress karein. Koi installation nahi, sirf Google account chahiye!
Direct Link:
https://colab.research.google.com/github/rohangargjfl/AI-Resume_Screening_System/blob/main/Run_On_Google_Colab.ipynb
| Module | Description |
|---|---|
| Resume Parser | Extracts text from PDF, DOCX, TXT and preprocesses it |
| NLP Processing | Tokenization, lemmatization, NER, strict regex skill extraction via SpaCy |
| Feature Extraction | Statistical pseudo-semantic TF-IDF N-Grams (1,3) (scikit-learn) |
| Matching Engine | Cosine similarity β dynamic recruiter-weighted multi-variable scoring |
| Explainable AI | Mathematical score breakdown & reasoning text generation |
| Visualization | Interactive Chart.js & dynamic UI score badges |
| Web Application | Flask asynchronous dashboard with interactive uploading and SSO Auth |
Python Β· Flask Β· SpaCy Β· scikit-learn Β· Vanilla JS Β· Bootstrap 5 Β· Chart.js
AI_Resume_Screening_System/
βββ resume_parser/ # PDF/DOCX/TXT extraction & preprocessing
βββ nlp_processing/ # SpaCy NLP pipeline & skill extraction
βββ feature_extraction/ # TF-IDF + Sentence Transformer embeddings
βββ matching_engine/ # Cosine similarity scoring
βββ explainable_ai/ # Skill-level explanations
βββ visualization/ # Matplotlib chart generation
βββ web_app/ # Flask routes, templates, static assets
β βββ templates/
β βββ static/
βββ example_resumes/ # Sample resumes & job description for testing
βββ requirements.txt
βββ app.py # Application entry point
βββ README.md
pip install -r requirements.txt
python -m spacy download en_core_web_sm
python app.py
Visit http://127.0.0.1:5000
The example_resumes/ directory contains:
job_description.txt β Sample Senior Python Developer JDThe absolute final match score is a dynamic, recruiter-controlled blend of four core similarity measures:
| Component | Default Weight | Description |
|---|---|---|
| Tech Skills | 60% | Strict Regex Exact-Match Intersection against SpaCy NER |
| Contextual Match | 15% | Semantic N-Gram (1,3) + TF-IDF Cosine Trajectory |
| Years of Experience | 15% | Linear Threshold Ratio |
| Soft Skills | 10% | Strict Regex Exact-Match Intersection |
Plus an autonomous mathematically bounded Extra Skills bonus (Default cap: +5%) for tech skills discovered but not mathematically requested in the JD.
All weights, metrics, and bonus caps are actively customizable by the recruiter via UI Range Sliders on the Upload Dashboard before firing the background Analysis thread!
B.Tech Final Year Project β AI in Recruitment Process
17 commits
2 commits
Python
34.0%
Jupyter Notebook
24.7%
TeX
24.1%
HTML
10.9%
CSS
5.6%