My Projects

Markdown Resumé: A resumé workflow for nerds

How to keep your resumé in a Markdown file, but share it in HTML or PDF format

Introducing Markdown resumé

Markdown Resumé is a Github Template repository that you can use to edit your resumé in Markdown, and once you’re done, it will give you the resumé in HTML and PDF formats.

Background

As I found myself in the market for a job, I had to update my resumé. This meant looking for the most recent copy, which just happened to be in PDF format, and then figuring out how to update it. I could have just copy pasted into a Google Doc, but I’m not a fan of Google docs, and I just had a nagging suspicion that in 2021..there were better ways to keep your resumé up to date.

I found JSON Resumé which looks promising, but manually editing a JSON file just felt wrong to me, while JSON is easy to parse and glance over, especially once it’s pretty printed, I find the idea of manually editing JSON inherrently wrong. So, I said to myself..

“Self.. there must be a way I can mark up a text document and easily convert it HTML, or PDF..”

And the response was…

“Duh.. your blog is just a bunch of text files that get turned into HTML..it shouldn’t be too hard to convert that to PDF”

So, I wrote my resumé out in Markdown, and I was happy..until I realized that I can’t always just link to luther.io/resume in an email, some systems still require an actual file that needs to be attached. I tried the old print to PDF trick.. but wasn’t happy with the output.. so I kept searching (what’s the verb for using duckduckgo.com? Ducking? Duckling?). I finally stumbled upon Sonya Sawtelle’s Workflow and decided to try it out for myself.

Her post is almost five years old, and the programs she’s using have been updated since, so I had to tweak things a little bit, as I was doing that, it dawned on me to automate the HTML/PDF generation once I was happy with the markdown.. so I also added a Github action.

The Really Simple Workflow

  1. Go to Markdown resumé.
  2. Click on the “Use this template” button.
  3. Name your repository whatever you want.
  4. Edit the resume.md file, and push your changes back to Github.
  5. Go to the Github Actions page for your new repository, and you’ll see an artifact (zip file) that you can download, it contains the file in .MD, .HTML, and .PDF formats.

For those who want to get their hands dirty

I’m assuming you know how to make your own copy of the repo and edit CSS or .MD files, so here’s what you need to do on your local environment to make things work.

  1. Download and install pandoc
  2. Download and install wkhtmltopdf

On a mac, it’s as simple as

brew install pandoc
brew install wkhtmltopdf
brew install basictex

Convert Markdown to HTML

Once you’ve edited the resume.md file, you can convert the MD file to HTML by doing

pandoc resume.md -f markdown -t html -c resume-stylesheet.css -s -o resume.html

Convert Markdown to PDF

If you want to go straight to PDF you can issue this command. One thing to note here is that while this will create a PDF that looks like your HTML file, it won’t take the metadata from your MD file and put it into the PDF.

pandoc resume.md -f markdown -t pdf --pdf-engine=wkhtmltopdf -c resume-stylesheet.css -s -o resume.pdf

Convert Markdown to PDF including metadata

pandoc resume.md -f markdown -t pdf -c resume-stylesheet.css -s -o resume.pdf

What happens here is that we don’t specify the PDF engine, so it falls back to latex, it will then take all the metadata in your YAML frontmatter (top of the file between the two --- blocks) and set that into your PDF.. but you won’t have the nice formatting, it’s basically ignoring the stylesheet. I’m going to work on this a little more in the coming weeks, because I would like to include any and all metadata in the PDF too, in case systems are searching for it.

Other Tools

As I mentioned, there are other tools out there that may do a better job for you. So here they are.. YMMV.

  • Sonya Sawtelle’s Workflow - I am literally using the same tools as she used, including the CSS, I just modified it by running it to through a formatter, so it’s a little easier to read/edit. And then did the whole Github Actions thing. She also has a Word document exporter.
  • JSON resumé - This seems like a cool concept, maybe one day I’ll have something convert this Markdown to resumé schema..but I don’t like the idea of manually editing/updating JSON.
  • Dev resumé - I think this is a really nice and clean template, I like the colors and layout a lot.. but it’s not me.
  • Google docs
  • MS Office