It’s that time again and I’d like to make my life easier. I have multiple CVs for different positions and in different languages. Recruiters and companies want the CVs in PDF.
My current workflow is to sequentially edit the .odts (wording then layout because things move around depending on length), maybe the style, then save and export to PDF. That can take a while, so here I am, wondering if it can be sped up by simply editing a text file and generating CVs with certain themes.
Or what your workflow is. Maybe this isn’t worth automating…
Solution
Finally went with RenderCV (thank you @bert@sh.itjust.works), which also runs locally. YAML in, PDF, PNG, HTML, etc. out. It comes with 10 themes or so. Haven’t looked at what it take to create my own (I’m lazy).
Contender was JSON Resume, but the site is down and I tried it years ago but never got it to work properly.
Some might call it overkill or old fashioned, but my LaTeX CV versioned in mercurial as branches and hard linked clones has worked wonders for me for decades, now.
Same here (but versioned in git, and I only maintain one branch). I found a CV template I liked, and added my personal details. There are a ton out there. And the formatting doesn’t bunch around the same way a .odt file does.
Same. Well, not mercurial, but CV in latex. Works great. It really gives a ton of control over typesetting, so it is easy to make sure each page is filled completely.
Just made mine with Typst. Amazing.
Search “typst cv template”
Also, the idea of jsonresume seems pretty great. So you can have a single source of data and have different types of resume styles for it.
Typst is great! You can sperate the code for data from the code to render the CV, thus adapt to any format without changing the data.
https://typst.app/ is great, that’s what I use with a “modern resume” template. It’s a mix between Markdown and LaTeX.
I had a quick look and it seems interesting. Finally went with something else, but it’s now on my TODO list to check out typst. Never did like LateX.
RenderCV would allow you to have separate yaml files for each position/locale, and generate PDFs for each of them with the same theme.
Or the content in one file and generating multiple PDFs with different themes. It’s fairly flexible;
I finally went with this. Thanks.
It doesn’t have a theme registry like JSON Resume, but at least it works. Finally my CVs are in git 🥰
Similarly to Onno, I write everything in markdown first, and convert using pandoc. Then I use weasyprint to take the resulting HTML with CSS applied on it, and generate a PDF from all that.
The result is quite nice, and this system has served me for more thant 15 years. A friend working in HR shared that it does stand out, compared to most submissions.
Here’s a fragment of Makefile to summarize the concept:
docname=2026 all: pandoc -t html5 ${docname}.md -o ${docname}.html weasyprint -s ${docname}.css ${docname}.html ${docname}.pdfI’m curious why WeasyPrint? Pandoc can output PDF directly
Since it was a while ago I’ve forgotten, but I think it didn’t interpret the stylesheets correctly. I should probably recheck, because it may have been fixed.
I have written my CV in HTML, CSS, little bit of JavaScript and handlebars.js library (single JS file). I have all the texts inside JSON files (one file per language). I can switch between languages simply by changing a variable and refreshing the page.
When I need to update the CV, I just change the text and print the CV as a webpage into a PDF using an Ungoogled Chrome (Firefox has a bug that causes the page to print in a slightly wrong size).
It may be overkill for some, but for me it was easier to properly style the page using a CSS than using Writer/Word.
as many others, I write the CV in HTML/CSS and then print it to a pdf
I made a simple Go program that generates the CV based on a YAML file, and serves it as a webpage. Then print to PDF using the browser.
There’s not much theming options, though. I don’t have any repos public at the moment but I just set up Anubis in front of my Forgejo so I could post a link if you’re interested.
If you know a bit of HTML/CSS, customizing the template should be simple for theming it to your liking.





