Intro
Every 6-12 months most people in the corporate word have to set aside time to do through the ordeal of "refreshing their resume". This is a real pain, especially if you've locked yourself into an outdated resume structure! Given my day to day job involves building data driven applications, its hypocritical of myself to use something link MS Word to build out my CV! In this post I'll attempt to persuade you to use jsonresume a free, open source framework for building a data-driven resume.
What is a data driven resume?
When you decide to update your resume, you may notice that the content (text) will largely stay the same, baring a few corrections and additions. However, using a tool like MS Word would require you to do lots of manual copying and pasting as well as trying to form a cohesive layout that can scale as you add more information to it. If we abstract out the data (or resume content) from the layout we will be able to quickly chop and change the layout to suit the job application.
Are there any other advantages of a data driven resume?
If we can separate our data from our layout and have a program to blend the two we can derive additional value from machine learning! There are plenty of possibilities, just imagine if you gave GPT-3 a junk of data on resume's and trained it to do some NLG for a specific role. Obviously I'm not suggesting you go for an out of the box GPT-3 generated resume, but rather that it could provide some suggestions for you to build a well tailored resume. Think of it like a super powered Grammarly!
Also if you are technically minded, you may have noticed that this is very simialar to the MVC framework where we separate out the concerns of components to aid in simplicity for expansion. In this case the data is the Model, the View is the jsonresume-theme build from the handlebars files and CSS, and the Controller is the resume-cli.
How can I get involved with the data driven resume hype?
To get started, I'd head over to jsonresume.org, where they keep up-to-date information on how to get up and running. However, I'll detail below the steps that I took to build out my resume, which you can check out here! There is also a PDF rendering shown below
Step 0 - Installing resumed-cli
At the point in time of writing this blog, I found that there were a few issues with the resume-cli
when building out custom themes. However, there is a fork called resumed-cli
which works perfectly for building out your custom themes! For ease of transitioning to github actions we will install it locally to the working space we are currently in. However, if you are not wanting to use github actions, you can install it globally.
|
|
You can verify your installation by running
|
|
Step 1 - Generating a resume.json
Given this resume is going to be data driven, we need to create a resume.json with the correct structure, which is given by the jsonresume schema. To do this we can either use resumed
to initialize a templated resume.json file, or you can start off by copying mine and editing it from there - link!
|
|
Step 2 - Using a theme
To find the theme you'd like to use, either head over to jsonresume and find the github repository for the theme you'd like to use, or just search github for repositories that start with the name "jsonresume-theme-", for example jsonresume-theme-github. Now all we have to do is clone the repo for the them we want to use! In my case I forked the stackoverflow theme and made some changes.
|
|
Step 3 - Building your resume
Now all thats left is for the jsonresume program to do its magic and blend the data with the layout! Simply tell resumed what the name of the theme you're using is (the name proceeding "jsonresume-theme-")
|
|
This should open up a new tab in your browser with your fancy new resume!
Step 4 - Exporting your resume
Its great that we can serve up our resume as a web page but that would be no good when we have to send it to a potential employer! Luckily the team at jsonresume have built some tooling that can export your generated webpage either as a single page HTML file, or even better as a PDF!
To build these artifacts we again make use of the resumed-cli
|
|
Step 5 - Continuous Integration
Now comes the fancy part, if you want to keep a version history of your resume and publish it to the wider interwebs, you can make use of github actions to build your resume for you, both as a webpage that anyone can access, or as a PDF that anyone can download. Note you can also build this all privately with github actions, feel free to contact me if you'd like to know how!
All you need to do it create a github repo with your resume.json and a github actions yaml file that will be triggered whenever you push to your main branch, here is the pipeline I have set up.
|
|
Note there are some extra things going on here, such as the runner pushing back to the same repo, the use of script
, which is needed as the resumed-cli uses the tty to operate and runners do not have access to tty so we need to make it seem like its accessing the tty with a stream.
Summary
I hope this has persuaded you to join on the hype of data driven resumes! Or at least given you some food for thought on how you could organize your data to drive machine learning as having your data structured like this is the first step! Let me know your thoughts below!