Skip to content
← 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