A clean, two-column CV built with Typst β featuring a slim sidebar for profile picture, contact details, and skills, alongside a wider main section for experience and education.
The latest compiled PDF is available as a GitHub Release.
Note
This link will always reference the latest release of your CV on GitHub.
Direct download: https://github.com/Kanerix/typst-cv/releases/latest/download/cv.pdf
typst-cv/
βββ src/
β βββ cv.typ # Main CV layout
β βββ helpers.typ # Shared functions & colour palette
β βββ jobs.typ # Work experience entries
β βββ education.typ # Education entries
β βββ summary.typ # Profile summary
β βββ kasper.jpg # Profile picture
βββ Poppins/ # Poppins font family (.ttf files)
βββ .github/
β βββ workflows/
β βββ pipeline.yaml # CI: compile PDF & create GitHub release
βββ VERSION # Current release version
βββ LICENSE # Apache 2.0
βββ README.md
- Typst (v0.12+)
typst compile --font-path Poppins src/cv.typ cv.pdfOr use watch mode for live reloading while editing:
typst watch --font-path Poppins src/cv.typ cv.pdfThe --font-path Poppins flag tells Typst where to find the bundled Poppins font files.
The CV content is split into separate files under src/ for easy editing:
| File | Contents |
|---|---|
cv.typ |
Page layout, name, and sidebar |
summary.typ |
Profile summary paragraph |
jobs.typ |
Work experience entries |
education.typ |
Education entries |
helpers.typ |
Shared helper functions & colours |
To add a new job or education entry, use the entry function in the respective file:
#entry(
title: "Job Title",
subtitle: "Company Name",
date: "Jan 2023 β Present",
description: [
- Accomplishment one.
- Accomplishment two.
],
)The colour palette is defined at the top of src/helpers.typ:
#let bg = rgb("#fff8f2") // Page background
#let fg = rgb("#333333") // Main text colour
#let muted = rgb("#777777") // Subtle/secondary text
#let primary = rgb("#d7b299") // Sidebar & headingsThe profile picture is displayed in a circular clip in the sidebar. To adjust the zoom and position, modify the place call in src/cv.typ:
- Zoom in/out β increase or decrease the
widthvalue.
A GitHub Actions workflow (.github/workflows/pipeline.yaml) automatically:
- Triggers when the
VERSIONfile is changed (or via manual dispatch). - Compiles the CV to PDF using Typst.
- Creates a GitHub Release tagged with the version from
VERSION, with the PDF attached.
To create a new release, simply bump the version in VERSION and push:
echo "1.0.0" > VERSION
git add VERSION
git commit -m "Release v1.0.0"
git pushThis project is licensed under the Apache License 2.0.