136 comments

[ 2.9 ms ] story [ 196 ms ] thread
Most LaTeX resumes are just templates people slightly modify but don't really understand, so I wrote a small guide for actually understanding how to build up to one
This is a great guide! Well done.
Every few years I say to myself, "This is the way to go. I want my resume to be programmable and data driven." I'm not great at LaTeX now, and I was only ever ok. After getting into it, I've never seen a benefit from it after trying to do it. Learning all the esoteric rules to make LaTeX work only for that, is just too high of a hill to climb for that alone. I want it to be different, but for me, it's not.
I had the same experience using LaTeX. I manage my resume un Google Docs now
I've gone through a similar thing. I like the principles behind latex but it's really rough around the edges (in ways that are baked in and will doubtless never be fixed).

The error messages given on invalid markup in particular are atrocious.

I wanted to have something like that too, but end up building my resume as a JSON file, and generating an HTML template that can be designed with help of css, it's really fast to add things to it or update the style, I'm thinking on publishing it on github once I clean up the code
In my opinion, LaTeX is useful for typesetting (1) unwieldy documents (2) using as a template for documents you write often and scripting it.

(1) By unwieldy I mean a book or academic writing. Typesetting a thesis or a book is "easy" to do with LaTeX, especially if that document contains a lot of acronyms, glossaries, figures, cross-references, bibliography, etc... there are lots of great templates out there for theses and books; creating one from scratch is more often than not, overkill.

(2) One use case of what I mean here is document generation, say you have a table of employee names, phone numbers, email addresses. You can easily generate new business cards for all of your employees for the printers by creating a script to do so. Though, the initial investment may only be worth it for a larger amount of data.

A resume is mostly about design and is not altered with the frequency that would make typesetting in LaTeX interesting for anything other than curiosity.

Also, moderncv produces enormous files. I agree that LaTeX is not suited to every task.

Does this parse in common he software?

Just stick it in a multi page doc or pdf with minimal formatting. Resumes don’t need to be one page.

Most of the resumes I see for candidates that make it to the interview stage are multi page with very simple formatting. Lots of keywords.

One great benefit that she doesn't touch on is LaTeX makes for a great on-ramp to generating resumes programmatically. I like to use different emails for different services (service@mydomain.com), especially when data is being hoovered into HR systems. Building a pdf at the command line made it easy to create a one-line command (via makefile) that generates a small png with the desired email and insert it into the resume with 0 effort or fuss.
I found that my primary email address has been "leaked" during my first job hunt, and ever since I have received countless spam. This is a great idea and I plan on using it from now on.

I used makefiles for different kinds of jobs to put emphasis on different aspects of the things i have done, and it works quite well!

I used to create my resume in LaTeX. Very over-engineered and a lot of work to make. And not even that easy to update. Over the years I moved on to a simple Word document that I just copy-and-edit when I search for something new. Far less effort for the same pay-off, so it's much more efficient.

LaTeX might still be worth it for large documents (e.g. books) with lots of mathematical type-setting, but for small stuff Word is much easier.

Same but I switched to a web page (with Vue) instead, that can be printed as a PDF.

Definitely more manageable, especially when it comes to alignment, multi-page tables and fonts.

Previous template: https://github.com/denysvitali/cv Rendered: https://github.com/denysvitali/cv/blob/master/main.pdf

Your resume looks great and is a good inspiration; but why have your picture?

Unless you are applying for TV/Movies/Modeling....

It was (is?) a common thing in Germany and probably in Switzerland as well.
Regardless of it being popular, it only opens oneself up for being discriminated against.

Hiring person might have a bias against people with blonde/brown/black hair. Oh! they look like they are cocky and difficult. This person reminds me of my ex, there is no way I could be in the same office.....

This list of biases are endless. Sexism/Racism/Ableism/Ageism/etc are all given a free pass if you include a picture, but become various shades of obscure without it.

Or the opposite could happen. Bias works in both directions.
haha, I have heard that it does; but my Hunchback of NotreDame looking self would never know! =)

jk, I do benefit from white privilege and with a name as common as John Smith I am sure I pass many other unseen/unknown-to-me hurdles.

