A production-grade full-stack AI SaaS application that analyzes resumes against job descriptions using Groq LLM, Google Gemini embeddings, and ATS-style scoring algorithms.
Portfolio-ready project: Demonstrates AI integration, full-stack architecture, JWT auth, Redis caching, vector similarity, and scalable system design.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND (React) β
β Landing β Auth β Dashboard β Analyze β Results β
β Deployed on: Vercel β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β HTTPS / REST
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β BACKEND (Node/Express) β
β β
β /auth β JWT auth (login/register) β
β /resume β Upload + parse PDF β
β /analysis β AI pipeline (Groq + Gemini) β
β /user β Profile + usage tracking β
β β
β Deployed on: Render β
ββββββββββββ¬βββββββββββββββββββββββ¬ββββββββββββββββββββββββ
β β
ββββββββββββΌβββββββ ββββββββββββΌβββββββββββββββββββββββ
β MongoDB Atlas β β AI Layer β
β β β β
β Users β β Groq (llama-3.3-70b) β
β Resumes β β β Resume analysis (ATS) β
β Analyses β β β Resume rewriting β
βββββββββββββββββββ β β
β β Gemini (embedding-001) β
ββββββββββββΌβββββββ β β Semantic similarity β
β Redis (Upstash)β ββββββββββββββββββββββββββββββββββ
β Cache (1hr TTL)β
βββββββββββββββββββ
| Feature | Details |
|---|---|
| ATS Score (0β100) | Groq LLM evaluates resume vs JD |
| Semantic Similarity | Gemini embeddings + cosine similarity |
| Section-wise Scores | Skills, Experience, Education, Projects |
| Composite Score | 50% LLM + 30% semantic + 20% sections |
| Missing Skills Detection | Extracted directly from JD |
| Actionable Suggestions | Specific improvements (not generic) |
| ATS Tips | Resume optimization guidance |
| AI Resume Rewriter | Groq rewrites resume for better matching |
| JWT Auth | Secure login + refresh tokens |
| Redis Caching | Same resume+JD β instant result |
| Rate Limiting | Prevents abuse |
Resume + Job Description
β
βΌ
Groq β LLM Analysis (ATS Score, Skills, Suggestions)
β
βΌ
Groq β Section-wise scoring
β
βΌ
Gemini β Generate embeddings (resume + JD)
β
βΌ
Cosine Similarity β Semantic Score
β
βΌ
Weighted Average:
50% LLM + 30% Semantic + 20% Sections
β
βΌ
Final Composite Score
- React + Vite
- Tailwind CSS
- Zustand
- TanStack Query
- Node.js + Express
- MongoDB + Mongoose
- Redis (Upstash)
- Groq SDK
- Google Generative AI (Gemini)
- JWT Auth + bcrypt
- Multer + pdf-parse
ai-resume-analyzer/
βββ client/ # React frontend
βββ server/ # Express backend
βββ routes/
βββ controllers/
βββ services/
β βββ aiService.js # Groq + Gemini logic
βββ models/
βββ middleware/
NODE_ENV=production
PORT=5000
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_secret
JWT_REFRESH_SECRET=your_secret
GROQ_API_KEY=your_groq_key
GEMINI_API_KEY=your_gemini_key
REDIS_URL=your_redis_url
CLIENT_URL=http://localhost:3000
VITE_API_URL=http://localhost:5000/api/v1
git clone https://github.com/yourusername/ai-resume-analyzer.git
cd ai-resume-analyzer
npm run install:all
npm run devPOST /api/v1/analysis/analyze{
"resumeId": "123",
"jobDescription": "We are looking for a Software Engineer..."
}{
"compositeScore": 73,
"semanticScore": 68,
"llmAnalysis": {
"score": 76,
"missing_skills": ["Docker", "Kubernetes"],
"suggestions": ["Add quantified achievements"]
}
}- Groq β ultra-fast, low-cost LLM for analysis & rewriting
- Gemini β high-quality embeddings for semantic matching
π This hybrid approach balances:
- β‘ Speed
- π° Cost
- π§ Accuracy
| Service | Limit |
|---|---|
| Groq | ~14K requests/day |
| Gemini | ~1500 embeddings/day |
π ~700β750 resume analyses/day (without caching)
- Build:
npm install - Start:
npm start
- Build:
npm run build
- Hybrid AI architecture (LLM + embeddings)
- Caching layer (Redis)
- Stateless backend (scalable)
- Composite scoring (robust evaluation)
βI used Groq for fast and cost-efficient LLM tasks like resume analysis and rewriting, and Gemini for embeddings to compute semantic similarity. This hybrid design improves performance while maintaining accuracy.β
- Queue system (BullMQ)
- WebSocket updates
- Resume templates export
- Payment integration
MIT