content.yml | ||
makefile | ||
output.pdf | ||
preview.jpg | ||
README.md | ||
template.tex | ||
TODO.md |
CV Boilerplate
I consider LaTeX resumes to be a secret handshake of sorts, something that makes me significantly more likely to be inclined to hire a candidate.
—zackelan on HN
A boilerplate to ease the pain of building and maintaining a CV or résumé using LaTeX. The perfect companion to letter-boilerplate.
Intro
Separating presentation from content makes life easier. The typical content of a CV is a perfect fit for a YAML file due to its structured nature:
---
name: Friedrich Nietzsche
address:
- Humboldtstraße 36
- 99425 Weimar
- Prussia
email: friedrich@thevoid.de
# ...
experience:
- years: 1879--1889
employer: Freiberufler
job: Freier Philisoph
city: Sils-Maria
- years: 1869–-1879
employer: Universität Basel
job: Professor für klassische Philologie
city: Basel
That makes super easy to update a CV while keeping a consistent structure. If you're not familiar with the YAML syntax, here's a pretty good overview.
Thanks to pandoc, we can then 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$\\[.2cm]
$endfor$
LaTeX takes then care of the typesetting with its usual elegance. Below a preview of the final result. Check out the output to see the compiled PDF.
With this method, you can keep your entire CV encoded in a single YAML file, put it under version control (into a gist, for instance), and generate a PDF on the fly when needed. You can also easily export it to other formats, like HTML for web publishing. Convenient, portable and time-proof.
Dependencies
- LaTeX with the following extra packages:
fontspec
geometry
multicol
xunicode
xltxtra
marginnote
sectsty
ulem
hyperref
polyglossia
- Pandoc
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.
Getting started
- Edit
content.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.
Refer to pandoc's documentation to learn more about how templates work.
Note: this template needs to be compiled with XeTeX.
Available settings
mainfont
: Hoefler Text is the default, but every font installed on your system should work out of the box (thanks, XeTeX!)fontsize
: Possible values here are 10pt, 11pt and 12pt.lang
: Sets the main language through thepolyglossia
package. This is important for proper hyphenation, among other things.geometry
: A string that sets the margins throughgeometry
. Read this to learn how this package works.
Recommended readings
- Why I do my résumé in LaTeX by Dan McGee
- What are the benefits of writing resumes in TeX/LaTeX? on TeX Stack Exchange
- Typesetting your academic CV in LaTeX by Dario Taraborelli
- Résumé advices from Butterick's Practical Typography
See also
- letter-boilerplate — Quickly and painlessly generate high-quality letters from markdown through LaTeX
License
This repository contains a modified version of Dario Taraborelli's cvtex template.
License: CC BY-SA 3.0