Make sure to have pointy hair if applying for a PHB position.
As an applicant it might be nice to get unfairly-preferential treatment but at a system level bias in either direction is undesirable
I'm not sure why you decided to educate me on this topic, I was just pointing out that there are possible reasons why a person from Switzerland put a photo on his resume. I don't do that, even though I currently live in Germany - for the reasons you've mentioned. So basically I agree with you.

    I wasn't trying to argue/fight or even educate, simply carrying on the conversation as I thought it was occurring.  Explain my thought process and reasoning for questioning the practice.  If you feel confronted, I humbly apologize.
I agree it is weird, but in Europe (atleast Belgium but I assume other European countries as well, the commenter here is living in Switserland) a CV generally contains a picture
Pretty common in EU (in my case, Switzerland).

I know that in some countries it is suggested to not put a picture on the CV because they want to be as unbiased as possible - but this is generally not an issue where I live.

In any case, as an Hiring Manager I do appreciate seeing the faces of the candidates on their CVs. It adds some personality to the CVs that are generally just black & white.

But again, this is very cultural and might be seen in the wrong way in, say, the US.

One major benefit of LaTeX is it's free, it will always be free, and it probably looks nice.

One major downside of LaTeX generated PDFs is HR's pdf parsers mangle them, and you'll spend hours manually keying elements into any application website you're unfortunate enough to encounter. It's probably a wash.

For a CV, LaTeX is way, way, way better for your personal bibliography. BibTex/BibLaTeX make it so nice to have a list of publications in your document.

