The separation of content and presentation makes life easier, right? And it's a perfect fit for a YAML file due to its structured nature:
---
name: Full Name
photo: "me.jpg"
who:
- Great Developer
natural_languages:
- English (C1)
programming_languages:
- Python, JavaScript
address:
- City, Country
email: [email protected]
urls:
- linkedin
- github
intro:
- Fantastic cover letter
experience:
- years: Month 2019 — Month 2024
employer: Company
city: City, Country
job: Software Engineer
details:
- "Unique experience details"
stack:
- list, of, buzzwords
That makes super easy to update your CV while keeping a consistent structure.
Thanks to pandoc, we can access our data from template.tex
using a special notation. Iterating on repetitive data structures becomes trivial:
$for(experience)$
$experience.years$\\
\textsc{$experience.employer$}\\
\emph{$experience.job$}\\
$experience.city$\\
$endfor$
LaTeX takes care of the typesetting with its usual elegance. Below is the preview of the final result. Check out the output to see the compiled PDF.
With this method you can keep your entire CV described with a single YAML file, put it under version control and generate PDF on the fly when needed. You can also easily export it to other formats, like HTML for web publishing (I've heard Jekyll likes YAML). Convenient, portable and time-proof.
The original cv-boilerplate
TeX template was updated with several specific blocks like details
and stack
. You don't have to use them all. Just pay attention that the first page is a cover letter only. Next pages are about your experience.
Your photo is rounded automatically but maybe you'll need to play around the roundpic
macro values to center and size your face properly.
- LaTeX with the following extra packages:
fontspec
geometry
multicol
xunicode
xltxtra
marginnote
sectsty
ulem
hyperref
polyglossia
- Pandoc, the universal document converter.
To install LaTeX on Mac OS X, I recommend getting the smaller version BasicTeX from here and installing the additional packages with tlmgr
afterwards. Same goes for Linux: install texlive-base
with your package manager and add the needed additional packages later.
To install pandoc on Mac OS X, run brew install pandoc
. To install it on Linux, refer to the official docs.
For Fedora users:
- Run
sudo dnf install texlive-scheme-basic pandoc
- Run
sudo dnf install 'tex(xltxtra.sty)' 'tex(sectsty.sty)' 'tex(ulem.sty)'
- Install Hoefler Font
- Fill
details.yml
with your personal details, work experience, education, and desired settings. - Run
make
to compile the PDF. - Tweak on
template.tex
until you're satisfied with the result.
Note: this template needs to be compiled with XeTeX.
This repository contains a modified version of Dario Taraborelli's cvtex template.
License: CC BY-SA 3.0