Local-first, ATS-aware resume builder with a full visual editor, industry-curated templates, LaTeX PDF generation, and an explainable rewrite pipeline powered by a local Ollama LLM.
Beta → resumeforge-web.vercel.app
Most resume AIs are black boxes that rewrite your CV into something you don't recognise. ResumeForge runs the rewrite locally through Ollama, shows you every edit with justification, compiles a real LaTeX PDF, and scores you against the ATS platforms (Workday / Greenhouse / Lever / Taleo / iCIMS / SmartRecruiters / BambooHR) the employer is actually using.
flowchart LR
U[Resume +<br/>Job Description] --> W[Next.js 14<br/>App Router]
W -->|SSE stream| A[FastAPI<br/>/api/v1/runs]
A --> P[Parser<br/>+ Scoring]
A --> L[LangGraph<br/>rewrite pipeline]
L --> O[Ollama<br/>local LLM]
A --> T[tectonic<br/>LaTeX → PDF]
A -.->|optional| R[Redis +<br/>Celery]
A --> S[(Postgres)]
T --> ART[Artifacts<br/>PDF · TEX · ZIP]
Everything the model does is observable: you see the plan, the per-section diff, and the compiled PDF in real time over SSE.
| Route | Status | Description |
|---|---|---|
/ |
✅ live | Marketing - animated background, hero input, industry filter, template showcase, ATS badges |
/new |
✅ live | Core builder - paste/upload resume, pick template, select industry + colour, run analysis |
/transferring |
✅ live | Animated progress screen while backend analyses |
/editor |
✅ live | Full visual resume editor - drag-and-drop sections, real-time preview, export |
/templates |
✅ live | Gallery - filter by industry, ATS score, layout |
/dashboard |
✅ scaffolded | Run history, score trends, artifact downloads |
/fit-analyzer |
✅ scaffolded | JD ↔ resume alignment scorer |
/pricing |
✅ scaffolded | Pricing tiers |
/admin/deployment |
🔲 TODO | Health check dashboard |
- AnimatedBackground - 4-layer canvas: Gemini hero image → animated mesh gradient → 80-particle canvas (proximity lines, 40 fps) → parallax ghost resume cards (framer-motion mouse tracking).
- IndustryFilterBar - 10 industry pills · role typeahead · ATS platform dropdown · experience slider · strict-ATS toggle.
- TemplatePicker - Visual grid with CSS mockup previews · colour swatches · ATS score badges · industry filtering.
- ResumeHeroInput - Dual-pane textarea (resume + JD) · drag-and-drop file upload (
.pdf/.docx/.txt/.md). - VisualEditor - Drag-and-drop sections, inline editing, print/export.
| Endpoint | Status | Purpose |
|---|---|---|
GET /api/v1/health |
✅ | Basic health + dependency checks |
POST /api/v1/runs/analyze |
✅ | Sync parse + score against JD |
POST /api/v1/runs/{id}/render |
✅ | LaTeX → PDF via tectonic, returns artifact URLs |
GET /api/v1/runs/{id}/artifacts/{aid}/download |
✅ | Stream PDF / TEX / ZIP bytes |
GET /api/v1/runs/{id}/stream |
✅ | SSE - async LangGraph rewrite pipeline |
POST /api/v1/assistant/chat |
✅ | Redis-backed chat history |
GET /api/v1/settings |
✅ | User preferences |
| Key | UI ID | ATS score | For |
|---|---|---|---|
ats_classic_single_column |
forge-classic | 99% | Maximum ATS compatibility |
modern_minimal_single_column |
forge-minimal | 97% | Typography-first |
technical_compact |
forge-tech | 96% | Skills-first, dense - engineers |
academic_cv |
forge-research | 95% | Publications / education prominent |
consulting_clean |
forge-classic variant | 94% | Consulting bullet depth |
executive_bold |
forge-executive | 92% | Large header, ruled separators |
two_column_split |
forge-two-column | 88% | Experience left + skills sidebar |
creative_sidebar |
forge-creative | 74% | Design / UX / marketing |
apps/
api/ FastAPI - parsers, scoring, LLM, LaTeX, runs, assistant, auth, SSE
app/api/routes/ health, settings, prompts, runs, assistant, auth, streaming
app/core/ config, database (Postgres via SQLAlchemy)
app/schemas/ Pydantic contracts
app/services/ run_service, redis, session, celery, langgraph, evaluator, s3, sse
tests/ pytest + fakeredis async fixtures
web/ Next.js 14 App Router + server proxy → backend
app/(marketing)/ Landing
app/(main)/ Shell - /new · /editor · /templates · /dashboard · /settings
lib/templates.ts 8 templates × 10 industries × 6 colour schemes + ATS metadata
packages/
shared-types/ Zod schemas + TS contracts
prompt-library/ YAML prompt packs with inheritance
latex-templates/ 8 × .tex.j2 Jinja2
scoring-engine/ Synonym ontology maps
docs/ARCHITECTURE.md End-to-end workflows + file map
docs/aws-architecture.md · DEPLOYMENT.md
Dockerfile.api Python + tectonic (pinned v0.15.0 musl-static)
Dockerfile.web Next.js production image
docker-compose.yml Redis + Ollama + API + Celery worker + optional web
render.yaml Render Blueprint (API + 5 GB disk)
# Run the stack locally
docker compose up
# → API on :8000, Ollama on :11434, Web on :3000Or piece-by-piece:
# API
cd apps/api && pip install -r requirements.txt && uvicorn app.main:app --reload
# Web
cd apps/web && pnpm install && pnpm devYou need: Python 3.11+, Node 20+, Docker (for tectonic), and Ollama (or point LLM_BASE_URL at another provider).
- Fit-analyzer: JD ↔ resume alignment scorer (in scaffold)
- Admin deployment health-check dashboard
- AWS CDK stack → one-command deploy (scaffold exists at
infrastructure/aws-cdk/) - Prompt pack marketplace for template-specific rewrites