Programming your résumé
Everyone has to do or update a résumé once in a while. I haven’t had the need to do it lots of times but even I with my little experience have had to choose what to put in a certain résumé. Depending on the job you are applying to, you need to highlight some aspects of your skills or experience which means you may end up with 3 or 4 résumés with somewhat different layout and maybe even some different information. If you are going to update them a year later you may have lost some of the files and some of your history, and then you have to update the 3 or 4 résumés. Isn’t there a better way to do that?
The last time I was starting to prepare my résumé and trying to create it in the best possible way I found The Europass Curriculum Vitae (CV) webpage which hosts an online application to fill your CV and export it as PDF or XML. I tried to see how the XML was designed and liked some parts of the idea but I found it could be much better to have the app yourself and be able to use the layout you prefer instead of being tied to their PDF generator.
So, I’m willing to write an application to write résumés. The idea is to store a database with all information and be able to generate a résumé file in a few clicks. The application will be written in Python, because it’s cross-platform, popular, pretty fast and I want to learn Python. The front-end, if there’s a graphical one, will be developed with Qt bindings for Python and the database will be either XML file or SQLite database. The generated résumés should be either LaTeX or PDF or OpenDocument… I don’t know yet, the more the merrier.
So, the workflow is the following:
- Create a Database
- Store your information
- Select which information will be shown in your résumé (may be saved so you don’t have to fill it again)
- Select the layout of your résumé/CV
- Select the format your résumé will be exported to
- Generate the final résumé
I’m thinking about using a tag system for every piece of information to decide if it should be the highlighted or not. For example, you use a technical tag on your computer skills, if you select the technical for emphasis in the 3rd stage of the workflow then your technical skills will be highlighted in the way the layout uses to this highlighting (positioning it at the top, using bolds, italics…). All tags should be user-defined and the user should be able to create and share its own layouts.
Another thing I have to think about is language support. I have my 2 résumés (technical and academical) both in English and in Spanish and I want to support users to have résumés in as many languages as they need.
I want to inspire myself in LinkedIn’s interface and the Europass people (link above). If you have any suggestions please post them in a comment. I’ll keep you updated about my progress in the design and implementation of the project.