Disclaimer: This repository (and the CV repository that uses it) was created as a fun side project and should not be taken too seriously. It is not intended to be a particularly serious or efficient way to manage a CV — it just happened to be an enjoyable thing to build. Expect rough edges.
This repository contains the template for my curriculum vitae, built with Typst – a modern, fast markup-based typesetting system designed as an alternative to LaTeX.
main.typ- Main CV documentcompile.sh- Build script to generate the CV PDFs for all localesinput/- User-provided input files (profile, locale-specific labels and content)input/profile.yaml- Personal details (name, contact, links)input/images/- Image files (e.g. profile picture)input/locales/- Locale-specific files, one subdirectory per locale (e.g.en/,de/)labels.yaml- UI label strings for the localecontent.yaml- CV content for the locale (work experience, education, etc.)
schemas/- JSON schemas for validating the input YAML filesfonts/- Fonts used in the CVicons/- Icons used in the CVdist/- Generated PDFs
To use this template for your own CV:
- Fill out your personal details in
input/profile.yaml. - Add at least one locale directory under
input/locales/(e.g.en/orde/), each containing alabels.yamland acontent.yaml. - Replace the profile picture at
input/images/profile-picture.jpgwith your own. - Run
./compile.shto generate the PDFs intodist/.
The latest versions of the CV template with example data are available in the Releases section in both German and English.
Triggered automatically when a tag matching v*.*.* is pushed. It compiles all CV PDFs via compile.sh and creates a
GitHub release with the generated PDFs attached and auto-generated release notes. The release workflow is built to
support immutable releases — you can enforce this by enabling
release immutability
in your repository settings.
Used in a repository created from this template to pull in upstream changes. It can be triggered manually via
workflow_dispatch, or you can uncomment the schedule block to run it automatically on a cron schedule. It opens a
pull request with any changes from this template repository, allowing you to review and merge them selectively.
Note: For this workflow to be able to open pull requests, you need to allow GitHub Actions to create and approve pull requests. This can be enabled under
https://github.com/<user>/<repository>/settings/actionsin the "Workflow permissions" section.
Triggered on every push and pull request. It validates all YAML files in input/ against the JSON schemas defined in
schemas/, ensuring that the input structure is correct.
This repository uses multiple licenses:
- The Typst template and build script are licensed under the MIT License. This includes:
main.typ,compile.sh, and other generic template/build files unless noted otherwise. - The personal CV content is not open source and is All Rights Reserved. This includes: All files containing CV text/content such as the image files, locale files, generated files, and other personal assets.
- Fonts, icons and other third-party assets are subject to their own upstream licenses and are not relicensed by this repository.