SanjanaReddy-2007/AI-Smart-Resume-JD-Analyzer

End-to-end NLP pipeline that semantically matches resumes to job descriptions, ranks skill gaps by importance, and delivers upskilling recommendations via an interactive dashboard.

0

stars

7

commits

HTML

primary language

Jun 14, 2026

updated

README

πŸ€– AI-Powered Skill Gap Analyzer

An intelligent NLP-based application that analyzes resumes and job descriptions to identify skill gaps and provide personalized upskilling recommendations.


πŸ“Œ Problem Statement

In the rapidly evolving job market, identifying mismatches between candidate resumes and job descriptions is crucial for both job seekers and recruiters. This application uses Natural Language Processing (NLP) to extract skills from resumes and job descriptions, compares them, and identifies gaps. The system provides intelligent recommendations for upskilling by highlighting missing or underrepresented skills, improving job readiness.


πŸš€ Features

  • πŸ“„ Upload resumes and job descriptions in PDF, DOCX, or TXT formats
  • 🧠 NLP-based Skill Extraction using spaCy and custom NER models
  • πŸ” Semantic Similarity Scoring using Sentence-BERT (BERT embeddings)
  • πŸ“Š Skill Gap Analysis with ranked and categorized missing skills
  • 🎯 Personalized Upskilling Recommendations based on identified gaps
  • πŸ“ˆ Interactive Streamlit Dashboard with visual skill match percentages
  • πŸ“ Export Reports in PDF or CSV formats
  • πŸ‘€ Role-based Dashboard supporting both job seekers and recruiters

🧠 How It Works

  1. User uploads a Resume and a Job Description in supported formats
  2. Documents are parsed and cleaned to extract plain text
  3. spaCy-based NER models identify and extract skill entities
  4. Skills are encoded using Sentence-BERT embeddings from Hugging Face
  5. Cosine similarity is computed between resume and job description skills
  6. Skill gaps are ranked by importance and categorized
  7. Results are displayed on an interactive dashboard with export options

πŸ—οΈ Project Architecture

Input Layer β†’ NLP Pipeline β†’ Embedding Layer β†’ Matching Logic β†’ Streamlit Dashboard β†’ Export Service

Modules

1. Data Ingestion and Parsing

  • Supports PDF, DOCX, and TXT file uploads
  • Parses and normalizes text content for clean processing

2. Skill Extraction using NLP

  • Uses spaCy and custom NER models to extract skill entities
  • Identifies both technical and soft skills

3. Skill Gap Analysis and Similarity Matching

  • Encodes skills using Sentence-BERT embeddings from Hugging Face
  • Computes cosine similarity to compare resume vs job description skills
  • Ranks and categorizes skill gaps by importance

4. Visualization and Dashboard

  • Streamlit-based interactive dashboard
  • Visual skill match percentages and gap reports
  • Export analysis as PDF or CSV

πŸ› οΈ Tech Stack

LayerTechnology
BackendPython, Flask
NLPspaCy, Sentence-BERT (Hugging Face)
SimilarityCosine Similarity
FrontendStreamlit
ExportPDF, CSV

βš™οΈ Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/SanjanaReddy-2007/AI-Smart-Resume-JD-Analyzer.git
cd AI-Smart-Resume-JD-Analyzer

2️⃣ Create Virtual Environment

python -m venv .venv
.venv\Scripts\activate   # Windows
source .venv/bin/activate  # macOS/Linux

3️⃣ Install Dependencies

pip install -r requirements.txt

4️⃣ Run the Application

python app.py

5️⃣ Open in Browser

http://127.0.0.1:5000

πŸ“Š Example Use Cases

  • Job Seekers: Upload your resume and a target job description to instantly see your skill gaps and what to learn next
  • Recruiters: Compare candidate resumes against job requirements and get ranked match percentages

πŸ”₯ Key Outcomes

  • Extracts relevant skills from resumes and job descriptions using NER models
  • Computes semantic similarity scores between extracted skills using Sentence-BERT
  • Identifies skills that are missing or weakly aligned with job requirements
  • Provides personalized upskilling recommendations based on identified skill gaps
  • Supports exporting skill gap analysis reports in PDF or CSV formats

⚑ Future Enhancements

  • πŸ” Multi-language resume support
  • πŸ“ˆ Real-time job market skill trend integration
  • πŸ€– AI-generated upskilling roadmaps
  • ☁️ Cloud deployment (AWS / Render)
  • πŸ”— LinkedIn profile integration

🀝 Contributing

Feel free to fork the repository and submit pull requests for improvements.


⭐ Acknowledgements

Contributors

SanjanaReddy-2007/AI-Smart-Resume-JD-Analyzer

