A CV/resume template for Typst with extensive customization options.
Installation
#import "@preview/rendercv:0.1.0": *
Quick Start
#import "@preview/rendercv:0.1.0": *
#show: rendercv.with(
name: "John Doe",
)
= John Doe
#headline([Software Engineer])
#connections(
[San Francisco, CA],
[#link("mailto:john@example.com")[john\@example.com]],
[#link("https://github.com/johndoe")[github.com/johndoe]],
)
== Education
#education-entry(
[
*University Name*, BS in Computer Science -- City, State
],
[
Sept 2018 May 2022
],
main-column-second-row: [
- GPA: 3.9/4.0
- Honors: Dean's List
],
)
== Experience
#regular-entry(
[
*Software Engineer*, Company Name -- City, State
],
[
June 2022 present
],
main-column-second-row: [
- Developed and deployed scalable web applications
- Collaborated with cross-functional teams
- Improved system performance by 40%
],
)
== Skills
*Programming:* Python, JavaScript, TypeScript, Rust
*Technologies:* React, Node.js, PostgreSQL, Docker
Components
Header Components
headline(content) - Display a headline below your name:
#headline([Data Scientist])
connections(...items) - Display contact information with automatic line wrapping:
#connections(
[New York, NY],
[#link("mailto:jane@example.com")[jane\@example.com]],
[#link("https://linkedin.com/in/jane")[LinkedIn]],
)
connection-with-icon(icon-name, content) - Add FontAwesome icons to connections:
#connection-with-icon("location-dot")[Boston, MA]
#connection-with-icon("envelope")[email\@example.com]
#connection-with-icon("github")[github.com/username]
Entry Components
regular-entry(main-column, date-and-location-column, main-column-second-row: none) - Standard entry for experience, projects, publications:
#regular-entry(
[*Senior Developer*, Tech Corp -- Remote],
[Jan 2023 present],
main-column-second-row: [
- Led team of 5 engineers
- Architected microservices platform
],
)
education-entry(main-column, date-and-location-column, degree-column: none, main-column-second-row: none) - Entry for education with optional degree column:
#education-entry(
[*MIT*, PhD in Computer Science -- Cambridge, MA],
[Sept 2020 May 2024],
main-column-second-row: [
- Thesis: Advanced Neural Network Optimization
],
)
content-area(content) - Wrap text content with proper formatting:
== Summary
#content-area[
A software engineer with 5+ years of experience building
scalable web applications.
]
summary(content) - Add a summary block within an entry:
#regular-entry(
[*Open Source Project*],
[2023 present],
main-column-second-row: [
#summary[High-performance data processing library]
- 10,000+ GitHub stars
],
)
reversed-numbered-entries(content) - Create reverse-numbered lists:
== Invited Talks
#reversed-numbered-entries[
+ Talk Title 3 Conference 2024
+ Talk Title 2 Conference 2023
+ Talk Title 1 Conference 2022
]
link(dest, body, icon: none, if-underline: none, if-color: none) - Enhanced link with customizable styling:
#link("https://example.com", icon: false)[Example]
#link("https://example.com", if-underline: false)[Example]
Customization
The template is highly customizable through parameters passed to rendercv.with():
Page Settings
#show: rendercv.with(
page-size: "us-letter", // or "a4", "us-legal", etc.
page-top-margin: 0.7in,
page-bottom-margin: 0.7in,
page-left-margin: 0.7in,
page-right-margin: 0.7in,
page-show-footer: true,
page-show-top-note: true,
footer: context {
"Page " + str(here().page()) + " of " + str(counter(page).final().first())
},
top-note: "Last updated in " + datetime.today().display(),
)
Colors
#show: rendercv.with(
colors-body: rgb(0, 0, 0),
colors-name: rgb(0, 79, 144),
colors-headline: rgb(0, 79, 144),
colors-connections: rgb(0, 79, 144),
colors-section-titles: rgb(0, 79, 144),
colors-links: rgb(0, 79, 144),
colors-footer: rgb(128, 128, 128),
colors-top-note: rgb(128, 128, 128),
)
Typography
#show: rendercv.with(
typography-font-family-body: "Raleway",
typography-font-family-name: "Raleway",
typography-font-family-headline: "Raleway",
typography-font-family-connections: "Raleway",
typography-font-family-section-titles: "Raleway",
typography-font-size-body: 10pt,
typography-font-size-name: 30pt,
typography-font-size-headline: 10pt,
typography-font-size-connections: 10pt,
typography-font-size-section-titles: 1.4em,
typography-line-spacing: 0.6em,
typography-alignment: "justified", // or "left", "justified-with-no-hyphenation"
typography-date-and-location-column-alignment: right,
typography-bold-name: false,
typography-bold-headline: false,
typography-bold-connections: false,
typography-bold-section-titles: false,
typography-small-caps-name: false,
typography-small-caps-headline: false,
typography-small-caps-connections: false,
typography-small-caps-section-titles: false,
)
Header
#show: rendercv.with(
header-alignment: left, // or center, right
header-space-below-name: 0.7cm,
header-space-below-headline: 0.7cm,
header-space-below-connections: 0.7cm,
header-connections-separator: "",
header-connections-space-between-connections: 0.5cm,
header-connections-show-icons: true,
)
Section Titles
#show: rendercv.with(
section-titles-type: "with_full_line", // or "with_partial_line", "moderncv"
section-titles-line-thickness: 0.5pt,
section-titles-space-above: 0.5cm,
section-titles-space-below: 0.3cm,
)
Sections & Entries
#show: rendercv.with(
sections-allow-page-break: true,
sections-space-between-text-based-entries: 0.3em,
sections-space-between-regular-entries: 1.2em,
entries-date-and-location-width: 4.15cm,
entries-side-space: 0.2cm,
entries-space-between-columns: 0.1cm,
entries-allow-page-break: false,
entries-summary-space-left: 0cm,
entries-summary-space-above: 0.12cm,
entries-highlights-bullet: "■",
entries-highlights-nested-bullet: "▪",
entries-highlights-space-left: 0cm,
entries-highlights-space-above: 0.12cm,
entries-highlights-space-between-items: 0.12cm,
entries-highlights-space-between-bullet-and-text: 0.5em,
)
Links
#show: rendercv.with(
links-underline: false,
links-show-external-link-icon: false,
)
Examples
The examples directory contains several complete CV examples demonstrating different configurations:
classic.typ- Clean layout with full-width section linesmoderncv.typ- Left-aligned dates with decorative linesengineeringresumes.typ- Engineering-focused layoutengineeringclassic.typ- Classic engineering stylesb2nov.typ- Minimalist design
Each example shows different parameter combinations to achieve various looks.
License
MIT License