Skip to content

Sol-momma/yamlresume

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YAMLResume

Français | 简体中文 | 繁體中文

GitHub CI Codecov Security Rating Documentation Discord

Node.js Version npm version npm downloads Docker Pulls Docker Image Size

LaTeX TypeScript PNPM Conventional Commits Biome Vitest

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

YAMLResume allows you to manage and version control your resumes using YAML and generate professional looking PDFs with beautiful typesetting in a breeze.

YAMLResume YAML and PDF

The Design Principle

This project was 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 have the right to say no to vendor lock-in.

The core design principle of YAMLResume is Separation of Concerns. One of the most famous examples that follows this principle is HTML & CSS, which are the foundation of the modern web—HTML is used for organization of webpage content, CSS is used for definition of content presentation style.

Following the core principle, YAMLResume is implemented by satisfying the following requirements:

  • the resume content is drafted in plain text
  • the plain text is structured using YAML—YAML is better than JSON because it is more human-readable and human-writable
  • the YAML plain text is then rendered into a PDF with a pluggable typesetting engine
  • the layout can be adjusted with options like font sizes, page margins, etc.

Quick Start

If you have docker installed, you can get started with yamlresume in one second, this has packaged yamlresume and all its dependencies:

YAMLResume Docker Demo

Otherwise you can install yamlresume with your favorite JavaScript package manager:

# using npm
$ npm install -g yamlresume

# using yarn
$ yarn global add yamlresume

# using pnpm
$ pnpm add -g yamlresume

# using bun
$ bun add -g yamlresume

Verify yamlresume is installed successfully:

$ yamlresume help
Usage: yamlresume [options] [command]

YAMLResume — Resume as Code in YAML

 __   __ _    __  __ _     ____
 \ \ / // \  |  \/  | |   |  _ \ ___  ___ _   _ ___  ___   ___
  \ V // _ \ | |\/| | |   | |_) / _ \/ __| | | / _ \/ _ \ / _ \
   | |/ ___ \| |  | | |___|  _ <  __/\__ \ |_| | | | | | |  __/
   |_/_/   \_\_|  |_|_____|_| \_\___||___/\____|_| |_| |_|\___|


Options:
  -V, --version                  output the version number
  -v, --verbose                  verbose output
  -h, --help                     display help for command

Commands:
  new [filename]                 create a new resume
  build [options] <resume-path>  build a resume to LaTeX and PDF
  dev [options] <resume-path>    build a resume on file changes (watch mode)
  languages                      i18n and l10n support
  templates                      manage resume templates
  validate <resume-path>         validate a resume against the YAMLResume schema
  help [command]                 display help for command

You then need to install a typesetting engine, XeTeX or Tectonic in order to generate PDFs.

Last but not least, we recommend you to install Linux Libertine font in order to get the best looking PDFs.

Check our installation guide for more details.

Create a new resume

You can create your own resume by cloning one of our sample resumes here, so once you have the sample resume on your local, you can get a pdf with:

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

$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF file successfully.

You can also use the dev command to build the resume on file changes which provides a modern web development like experience:

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

Check the generated PDF here.

Software Engineer Page 1 Software Engineer Page 2

PPResume Gallery provides a showcase for all possible kind of resumes categoried by languages and templates.

More samples would come soon!

Validate resumes

YAMLResume provides a builtin schema which can be used to validate resumes and help avoid lots of low level mistakes. Check out the following demo:

YAMLResume Compiler Demo

Typesetting

YAMLResume adopts LaTeX as the default typesetting engine, which is the state of the art typesetting system in the academic and technical publishing industry.

Meanwhile, by following the resume typesetting best practices, YAMLResume always guarantees you Pixel Perfect resumes.

In the future we may support other typesetting engines like Typst, HTML/CSS, etc.

Ecosystem

YAMLResume provides a set of tools to help you create, convert and manage your resumes more efficiently. Here are some of the key utilities available:

  • create-yamlresume makes it easy to start a new YAMLResume project with a one-liner command. It will scaffold your project directory, installs necessary dependencies, and generates a sample resume file so you can get started right away. Try it with npx create-yamlresume my-resume or similar commands for npm, yarn, pnpm or bun.
  • json2yamlresume is a CLI tool for converting JSON Resume files to the YAMLResume format.

Contributing

This project is still under active development, we are constantly working on new features and bug fixes. The public API is not stable yet, so please be patient and spare us some time.

Any kind of contributions will be deeply appreciated! Please read the contributing guidelines before submitting a pull request.

Star History

YAMLResume Star History Chart

Roadmap

  • support more font families
  • more resume templates
  • more locale languages

Support the Project

If you find YAMLResume helpful, consider supporting the project:

Buy Me a Coffee

About

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

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%