My New Résumé, and How to Build It in LaTeX with SCons

I recently rewrote my professional résumé. In accordance with received wisdom I was always careful to limit the story of my working life to a single page, but I've heard too much lately about how this restriction is out-of-date and likely to shortchange an applicant; in my case I had to describe the positions I've held very thinly and leave out some of my minor honors altogether. Some of the layout compromises I was forced to make never sat quite well with me either.

Since I was going to radically change it anyway, I took the opportunity to implement my new two-page résumé in LaTeX instead of InDesign, partially for geek-cred but also to make it more maintainable: for instance, the plain-text source file works well with revision control tools and now resides in a git respository.

Building my résumé from source also solves an irritating little problem I had with my InDesign workflow: the need to maintain two otherwise-identical *.indd files, one with my personal phone number and email address for sending to recruiters, and one without them for publishing on the Internet. If I changed anything in one, I had to make the same changes in the other, and then make sure to export both to PDF. With LaTeX I can pass command-line arguments to conditional statements to make this easy. For even more geek-cred, I can automate all this using SCons and provide myself with “public” and “private” build targets for the two versions of the document.

To pass the LaTeX compiler a flag, you can do something like this:

pdflatex "\def\resumeprivateversion{}\input{resume.tex}"

Surround the appropriate lines in resume.tex with a conditional like so:

\ifdefined\resumeprivateversion
Phone: XXX-XXX-XXXX
Email: foo@bar.baz
\fi
URL: http://eikimartinson.com

This will include the phone number and email address if the flag is set, so the pdflatex command line given above will generate the private version, but simply issuing 'pdflatex resume.tex' will generate the public one. My SConstruct file to automate them both (because I'll never remember the longer command line otherwise!) looks like this:

import os
env = Environment(ENV=os.environ, PDFLATEX='xelatex')

private = env.Clone(
    PDFLATEXCOM='cd ${TARGET.dir} && $PDFLATEX $PDFLATEXFLAGS "\def\resumeprivateversion{}\input{${SOURCE.file}}"'
)

env.Alias('public', env.PDF(target='ResumeForWeb.pdf', source='resume.tex'))
env.Alias('private', private.PDF(target='Resume.pdf', source='resume.tex'))

Running 'scons' will build both versions of the document, but 'scons public' or 'scons private' will build one at a time.

As far as the document itself goes, I used Dario Taraborelli's excellent “Typesetting your academic CV in LaTeX” as a starting point but modified it quite a bit; I needed more of a commercial résumé as favored in the United States, but with a bit of CV flavor since much of my work experience has consisted of doing research in a university. I also switched to XeTeX for this document so that I could painlessly apply OpenType fonts, settling on the fairly safe combination of Minion for body text and third-level headings (in bold small-caps) and Myriad Bold Condensed for the higher-level headings.

By the way, I apologize to sharp-eyed and attentive readers for the lack of syntax-highlighting in the LaTeX code displayed in this post, I haven't gotten around to implementing such a mode for Rainbow yet.

Add a Comment

Archives: