My personal CV built with Typst, a modern typesetting system.
| File | Description |
|---|---|
cv.typ |
Template file (Typst markup) |
cv-data.yml |
CV content (YAML data) |
Mateo_Maccarone_CV.pdf |
Compiled PDF (auto-generated) |
This CV separates content from presentation:
cv-data.yml- Contains all the text content (personal info, experience, skills, etc.)cv.typ- Contains the layout and styling logic
To update your CV content, edit cv-data.yml. To change the design, edit cv.typ.
document: # PDF metadata
personal: # Name, title, contact info, links
summary: # Professional summary paragraph
skills: # Technical skills by category
experience: # Professional experience
additional_experience: # Other relevant experience
education: # Academic background
open_source_interests: # Hobbies and interests
languages: # Language proficiencies# Install Typst (using cargo)
cargo install typst-cli
# Or on macOS
brew install typst
# Or on Windows (winget)
winget install --id Typst.Typst
# Compile the CV
typst compile cv.typ- Go to typst.app
- Create a new project
- Upload both
cv.typandcv-data.yml - The PDF will render automatically
- Install the Typst Preview extension
- Open
cv.typ - Press
Ctrl+K Vto preview
This repository includes a GitHub Action that automatically compiles cv.typ to cv.pdf whenever changes are pushed to the main branch.
How it works:
- Push changes to
cv.typorcv-data.yml - GitHub Actions runs
typst compile cv.typ cv.pdf - The updated PDF is committed back to the repository
Note: Make sure your repository has "Read and write permissions" enabled in:
Settings β Actions β General β Workflow permissions
Edit the accent colors in cv.typ:
#let accent = rgb("#2563eb") // Section titles & lines
#let muted = rgb("#64748b") // Dates & subtitleModify the font in the document setup:
#set text(
font: "New Computer Modern", // Change this
size: 10pt,
)Popular alternatives: "IBM Plex Sans", "Source Sans Pro", "Fira Sans"
#set page(
paper: "a4",
margin: (x: 2cm, y: 1cm), // Horizontal and vertical margins
)- Add the data to
cv-data.yml - Add the rendering logic to
cv.typusing the existing patterns
Feel free to use this template for your own CV.