GapIQ is an AI-powered career intelligence platform designed to analyze the gap between a candidate’s resume and a target job description. The system extracts structured information from resumes and job descriptions, computes deterministic compatibility scores, and generates explainable AI-driven insights including skill gaps, recruiter feedback, resume improvements, and personalized learning roadmaps.
The project was developed as part of the M.Tech internship and research work under Mesanite Software Solutions Pvt. Ltd. in collaboration with CHRIST (Deemed to be University), Bangalore.
Students and early-career professionals often receive repeated job rejections without understanding:
- Which skills are missing
- Whether their experience aligns with the role
- How recruiters evaluate their resumes
- What improvements are required to increase selection chances
Traditional ATS systems are opaque and rejection-oriented. GapIQ aims to provide an explainable and constructive alternative.
The primary objectives of GapIQ are:
- Perform automated resume and job description analysis
- Extract structured information using AI
- Compute multi-dimensional compatibility scores
- Identify missing skills and domain gaps
- Generate actionable recommendations
- Provide recruiter-style feedback
- Build a learning roadmap for improvement
- Maintain explainability and transparency in scoring
- PDF resume upload support
- Text extraction using pdfplumber
- Noise cleaning and normalization
- Structured parsing pipeline
- Raw JD text input
- Skill extraction
- Seniority detection
- Domain keyword identification
GapIQ converts unstructured text into validated structured JSON using:
- Groq LLM
- Pydantic schema validation
- Deterministic formatting
Extracted entities include:
- Skills
- Experience signals
- Keywords
- Seniority indicators
- Required skills
- Nice-to-have skills
GapIQ computes compatibility scores across multiple dimensions:
| Score Axis | Description |
|---|---|
| Technical | Skill overlap between resume and JD |
| Experience | Experience relevance to job requirements |
| Seniority | Career level alignment |
| Domain | Domain and industry relevance |
| Language | Semantic language alignment |
Scoring uses:
- TF-IDF vectorization
- Cosine similarity
- Heuristic matching
- Weighted scoring
- Skill overlap analysis
AI-generated insights include:
- Skill gap analysis
- Resume improvement suggestions
- Recruiter strengths and weaknesses
- Personalized learning roadmap
The enhancement layer is constrained to:
- Maximum 2 LLM calls
- Strict JSON output
- Pydantic validation
- Fallback-safe execution
GapIQ emphasizes transparent evaluation.
The platform provides:
- Matched skills
- Missing skills
- Priority-based gaps
- Compatibility labels
- Human-readable explanations
Frontend (React + Tailwind)
↓
FastAPI Backend
↓
Resume Parser + JD Processor
↓
Structured Extraction Layer
↓
Deterministic Scoring Engine
↓
LLM Enhancement Layer
↓
Final Analysis Response
| Technology | Purpose |
|---|---|
| React | UI Framework |
| Vite | Frontend Build Tool |
| Tailwind CSS | Styling |
| Axios | API Communication |
| Technology | Purpose |
|---|---|
| FastAPI | API Backend |
| Pydantic | Data Validation |
| pdfplumber | Resume PDF Parsing |
| Scikit-learn | TF-IDF + Similarity Scoring |
| Groq API | LLM Inference |
| Python-dotenv | Environment Management |
| Platform | Usage |
|---|---|
| Render | Backend Hosting |
| Vercel / Netlify | Frontend Hosting |
gapiq/
│
├── backend/
│ ├── main.py
│ ├── extractor.py
│ ├── scorer.py
│ ├── enhancer.py
│ ├── models.py
│ ├── requirements.txt
│ ├── .env
│ └── uploads/
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ └── vite.config.js
│
└── docs/
http://localhost:8000
GET /healthChecks whether backend service is active.
{
"status": "ok"
}POST /parse/resumeMultipart PDF file upload.
{
"text": "parsed resume text"
}POST /extract{
"resume_text": "...",
"jd_text": "..."
}{
"resume": {
"skills": [],
"experience": [],
"keywords": [],
"seniority_signals": []
},
"jd": {
"required_skills": [],
"nice_to_have": [],
"keywords": [],
"seniority": ""
}
}POST /score{
"scores": {
"technical": 78,
"experience": 72,
"seniority": 65,
"domain": 70,
"language": 80,
"overall": 74,
"role_fit": "Moderate Match"
}
}POST /analyze{
"scores": {},
"gaps": [],
"recommendations": [],
"roadmap": [],
"recruiter_lens": {}
}Calculated using:
- Direct skill overlap
- TF-IDF fallback similarity
- Partial semantic alignment
Computed using:
-
TF-IDF similarity between:
- Resume experience
- JD requirements
Uses heuristic matching against predefined career-level keywords.
Measures overlap between:
- Resume keywords
- JD keywords
Measures semantic alignment between:
- Overall resume profile
- Overall job description profile
Weighted aggregation:
weighted = (
technical * 0.35 +
experience * 0.30 +
seniority * 0.10 +
domain * 0.15 +
language * 0.15
)Compatibility classification:
| Overall Score | Classification |
|---|---|
| 75+ | Strong Match |
| 55–74 | Moderate Match |
| 40–54 | Potential Match |
| Below 40 | Weak Match |
| Component | Purpose |
|---|---|
| UploadSection | Resume upload + JD input |
| ScoreSection | Compatibility visualization |
| GapSection | Missing skills display |
| RecommendationSection | Resume improvement suggestions |
| RoadmapSection | Learning roadmap |
| RecruiterSection | Recruiter perspective analysis |
git clone <repository-url>
cd gapiqcd backend
python -m venv venvsource venv/Scripts/activatesource venv/bin/activatepip install -r requirements.txtCreate .env
GROQ_API_KEY=your_api_key_hereuvicorn main:app --reloadBackend URL:
http://127.0.0.1:8000
cd frontend
npm installnpm run devFrontend URL:
http://localhost:5173
backend
pip install -r requirements.txtuvicorn main:app --host 0.0.0.0 --port $PORTGROQ_API_KEY=your_api_keyDeploy frontend separately using:
- Vercel
- Netlify
Update API base URLs after deployment.
GapIQ follows these core principles:
Every score must be understandable.
Combines:
- Deterministic scoring
- LLM enhancement
The system minimizes:
- hallucination risk
- API cost
- latency
Avoids:
- heavy GPU inference
- local transformer hosting
- unnecessary ML overhead
- Resume parsing may vary across complex PDF layouts
- LLM extraction quality depends on resume formatting
- Domain understanding is keyword dependent
- TF-IDF similarity lacks deep semantic reasoning
- No authentication system currently implemented
- No database persistence layer yet
- Embedding API integration
- Adaptive scoring weights by role type
- Resume section segmentation
- ATS compatibility scoring
- Multi-resume comparison
- Historical analytics dashboard
- Confidence-aware scoring
- Explainable AI evaluation metrics
- Hybrid semantic retrieval
- Role-specific calibration models
- Bias analysis in resume evaluation
- User authentication
- Resume history
- Exportable reports
- Skill trend analytics
- Personalized job recommendations
- Recruiter dashboard
GapIQ also serves as a research-oriented project in:
- Explainable AI for recruitment
- Intelligent career guidance systems
- Resume-job semantic alignment
- Human-centered AI scoring systems
- Hybrid deterministic + generative architectures
- API keys stored using environment variables
- File upload validation required
- Rate limiting recommended
- Input sanitization required
- Sensitive resume data should not be permanently stored without consent
Implemented optimizations include:
- Limited LLM calls
- Lightweight TF-IDF scoring
- Pydantic validation
- Structured logging
- Controlled output schemas
Recommended future optimizations:
- Redis caching
- Async processing
- Background task queues
- Request batching
Renold Stephen R
M.Tech Computer Science and Engineering CHRIST (Deemed to be University)
- CHRIST (Deemed to be University)
- Groq
- FastAPI Community
- Open-source NLP ecosystem
This project is currently developed for academic and research purposes.
Further licensing decisions may be applied during production release.
GapIQ is designed not merely as an ATS-style rejection system, but as an explainable AI career guidance platform focused on helping candidates understand, improve, and strategically align themselves with industry roles.










