I’ve changed site generators and cms more times than I can remember (my git repo has the entire history of this site!) the one thing I try to keep the same is my CV. It changes roughly every few years with either a new job or update in skills. I want a way that regardless of however my site is built my CV is just there ready to go.
Markdown first#
My CV is a markdown file you can see it here. It doesn’t require anything special(ish - I’ll get onto that). The idea is that you can put it in any site generator or CMS (that supports markdown) and it’ll render something. I think it’s a great approach.
Rendering outside the box#
The box here being any CMS/Static Site generator. I want it to look decent and not like whatever is rendering it at the time. I decide to use Pandoc, it’s as simple as running pandoc extra with the following args:
content/cv.md --output=public/cv.pdf --template /.pandoc/templates/eisvogel.latex --syntax-highlighting=idiomatic -V block-headings
I used the docker image extensively to test this out and even managed to contribute some docs back on using templates with docker on Ubuntu (long story!).
Pipeline#
It’s not enough to have a way of turning my CV into a PDF I don’t want to ever think about it ever again, dealing with PDFs is a hassle at the best of times so I chucked the entire process into a FrogeJo action (there’s also a spoiler for an upcoming section). This creates my cv which is then uploaded to an S3 bucket. You can see my CV here freshly built when this blog post goes live.
Anonymising my CV#
I recently applied for a new job and one of their requirements was an anonymised CV so rather than manually edit it I decided to over engineer it because I sure as hell enjoyed that more than writing STAR answers. If you take a look at the raw version of my CV you can see the following:
## Senior DevOps Engineer<!--- start --> - Remote & Manchester UK<!--- end -->
The <!--- start ---> and <!--- end --> tag don’t render in markdown/HTML so by default the content still shows up. I can then sed them out when I build the anon version of my CV:
- name: Setup Anonymous CV
run: cp content/cv.md content/cv-anon.md && sed -i 's/<!--- start -->...*<!--- end -->//g' content/cv-anon.md
It then uses pandoc again to create a PDF file and the pipeline uploads it.
So there you have it, that’s how I build my CV from a markdown file into both a standard and anonymised PDF file ready for potential employers. Just because I can it’s also available rendered through Hugo and Blowfish here.
