Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Resumes as code in YAML, brought to you with ❤️ by PPResume.
YAMLResume is an open-source command-line tool that turns YAML resume data into typeset PDF, DOCX, HTML, Markdown, and LaTeX files using LaTeX as its default typesetting engine.
YAMLResume is a command-line tool that takes a YAML resume file as input and produces output in five formats — .tex, .pdf, .docx, .md, and .html — through the build command. It was originally the core typesetting engine behind PPResume and was open-sourced so users can avoid vendor lock-in. The project is written in TypeScript, uses a pnpm workspace, and is distributed via npm, Yarn, pnpm, Bun, Homebrew, and Docker.
YAMLResume separates resume content from layout, following the separation of concerns principle used in HTML and CSS. The YAML file holds only content; layout adjustments such as font sizes and page margins are configured separately.
Software developers who want to version-control their resume in Git and generate PDFs locally or through CI. Job seekers who prefer writing structured YAML over fiddling with word processors. Technical writers and career advisors who maintain resume templates for multiple people. Anyone wanting to avoid vendor lock-in from proprietary resume builders.
You can keep resumes in a version-controlled YAML project, generate PDFs automatically in CI, convert existing JSON Resume files, and embed a resume editor in your own web app.
Install the CLI and a typesetting engine (XeTeX or Tectonic), then run yamlresume new my-resume.yml to create a sample resume. Edit the YAML file, run yamlresume build my-resume.yml to generate all output files, or use yamlresume dev for watch mode. The doctor command checks that your environment has the required dependencies.
Generating PDFs requires a typesetting engine: XeTeX or Tectonic must be installed separately. The Docker image includes YAMLResume and all its dependencies, so Docker users do not need to install LaTeX on the host system.
Running the build command produces a .tex file, a .pdf, a .docx, a .md, and an .html file from a single YAML input. The default engine is LaTeX; HTML/CSS layout engines are supported as an alternative.
YAMLResume is open source and publicly available on GitHub. No paid tier is mentioned on the repository page; the project accepts donations via Buy Me a Coffee.
