Skip to content

API Reference

This page documents the public Typst functions exported by brilliant-CV. For metadata keys read from metadata.toml, see the Configuration Reference.

Entry Point Functions

cv()

Render a CV document with header, footer, and page layout applied.

Parameter Type Default Description
doc content The body content of the CV (typically the imported modules).
profile-photo image image("../template/assets/avatar.png") The profile photo to display in the header. Pass none to hide.
custom-icons dictionary (:) Custom icons to override or extend the default icon set.

letter()

Render a cover letter document with header, footer, and page layout applied.

Parameter Type Default Description
doc content The body content of the letter.
sender-address str | auto auto The sender's mailing address. Defaults to auto, which reads from metadata.personal.address. Pass a string or content to override.
recipient-name str "Company Name Here" The recipient's name or company displayed in the header.
recipient-address str "Company Address Here" The recipient's mailing address displayed in the header. Supports multiline content.
date str datetime.today().display() The date displayed in the letter header. Defaults to today's date.
subject str "Subject: Hey!" The subject line of the letter.
signature str | content "" (optional) path to a signature image, or content to display as signature.
address-style str "smallcaps" Address rendering style. "smallcaps" (default) or "normal".

CV Components

cv-section()

Add the title of a section.

The first letters characters of the title are highlighted in the accent color, while the rest is rendered in black. For non-Latin languages (zh, ja, ko, ru), highlighting is skipped entirely and the full title is shown in the accent color.

Parameter Type Default Description
title str The title of the section.
highlighted bool true Whether the first n letters will be highlighted in accent color.
letters int 3 The number of first letters of the title to highlight. Defaults to 3.
#block(width: 300pt)[
  #cv-section("Professional Experience")
]

cv-entry()

Add an entry to the CV.

When display_entry_society_first = true is set in metadata.toml, the society field appears bold/first and title appears as the subtitle. When false (the default), the title field is bold/first and society is the subtitle.

Parameter Type Default Description
title str "Title" The title of the entry (role or position).
society str "Society" The society of the entry (company, university, etc.).
date str | content "Date" The date(s) of the entry.
location str "Location" The location of the entry.
description array "" The description of the entry. It can be a string or an array of strings.
logo image "" The logo of the society. If empty, no logo will be displayed.
tags array () The tags of the entry.
#block(width: 300pt)[
  #cv-entry(
    title: [Data Analyst],
    society: [ABC Company],
    date: [2017 - 2020],
    location: [New York, NY],
    description: list(
      [Analyzed datasets with SQL and Python],
    ),
    tags: ("Python", "SQL"),
  )
]

cv-entry-start()

Add the start of an entry to the CV. Use this together with one or more cv-entry-continued calls to list multiple roles at the same company. The start renders the company name and location, while each continued entry adds a role with its own dates, description, and tags.

Requires display_entry_society_first = true in metadata.toml.

Parameter Type Default Description
society str "Society" The society of the entry (company, university, etc.).
location str "Location" The location of the entry.
logo image "" The logo of the society. If empty, no logo will be displayed.
#block(width: 300pt)[
  #cv-entry-start(
    society: [XYZ Corporation],
    location: [San Francisco, CA],
  )
  #cv-entry-continued(
    title: [Data Scientist],
    date: [2017 - 2020],
    description: list(
      [Analyzed large datasets with SQL and Python],
    ),
  )
]

cv-entry-continued()

Add a continued entry to the CV. Must be used after a cv-entry-start call to add an additional role at the same company. Multiple cv-entry-continued calls can follow a single cv-entry-start.

Requires display_entry_society_first = true in metadata.toml.

Parameter Type Default Description
title str "Title" The title of the entry (role or position).
date str | content "Date" The date(s) of the entry.
description str | array "" The description of the entry. Can be a string or an array of strings.
tags array () The tags of the entry.
color color (optional) override the accent color for this entry.

cv-skill()

Add a skill to the CV.

Parameter Type Default Description
type str "Type" The type of the skill. It is displayed on the left side.
info str | content "Info" The information about the skill. It is displayed on the right side. Items can be separated by #h-bar().
#block(width: 300pt)[
  #cv-skill(
    type: [Tech Stack],
    info: [Python #h-bar() SQL #h-bar() Tableau],
  )
]

cv-skill-with-level()

Add a skill with a level to the CV.

The level is rendered as a row of 5 circles: filled circles for the skill level and empty circles for the remainder (e.g., level 3 shows 3 filled and 2 empty circles).

Parameter Type Default Description
type str "Type" The type of the skill. It is displayed on the left side.
level int 3 The level of the skill (0--5). Rendered as filled/empty circles in the middle column.
info str | content "Info" The information about the skill. It is displayed on the right side.
#block(width: 300pt)[
  #cv-skill-with-level(
    type: [Languages],
    level: 4,
    info: [English #h-bar() French #h-bar() Chinese],
  )
]

cv-skill-tag()

Add a skill tag to the CV.

Parameter Type Default Description
skill str | content The skill to be displayed.
#block(width: 300pt)[
  #cv-skill-tag([AWS Certified])
  #cv-skill-tag([Python])
]

cv-honor()

Add a Honor to the CV.

Parameter Type Default Description
date str "1990" The date of the honor.
title str "Title" The title of the honor.
issuer str "" The issuer of the honor.
url str "" The URL of the honor.
location str "" The location of the honor.
#block(width: 300pt)[
  #cv-honor(
    date: [2022],
    title: [AWS Certified Security],
    issuer: [Amazon Web Services],
    location: [Online],
  )
]

cv-publication()

Add the publications to the CV by reading a bib file.

When ref-full is true, all entries in the bib file are displayed. When ref-full is false, only the entries whose keys appear in key-list are included, allowing selective publication lists.

Parameter Type Default Description
bib bibliography "" The bibliography object with the path to the bib file.
key-list list list() The list of bib keys to include when ref-full is false.
ref-style str "apa" The reference style of the publication list (e.g., "apa").
ref-full bool true Whether to show all entries (true) or only those in key-list (false).

Utility Functions

h-bar()

Renders a vertical bar separator (|) for use inside skill entries.

#import "@preview/brilliant-cv:3.2.0": h-bar

[Python #h-bar() SQL #h-bar() Tableau]