Skip to content
Open source · MIT

Make your CV from YAML.

One plain-text file. Twelve polished templates. A PDF in one command. Diff it, version it, fork it — your résumé as code.

~/cvmake
$ pnpm cvmake build data/cvs/cv.de.yaml
→ rendering with template "classic-serif"
→ writing out/cv.pdf
✓ done in 1.4s

One YAML. Four templates.

Identical content from a single example.en.yaml, rendered through classic-serif, swiss, bauhaus, and noir. Switch by changing one line.

The same CV (Adam Reyes) rendered through four visually distinct templates: classic-serif on parchment, swiss with red accent, bauhaus with yellow primary palette, and noir on black with gold accent

Twelve templates, ready to fork

Every template ships with three or more color palettes. Click any preview for the full résumé.

View source ↗

From clone to PDF in three steps

No accounts. No telemetry. Everything stays on your machine.

  1. 01 Clone
    git clone https://github.com/Codevena/cvmake
    cd cvmake
    pnpm install
    pnpm build
  2. 02 Edit YAML
    cp data/cvs/example.de.yaml \
       data/cvs/cv.de.yaml
    
    # open in any editor
  3. 03 Render
    pnpm cvmake build \
       data/cvs/cv.de.yaml
    
    # → out/cv.pdf

Why CV-as-code

A résumé is the most important document most people own. It deserves the same tools you use for your code.

YAML source of truth

Plain text. Diff in git, search with grep, copy between machines without lock-in.

Multilingual

Author cv.de.yaml and cv.en.yaml side by side. Switch via CLI flag.

12 templates · 36+ palettes

Academic, corporate, editorial, tech — each with three or more color palettes baked in.

CLI + web preview

Render from your terminal or edit live in the browser. Same engine either way.

Next.js 16 · TypeScript 5.6 · React 18 · Puppeteer · Tailwind CSS 4 · Vitest + Playwright