The Smart Job Description Analyzer is a powerful LLM-based application that helps users intelligently evaluate how well their resumes match a given job description. It provides actionable insights, visual feedback, and auto-generated suggestions to help improve resume alignment and job fit.
This project showcases advanced applications of LangChain, OpenAI GPT-4, FAISS, and Streamlit, along with semantic skill categorization, fuzzy matching, and PDF report generation for a complete end-to-end experience.
- 🔍 Job Description Analysis – Extracts relevant skills, qualifications, and expectations using LLMs.
- 📄 Resume Parsing – Processes resume PDFs and retrieves core skills using chunked embedding.
- 🧠 Skill Gap Detection – Uses fuzzy matching to detect unmatched skills between JD and resume.
- 🧠 AI Suggestions – Provides resume improvement tips powered by Retrieval-Augmented Generation (RAG).
- 📌 Resume Match Score – Computes a job fit score out of 10 with personalized feedback.
- 🗂️ Auto-Categorized Skills – Dynamically categorizes resume skills into general domains (e.g., Programming, Marketing, Cloud).
- 📊 Visual Insights – Includes interactive bar charts and radar plots for skill match analysis.
- 📄 PDF Report Export – Download a cleanly formatted resume-JD analysis report.
- ✅ Fuzzy Matching – Uses
fuzzywuzzy
for partial match detection, enabling more accurate comparisons.
Layer | Stack |
---|---|
LLMs | OpenAI GPT-4 via LangChain |
Embeddings | OpenAI text-embedding-ada-002 |
Vector Store | FAISS |
Frontend | Streamlit |
Visualization | Plotly |
Parsing & Utils | PDFPlumber, ReportLab, Regex |
NLP & Matching | FuzzyWuzzy |
- User inputs a job description (as text).
- Uploads a resume (PDF).
- JD and Resume are parsed and embedded.
- LangChain is used to extract and categorize skills.
- FAISS enables similarity comparison.
- Match score, gaps, and LLM-generated suggestions are calculated.
- Charts and download options are rendered via Streamlit.
git clone https://github.com/your-username/smart-jd-analyzer.git
cd smart-jd-analyzer
pip install -r requirements.txt
Create a .env file with:
OPENAI_API_KEY=your_openai_api_key
streamlit run app.py
- ✅ Job seekers tailoring resumes for better ATS and recruiter screening
- ✅ Recruiters checking candidate relevance to job postings
- ✅ Career counselors assisting clients with resume optimization
- ✅ HR tech innovators building smarter hiring tools
- Match Score and Feedback
- Missing Skills & Improvement Suggestions
- Categorized Skills by Domain
- Clean, wrapped, emoji-free formatting
- Add chatbot assistant for interactive guidance
- Support for multiple resume comparison
- Integration with ATS or job boards
- Historical tracking of resume improvements
Pull requests and suggestions are welcome! For major changes, please open an issue first to discuss what you would like to change.