← all work
2026 · Solo — full-stack + AI
AI Resume Editor
Paste a job description; a multi-agent pipeline tailors your resume into an ATS-friendly one-page PDF — live.
Problem
Tailoring a resume to each job is slow and inconsistent, and generic resumes score poorly against ATS keyword filters.
Approach
- —Five-agent pipeline orchestrated server-side: JD analyzer → profile RAG (ChromaDB top-K facts) → resume tailor (LaTeX body) → cover letter → compile + ATS quality check, with later stages run concurrently.
- —Streams progress to the browser over Server-Sent Events; the final event carries the compiled PDF (HMAC-signed, expiring), the TeX source, an ATS score, and the cover letter.
- —Provider-agnostic LLM layer — Anthropic, any OpenAI-compatible API (OpenAI / DeepSeek / Groq), or a local Ollama model — switchable by config with no code change.
- —Per-JD retrieval from a ChromaDB profile store so only the most relevant experience is used.
Architecture
- —Python backend: agents pipeline, ChromaDB RAG, a sandboxed xelatex compiler, a LangChain provider abstraction, and SQLite persistence.
- —Vanilla-JS front end renders the PDF with PDF.js; the whole pipeline runs inline inside one streaming HTTP request (no job queue).
- —Deployed on Fly.io (Singapore region).
Impact
- —Live on the web — paste a job description and get a tailored, ATS-friendly one-page resume + cover letter, generated in a single streamed pass.
Stack
PythonLangChainChromaDB (RAG)Server-Sent EventsLaTeX (xelatex)PDF.jsSQLiteFly.io