I’m again in this time of my life where I’m looking for a new long term
project to work on. Because optimization is my favorite way of
procrastination, instead of just making a Curriculum Vitae (CV) for job
applications, I decided that I need to implement an org-mode export
backend. This backend will let me keep my CV in org-mode
and then export
it to \(\LaTeX\) or markdown for my website. This exporter now lives in
gitlab as org-cv
and the documentation is here
.
I work with org-mode, because it is amazing, because it already provides
exporters and its syntax allows to store information beyond the plain
prose. That is by the way the key, an item inside a CV includes information
beyond what I have done, but where? when? and with whom? Such information
can be encoded in a property drawer
, and the exporter’s job is to
understand them so that they can be displayed later on in a pertinent
location. With this in mind I’ll describe a job entry like this:
1* Employement
2** One job
3:PROPERTIES:
4:CV_ENV: cventry
5:FROM: <2014-09-01>
6:TO: <2017-12-07>
7:LOCATION: a city, a country
8:EMPLOYER: The employer
9:END:
10- I think about awesome stuff to do.
11- I do the awesome stuff I think of.
12- I write about awesome stuff I do.
I use org-mode's
tree hierarchy: a heading about Employement
and then
the subtrees are the job positions taken. The :CV_ENV: cventry
is the
key-value
pair that makes this the special CV item, the other ones are
self explanatory and provide the context information of the
entry/job. Finally, I can use org-mode to write about the work done.
In a CV, its header includes a bunch of contact information, thus many new
keywords are recognized by the exported to this purpose. The example below
shows their availability and use.
1#+TITLE: My dream job
2#+AUTHOR: John Doe
3
4#+ADDRESS: My Awesome palace
5#+ADDRESS: Fantastic city -- Planet Earth
6#+MOBILE: (+9) 87654321
7#+HOMEPAGE: example.com
8#+GITHUB: John-D
9#+GITLAB: John-D
10#+LINKEDIN: John-Doe
11#+PHOTO: smile.png
After you have written your information you can rely on my package org-cv
to generate the \(\LaTeX\) file for your pdf. I currently support
moderncv
and altacv
templates. I also wrote an extension for ox-hugo
so that I can prepare a markdown file, which HUGO will understand to
generate my Online CV which.