Kishore Vancheeshwaran
Resume in orgmode

Ever since I discovered orgmode I have wanted to create my resume/cv using it. There already exist some templates which are amazingly well done. I initially started out with a barebones latex template and then started using the famous Awesome-CV template. I noticed that it was not actively developed and I faced some issues using FontAwesome’s icons in the resume. I then moved on to using Jake’s Resume format which was more simple and straightforward in terms of formatting. Even though I liked the format, I didn’t like using latex and this template for 2 reasons.

  1. Writing in latex was nice in terms of formatting but writing the content seemed a bit awkward considering that the content had to mix up with the latex’s markup.
  2. The template itself was nice and well done, but I found myself editing it to an extent where I got very confused with all the macros and redefinitions and modifications done in it.
  3. I would like to make the template as simple as possible without extra dependencies on packages like FontAwesome. Although this was accomplished by Jake’s Resume, I still wanted an alternative for the above reasons.

I wanted to take care of writing only the content in a format that is readable and at the same time have the ability to export to a pdf and html. Orgmode seemed like a perfect fit than pandoc for this.

When I searched online I noticed some people have implemented the export backend for exporting from orgmode to pdf like Org-CV and Aidan Scannel’s method. I was to have some amount of success with Org-CV but the same issues arose with FontAwesome and ModernCV’s formatting coupled with how the package was written. I tried recreating my own backend for export trying to replicate Org-CV to an extent, but I wasn’t able to understand elisp much at this point of time hence I dropped this idea as well.

I figured I will just work with emacs’s exporting, and use latex and css for templating and styling the document. Thus I rewrote my resume with the singular goal of having content purely on orgmode and the templating is taken care of by latex and css.

Resume

Here is my resume template I have created with orgmode.

 1#+TITLE: Resume
 2#+author: FirstName LastName
 3#+options: toc:nil num:nil title:nil author:nil timestamp:nil html-style:nil prop:nil
 4#+latex_compiler: xelatex
 5#+latex_class: article
 6#+latex_class_options: [letterpaper,10pt]
 7#+latex_header: \include{latexTemplate.tex}
 8#+html_head_extra: <link rel="stylesheet" type="text/css" href="style.css" />
 9
10
11* FirstName LastName
12#+attr_html: :class mytable meta :rules all :border nil :cellspacing nil :cellpadding nil :frame nil
13#+attr_latex: :align c|c|c|c
14| [[mailto:email@gmail.com][email@gmail.com]] | [[https://linkedin.com/in/username][linkedin.com/in/username]] | +91-9876543210 | City, Country |
15** Experience
16*** Company 1
17#+attr_html: :class mytable exp :rules nil :border nil :cellspacing nil :cellpadding nil :frame nil
18#+attr_latex: :align L{0.27\textwidth}C{0.40\textwidth}R{0.25\textwidth}
19| *Software Engineer* | *Company Inc.* | *Feb 2015 -- Present* |
20| Software Team       | City           |                       |
21- I'm doing something awesome here + Some bullets
22  + More info
23- I accomplished something here
24- Some more stuff I can proudly talk about
25*** Company 2
26#+attr_html: :class mytable exp :rules nil :border nil :cellspacing nil :cellpadding nil :frame nil
27#+attr_latex: :align L{0.27\textwidth}C{0.40\textwidth}R{0.25\textwidth}
28| *Software Engineer* | *Company Inc.* | *Feb 2005 -- Jan 2015* |
29| Software Team       | City           |                        |
30- I'm doing something awesome here + Some bullets
31  + More info
32- I accomplished something here
33- Some more stuff I can proudly talk about
34** Technical Skills
35- *Languages*  -- Python, SQL, Java, Scala, C++, everything else
36- *Frameworks* -- Airflow, Django, And the world
37- *Databases*  -- RDBMS, NOSql, Much more
38- *Dev tools*  -- Git & other stuff
39** Education
40#+attr_html: :class mytable education :rules nil :border nil :cellspacing nil :cellpadding nil :frame nil
41#+attr_latex: :align L{0.27\textwidth}C{0.40\textwidth}R{0.25\textwidth}
42| *Masters degree*   | University Name | Jul 1990 -- Jul 1992 |
43| *Bachelors degree* | University Name | Jul 1986 -- Jul 1990 |

With some styling using latex, we get the pdf as shown in this github repository. You can also see the html version of the resume with some css styling. This template is a slight combination of CareerCup resume and the Parker template.

Even the export to ascii text looks amazing.

Afterthought

Now when I think about it, I definitely feel it was worth it to separate out the content and the styling. Even though many templates are good and latex is awesome, I still feel that this simplifies the process of updating the content and not worry about the formatting inside the content. I understand that there is some level of formatting code that’s injected into the org format itself, but I figure that is necessary and ok compared to having everything mixed with a markup language.

I hope this is useful for anyone trying to use orgmode directly to create their resume.

If you would like to leave a comment, contact me via email.
Post 4/99 - part of 100DaystoOffload