Resume Module for Hugo

Photo by Hal Gatewood on Unsplash After changing my resume format a bunch of times, I decided to separate the data from the presentation and use Hugo to render it. I’ve been using this for months and really prefer it to fiddling with a word processor. Not that fiddling with CSS is so much better, but it’s really nice to have my list of skills static while I fiddle with how they are presented. Not to mention, I can separately view the history of how my resume looks and the history of what it contains. Another big benefit is that, I can write the page templates in such a way that they dynamically handle a list growing, shrinking, or disappearing altogether, which can definitely be a hassle in a word processor when you least expect it.

Benefits of Hugo Resume over a word processor:

  • separation of data and presentation lets you focus on the task at hand
  • commit history shows changes to text separate from changes to display
  • if published on website, you can track resume views
  • consistent formatting by default

Last week, after finally moving all of the data out of the HTML, I realized this isn’t really specific to me anymore. So, I extracted it to a Hugo module to share with the world bakerag1/hugo-resume. It’s a very simple process and, just like in normal coding, going through the process benefited the end product. Hopefully some of you out there can get some use out of it. Admittedly, right now it’s pretty basic, and maybe some of you can help make it great. It’s already in a good place for people to fork it and put it to use, but as I went through the process, I realized this is very extensible.

There are two big use cases I can see that are not covered by the current implementation:

  1. customizing for job description
  2. optimizing for various ATS

These are two pieces of advice on job hunting that I haven’t spent much time on. I used JobLogr for a couple of months, which I think wrote really good cover letters for me, or I should say started really good cover letters for me. I also used it to optimize my resume for an unnamed ATS, maybe there are some aspects they all have in common. So, I’m fairly confident this format is at least decent on that front, but there are a lot of posts out there about how to optimize for specific systems, and this module could definitely be extended to manage that. As far as customizing for a job description, I don’t know how happy a static website would be about taking that input and doing work with it, but typically, where there’s a will there’s a way.1 An easier approach would be to simply allow multiple data files to track different needs, maybe even with some hierarchy. For example, I decided to try applying to some engineering manager positions, thinking maybe I’d be more attractive as a manager at my age (not that anyone would discriminate based on age!). Anyway, applying to manage people, you want to emphasize different aspects of your experience. So, to handle that, you can have your default data and then support overriding data for a specific instance of your resume. So, this could be just for the use case of entirely different jobs, or it could be for a specific company, etc.

Doing little optimizations to help me land a job, keeps me sane in what could be an extremely demoralizing situation. I look forward to seeing some forks and issues pop up on my repo!