Resumeker is a tool for generating your own CV using data from a local database and T4 text templates. This allows you to manage your CV data separately from the formatting. For example, you could use the same data to generate LaTeX, HTML, or JSON. If you change the data (get a new job, etc.) you can just regenerate the output without dealing with formatting. It also supports localization of individual data points as well as outputting different levels of detail. Example: a summary résumé in English and a detailed CV in German can be generated from the same dataset.
I see a lot of possiblities for industrious users, such as automating form completion online at those pesky duplicate-your-cv-while-applying websites. Currently, I’ve just used it to generate my own CV in LaTeX->pdf. When I’ve made it a little more user-friendly, I’ll make it public.
Features
- A local relational database containing data for generating a CV
- T4 text templating to generate output (LaTeX, HTML, Json, etc)
- Selectable/configurable levels of detail and visibility in the output for individual data items
- Localization possible for all data items individually
Idea
After becoming unemployed on short notice (be sure to push for timely contract renewals, everyone), I had to update my CV in English and German, and potentially translate it to more languages. I also needed to trim down my very lengthy CV for certain job applications, but I wanted to keep the full details available for others. At the same time, everyone was telling me to just let AI rewrite and translate my CV, but the results were pretty pathetic to be honest. It could handle individual sections fairly well, but given a whole document it was doing crazy things like embellishing my skillset and experience to make it more “attractive”. I realize that says something about the AI’s training data, but I personally refuse to do that.
Realizing I had at least 4 formats of the same core data I would need to manage, I decided to build a tool to manage the data itself instead of the resulting documents. It also would give me a way to export my data into formats that could be more easily handled by AI for summarization and localization, like JSON and CSV.
Data Storage
The data is stored in a local SQLite database. The design has a high degree of normalization, which makes it easy to support localization in an arbitrary number of languages at runtime. Currently, only a single user’s CV exists in the database, but it would be trivial to add support for multiple users, such as for a cloud service or self-hosted service.
Software
The software is at a proof-of-concept stage, which basically means it’s a .NET console application running some queries and pushing the results to a T4 template engine. It does already support selecting different levels of detail, different languages, and running the output through different template files. It’s missing GUIs for both data entry as well as selecting/configuring the output options. I currently use a SQLite browser for data entry, which really isn’t ideal.
LaTeX
Since I didn’t attend university, I missed the whole ”LaTeX is the best thing ever for any kind of document!” craze. This will probably be an unpopular opinion, but I really found working with LaTeX to be a disaster for anything except extremely simple use cases. Everything else is a heap of “it doesn’t support that natively, so add a ton of external code to make it work” and “oh that doesn’t work since 2011” and “but this doesn’t work when used with that” kind of things. It’s extremely frustrating, but probably less so if you use it daily and keep up to date on its quirks. I would say that the majority of my effort was spent just trying to get my LaTeX template to work properly - meaning, align the text and bullet points properly across pages, and heck, even paginate properly. Overall opinion? Good luck. I’d just about rather automate creating MS Office documents.
TODO
- Minor improvements discovered along the way to a usable output CV
- GUI for selecting and configuring output options
- GUI for data entry
- Prepare example T4 output templates for the public
- Open-source it
- Offer a cloud service