Brutally honest AI resume analysis. ATS scores, job description matching, skill gaps, and a concrete action plan.
Built with Next.js 16, FastAPI, LangChain, Google Gemini 2.5 Flash, and Pydantic v2.
| Feature | Description |
|---|---|
| ATS Score | Keyword match, formatting quality, length/density sub-scores |
| Overall Score | Honest 0–100 rating with Pydantic-validated schema |
| Job Match | Paste a JD to get a % match, matched skills, and skill gaps |
| Skill Gap Analysis | Missing skills ranked by importance (high / medium / low) |
| Experience Level | Junior → Mid-Level → Senior → Lead/Principal detection |
| Action Plan | Numbered, prioritized improvement suggestions |
| Recommended Roles | 5 curated job titles based on your profile |
| Full Error Handling | PDF validation, LLM failures, Pydantic schema errors |
analytiq/
├── app/
│ ├── page.tsx ← Full UI (hero, upload, results dashboard)
│ ├── layout.tsx ← Fonts, SEO metadata, viewport
│ ├── globals.css ← Design system (tokens, animations, components)
│ └── api/analyze/route.ts ← Next.js API route → proxies to FastAPI
├── lib/
│ └── types.ts ← TypeScript interfaces matching Pydantic schemas
└── backend/
├── main.py ← FastAPI + Pydantic schemas + LangChain chain
├── requirements.txt
├── Procfile ← Railway/Render deploy
└── runtime.txt ← Python 3.12
cd backend
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Add your GOOGLE_API_KEY
uvicorn main:app --reload # → http://localhost:8000# In root directory
cp .env.example .env.local # BACKEND_URL=http://localhost:8000
npm install
npm run dev # → http://localhost:3000- New project → Deploy from GitHub
- Set root directory to
backend/ - Add env var:
GOOGLE_API_KEY=<your_key> - Copy the generated URL, e.g.
https://analytiq-backend.railway.app
- Import repo at vercel.com/new
- Add env var:
BACKEND_URL=https://analytiq-backend.railway.app - Click Deploy → done ✅
- Visit Google AI Studio
- Click Create API key
- Set as
GOOGLE_API_KEYin the backend environment
| Token | Value |
|---|---|
| Primary | #000000 (Black) |
| Accent | #ff0000 (Red) |
| Highlight | #ffe100 (Yellow) |
| Surface | #fafafa / #f5f5f3 |
| Fonts | Ysabeau Infant (display) · Ysabeau (body) |
| Icons | React Icons FA6 |
| Layer | Tech |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS v4 |
| Backend | Python 3.12, FastAPI, Uvicorn |
| AI | Google Gemini 2.5 Flash via LangChain |
| Validation | Pydantic v2 (backend) + TypeScript types (frontend) |
| PyPDF | |
| Icons | React Icons FA6 |
| Fonts | Ysabeau Infant + Ysabeau (Google Fonts) |
| Deploy | Vercel + Railway |
Created by Swayam