☕️ Insufficient Coffee


Published 2014-08-12

There’s a quirky little project on the Internet proving once again that semi-structured data is just plain fun: JSONResume.org.

In short, JSONResume is a community built around the idea that resumes are all pretty much the same information, just formatted differently, and that while making your resume shiny is important, content is king.

Resume Schemas: Not a new idea

Of course, it’s not a new idea. A decade ago I used XMLResumeLibrary to generate my resume, because of course all engineers’ resumes in the future would be submitted in structured format.

Clearly, I am not a prophet.

We all still give out resumes in PDF format - and not PDF format with embedded XML. Oh well, dream burst. Or was it?

About a month ago, Hacker News had an entry announcing JSONResume. I starred them on Github and watched a flurry of code as people derived a first revision of the JSON schema / specification through consensus. Now they’ve released the first version, aptly named 0.0.0.

I’ve had call to update my resume recently and decide that since I did this with XML back in the day, why not try doing it with JSON?

Then, just like the past, after encoding my resume details, I wanted to style it, so out came Node.js and Mustache. And then Font Awesome. And then after some bourbon, everyone’s favorite responsive crutch: Bootstrap. (Hey, I’m a software engineer, not a designer).

Design of Bootstrap-Icons Theme

I either name things after exactly what they are, or something off the wall (heh, Praetorian Guard). In this case, the theme is based on Bootstrap and has lots of icons.

The heading section lists icons for all the social network profiles I could find in Font Awesome, stacking them up alongside your vitals. Note: Right now it stacks unevenly if you have a lot of profiles, but you could fix that.

I do not make use of the profile picture URL.


The work experience section handles indeterminate dates and highlights, and right-justifies the URL of each company. This is a preference of mine for a long, long time.

Work Experience

The skills section is kind of fun, using Bootstrap labels. It responsively scales down pretty low, but it’s not perfect on my Nexus 5 in portrait; it works in Landscape though.

This section is entirely personal preference, but I liked the bubble effect.


A lot of the reason I started this theme was to handle patent publication numbers better than other themes; I actually expanded the JSONResume schema to add two parameters:

Parameter Required? Type Description
patentNumber optional string Patent number, to be formatted
patentStatus optional string Issued or Pending

These let me format patents as issued/pending and pick out the difference between a magazine article and a patent for proper icons.

Education and Publications

The resulting theme is on Github: https://github.com/jcjones/jsonresume-theme-bootstrap-icons

Theme Examples

You can see it with a couple of examples, as it’s published for general use on NPMjs.org

  1. http://registry.jsonresume.org/thomasdavis?theme=bootstrap-icons
  2. http://registry.jsonresume.org/rolandsharp?theme=bootstrap-icons


I still think one day software engineers will be pasting structured data into a validator when applying for a job. Today, I think I would just turn off most applicants at SAIFE.