This project is meant to automatically build my resume and deploy it online as a PDF. You can use it as you want to build your own.
The idea is, that you define your resume in a structured format (.json) and a script (.gen_cv.py) generates a .tex file for you.
Afterward, you can build it, e.g. to PDF, as usual using latexmk.
An example is available at short.json, that contains four sections and three different styles. The available template is based on Jake's Resume.
The workflow pdf.yml automatically builds the PDF(s) and deploys them to github pages. An example is available at marcel.to/cv/short.pdf.
- Run the script to generate
.texfiles. Additionally, a build script is available atbuild_tex.sh.uv run gen_cv.py data/short.json templates/jakes_resume.tex.jinja2 build/short.tex # Or ./build_tex.sh data/ templates/jakes_resume.tex.jinja2 build/ - Build the
.pdffile. A build script is available atbuild_pdf.sh.latexmk -interaction=nonstopmode -file-line-error -pdf -halt-on-error -shell-escape -outdir=. short.tex # Or ./build_pdf.sh build/ pdf/
First, build the Docker container as localhost/cv:latest.
docker build --tag "localhost/cv:latest" .Next, build the .tex and .pdf files.
docker run --rm -it \
--mount type=bind,src=./data/,dst=/mnt/data/,ro \
--mount type=bind,src=./templates/jakes_resume.tex.jinja2,dst=/mnt/templates/jakes_resume.tex.jinja2,ro \
--mount type=bind,src=./tex/,dst=/mnt/tex/ \
--mount type=bind,src=./pdf/,dst=/mnt/pdf/ \
localhost/cv:latest \
sh -c "buildtex /mnt/data /mnt/templates/jakes_resume.tex.jinja2 /mnt/tex && buildpdf /mnt/tex /mnt/pdf"