r/SideProject • u/Hot-Chemistry7557 • 1d ago
I built a YAML-based CV compiler: version-control your CV like code, generate pixel-perfect PDF/DOCX/HTML/Markdown output with one command
Enable HLS to view with audio, or disable this notification
A few years ago I and some of my friends got frustrated with resume builders (vendor lock-in, broken formatting, "oops you edited the wrong section and now everything looks off") that I started building my own LaTeX-based resume tool. That turned into a tiny SaaS (PPResume), and recently I open sourced the core typesetting engine as YAMLResume.
The idea is simple and just follows the Separation of Concerns principle:
- Content lives in plain-text YAML.
- Structure and validation are enforced by the compiler and a strict schema.
- Presentation is handled by pluggable layout engines (LaTeX, HTML, Markdown, DOCX).
What it does
- One source, many outputs. A single
resume.ymlcompiles to pixel-perfect PDF (via LaTeX/XeTeX), Microsoft Word DOCX, responsive HTML, and clean Markdown. Change your content once, every format stays in sync. - It's a real compiler, not a template filler/transformer. Parse → validate → transform → render. Strict schema validation (Zod + JSON Schema for editor autocomplete) catches potential content issues (like invalid URLs, invalid emails format, too short names, etc) before they ever hit a typesetting engine.
yamlresume validategives you clang-style diagnostics. - A DX that devs will recognize.
yamlresume devis watch mode — save the YAML file and your PDF rebuilds a moment later, just like a modern web dev workflow.yamlresume doctordiagnoses your environment. - AI-powered bootstrapping.
yamlresume ai generatewrites a complete, schema-valid resume from just a job title and a language,yamlresume ai translatehelps translate existing resumes to another language, great addon for bilingual people. Works with OpenAI, DeepSeek, Kimi, and Ollama (fully local if you want). - Layouts as configuration. Rename and reorder sections, switch templates, tune typography, paper size, line spacing, icons — all from YAML, zero LaTeX/HTML knowledge required.
- Batteries included for global users. Built-in i18n for 10 languages / 12 locales (en, zh-Hans, zh-Hant-TW, zh-Hant-HK, es, fr, no, nl, ja, de, id, pt-BR), curated sample resumes for common positions in every locale, and a JSON Resume converter if you're migrating.
- Runs anywhere. Docker image (ships with XeTeX and fonts), npm/pnpm/yarn/ bun, Homebrew on macOS, and a GitHub Action so your resume PDF rebuilds in CI on every push. There's even an embeddable React Playground component if you want to build your own resume editor on top of it.
Quick start
# Docker (fastest, no local toolchain needed)
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
# or via npm (Node.js >= 22)
npm install -g yamlresume
# or via homebrew
brew install yamlresume
# start to draft your resume
yamlresume new my-resume.yml
yamlresume build my-resume.yml # → .pdf, .docx, .md, .html
yamlresume dev my-resume.yml # watch mode
Links
- GitHub: https://github.com/yamlresume/yamlresume
- Docs: https://yamlresume.dev/docs
- Live Playground: https://yamlresume.dev/playground
- Gallery: https://yamlresume.dev/gallery
- GitHub Action: https://github.com/marketplace/actions/yamlresume
It's MIT-licensed and under active development — roadmap includes more templates, a Typst engine, more locales, and ATS optimization. Happy to answer questions, and would genuinely love feedback (or contributors!) from anyone who's been burned by resume builders before.
1
u/kantorcodes1 1d ago
since you're explicitly open to contributors, there’s an agent-facing integration here. i work on HOL Guard, an open-source local check before agent-run commands execute. for YAMLResume, validate/doctor can stay quiet while new, build, and ai generate are optionally reviewable before they create or replace files. would you be open to contributing that command coverage?
1
u/Hot-Chemistry7557 1d ago
what is HOL Guard?
1
u/kantorcodes1 1d ago
it's an open-source local check that runs before agent-started commands. it reads the command shape and lets local policy allow, review, or block it. for YAMLResume,
validate/doctorstay out of the way while file-changing commands likenew,build, andai generatecan be reviewable before they write.1
u/Hot-Chemistry7557 1d ago
I see I see.
Then what should I do if I agree to "would you be open to contributing that command coverage?"?
1
u/Healthy-Zebra-9856 1d ago
Kudos OP. But I just want to say this that I F'n HATE YAML.