An AI-powered resume platform β build, score, and tailor resumes to a specific job description, track applications, and capture jobs straight from any job board with a Chrome extension. AI assistance, never fabrication.
Next.js 16 Β· React 19 Β· TypeScript Β· Tailwind v4 Β·
FastAPI Β· Supabase Β· Stripe Β· OpenRouter Β· Chrome MV3
Resumify AI is a full-stack web app for job seekers. Beyond a templating tool, it pairs a conversational AI agent, ATS scoring, and a suite of career tools with a JD-driven workflow: keep one source-of-truth career profile, then generate a resume tailored to any job description β reordered and rephrased, with a hard guarantee that nothing is invented. A companion Chrome extension captures job descriptions from LinkedIn, Indeed, Greenhouse, Lever, Workday and Ashby and hands them straight into the app.
ββββββββββββββββββββββββββββ
β User's Browser β
β Next.js 16 (Vercel) β
βββββ¬βββββββββββββββββββ¬ββββ
HTTPS / NDJSON β β Auth (JWT)
βββββββββββββββββββββ ββββββββββββββ
βΌ βΌ
ββββββββββββββββββββββββ ββββββββββββββββββββββ
β FastAPI (Railway) β β Supabase β
β AI Β· tailoring Β· ββββββββ service role βββββΊβ Postgres + RLS β
β applications Β· auth β β Auth Β· pgvector β
βββββββ¬ββββββββββ¬βββββββ ββββββββββββββββββββββ
β β β²
βΌ βΌ β
βββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ΄ββββββββββ
β OpenRouterβ β Stripe β β Google β β Chrome Extension β
β multi-LLM β β billing β β Sheets β β JD capture (MV3) β
βββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββββββ
| Feature | What it does |
|---|---|
| Base Profile | One source-of-truth career history; every other feature reads from it |
| JD-Driven Tailoring | Rewrites your profile for one job description β reordered, rephrased, streamed section-by-section with a live diff |
| Anti-Hallucination Validator | Server-side guarantee: every entry either matches your profile exactly or is a clearly-marked [placeholder] β never invented |
| JD-Aware Skeleton | For users without a profile yet: a structured starting point with prompts and a live JD-coverage sidebar |
| Match Score & Gaps | Deterministic 0β100 JD-match score plus a gap list with learning resources |
| Chrome Extension | Capture a JD from any job board β tailor / skeleton / save, via a secure HMAC-signed handoff |
| Feature | What it does |
|---|---|
| Smart Resume Builder | Step-by-step builder with AI optimization |
| ATS Reviewer | Detailed ATS score + strengths / weaknesses / fixes |
| AI Resume Agent | Conversational assistant with conversation memory |
| Resume Heatmap | Section-by-section strength visualization |
| Analytics Dashboard | Keyword density, readability, completeness metrics |
| Templates & Versions | Multiple templates; full version history |
| Feature | What it does |
|---|---|
| Cover Letter Generator | Tailored cover letters from resume + JD |
| Interview Prep | Practice Q&A with code examples by difficulty |
| Career Path Predictor | Next-role forecast with skill gaps & timelines |
| Salary Negotiation Simulator | Scripted negotiation practice |
| Skill Gap Analyzer | Gaps + structured learning paths |
| Career Trend Analyzer | 12-month skill/role trend forecast |
| Achievement Quantifier Β· Summary Variations Β· Keyword Expander Β· Multi-Resume Portfolio | Targeted AI micro-tools |
| Multi-Language Translation Β· Resignation Letter | Supporting generators |
| Feature | What it does |
|---|---|
| Application Tracker | CRUD tracker with status pills, filters, bulk actions, Excel export |
| Google Sheets Sync | Mirror applications to a Google Sheet (OAuth + PKCE) |
| Stripe Subscriptions | Free / Pro / Ultra plans with metered AI credits |
| Auth & RLS | Supabase Auth; row-level security isolates every user's data |
| Rate Limiting & Logging | Plan-aware token-bucket limits; structured JSON request logs |
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router) Β· React 19 Β· TypeScript Β· Tailwind v4 Β· Framer Motion Β· TanStack Table |
| Backend | FastAPI Β· Python 3 Β· Pydantic v2 Β· Uvicorn |
| Database | Supabase β PostgreSQL Β· Row-Level Security Β· Auth Β· pgvector |
| AI | OpenRouter (multi-model + fallback) Β· Google Gemini (agent chat + embeddings) |
| Payments | Stripe (Checkout Β· Customer Portal Β· Webhooks) |
| Extension | Chrome Manifest V3 Β· Vite Β· @crxjs/vite-plugin Β· React |
| Hosting | Vercel (frontend) Β· Railway (backend) |
ai-resume-builder/
βββ frontend/ Next.js app β pages, components, API client
βββ backend/ FastAPI service β routes, services, schemas, tests
βββ extension/ Chrome MV3 extension β JD capture & handoff
βββ supabase/migrations/ Database migrations
βββ supabase_schema.sql Full schema (tables, RLS, triggers, functions)
βββ *.md Feature & deployment docs
Prerequisites: Node.js 18+ Β· Python 3.10+ Β· a Supabase project Β· OpenRouter API key
cd backend
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# create backend/.env (see Environment Variables below)
python main.py # β http://localhost:8000cd frontend
npm install
# create frontend/.env.local (see Environment Variables below)
npm run dev # β http://localhost:3000cd extension
npm install
npm run build # β load extension/dist via chrome://extensionsRun supabase_schema.sql once in the Supabase SQL
editor, then apply the files in supabase/migrations/.
backend/.env
| Variable | Purpose |
|---|---|
OPENROUTER_API_KEY |
LLM access (resume AI, tailoring) |
SUPABASE_URL Β· SUPABASE_SERVICE_ROLE_KEY |
Database (server-side) |
STRIPE_SECRET_KEY Β· STRIPE_WEBHOOK_SECRET |
Billing |
EXTENSION_SIGNING_KEY |
HMAC key for the Chrome extension channel |
GOOGLE_CLIENT_ID Β· GOOGLE_CLIENT_SECRET Β· GOOGLE_REDIRECT_URI Β· GOOGLE_TOKEN_ENC_KEY |
Google Sheets sync |
FRONTEND_URL |
CORS + OAuth redirects |
frontend/.env.local
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_SUPABASE_URL Β· NEXT_PUBLIC_SUPABASE_ANON_KEY |
Supabase (browser) |
NEXT_PUBLIC_API_URL |
Backend base URL |
NEXT_PUBLIC_STRIPE_PRICE_* |
Stripe price IDs |
GEMINI_API_KEY |
AI agent chat + embeddings (server-side) |
| Doc | Covers |
|---|---|
| PROJECT_GUIDE.md | Full architecture walkthrough β every page, endpoint, service |
| TAILORING.md | Base profile + JD-driven tailoring + anti-hallucination |
| SKELETON.md | JD-aware resume skeleton generator |
| APPLICATIONS.md | Application tracker + Excel export |
| GOOGLE_INTEGRATION.md | Google Sheets OAuth + sync |
| EXTENSION.md | Chrome extension β capture, auth, handoff |
| IMPLEMENTATION_SUMMARY.md | Notes on the AI feature set |
| SUPABASE_SETUP.md Β· VERCEL_DEPLOYMENT.md Β· RAILWAY_GUIDE.md | Setup & deployment |
cd backend && source venv/bin/activate && pip install -r requirements-dev.txt && pytest
cd frontend && npx tsc --noEmit && npm run build
cd extension && npm run typecheck && npm run testThe backend suite covers schemas, routes, the anti-hallucination validator, rate limiting, HMAC auth, and (with a test Supabase project) RLS isolation. The extension suite tests each site extractor against HTML fixtures.
- Frontend β Vercel β see VERCEL_DEPLOYMENT.md
- Backend β Railway β see RAILWAY_GUIDE.md & DEPLOYMENT_STRIPE_GUIDE.md
- Database β Supabase β apply
supabase_schema.sql+supabase/migrations/
MIT License