Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Elm Resume

The idea behind this project is simple. At times you need to build a new resume. Since last time you did it many things have changed, you don't want to use Word anymore, the template you used looks old, LinkedIn export is really not helping much ... but one thing didn't really change, your previous experiences. You might want to trim them and update them but generally not change them that much.

The solution here is to focus on the data on your resume. You describe your experiences in a JSON file and you focus on keeping that updated. Commit your changes to Github and your resume is automatically updated.

How does it work

There are two main pieces to Elm Resume.

  1. This project contains all the code to interpret and display your JSON data.
  2. A secondary project where you store and distribute your JSON data. This doesn't strictly have to be a separate project nor does it have to be stored on Github but I find it easier that way.


  1. Create a new Github project. It can be private or public, it doesn't matter. It also doesn't matter how you name it but for reference let's call it: elm-resume-data.
  2. Create a docs/data.json file in the repository elm-resume-data.
  3. Go to the project settings on Github and make sure that the option for Github Pages is on and that master branch /docs folder is selected. No need to choose a theme.
  4. At this point, you should have a publicly accessible resume JSON at a location similar to this: (you can use this as a reference).
  5. Go back to this project and fork it on your own Github account (use the top right button on this page).
  6. Clone that fork to your own local machine. You can add a new remote if you want to easily pull in new changes from this repo. The command is git add remote upstream
  7. Open the file docs/index.html in your editor of choice and change its field api_base_url to point to your own JSON data file published earlier.
  8. Go to your forked project settings and repeat point 3. Now your resume is available online for everybody to see.
  9. Bonus Point. If you are not satisfied with the default style of the resume you can provide your own CSS. Just replace the reference in your file index.html to point to something else. I suggest putting the new style file in your file elm-resume-data. Here is a custom (and real) example:


No description, website, or topics provided.






No releases published


No packages published