Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
Y

yamlresume

> 编程语言
Open source

Resumes as code in YAML, brought to you with ❤️ by PPResume.

1.5K stars0 likes0 views
WebsiteGitHub

About

Resumes as code in YAML, brought to you with ❤️ by PPResume.

YAMLResume

English | Français | Deutsch | Español | Português | Bahasa Indonesia | 日本語 | 简体中文 | 繁體中文

News: YAMLResume v0.15 is out with curated sample resumes in 12 locales and AI-powered resume generation. Also check out the YAMLResume GitHub Action to automate PDF builds in CI/CD.

Writing resumes may not be hard, but it is definitely not fun and it's tedious.

YAMLResume lets you manage and version-control your resumes as plain-text YAML and turn them into beautifully typeset, professional documents with a single command.

The Design Principle

This project started as the core typesetting engine for PPResume, a LaTeX-based, pixel-perfect resume builder. After careful consideration, we decided to open source it so people can always say no to vendor lock-in.

YAMLResume follows Separation of Concerns:

  • 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).

You edit the what; YAMLResume handles the how.

Features at a Glance

  • One source, multiple outputs. From a single resume.yml generate pixel-perfect PDFs (via LaTeX), clean Markdown, responsive HTML, and Microsoft Word DOCX files.
  • A real resume compiler. Parse, validate, transform, and render. Catch errors early with Zod runtime validation and JSON Schema editor integration.
  • Great developer experience. Watch mode with yamlresume dev, environment diagnostics with yamlresume doctor, and instant schema validation.
  • AI-powered generation. Bootstrap a complete resume from a job title and locale with yamlresume ai generate.
  • Flexible layouts. Rename and reorder sections, switch templates, tune typography, paper size, line spacing, and toggle icons.
  • Global i18n. Built-in support for 10 languages across 12 locale codes.
  • Rich ecosystem. Docker image, Homebrew formula, GitHub Action, embeddable Playground, curated samples, and a JSON Resume converter.

Quick Start

The fastest way to try YAMLResume is with Docker. The image ships with the CLI, XeTeX, and recommended fonts:

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

You can also install yamlresume with your favorite package manager (Node.js

= 22 is required):

# npm
npm install -g yamlresume

# pnpm
pnpm add -g yamlresume

# yarn
yarn global add yamlresume

# bun
bun add -g yamlresume

# Homebrew (macOS)
brew install yamlresume

Verify the installation and check your environment:

yamlresume help
yamlresume doctor

For detailed installation steps, including how to set up a typesetting engine, see the installation guide.

Create a new resume

You can create your own resume by cloning one of our sample resumes here. Once you have the sample resume on your computer, you can generate a PDF with:

$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.

$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume docx file successfully: my-resume.docx
✔ Generated resume markdown file successfully: my-resume.md
✔ Generated resume html file successfully: my-resume.html

You can also use the dev command to rebuild the resume on each file change, which provides a modern web development-like experience:

$ yamlresume dev my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
◐ Watching file changes: my-resume.yml...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume docx file successfully: my-resume.docx
✔ Generated resume markdown file successfully: my-resume.md

Check out the generated PDF here.

PPResume Gallery provides a showcase of all the possible types of resumes, categorized by languages and templates.

Multi-Layout Output

Layouts decouple your content from presentation. Add as many output formats as you need in resume.yml:

layouts:
  - engine: latex
    template: moderncv-banking
    typography:
      fontSize: 11pt
  - engine: markdown
  - engine: html
    template: calm
  - engine: docx
    template: calm

Learn more about each engine:

  • LaTeX / PDF
  • HTML
  • Markdown
  • DOCX

Watch Mode

Use yamlresume dev to rebuild your resume automatically as you edit the YAML file:

yamlresume dev my-resume.yml

This gives you a tight feedback loop similar to modern web development: save the file and the PDF updates moments later. You can pass --no-pdf or --no-validate to speed things up during drafting.

Validating Resumes

YAMLResume provides a built-in schema that validates your resume before rendering. Add the schema header to your YAML file for IDE autocomplete, hover documentation, and real-time format checks:

# yaml-language-server: $schema=https://yamlresume.dev/schema.json

Run yamlresume validate my-resume.yml for clang-style diagnostics:

AI-Powered Resume Generation

New in v0.14, yamlresume ai generate creates a complete, schema-valid resume from a position and language:

export OPENAI_API_KEY=sk-...
yamlresume ai generate --position "Software Engineer" --language en resume.yml

Supported providers include OpenAI, DeepSeek, Kimi, and Ollama. Read the AI documentation for setup details.

Templates

YAMLResume ships with a growing set of templates across engines:

Engine Templates
LaTeX moderncv-banking, moderncv-casual, moderncv-classic, jake
HTML calm, vscode
DOCX calm

Run yamlresume templates list to see everything that is installed.

Languages

YAMLResume supports localization out of the box. Set your locale in resume.yml:

locale:
  language: en

Supported languages include English, Chinese (Simplified, Traditional TW/HK), Spanish, French, Norwegian, Dutch, Japanese, German, Indonesian, and Brazilian Portuguese. See the locale docs for the full list.

Ecosystem

YAMLResume provides a set of tools to help you create, convert, and manage your resumes more efficiently:

  • @yamlresume/ai — Programmatic AI-powered resume generation.
  • @yamlresume/playground — Embeddable React component for building your own resume editor. It powers the official Playground.
  • @yamlresume/samples — Curated sample resumes for common positions in 12 locales.
  • yamlresume/action — GitHub Action for automating resume builds in CI/CD.
  • create-yamlresume — Scaffold a new YAMLResume project with one command.
  • json2yamlresume — Convert JSON Resume files to YAMLResume format.
  • Docker image and Homebrew formula for easy installation.

Contributing

YAMLResume is under active development and new features land regularly. Contributions are deeply appreciated. Please read the guidelines before submitting a pull request.

Star History

Roadmap

  • more resume templates
  • more layout engines (typst, and others)
  • more languages and locales
  • ATS optimization features

Support the Project

If you find YAMLResume helpful, please consider supporting the project:

Issues· 26 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScriptcurriculum-vitaecurriculum-vitae-templatecv-buildercv-template

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言