loading...
Cover image for Show DEV: JSON-to-HTML resume generator

Show DEV: JSON-to-HTML resume generator

sergchr profile image Sergiy ・2 min read

A few words about the problem: CV.pdf, CV_updated.pdf, CV_updated2.pdf. It's hard to keep tracking updates on your resume. Thus many people go to online services that generate good-looking resumes by providing an ability to edit templates via UI.

They are mostly not free and don't provide transparent versioning of a resume. Also, who knows, but maybe some of such services will be shut down in a month, year or so. It means I can't restore my information.

Why

I thought it'll be interesting to try to store a resume in some simple format in a private Git repository (or just in a local Git repo). It's easier to see diffs and track updates. So I wrote a script that takes resume information from a JSON file and generates HTML based on the data.

How it works

What it does is replaces variables like {{ experience }} in an HTML template with the corresponding values from the JSON file.
Example of the JSON resume template:

JSON resume template

Example of an HTML template result:
HTML template

Thus, I could keep my custom HTML template and resume in JSON format in a Git repo and generate HTML when I do updates. Like this:
How to use
"simple" is a pre-defined theme

There is an ability to create your own HTML theme, an example:

<!-- Embed CSS, JS, as in usual HTML -->
<style></style>

<div>{{ basics.name }}</div>
<h2>{{ basics.label }}</p>

Advanced use cases

It'll be great if I push updated cv.json to a remote repo, and CI will update a website where my resume available.
The workflow could be:

  1. I push new commit (updated cv.json)
  2. CI script generates the HTML (qcv build-from my_website_theme.html)
  3. Deploys it to a server where a website is hosted

The repo:

GitHub logo SergChr / qcv

A JSON to HTML resume generator



What do you think? Any feedback is hugely welcomed!

I'm on Twitter

Posted on by:

sergchr profile

Sergiy

@sergchr

Software developer; mostly Javascript

Discussion

markdown guide