Home

Awesome

A modern typst CV template

say thanks

A customizable resume/CV template focusing on clean and concise presentation, with a touch of color.

This template is available on typst Universe!

Requirements

To compile this project you need the following:

Compiling

Build the document once with

typst compile main.typ

Build the document whenever you save changes by running

typst watch main.typ

Usage

The following code provides a minimum working example:

#import "@preview/modern-resume": *

#show: modern-resume.with(
  author: "John Doe",
  job-title: "Data Scientist",
  bio: lorem(5),
  avatar: image("avatar.png"),
  contact-options: (
    email: link("mailto:john.doe@gmail.com")[john.doe\@gmail.com],
    mobile: "+43 1234 5678",
    location: "Austria",
    linkedin: link("https://www.linkedin.com/in/jdoe")[linkedin/jdoe],
    github: link("https://github.com/jdoe")[github.com/jdoe],
    website: link("https://jdoe.dev")[jdoe.dev],
  ),
)

== Education

#experience-edu(
  title: "Master's degree",
  subtitle: "University of Sciences",
  task-description: [
    - Short summary of the most important courses
    - Explanation of master thesis topic
  ],
  date-from: "10/2021",
  date-to: "07/2023",
)

// More content goes here

See main.typ for a full example that showcases all available elements.

Output examples

Example outputs for different color palettes:

Default colorsPink colors
Default colorsPink colors

Customization

The template allows you to make it yours by defining a custom color palette. By default, the template loads the configuration located at template/config.yaml:

theme:
    primary: "#313C4E"
    secondary: "#222A33"
    accentColor: "#449399"
    textPrimary: "#000000"
    textSecondary: "#7C7C7C"
    textTertiary: "#ffffff"

You can change the location of the configuration file by passing it to the compiler via

typst compile file.typ --input config=path/to/config.yaml

Elements

This section introduces the visual elements that are part of this template.

Pills

Import this element from the template module with pill.

pills

#pill("German (native)")
#pill("English (C1)")

pills filled

#pill("Teamwork", fill: true)
#pill("Critical thinking", fill: true)

Educational/work experience

Import the elements from the template module with experience-edu and experience-work respectively.

educational experience

#experience-edu(
  title: "Master's degree",
  subtitle: "University of Sciences",
  task-description: [
    - Short summary of the most important courses
    - Explanation of master thesis topic
  ],
  date-from: "10/2021",
  date-to: "07/2023",
)

work experience

#experience-work(
  title: "Full Stack Software Engineer",
  subtitle: [#link("https://www.google.com")[Some IT Company]],
  facility-description: "Company operating in sector XY",
  task-description: [
    - Short summary of your responsibilities
  ],
  date-from: "09/2018",
  date-to: "07/2021",
)

Project

Import this element from the template module with project.

project

#project(
  title: "Project 2",
  subtitle: "Data Visualization, Data Engineering",
  description: [
    - #lorem(20)
  ],
  date-from: "08/2022",
  date-to: "09/2022",
)

Development

Testing

Run the tests with

typst compile tests/test_lib.typ --root . --input config=tests/config.yaml

or with

nix flake check

Acknowledgements

This project would not be what it is without: