YAMLResume

5 min read Original article ↗

Brought to you with ❤️ by PPResume

Resumes as Code in YAML

YAMLResume allows people to create and version control resumes using YAML and generate pixel perfect PDFs with professional layout and typesetting in a breeze.

Quick StartCheck Github

YAMLResume preview showing YAML code and PDF output

Powerful, Professional & Perfect

Pro-Grade Typesetting

Pro-Grade Typesetting

Powered by LaTeX for pixel-perfect typography, consistent spacing, and a professional aesthetic.

Resume Preview

Plain Text in YAML

Plain Text in YAML

Maintain your resume as code in YAML—clean, readable, and perfectly suited for version control.

Git

commit 8a67810

Author: You <you@dev.io>

Date: Dec 30

feat: update work experience

--- a/resume.yml

+++ b/resume.yml

location:

address: 123 Main Street

- city: Sacramento

+ city: San Francisco

region: California

Developer CLI

Developer CLI

A powerful command-line interface to automate your resume workflow and integration.

Schema Intelligence

Schema Intelligence

Get instant feedback and prevent errors with built-in schema validation as you type.

Infinite Flexibility

Infinite Flexibility

Structure your resume exactly how you want with modular sections designed for maximum impact.

Rich Text Formatting

Rich Text Formatting

Use Markdown-style rich text in your summaries to make your key points pop with clarity.

---

content:

basics:

# ...

summary: |

This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):

- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development

1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites

2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)

- Team player, with detail-oriented mindset and a keen eye for design and user experiences

Go Global

Go Global

Built-in support for multiple languages, making international applications effortless.

Professional Templates

Professional Templates

Choose from a variety of battle-tested LaTeX templates designed for clarity and professional impact.

Multi-Output Support

Multi-Output Support

Generate your resume in multiple professional formats including PDF, responsive HTML, and clean Markdown.

---

layouts:

- engine: latex

template: moderncv-banking

- engine: markdown

- engine: html

template: calm

Get Started in Seconds

NPX (Recommended)

NPX (Recommended)

Create a new project instantly with zero global installs

NPM Global

NPM Global

Install as a global CLI tool for system-wide access

npm install -g yamlresume

Homebrew

Homebrew

Install on macOS using the Homebrew package manager

brew install yamlresume

Docker

Docker

Run in an isolated container without local dependencies

docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new

json2yamlresume

json2yamlresume

Convert JSON Resume to YAMLResume format seamlessly

npx json2yamlresume input.json output.yaml

Crafted for Perfection

RxResume PDF

Conventional

YAMLResume PDF

YAMLResume

Trusted by Developers

What People Say

View testimonial by u/DeepanshKhurana (opens in a new tab)

One of those projects that I know I will use soon and use intermittently for a long time. Well done! Also, I have an idea for my portfolio website and this gets me halfway there without doing most of the work. I'll add credits to you, of course, whenever I get to finishing it.

u/DeepanshKhurana

u/DeepanshKhurana

View testimonial by Stephen Liberty (opens in a new tab)

This is one of those things that I wish was a shared standard - not necessarily the pretty resume portion, which *is* cool - but almost an openapi-type-spec for what a resume is. Let's face it, everyone is parsing these things now via AI and such. Wouldn't it be nice to just upload a yaml file and know that your resume's format or readability wasn't going to be a factor in your application? I can't even count how many times Workday's systems have utterly butchered its auto parse of my resume. It wouldn't take too much - couple big players to agree to use it and everyone else would fall in line. <sigh>

Stephen Liberty

Stephen Liberty

Frequently Asked Questions

YAMLResume is a tool that allows you to manage your resume as code using YAML. It provides a structured way to define your work experience, skills, education, and other resume sections in a simple & version-controllable plain text document. YAMLResume then converts this YAML data into beautifully typeset PDF documents which is ready for job and scholarship applications.

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

In a nutshell, YAML was chosen because it's more human-readable and human-writable than JSON. Despite its cleaner, less verbose and more flexible syntax, YAML also supports comments, allowing you to annotate your resume with notes that won't appear in the final output. YAML's hierarchical structure naturally maps to the sections and subsections, making it perfect for structured data like resumes.

YAMLResume is actually a DSL for writing resumes, so under the hood it is a compiler for resumes. It transforms the YAML data into PDFs in a multi-step process. First, it parses the YAML file and validates its structure against a schema. Then, it processes the data with a codegen process that generates LaTeX code. Finally, this LaTeX code is compiled into a professional-quality PDF using a LaTeX engine. This approach ensures pixel-perfect typography and layout that's consistent across all devices and platforms.

LaTeX is the gold standard for professional document typesetting, especially in academic and technical fields. It provides superior typography with proper kerning, ligatures, and hyphenation that's difficult to achieve with HTML/CSS or word processors. LaTeX excels at consistent spacing, precise positioning and flexible layout. By using LaTeX as the underlying typesetting engine, YAMLResume ensures that your resume has a polished, professional look that stands out to recruiters and hiring managers.