Last Updated: February 25, 2016
· prat0318

JsonResume: Create pretty HTML, Latex, .md resumes from a single JSON


JsonResume creates pretty versions of resume from a single JSON input file. Output formats are specifically customized to modern resume templates. Also, there are a ton of customizations to the templates possible, to make your own version of resume created easily and super quickly.


$ gem install json_resume


Create a sample JSON input file to start

$ json_resume sample

A sample prateek_cv.json is generated in the current working directory(cwd).

Modify it as per the needs, and remove or keep rest of the fields empty.


  • Syntax
json_resume convert [--template=/path/to/custom/template] [--out=html|html_pdf|tex|tex_pdf|md] <json_input>

<json_input> can be /path/to/json OR "{'json':'string'}" OR http://raw.json
  • Default (HTML) version
$ json_resume convert prateek_cv.json

A directory resume/ will be generated in cwd, which can be put hosted on /var/www or on github pages. (Sample)

  • HTML* version

html version without glyphicons can be generated by giving glyphicons as false : (Sample)

 "settings": {
     "glyphicons" : false
  • PDF version from HTML (Sample)
$ json_resume convert --out=html_pdf prateek_cv.json
$ json_resume convert --out=tex prateek_cv.json
  • PDF version from LaTeX (Sample)
$ json_resume convert --out=tex_pdf prateek_cv.json
$ json_resume convert --out=md prateek_cv.json

Markup Language

JSON is parsed as per the markdown standards. This implies all this works-

  • ** bold **,
  • _ italics _,
  • script<sup><sup>sup</sup><sup/>,
  • script<sub><sub>sub</sub><sub/>,
  • [href](#),
  • <<>>


Output is creating using mustache templates. They are located in templates/. These can be modified and given as --template=/path/to/template to convert. For example, the tex template was customized to produced this new format.