AI-Powered ATS Resume Builder
Build professional, ATS-optimized resumes with AI-powered content refinement, real-time scoring, and instant PDF export β completely free, no signup required.
| Feature | Description |
|---|---|
| π€ AI Content Refinement | Improve resume sections using NVIDIA Gemma-2 AI |
| π Real-time ATS Scoring | Instant ATS compatibility scores with matched/missing keyword analysis |
| π Professional PDF Export | Download ATS-optimized PDFs in 2 proven formats |
| ποΈ Live Preview | See your resume update in real-time as you type |
| π¨ 2 ATS Templates | Jake Ryan Professional & Clean ATS format |
| π No Signup Required | Completely free, no account needed |
| π GA4 Analytics | Built-in Google Analytics 4 tracking |
| π SEO Optimized | Open Graph, Twitter Cards, JSON-LD structured data |
| Model | Purpose |
|---|---|
gemma-2-2b-it |
Resume content refinement & generation |
nv-embed-v1 |
Semantic text embeddings for ATS scoring |
rerank-qa-mistral-4b |
Relevance reranking for keyword matching |
- Node.js 18+ & Yarn
- Python 3.10+
- MongoDB (local or Atlas)
- Redis (optional β app works without it locally)
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
pip install -r requirements.txtCreate backend/.env:
MONGO_URL=mongodb://localhost:27017
DB_NAME=cvcraft
CORS_ORIGINS=*
# NVIDIA API Keys (get from build.nvidia.com)
GEMMA_API_KEY=nvapi-xxxxx
EMBED_API_KEY=nvapi-xxxxx
RERANK_API_KEY=nvapi-xxxxx
# Local dev: relaxed rate limits
ANON_RATE_PER_MIN=100
ANON_DAILY_LIMIT=1000Start the server:
uvicorn server:app --host 0.0.0.0 --port 8000 --reloadcd frontend
yarn installCreate frontend/.env:
REACT_APP_BACKEND_URL=http://127.0.0.1:8000Start the dev server:
yarn startOpen http://localhost:3000 π
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/ai/refine |
AI-powered text refinement |
POST |
/api/ai/generate |
General AI text generation |
POST |
/api/ai/latex |
Generate LaTeX from CV data |
POST |
/api/ats/score |
Enhanced ATS scoring with term breakdown |
POST |
/api/pdf/compile |
Server-side PDF compilation (requires pdflatex) |
POST |
/api/ai/ats |
Legacy ATS scoring |
GET |
/api/ |
Health check |
cd backend
.venv\Scripts\python -m pytest tests/ -vcd frontend
npx craco test --watchAll=false84 total tests covering:
- ATS score bounds & fallback behavior
- Cache deduplication
- Backward compatibility
- AI toggle behavior
- PDF compilation
- Integration flows
CVCraft/
βββ backend/
β βββ server.py # FastAPI app entry point
β βββ ai_router.py # AI endpoints (refine, generate, embed, rerank)
β βββ ats_router.py # Enhanced ATS scoring endpoint
β βββ pdf_router.py # PDF compilation endpoint
β βββ template_engine.py # LaTeX template rendering (6 templates)
β βββ auth_router.py # Authentication (unused β app is free)
β βββ limits.py # Rate limiting & caching utilities
β βββ redis_client.py # Redis connection (with in-memory fallback)
β βββ email_sender.py # Email utilities
β βββ requirements.txt # Python dependencies
β βββ tests/ # Property-based & unit tests (42 tests)
βββ frontend/
β βββ src/
β β βββ App.js # Main app with routing & GA4
β β βββ pages/
β β β βββ Home.jsx # Landing page with SEO
β β β βββ CreateCV.jsx # CV editor with AI features
β β βββ components/
β β β βββ CVPreview.jsx # Live CV preview (2 templates)
β β β βββ AIToggle.jsx # AI refinement toggle
β β β βββ TemplateSelector.jsx # Template picker
β β β βββ ATSScorePanel.jsx # ATS score display
β β β βββ SEOHead.jsx # SEO meta tags
β β βββ lib/
β β β βββ api.js # Backend API client
β β β βββ analytics.js # GA4 tracking utilities
β β βββ __tests__/ # Frontend property tests
β βββ public/
β βββ package.json
βββ README.md
| Home Page | CV Editor |
|---|---|
![]() |
![]() |
| Landing with features & CTA | Real-time editor with AI + ATS |
| Variable | Required | Description |
|---|---|---|
MONGO_URL |
β | MongoDB connection string |
DB_NAME |
β | Database name |
GEMMA_API_KEY |
β‘ | NVIDIA Gemma-2 API key (AI features) |
EMBED_API_KEY |
β‘ | NVIDIA nv-embed-v1 key (semantic ATS) |
RERANK_API_KEY |
β‘ | NVIDIA rerank key (semantic ATS) |
REDIS_URL |
β | Redis URL (optional β in-memory fallback) |
REACT_APP_GA4_ID |
β | Google Analytics 4 measurement ID |
CORS_ORIGINS |
β | Allowed CORS origins (default: *) |
β‘ = Required for full AI features. App works without them (graceful fallback).
MIT Β© Kartik Sharma
Built with β€οΈ by Kartik Sharma

