No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
json_resume creates pretty resume formats from a .json input file. Currently, it can convert to html, tex, markdown and pdf. Customizing the templates to your own needs is also super easy.


~> 1.3
>= 0


 Project Readme


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.

Note: YAML files are also supported. Try $ json_resume sample --in=yaml.


  • Syntax
    json_resume convert [--template=/path/to/custom/template]
                        [--theme=default|classic] <json_input>

    <json_input> can be /path/to/json OR "{'json':'string'}" OR http://raw.json
NEW: YAML files are also supported. Pass path/to/yaml file (must have .yaml or .yml).
  • 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 icons can be generated by giving icons as false : (Sample)

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

LaTex also includes a classic theme. Usage: --theme=classic (Sample).

  • PDF version from LaTeX (Sample)
    $ json_resume convert --out=tex_pdf prateek_cv.json
    $ json_resume convert --out=md prateek_cv.json

i18n Support

Support for en, ge, es, fi, pl and pt right now. Pull requests for others are welcome.

    $ json_resume convert --locale=es prateek_cv.json

It is also possible to define a custom location for locale definitions. Pass the option --locale_dir=path/to/defs. In this location there should be the definitions available. The default one is en.yml, others may be provided as well. This is useful if you want to define new headings.

Markup Language

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

  • ** bold **,
  • _ italics _,
  • script<sup>sup<sup/>,
  • script<sub>sub<sub/>,
  • [href](#),
  • <<http://github.com>>


Mustache Templates

  • Output is created using mustache templates. They are located in templates/. These can be modified and given as --template=/path/to/template to convert.

Adding your own icons to json_resume

  1. Download the svg(s) you would like to use from a site like IcoMoon or IconFinder and chose size as 16X16.
  2. Download the official json_resume svgs from the json_resume_icon repo zip. Unzip it, svgs are present in /SVG.
  3. Drag all svgs (including yours) onto the grumpicon and then "downlode it".
  4. Drag all the files (.css and .png) from the grunticon folder into your local json_resume gem's folder json_resume-1.X.X/extras/resume_html/public/css/, replacing existing files (Read this to find your gem's location in your machine).
  5. Modify your HTML mustache template to include your icons. Specifically, edit the div class in the template to include your new grunticon (<div class="icon-user icon-square">, where "user" is the SVG name). You can also check grunticon's generated preview.html file to verify the icon class name.
  6. Run json_resume convert --template=/path/to/template <json>, and you should be able to see the changes in the generated HTML. Also, steps 1-5 are to be done just once and the icons will be stored within your local gem.



  • Glyphicons are now replaced by Font-Awesome icons.
  • HTML version has a responsive design.
  • Supports i18n. (Supporting es, pt right now).
  • New classic theme for latex format.


Many awesome formats can be created by writing new mustache templates. We ❤️ Pull Requests.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Installation of local fork

If you want to checkout your local changes do the following:

  1. gem build json_resume.gemspec
  2. sudo gem install ./json_resume-x.y.z.gem