Building Better Resumes Using Python (and Good Design)

Recently, people have been asking me how I created my resume. You already read about my princicples of resume design in Part 1, so let’s get on to building it!

For the actual document construction, you have lots of choices:

  • InDesign: Proprietary, no ‘scripting’, anything is possible
  • Google Docs: Look great! For example, look at: this resume, (made using “Create New>From Template”, then searching for Resume).
  • LaTeX: Painful on OSX, very good rendering engine, can be fussy.
  • Python Restructured Text (Docutils).

What Rocks About Restructured Text

  • Simple markup syntax.
  • Full power of css.
  • Source control (i.e., they are plain text, and can be used to construct documents).
  • scriptable:
    rst2html.py --link-stylesheet --no-doc-title --stylesheet style.css resume.txt > resume.html

Nits and Known Problems (or Why Not To Use RST)

  • css isn’t perfect, and is hard to get right.
  • No hyphenation / layout (which InDesign and LaTeX get right).
  • Need a ‘smaller’ pdf (for CodeEval.com, for example)? Use:
    Preview > Save as... > Quart Filter | Reduce File Size
  • Webkit does poorly with the page and other ‘css -> print’ media formatting directives.
    • position: fixed is supposed to print on every page (which can be exploited to make headers), but this doesn’t really seem to work on either Safari or Chrome.
    • the @page directives in http://www.alistapart.com/articles/boom don’t seem to work in Safari.
  • Automating the makeit bits is a little thin/hard/impossible. Maybe I just don’t understand AppleScript, osascript, and Automator, but getting a workflow of ‘open it in Safari, print to PDF, Preview though Quartz Filter’ is beyond me.
  • Chrome issue: using ‘Save as PDF’ on OSX from Chrome doesn’t link images (at all). Save the following to a file, and the resulting pdf won’t link. This works fine in Safari.
    <a href="http://google.com">
    <img src="http://pystar.org/_static/pystar_flaming_160_150px.png">
    </a>
  • Chrome: ‘https’ links don’t seem to show up in Save as PDF
  • Chrome: much fussier on borders, made extra (blank) pages.

(Please educate me on any of these, if I have them wrong!)

Introducing rst2resume – Resumes using Restructured Text (rst)

  1. Install Python, understand how to use the cli. On OSX, this is built in.
  2. git clone git@github.com:gregglind/rst2resume.git
  3. pip install docutils
  4. copy files from the example directory, season to taste
  5. edit resume.html as you see fit. Main things:
    1. add .. class:: pagebreak before sections that need a pdf page break
    2. add/remove extra classes if you need more styles
  6. add/remove styles in style.css as you like
  7. On OSX, I use the makeit script. Look at it if you want to see the actual commands. They should be installed by default.
About these ads

5 Comments on “Building Better Resumes Using Python (and Good Design)”

  1. […] Building Better Resumes Using Python (and Good Design) « write-only by Gregg Lind Says: August 10, 2011 at 6:33 pm […]

  2. Yes creativity can be done and taken from anywhere, i am using scribd and its quite easy to make quality cvs.

    Resume Format

  3. Thanks for the link to DocumentSnap. I’m actually in the process of trying to learn Python, so this is really cool. Nice job on the resume.

  4. I blog often and I really thank you for your information. Your article has truly peaked my interest. I will book mark your blog and keep checking for new details about once a week. I opted in for your RSS feed as well.

  5. InDesign is scriptable, but more importantly, it takes XML and XSLT. Its structured tools are underrated. Not great, but definitely underrated.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.