Multiple CV formats using Pandoc

Until recently, my CV was produced in PDF format from a LaTeX source file, using a template I’d found after some extensive searching. Whilst the output looked professional when viewed on screen and in print, and was easy to send by email, there were several reasons why I didn’t want PDF as the sole format for my CV:

  1. Whilst most computers will have a PDF reader of some sort, it’s not guaranteed, especially if someone is viewing on a device other than a typical desktop (e.g. a mobile phone).
  2. PDF files don’t open consistently across platforms – some browsers will try and open the file inline, others will save the file to disc or start a copy of a PDF reader.
  3. Although the PDF file was small, it was still considerably larger than the equivalent HTML file.
  4. Recruitment consultants often want to see CVs in Word format, so they can edit them (e.g. removing your contact details or placing the content in their own house style).

As a result, I wanted to also offer HTML (cross-platform) and Word (for recruiters) versions. In order to maintain consistency between the different formats, I needed a piece of software which would take a single input format and produce multiple output formats. At first I tried to use the Plain Old Documentation (POD) markup language, which is used for Perl documentation, but the PDF output didn’t look as professional as the one created from my LaTeX source file. Someone on IRC mentioned Pandoc, which was developed explicitly for converting files between different formats. I spent some time trying to create a satisfactory template – including the use of some mind-boggling Perl regular expressions – before I came across an existing template on GitHub which, with a few tweaks, produced what I was looking for. I can now edit a single source file, run the make command and output my CV in PDF, HTML and Word formats.


No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.