How do you write your resume?
Most people I know use MS Word and try to maintain the look of a template that they like. I used to use Word as well, and I have a template that I thought was reasonably pleasing to look at.
My old resumes are done in Word. Some lines are starting to get misaligned. With careful adjustment, this can become presentable.
However, there are some obvious problems with using a word processor to edit resumes, due to some inherent characteristics in a resume. Namely, resumes:
- Need a moderately complex but highly stable layout to look good. Resumes usually have section headings, job titles, time frame, location, company name, and job description, among other things. They are usually laid out using left, right, and center alignments, bold or italic fonts, and/or varying font sizes. But to look good, the entire resume should have a consistent format. Even if a date is offset by 0.5cm, the resume will start to look sloppy. You can do so by copying and pasting sections to try to preserve a consistent format, but when you edit the text, there is a good chance that the format will be thrown off, leaving you to struggle for ages to make the dates aligned on the right hand side again.
- Are constantly updated. You need to add new job items, new volunteer experiences, update the time frames on previous job descriptions, etc. to your resume. You may find yourself in the situation where the delicately designed resumes on Word that you built a few summers ago fall apart like a weathered antique that cannot be tempered with.
- Should be tailored. Every time you apply to a job, you should tailor a version of your resume. With Word, you may have to cut and paste items suitable for a specific job from any number of previous resumes, thus creating a mess of slightly different versions that gets more and more cumbersome to keep track.
So I wanted to switch to a system where I can achieve the above with maximal ease. I want to deal with formatting less, and focus on content more. I want to be able to update any section I want without worrying which word should be bolded and which word should have a 11pt font rather than 12pt. I also want to be able to “comment out” unwanted items for any particular job without removing it from my resume, so that while it won’t show up on the finished product, it is still easily accessible on the if I need it in the future. In fact, I want a “Master Resume” where everything I could put on a resume lives, and I just need to pick and choose which items to show up for a particular version and click print.
I explored two options: first is XML/HTML + CSS, which is an improvement over Word but still a bit messy on the content side with all the HTML tags, and the output is a webpage, not an easily printable copy.
So I settled on my old friend: LaTeX.
After a few iterations, I designed a new resume system that I feel very proud of.
1. Content backend. All of my job titles, descriptions, dates, etc, live on an easily readable spreadsheet, on which I can make edits effortlessly. And since this is LaTeX, I can comment out any job item by simply putting “%” in a left column, and that item will not show up in the finished product but it is still available for future use. In fact, I can create a different column of %’s for each version of resume, so that I take one glance and know which job items have been shown in which application.
The columns with content are interlaced with minimal LaTeX syntax, made possible by item 2 below.
For added awesomeness, do this part on Google Docs and edit your resume anywhere!
2. Centralized formatting. I pulled all the formatting up into a method, which means there is only 1 line of code determining which words should be on the left, which ones on the right, and which ones to be indented by how much space. If I want to make all the job titles italic instead of bolded, I only need to change one word. I built on top of the format template found here.
This part I don’t have to edit often, but if I wanted to change how each job item looks, I just need to edit this piece of code and the changes will apply to all resumes.
3. Integration. Now, I just need to copy the spreadsheet with the appropriate selector %’s, paste it onto LaTeX in the appropriate location, and click on generate PDF.
Copied and pasted from the spreadsheet. The coloring is automatic syntax coloring, to help visualize the code.
And then check out the final product for any final touches.
Finished product looks so awesome that I can’t wait to show it to people. Good start for any job application if you ask me.
I would be happy to share the code and spreadsheet I shared the TeX code and spreadsheet in this follow-up post, although this is a highly breakable system because there are countless ways to break it. You just need to miss one tag on the spreadsheet to be entirely stuck.
And of course there is the intimidation factor. All these code-looking things can make those with faint of heart hesitate.
Therefore, if there is market, I think it would be wise to make a more robust and less flexible software that allows the user to enter values in a spreadsheet, and spits out PDF files on the other end, and save everyone from the code.
You said there are lots of software like that?
Well, not exactly the way I made it, I’d bet 🙂