For the five readers who have LaTeX CVs, here's a useful trick. It's easy to add a fleuron to noteworthy publications or elements in a list:

  \section{Publications}
    \blfootnote{\adforn{63} indicates Editors' Suggestion}
    \begin{enumerate}[align=right]
      \item [\adforn{63}\,\stepcounter{enumi}\labelenumi] \fullcite{greatpaper}
      \item \fullcite{prettygoodpaper}
>One major downside of LaTeX generated PDFs is HR's pdf parsers mangle them

Can you expand on this? I would have thought that parsing a LaTeX PDF would be way, way easier than some random word processor's export-to-PDF.

But it isn't some random word processor. It's Word. This might change with the growing use of Google Docs, but Word is basically a monoculture. It might be easier to handle the weirdos who use LaTeX, but there aren't enough of us.

There's also a chance that they mangle everybody's documents, and HR is just inflicting hours of toil on millions for no real reason at all.

Well structured Word files are based on forms and have well-labeled fields. That might help? I dunno. Maybe a Microsoft person or a Salesforce person can lift the curtain a smidge.

LaTeX is old. It was designed long before PDFs existed. Long before Unicode existed. You can get a good PDF out of LaTeX but it requires some work.

You’d think that the “semantic” nature of LaTeX makes it easy, but there’s an expansive set of macros between the source document and the PDF.

Just one example—LaTeX does things like replace “---” with “—” or replace “fi” with “fi”. How does LaTeX do it? At some point, somebody wrote some code which recognizes those patterns in the source file and emits the appropriate glyph. But these replacements are not equivalent—the “---” em dash needs to be a Unicode character with its own glyph, and “fi” needs to be two characters that share one glyph. Not important for DVI files, but important for PDF files where you want to copy the text out.

You can get this to work in LaTeX but it won’t work correctly by default, depending on how you are getting a PDF file. You end up with a preamble in all your LaTeX files to make them work nicely. You also probably want to use xelatex or lualatex instead of pdflatex (I don’t keep up with this stuff—get up to date recommendations elsewhere).

I always proof mine with pdftotext.

I figure that if that can extract the raw text correctly without mangling it, then it'll probably be okay for whatever applicant tracking system a company is using.

(My preference for my resumé these days is LuaLaTeX with nice OpenType fonts.)

> LaTeX might still be worth it for large documents

Having written my thesis in it, I can say that it very much isn't. If you don't plan ahead and make sure you split chapters into individual files it takes actual minutes to compile and when it doesn't it's nigh impossible to figure out where the problem is because the error logs somehow manage to be less useful than if there weren't any logs at all.

It's a very nice idea in concept but the implementation is just arghhh. My current go-to for this sort of thing is Markdown instead. It may be far less powerful but it's also far more practical in almost all cases.

Same for me. Now my resume is in a google doc and still looks great. Latex just wasn't worth the time spent tinkering, and I'm not convinced better typesetting helps developers get jobs.
I personally think latex resumes are overkill but if they work for you that's great. But for everyone else, this is how to tell your resume is "good". If those shitty workday sites can parse your resume with no problem then your resume is "good". After quite a few iterations my Google docs resume is "good"
I’ve got a version in LaTeX and Word.

Perhaps “from scratch“ is a bit of work but LaTeX is fine if you find a template.

I use a Latex version for rendering to PDF, and a plaintext one for copy-pasting into those sites that demand it.
I find it difficult to manually write latex when all I need is to make small changes to a resume, so I built a Github workflow that allows me to make changes to a json file with my resumes data and automatically fill a latex template, then build to pdf with Github actions. This also is nice because there is always a permanent link to the most is to date version of my resume. You can see it or fork it here: https://github.com/lukew3/resume.
Similar here, but markdown -> pandoc -> PDF/Word.

The real benefit, IMO, is being able to branch the source file. The master branch contains all the texts (multiple personal statements for example) and the child branches only contain deletions. Makes changes trivial.

Having gone that route word -> latex -> html; i've converged to using an Open source desktop publishing app called Scribus [0]. You get WYSIWYG, but on an open format. There wasn't anything fancy to learn on the tool. The app is actually used to all kinds of magazines and books, so a resume is pretty simple compared to those.

If you need a template to get started, you can use mine here [1]. The output pdf is also in the repo(although haven't updated it in 5 years now!). Reminds me to go and fix/refactor it a bit.

[0] https://www.scribus.net/

[1] https://github.com/sidmitra/sidmitra.com/blob/master/static/...

Scribus is amazing. I published a hymnal using it and other open source tools, and it was the easiest part of the toolchain to make do what I want. It's even scriptable with Python.
(comment deleted)
I write my CV and resume in LaTeX using moderncv and a customized version of deedy-resume. The CV repo is public if you're curious: https://github.com/evansosenko/curriculum-vitae

If you are hacking on this today, you can use this starter repo to get a LaTeX project setup that builds and publishes your document with GitHub Actions: https://github.com/makenew/latex-project

Just checked your CV and it seems like the PDF version has several typos, specifically it says you are CTO at Meltwater when I think you meant at Pureskill.gg and is missing the entry for Seam

:)

I made mine based on an ancient cls file years ago, update it every year or so and it's worked great. Repo is also public (you can click on the PDF to see what it looks like) at https://github.com/sbrother/resume.
While the first item in their "Why LaTeX?" list is "Separates content from formatting/styling", I would say that my biggest problems with Latex is it doesn't actually separates content from formatting/styling. While there is a limited support for something almost akin to a stylesheet, in practice for the user, changing the style of something inevitably means changing the macro you call on your content instead of changing the style elsewhere. Latex was maybe the best tool in the 80s, but since the 90s or 00s XML/HTML/SGML/... are much better alternatives, with actual separation of content from formatting/styling.
Yeah I hate to agree with this because while I love the idea of LaTeX--yep, it doesn't separate content and style. You get markup all over the place and it's often cryptic as hell. My resume is in LaTeX and I hate editing it because I'm always afraid the styling is going to break in some subtle way and then I have to figure out exactly what went wrong.
(comment deleted)
Yeah I came here to say this as well. I gave up on LaTeX for my resume something like ten years ago. Since then I use HTML/CSS and render it with wkhtmltopdf.

edit: grammar

Same here except these days I just use the print to pdf feature in Chrome.
While HTML and other markup languages are great, I wonder if there is a way to use a word processor while creating the document - focusing only on content (spellcheck, etc.) and not on formatting or on syntax. Then, a context specific converter (that is specific to the type of content - a resume, a newsletter, a FAQ page, etc.) takes care of adding the formatting and publishing it.

As an example, recently, I had to create a bunch of FAQ pages, and I created a tool like [1]. While Pandoc can be used, I still need to worry about (at least basic) formatting the doc while typing it out in the word processor to make it look good in the HTML output.

[1] https://github.com/abhishekbasu/faq2html

Have you heard of Quarto?
The style is never entirely separate. Putting a class "side-image", "inline-image" or "centered-image" is a styling choice. Sure you put a lot of the detailing stuff in the css, but you can as well trivially define your own macro in Latex to separate most of the gnarly stuff, or define your own style. If you don't want to be able to control precisely individual elements, then there's only semantic markup left. I would say the main difference between the two is that in Latex it requires slightly more knowledge to use good practices. In html there's no difficulty difference between good and bad practices, but there's nothing to enforce good practices either.
That's why proponents of "semantic css" (RIP) would have said the correct classes would have been "secondary-image" or "main-image" or "accent-image" or something like that, with the stylesheet deciding if if "secondary-image" should be at the side, alternating, or whatever.
I agree with the sentiment. You can make stylesheets for LaTeX, without changing the macros you call in your content, but it’s a somewhat arcane process. Go on the TeX Stack Exchange site and someone will explain how to do it if you want. I don’t need that. ConTeXt is better at this.

I’ve been doing my résumé in ConTeXt. Seems like it’s more expected in ConTeXt that you mess with the styling.

  \reshdr{Software Engineer, Yoyodyne}
  \ressub{November 1981--June 1984}
  \startresdesc
    Made a million widgets.
  \stopresdesc
It’s reasonably common & expected in ConTeXt to define your own macros for custom sections or whatever you need. ConTeXt has macros to define macros…

  \definehead[reshdr][subsection]
  \setuphead[reshdr][textstyle=\bfx,number=no,before=\vskip 1em,after={},align={flushleft,nothyphenated}]
In my experience, HTML+CSS is better in every way except page breaks. If they added more pagination-related features, it'd be better in every way. It's been too long since I played with it, but I remember tons of weird issues, like images being at the bottom of one page and the caption being on the top of the next, etc.

Additionally, CSS really needs way to say "when text overflows from this container, put it in this other container". With that, it could replace Indesign for me.

That said the rate of improvement with CSS is really great. :has() alone is super powerful. I also love color-contrast().

Completely separating styling from content seems dogmatic in this context. It certainly makes sense when working with long documents with standardized style, or ones that need to be processed with code, but I don't think that really applies. From what I understand, even ATS resume processing is a blunt instrument that assumes the content will be commonly formatted word docs or PDFs, and sending it better quality data will not yield better quality results. I think defining styles in an OO.org document would suit the task much better. Different strokes for different folks and all that, but this seems like a hammer thinking everything looks like a nail.
Use LaTeX because if the hiring manager has a PhD they'll instantly recognize res.cls and put you at the top of the pile
That's a bit too much of a blanket statement. Latex isn't special. Everyone I know has used it, 100% of them have struggled with margins and fonts and images and equations needing to be rewritten three times and so on. I would not find a Latex resume even remotely novel or interesting. I certainly wouldn't downplay it, but Latex isn't instant-streetcred either.
Yeah. Using it for your CV is a costly signal that you’re the kind of academic type who writes enough math to only find LaTeX comfortable.

If writing math is not what the job that you’re applying to is looking for in you, you should probably only use LaTeX for your own enjoyment.

Back in school, I remember mentioning to a friend that "Don't the Microsoft Research CS papers look a bit different? Whenever I feel like a paper looks a bit off, I look up and see the authors have Microsoft email addresses." and he pointed out to me that MS creates their papers in Word and pretty much all of the other papers I read were in LaTeX.

If your CV is generated from LaTeX -> PDF and all of the others are Word -> PDF, your CV will subtly stand out. Depending on the reader, the subconscious/conscious connection with CS papers may be a plus or a minus.

It's hard to say if having my CV in LaTeX has actually helped me, but this is the reason I use LaTeX for my CV.

I worked for MSR for ~7 years and all of the papers I worked on were in LaTeX, all the papers I saw from my colleagues were written in LaTeX as well. The only people who wrote papers in Word were from academic communities where that already happened often (e.g. lots of Word papers in HCI conferences; I was in the PL and OS communities where it was very rare to see papers written in Word).

But yes, a paper written in MS Word is glaring by how it handles kerning and hyphenation. You'd be surprised how much products teams don't care about type setting (and Google Docs at Google where I work now is about the same).

> kerning and hyphenation

So these are still broken in modern word-processors? Or expected to be manually tweaked? Seems odd decades later.

You can’t manually tweak it. Actually, I spend a non trivial amount of time fixing under and over flows in LaTeX papers. In Word, it’s just “go ugly early.” The appeal is that a good looking doc is impossible, so don’t even bother.
Interesting but odd. Seems like this would be right in the wheelhouse of the expensive word processor.
I've handed my resume at career fairs and I twice they noticed and pointed out that it was LaTeX and it impressed them a little bit.

But I was a EE student so maybe it'd be different in another field.

I would have to agree with this. But I'd like to point out that recruiters should evaluate whether the job candidate is capable of doing their job rather than what format their CV is in.
I agree we should be evaluating “this candidate is a good engineer” and ignoring “this candidate has various attributes which often correlate with being a good engineer” - but how do you propose measuring the former? Bear in mind that even factors like “does well in a coding interview” is actually an example of the latter, not the former
> MS creates their papers in Word

I used to collaborate with MSR and never saw anything but LaTeX being used. If you look at the level of sophistication in many of their papers it’s not something Word can even begin to achieve.

Hmm... most of my exposure to Microsoft CS papers was in the late 1990s/early 2000s. Perhaps things have changed, or maybe it was just the set of authors that I read. In any case, the layout was markedly different, and once my friend pointed out that it wasn't just in my head, that they weren't using LaTeX, it was hard for me to un-see.
I use Calibri in my LaTeX resume for this reason.
I can’t put my finger on why but I’ve found Pages on MacOS good for maintaining a resume that fits precisely in two pages.
I've known a team in INRIA writing their papers in Word. It felt so weird...
Related to this, I swear that once I started writing my homework solutions in LaTeX in grad school, I suddenly just started getting better grades. I don't think I was actually any more convincing; it just seems like turning in a paper that looked like it was written in LaTeX primed my profs to think was more convincing than I was.
I created my resume by building a one page website and having some script print it to PDF. Worked great, and was a nice talking point for interviews, until many years later I npm installed and it stopped working
You used npm for the printing part? You can print to PDF with a web browser. Chrome can do it from the CLI so you can script it if you want.
I’ve written my resume in LaTeX for the last decade. I can version control it in git, I can easily keep track of what resumes go where with tags, and I have a Jenkins pipeline that automatically compiles my resume and pushes it to another repo.
"Oh hey, I can tell this resume was set in LaTeX."

"By the font?"

"No, by the lack of industry experience."

Personally, I've found the workflow of markdown --[pandoc]--> LaTeX / HTML to be very productive.

Having a single source of truth for web and PDFs is pretty nice. Editing Markdown is more pleasant than either HTML or LaTeX, and yet pandoc still permits you to bundle in LaTeX/CSS headers to fine-tune your generated docs' appearances.

You can also very rapidly get visual feedback into your output (<leader>d runs my makefile on the current file in vim, which will generate the pdf/html in <1 s, which I can then see in a pdf viewer / web browser)

Very nice. I only use LaTeX for my resume, but I have my resume written in JSON so that I can easily keep my website and PDF in-sync. CI auto-builds and publishes both.
I've had a LaTeX resume for ~15 years. I'm not sure I would do it from scratch now, but I don't need to update it that often.

That being said, I'm not sure what else I would do it in. LaTeX has the virtues that it hasn't changed in 15 years and that it's free.

It’s a well-written and informative guide! Thank you.

If your focus is separating content from styling and have good version control of your CV (or other similarly short report type documents) may I suggest to use org-mode instead that is able to generate most of your latex for you: https://opensource.com/article/20/4/emacs-org-mode

One thing I really like about having my resume in LaTeX is I can have a ton of bullet points always in the file commented out, and just uncomment the most fitting ones for each specific job application.
I have my CV in Latex, I am an academic and an important part of the CV is the publications list. With Latex I can export my publications from Zotero (where I keep them updated) or just have a bibtex file and include (and link!) them in my CV. If you are not an academic, then I don't really see the advantage of using Latex vs, say, Word.