After ending up with countless PDFs of my resume and never being sure of which one is the final version. I decided to start versioning it with the tool I already knew, Git. After finding a good enough LaTeX template, a
git init, and some commits later, I had a good enough resume template with a working Github Action that would publish the generated PDF as a release artifact on every tag. I also added generated PDFs as build artifacts for every commit to preview changes without having access to a working LaTeX env, so that one may be able to make edits from their phone.
I simply edit the
tex file using the Web Editor and commit my changes. The "Preview" workflow will build and generate a pdf that I can preview using the build artifact.
Once I'm satisfied with the edits, I will create a new release, this will trigger the "Release" pipeline. It will build and publish the pdf as a release artifact.
The release is what allows me to always have access to the latest version of my resume at the
/releases/latest/download/Preview.pdf path of my repository.
More than that, I can preview it directly in my browser using Google Docs by using
https://docs.google.com/viewer?url=https://github.com/<username>/<repo>/releases/latest/download/Preview.pdf. I can create a short url of this that I can give to anyone knowing it'll always point to the latest resume without having to worry about updating it.
When I first realized I could basically code my resume in LaTeX, it finally stopped becoming something I dreaded doing and became something I actively wanted to improve. Adding CI/CD to it was the next natural step.
This is a Github Template Project with a LaTeX resume template and Github Workflows. You may use this template or add your own LaTeX files to build those.
Automatically built resume with LaTeX. The structure for sections is defined in
resume.cls file. While the content is in
Based on the CV For Freshers template on Overleaf.
Blog Post: CI/CD for your Resume
- Begin Latex
- Latex Advice
- Useful Packages
- Overleaf: Online Editor
- Original Template
- Automatic builds with Github Actions on every push and automatic releases on publishing tags
Using as a template
Use the green "Use this template" button to create a new repository with this repository's files as a template. There are two files only:
resume.cls: Defines the structure and all the custom commands. No need to modify this.
resume.tex: This is the file where all your content for the resume goes. Your name, email, links, etc. are defined through commands. Feel free to move things around and change them.
- My Resume that is using a similar workflow, but with some added integrations to sync my blog with the latest version of my resume: resume