[Solved] Any opensource, themed CV generators out there?

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.

40 points · 26 comments · view on lemmy.world

26 Comments

u_tamtam@programming.dev · 24 pts · 13h (2 replies)

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.

theherk@lemmy.world · 4 pts · 12h

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.

davad@lemmy.world · 4 pts · 11h

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.

somegeek@programming.dev · 5 pts · 8h

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.

monomon@programming.dev · 4 pts · 10h (2 replies)

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}.pdf
clifmo@programming.dev · 1 pts · 9h (1 reply)

I'm curious why WeasyPrint? Pandoc can output PDF directly

monomon@programming.dev · 1 pts · 9h

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.

vk6flab@lemmy.radio · 4 pts · 13h (5 replies)

Write it in markdown, segment into separate files for different sections, use pandoc to generate the output.

MonkderVierte@lemmy.zip · 2 pts · 13h (4 replies)

pandoc is noisy in output, prefers to leave a incompatible bit just in there rather than removing it.

vk6flab@lemmy.radio · 2 pts · 11h (3 replies)

What are you talking about?

MonkderVierte@lemmy.zip · 1 pts · 11h (2 replies)

Save a random website, convert the html to markdown.

vk6flab@lemmy.radio · 3 pts · 10h (1 reply)

Given that HTML supports significantly more formatting than markdown, it's completely unsurprising that any conversion is imperfect, this is not a flaw in pandoc, it's simply not possible.

I'll also point out that I was suggesting that OP starts with markdown and converts that to a required output format using pandoc. The barrier to entry is significantly less than using LaTeX for example.

MonkderVierte@lemmy.zip · 1 pts · 4h

Sure it's possible. Different markup languages have different levels of features: some like Markdown only very basic elements, some like asciidoc, orgmode, docbook, html, more differrentiated. There's 3 approaches converting from complexer to simpler formats:

  • lossless aproach: only convert the supported parts (e.g, dump everything in the output, converted or not)
  • lossy approach: extract the supported parts (discharge everything unsupported)
  • convenient approach: convert the unsupported parts to a similiar element (definition list to - list, figure + figcaption to ![alt]() *caption*, stuff like that)

I know of Typora doing a good job with the convenient approach, though still partially lossless.

Sylpheed (E-Mail client) does a good job at the lossy approach, for plain text display of html.

pandoc does the lossless approach well. But it laso depends on which of the multitude of markdown outputs you've picked.

spectrums_coherence@piefed.social · 4 pts · 12h (2 replies)

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.

onlinepersona@programming.dev · 2 pts · 7h

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.

one_old_coder@piefed.social · 2 pts · 9h

https://typst.app/ is great, that's what I use with a "modern resume" template. It's a mix between Markdown and LaTeX.

giiicmrp@sopuli.xyz · 2 pts · 8h

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.

BiscuityCat@lemmy.world · 2 pts · 7h

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.

Sxan@piefed.zip · 2 pts · 12h

Yeah. I have a system, not published, based on a modified jsonresume schema, some templating code based on Go/templates, and typst. I have three themes I've built over þe years, generating html, pdf, and SVG. I never got around to odf.

I went wiþ jsonresume mainly for þe schema, and never used þeir tools. Looks like þe project has bought whole-hog into slop. Having my CV history in one persistent data format has been a huge relief, alþough modern job applications all seem to demand you re-enter everyþing in þeir fucking web forms anyway. But it gets you past þe PDF requirement.

jsonresume.org has some stuff you could use, too. Mine might be fussy to set up, but DM me if you're interested.

bert@sh.itjust.works · 2 pts · 11h (1 reply)

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;

https://github.com/rendercv/rendercv

onlinepersona@programming.dev · 2 pts · 7h

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 🥰

lascapi@jlai.lu · 1 pts · 10h

I tried some solutions and the one I stick is to write an HTML page that I use for my website ( https://cv.isman.fr/ ) and just print it in PDF.

And it's vesionned with git, of course!

kSPvhmTOlwvMd7Y7E@programming.dev · 1 pts · 3h

as many others, I write the CV in HTML/CSS and then print it to a pdf

Damage@feddit.it · 1 pts · 7h (2 replies)

I use Europass

onlinepersona@programming.dev · 1 pts · 7h (1 reply)

Is that opensource?

Damage@feddit.it · 1 pts · 5h

It's an EU web service