Upload a Resume β Extract Structured Information β Compare with Job Description β Get ATS Match Score & Recruiter Insights
Resume Analyzer is an AI-powered web application that automatically extracts structured information from a resume PDF and compares it against a Job Description (JD).
Instead of manually reading resumes, this application leverages Large Language Models (LLMs) through Groq + LangChain to identify:
- Candidate Information
- Education
- Experience
- Skills
- ATS Match Score
- Missing Skills
- Recruiter Summary
- Strengths & Gaps
The project demonstrates practical usage of Generative AI, Structured Output, Prompt Engineering, and Streamlit.
- Upload Resume PDF
- Extract Name
- Extract Email
- Extract Phone Number
- Extract Education
- Extract Experience
- Extract Technical Skills
Uses:
- LangChain
- Groq Llama Model
- Function Calling
- Pydantic Models
The AI returns structured JSON instead of plain text.
Compare Resume with JD and generate:
- ATS Match Score
- Matched Skills
- Missing Skills
- Strengths
- Gaps
- Recruiter Summary
Download
- Parsed Resume JSON
- JD Match Result JSON
Resume PDF
β
βΌ
PyPDFLoader
β
βΌ
Extract Resume Text
β
βΌ
LangChain PromptTemplate
β
βΌ
Groq Llama 3.3 LLM
β
βΌ
Structured Resume (Pydantic)
β
Resume + Job Description
β
βΌ
AI Resume Matcher
β
βΌ
JDMatchResult (Structured)
β
βΌ
Streamlit Dashboard
- Python
- LangChain
- Groq LLM
- Prompt Engineering
- PyPDF
- PyPDFLoader
- Pydantic
- Streamlit
- Python Dotenv
Resume-Analyzer/
β
βββ .venv/
βββ .env
βββ requirements.txt
β
βββ models.py
βββ prompts.py
βββ parser.py
βββ matcher.py
βββ main.py
β
βββ resume.pdf
βββ jd.txt
β
βββ README.md
git clone https://github.com/Ronit049/Resume-Analyzer.git
cd Resume-Analyzerpython -m venv .venvActivate
.venv\Scripts\activatepython3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtCreate a file named
.env
Add your Groq API Key
GROQ_API_KEY=your_groq_api_keyRun Streamlit
streamlit run main.pyor
python -m streamlit run main.pyUpload Resume PDF
β
PDF is converted into plain text
β
Prompt is generated using LangChain
β
Groq LLM extracts structured information
β
Resume object is created using Pydantic
β
User pastes Job Description
β
LLM compares Resume & JD
β
Generate
- Match Score
- Missing Skills
- Recruiter Summary
β
Display results in Streamlit
{
"name": "John Doe",
"email": "john@gmail.com",
"phone_number": "9876543210",
"skills": [
"Python",
"SQL",
"LangChain"
]
}{
"match_score": 87,
"matched_skills": [
"Python",
"SQL"
],
"missing_skills": [
"Docker",
"FastAPI"
],
"summary": "Candidate is a strong fit for the role."
}π Upload Resume
β¬
π€ Parse Resume
β¬
π View Structured Resume
β¬
π Paste Job Description
β¬
π Generate Match Score
β¬
π₯ Download JSON Report
This project demonstrates:
- Prompt Engineering
- Structured Output
- Function Calling
- LangChain Chains
- Groq Integration
- Resume Parsing
- ATS Resume Matching
- Streamlit Development
- Pydantic Models
- Environment Variables
- PDF Processing
- AI Application Development
- Support DOCX resumes
- OCR for scanned PDFs
- Multi-resume ranking
- Resume improvement suggestions
- Skill gap visualization
- ATS compatibility analysis
- Company-specific scoring
- Cover Letter Generator
- Interview Question Generator
- LinkedIn Profile Analysis
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Commit your changes
- Push your branch
- Open a Pull Request
If you found this project useful, informative, or inspiring, please consider giving it a β on GitHub.
Your support helps improve the project, motivates future development, and makes it easier for others to discover it.
Passionate Computer Science Student focused on building practical AI-powered applications, modern web experiences, and open-source projects.
If this repository helped you:
β Star the repository
π΄ Fork it
π Report bugs
π‘ Suggest new features
π€ Contribute to make it even better
Every contributionβbig or smallβis greatly appreciated.
Thank you for visiting this repository!
I truly appreciate your time and interest in this project. I hope it helps you learn something new or solve a real problem.
If you have ideas, feedback, or would like to collaborate on future projects, feel free to reach out. Contributions, discussions, and suggestions are always welcome.
Happy Coding! π