End-to-end NLP pipeline that semantically matches resumes to job descriptions, ranks skill gaps by importance, and delivers upskilling recommendations via an interactive dashboard.

0

stars

7

commits

HTML

primary language

Jun 14, 2026

updated

README

πŸ€– AI-Powered Skill Gap Analyzer

An intelligent NLP-based application that analyzes resumes and job descriptions to identify skill gaps and provide personalized upskilling recommendations.


πŸ“Œ Problem Statement

In the rapidly evolving job market, identifying mismatches between candidate resumes and job descriptions is crucial for both job seekers and recruiters. This application uses Natural Language Processing (NLP) to extract skills from resumes and job descriptions, compares them, and identifies gaps. The system provides intelligent recommendations for upskilling by highlighting missing or underrepresented skills, improving job readiness.


πŸš€ Features

  • πŸ“„ Upload resumes and job descriptions in PDF, DOCX, or TXT formats
  • 🧠 NLP-based Skill Extraction using spaCy and custom NER models
  • πŸ” Semantic Similarity Scoring using Sentence-BERT (BERT embeddings)
  • πŸ“Š Skill Gap Analysis with ranked and categorized missing skills
  • 🎯 Personalized Upskilling Recommendations based on identified gaps
  • πŸ“ˆ Interactive Streamlit Dashboard with visual skill match percentages
  • πŸ“ Export Reports in PDF or CSV formats
  • πŸ‘€ Role-based Dashboard supporting both job seekers and recruiters

🧠 How It Works

  1. User uploads a Resume and a Job Description in supported formats
  2. Documents are parsed and cleaned to extract plain text
  3. spaCy-based NER models identify and extract skill entities
  4. Skills are encoded using Sentence-BERT embeddings from Hugging Face
  5. Cosine similarity is computed between resume and job description skills
  6. Skill gaps are ranked by importance and categorized
  7. Results are displayed on an interactive dashboard with export options

πŸ—οΈ Project Architecture

Input Layer β†’ NLP Pipeline β†’ Embedding Layer β†’ Matching Logic β†’ Streamlit Dashboard β†’ Export Service

Modules

1. Data Ingestion and Parsing

  • Supports PDF, DOCX, and TXT file uploads
  • Parses and normalizes text content for clean processing

2. Skill Extraction using NLP

  • Uses spaCy and custom NER models to extract skill entities
  • Identifies both technical and soft skills

3. Skill Gap Analysis and Similarity Matching

  • Encodes skills using Sentence-BERT embeddings from Hugging Face
  • Computes cosine similarity to compare resume vs job description skills
  • Ranks and categorizes skill gaps by importance

4. Visualization and Dashboard

  • Streamlit-based interactive dashboard
  • Visual skill match percentages and gap reports
  • Export analysis as PDF or CSV

πŸ› οΈ Tech Stack

LayerTechnology
BackendPython, Flask
NLPspaCy, Sentence-BERT (Hugging Face)
SimilarityCosine Similarity
FrontendStreamlit
ExportPDF, CSV

βš™οΈ Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/SanjanaReddy-2007/AI-Smart-Resume-JD-Analyzer.git
cd AI-Smart-Resume-JD-Analyzer

2️⃣ Create Virtual Environment

python -m venv .venv
.venv\Scripts\activate   # Windows
source .venv/bin/activate  # macOS/Linux

3️⃣ Install Dependencies

pip install -r requirements.txt

4️⃣ Run the Application

python app.py

5️⃣ Open in Browser

http://127.0.0.1:5000

πŸ“Š Example Use Cases

  • Job Seekers: Upload your resume and a target job description to instantly see your skill gaps and what to learn next
  • Recruiters: Compare candidate resumes against job requirements and get ranked match percentages

πŸ”₯ Key Outcomes

  • Extracts relevant skills from resumes and job descriptions using NER models
  • Computes semantic similarity scores between extracted skills using Sentence-BERT
  • Identifies skills that are missing or weakly aligned with job requirements
  • Provides personalized upskilling recommendations based on identified skill gaps
  • Supports exporting skill gap analysis reports in PDF or CSV formats

⚑ Future Enhancements

  • πŸ” Multi-language resume support
  • πŸ“ˆ Real-time job market skill trend integration
  • πŸ€– AI-generated upskilling roadmaps
  • ☁️ Cloud deployment (AWS / Render)
  • πŸ”— LinkedIn profile integration

🀝 Contributing

Feel free to fork the repository and submit pull requests for improvements.


⭐ Acknowledgements

Contributors

Languages

HTML

39.8%

JavaScript

30.6%

Python

20.0%

CSS

7.9%

Dockerfile

1.7%