What I Built
I built CVstart—a local-first, AI-powered agentic LaTeX resume builder designed for anyone who loves the typographical beauty of LaTeX but dreads fighting syntax errors, brittle formatting, and margin spills.
Demo
Code
hardikgaikwad
/
CVStart
Local LLM AI Resume Builder in Latex
CVstart
A Local-First, AI-Powered Agentic LaTeX Resume Builder
Overview
CVstart empowers software engineers, students, and professionals to create, edit, format, compile, inspect, and export stunning LaTeX resumes using natural language—without needing to write or debug complex LaTeX syntax.
Unlike conventional AI resume tools that merely generate raw text and dump it into an unverified document, CVstart features a true agentic compile-inspect-correct loop:
- The AI translates user facts or instructions into a structured change plan.
- The LaTeX engine compiles the source in a secure, sandboxed local environment.
- The geometry inspection engine analyzes the resulting PDF text bounding boxes, density, margins, and page spills using PyMuPDF.
- If an overflow or layout flaw is detected, the agent autonomously executes targeted corrections (up to 3 bounded iterations) to produce a flawless document.
- All operations run 100% locally on your machine using Ollama and local compilation—zero cloud calls, zero telemetry, absolute privacy.
Who I Built It For
I built this for my close friend Abhinav, a final year B. preparing for backend and development roles.
Abhinav faced two frustrating roadblocks:
The "LaTeX Tax": Every time he tailored his resume for a job, he spent 80% of his time debugging cryptic TeX compilation errors (! LaTeX Error: Missing $ inserted, bad table line breaks, or bullet points overflowing onto page 2 by three lonely lines).
The Cloud Privacy Dilemma: He refused to paste his unredacted career history, private internal team metrics, home address, and compensation notes into closed cloud LLM websites. A resume contains your most sensitive personal and career data, and the idea of feeding it into closed AI APIs that log prompts and train on user inputs felt unacceptable.
The Solution
CVstart solves both problems:
100% Local-First & Air-Gapped: Powered entirely by open-weight models (llama3.2, qwen2.5) running locally via Ollama, with an embedded local LaTeX compiler. Zero cloud calls, zero telemetry, absolute data sovereignty.
Agentic Compile-Inspect-Correct Loop: Instead of generating raw markdown and hoping for the best, CVstart compiles the document in a sandboxed local environment, analyzes the PDF page geometry with PyMuPDF, detects vertical density and page spills, and autonomously adjusts vertical spacing and padding to fit exactly on a single page.
Editorial Document Editor Experience: Built with a minimal, light-mode, distraction-free aesthetic with square geometry, clean monochrome typography, and no AI chat-bubble clutter.
Demo
CVstart runs as a desktop application with a single CLI command (CVstart). It features a real-time split workspace: structured section editing on the left, an authentic rendered document sheet on the right, and an integrated AI utility panel.
Workflow Highlights
Single-Command Launch: Typing CVstart in the terminal runs system readiness checks (Python, Tectonic compiler, Ollama models), migrations, and opens the local interface at http://127.0.0.1:9999/.
Natural Language Assistant: Ask the local model to "Strengthen action verbs under my latest backend role and emphasize distributed systems metrics." The assistant returns a structured Change Plan with a color-coded diff review card (Accept / Discard).
Live PDF Rendering: Every accepted change re-renders the LaTeX PDF in sub-second time, displaying the high-resolution document directly on the neutral canvas with zoom and pan controls.
One-Click Export: Download publication-ready PDFs or export the raw .tex source files.
Code
CVstart is open-source under the MIT License:
Repository URL: https://github.com/hardikgaikwad/CVstart
Tech Stack
Backend: Python 3.10+, Django REST Framework, SQLite
Frontend: React 19, TypeScript, Tailwind CSS, Lucide Icons
Local AI Inference: Ollama HTTP Client (llama3.2:3b, qwen2.5:7b, llama3.2-vision)
Compilation Engine: Sandboxed Tectonic LaTeX compiler (zero shell escapes)
Geometry Inspection: PyMuPDF (fitz) for printable bounding box measurement and layout density analysis
How I Built It
CVstart is architected around open-source AI and local tooling:
Local AI Inference with Ollama: We integrated local open-weight models using Ollama's HTTP API. llama3.2:latest (3.2B) is used as an ultra-fast model for rapid structured JSON planning, summary rewrites, and skill categorizations, while qwen2.5:latest (7.6B) handles advanced technical reasoning to ensure strict schema validation.
Guardrailed Agentic Change Planner: When a user asks for edits, CVstart outputs a strictly structured JSON change plan (summary, affected_sections, proposed_structured_data). An anti-hallucination guardrail verifies that the AI didn't invent non-existent company names or degrees that weren't present in the user's ground-truth profile. The user retains complete control with an auditable visual diff review card.
PyMuPDF Layout Inspection Loop: One of the hardest parts of resume formatting is preventing an accidental 2-line spill onto page 2. We built a closed-loop inspector using PyMuPDF (fitz). It computes vertical density, printable margins, and total word count. If an overflow is detected, the agent autonomously invokes a micro-refinement pass, adjusting LaTeX font size and list separations until the document fits cleanly on exactly 1 page.
Why Does Open Innovation Matter?
Open innovation made CVstart possible in ways closed commercial APIs simply could not:
True Privacy & Data Sovereignty: Closed proprietary AI APIs require transmitting sensitive personal information—employment history, contact info, patents, and compensation metrics—to third-party cloud servers. With open-weight models running on Ollama, all data stays strictly on the user's machine. Zero data leakage, zero tracking.
No Paywalls or Subscriptions: Job hunting is stressful enough without having to pay a $25/month SaaS fee to export your own resume. Open-source models mean free, unlimited compilations and edits forever, even when you're completely offline.
Deterministic, Introspectable Tooling: Closed chatbots trap users in conversational black boxes. Open weights enabled us to build a transparent, introspectable loop: translating natural language into validated schemas, compiling with a local TeX engine, and measuring physical bounding boxes with PyMuPDF.
Top comments (0)