rendercv

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Quick Start

快速开始

Available themes:
classic
,
harvard
,
engineeringresumes
,
engineeringclassic
,
sb2nov
,
moderncv
Available locales:
english
,
arabic
,
danish
,
dutch
,
french
,
german
,
hebrew
,
hindi
,
hungarian
,
indonesian
,
italian
,
japanese
,
korean
,
mandarin_chinese
,
norwegian_bokmål
,
norwegian_nynorsk
,
persian
,
portuguese
,
russian
,
spanish
,
turkish
,
vietnamese
These are starting points — every aspect of the design and locale can be fully customized in the YAML file.
bash
undefined
可用主题:
classic
,
harvard
,
engineeringresumes
,
engineeringclassic
,
sb2nov
,
moderncv
可用语言区域:
english
,
arabic
,
danish
,
dutch
,
french
,
german
,
hebrew
,
hindi
,
hungarian
,
indonesian
,
italian
,
japanese
,
korean
,
mandarin_chinese
,
norwegian_bokmål
,
norwegian_nynorsk
,
persian
,
portuguese
,
russian
,
spanish
,
turkish
,
vietnamese
这些是初始配置——设计和语言区域的所有方面都可以在YAML文件中完全自定义。
bash
undefined

Install RenderCV

Install RenderCV

uv tool install "rendercv[full]"
uv tool install "rendercv[full]"

Create a starter YAML file (you can specify theme and locale)

Create a starter YAML file (you can specify theme and locale)

rendercv new "John Doe" rendercv new "John Doe" --theme moderncv --locale german
rendercv new "John Doe" rendercv new "John Doe" --theme moderncv --locale german

Render to PDF (also generates Typst, Markdown, HTML, PNG by default)

Render to PDF (also generates Typst, Markdown, HTML, PNG by default)

rendercv render John_Doe_CV.yaml
rendercv render John_Doe_CV.yaml

Watch mode: auto-re-render whenever the YAML file changes

Watch mode: auto-re-render whenever the YAML file changes

rendercv render John_Doe_CV.yaml --watch
rendercv render John_Doe_CV.yaml --watch

Render only PNG (useful for previewing or checking page count)

Render only PNG (useful for previewing or checking page count)

rendercv render John_Doe_CV.yaml --dont-generate-pdf --dont-generate-html --dont-generate-markdown
rendercv render John_Doe_CV.yaml --dont-generate-pdf --dont-generate-html --dont-generate-markdown

Override fields from the CLI without editing the YAML

Override fields from the CLI without editing the YAML

rendercv render cv.yaml --cv.name "Jane Doe" --design.theme "moderncv"
undefined
rendercv render cv.yaml --cv.name "Jane Doe" --design.theme "moderncv"
undefined

YAML Structure

YAML结构

A RenderCV input has four sections. Only
cv
is required — the others have sensible defaults.
yaml
cv:         # Your content: name, contact info, and all sections
design:     # Visual styling: theme, colors, fonts, margins, spacing, layouts
locale:     # Language: month names, phrases, translations
settings:   # Behavior: output paths, bold keywords, current date
Single file vs. separate files: All four sections can live in one YAML file, or each can be a separate file. Separate files are useful for reusing the same design/locale across multiple CVs:
bash
undefined
RenderCV的输入包含四个部分。仅
cv
部分是必填项——其他部分都有合理的默认值。
yaml
cv:         # Your content: name, contact info, and all sections
design:     # Visual styling: theme, colors, fonts, margins, spacing, layouts
locale:     # Language: month names, phrases, translations
settings:   # Behavior: output paths, bold keywords, current date
单文件 vs 分离文件: 四个部分可以全部放在一个YAML文件中,也可以每个部分单独存为一个文件。分离文件便于在多份简历中复用相同的设计/语言区域配置:
bash
undefined

Single self-contained file (all sections in one file)

单文件(所有部分在一个文件中)

rendercv render John_Doe_CV.yaml
rendercv render John_Doe_CV.yaml

Separate files: CV content + design + locale loaded independently

分离文件:简历内容 + 设计 + 语言区域独立加载

rendercv render cv.yaml --design design.yaml --locale-catalog locale.yaml --settings settings.yaml

When using separate files, each file contains only its section (e.g., `design.yaml` has `design:` as the top-level key). CLI-loaded files override values in the main YAML file.

The YAML maps directly to Pydantic models. The complete type-safe schema is provided below so you can understand every field, its type, and its default value.
rendercv render cv.yaml --design design.yaml --locale-catalog locale.yaml --settings settings.yaml

使用分离文件时,每个文件仅包含对应的部分(例如`design.yaml`的顶层键为`design:`)。通过CLI加载的文件会覆盖主YAML文件中的对应值。

YAML结构直接映射到Pydantic模型。下方提供了完整的类型安全架构,帮助你理解每个字段、字段类型及其默认值。

Pydantic Schema

Pydantic架构

The YAML input is validated against these Pydantic models.
YAML输入会根据这些Pydantic模型进行验证。

Top-Level Model

顶层模型

python
class RenderCVModel(BaseModelWithoutExtraKeys):
    cv: Cv = pydantic.Field(default_factory=Cv, title='CV', description='The content of the CV.')
    design: Design = pydantic.Field(default_factory=ClassicTheme, title='Design')
    locale: Locale = pydantic.Field(default_factory=EnglishLocale, title='Locale Catalog')
    settings: Settings = pydantic.Field(default_factory=Settings, title='RenderCV Settings', description='The settings of the RenderCV.')
python
class RenderCVModel(BaseModelWithoutExtraKeys):
    cv: Cv = pydantic.Field(default_factory=Cv, title='CV', description='The content of the CV.')
    design: Design = pydantic.Field(default_factory=ClassicTheme, title='Design')
    locale: Locale = pydantic.Field(default_factory=EnglishLocale, title='Locale Catalog')
    settings: Settings = pydantic.Field(default_factory=Settings, title='RenderCV Settings', description='The settings of the RenderCV.')

CV Content (
cv
)

简历内容(
cv

The
cv.sections
field is a dictionary where keys are section titles (any string you want) and values are lists of entries. Each section contains entries of the same type.
python
class Cv(BaseModelWithoutExtraKeys):
    name: str | None = pydantic.Field(default=None, examples=['John Doe', 'Jane Smith'])
    headline: str | None = pydantic.Field(default=None, examples=['Software Engineer', 'Data Scientist', 'Product Manager'])
    location: str | None = pydantic.Field(default=None, examples=['New York, NY', 'London, UK', 'Istanbul, Türkiye'])
    email: pydantic.EmailStr | list[pydantic.EmailStr] | None = pydantic.Field(default=None, examples=['john.doe@example.com', ['john.doe.1@example.com', 'john.doe.2@example.com']])
    photo: ExistingPathRelativeToInput | pydantic.HttpUrl | None = pydantic.Field(default=None, union_mode='left_to_right', examples=['photo.jpg', 'images/profile.png', 'https://example.com/photo.jpg'])
    phone: pydantic_phone_numbers.PhoneNumber | list[pydantic_phone_numbers.PhoneNumber] | None = pydantic.Field(default=None, examples=['+1-234-567-8900', ['+1-234-567-8900', '+44 20 1234 5678']])
    website: pydantic.HttpUrl | list[pydantic.HttpUrl] | None = pydantic.Field(default=None, examples=['https://johndoe.com', ['https://johndoe.com', 'https://www.janesmith.dev']])
    social_networks: list[SocialNetwork] | None = pydantic.Field(default=None)
    custom_connections: list[CustomConnection] | None = pydantic.Field(default=None, examples=[[{'placeholder': 'Book a call', 'url': 'https://cal.com/johndoe', 'fontawesome_icon': 'calendar-days'}]])
    sections: dict[str, Section] | None = pydantic.Field(default=None, examples=[{'Experience': '...', 'Education': '...', 'Projects': '...', 'Skills': '...'}])
python
type SocialNetworkName = Literal['LinkedIn', 'GitHub', 'GitLab', 'IMDB', 'Instagram', 'ORCID', 'Mastodon', 'StackOverflow', 'ResearchGate', 'YouTube', 'Google Scholar', 'Telegram', 'WhatsApp', 'Leetcode', 'X', 'Bluesky', 'Reddit']

available_social_networks = get_args(SocialNetworkName.__value__)

class SocialNetwork(BaseModelWithoutExtraKeys):
    network: SocialNetworkName = pydantic.Field()
    username: str = pydantic.Field(examples=['john_doe', '@johndoe@mastodon.social', '12345/john-doe'])
python
class CustomConnection(BaseModelWithoutExtraKeys):
    fontawesome_icon: str
    placeholder: str
    url: pydantic.HttpUrl | None
cv.sections
字段是一个字典,键为章节标题(可自定义任意字符串),值为条目列表。每个章节必须使用单一条目类型——同一章节内不能混合不同类型的条目。条目类型会根据每个条目中的字段自动检测。
python
class Cv(BaseModelWithoutExtraKeys):
    name: str | None = pydantic.Field(default=None, examples=['John Doe', 'Jane Smith'])
    headline: str | None = pydantic.Field(default=None, examples=['Software Engineer', 'Data Scientist', 'Product Manager'])
    location: str | None = pydantic.Field(default=None, examples=['New York, NY', 'London, UK', 'Istanbul, Türkiye'])
    email: pydantic.EmailStr | list[pydantic.EmailStr] | None = pydantic.Field(default=None, examples=['john.doe@example.com', ['john.doe.1@example.com', 'john.doe.2@example.com']])
    photo: ExistingPathRelativeToInput | pydantic.HttpUrl | None = pydantic.Field(default=None, union_mode='left_to_right', examples=['photo.jpg', 'images/profile.png', 'https://example.com/photo.jpg'])
    phone: pydantic_phone_numbers.PhoneNumber | list[pydantic_phone_numbers.PhoneNumber] | None = pydantic.Field(default=None, examples=['+1-234-567-8900', ['+1-234-567-8900', '+44 20 1234 5678']])
    website: pydantic.HttpUrl | list[pydantic.HttpUrl] | None = pydantic.Field(default=None, examples=['https://johndoe.com', ['https://johndoe.com', 'https://www.janesmith.dev']])
    social_networks: list[SocialNetwork] | None = pydantic.Field(default=None)
    custom_connections: list[CustomConnection] | None = pydantic.Field(default=None, examples=[[{'placeholder': 'Book a call', 'url': 'https://cal.com/johndoe', 'fontawesome_icon': 'calendar-days'}]])
    sections: dict[str, Section] | None = pydantic.Field(default=None, examples=[{'Experience': '...', 'Education': '...', 'Projects': '...', 'Skills': '...'}])
python
type SocialNetworkName = Literal['LinkedIn', 'GitHub', 'GitLab', 'IMDB', 'Instagram', 'ORCID', 'Mastodon', 'StackOverflow', 'ResearchGate', 'YouTube', 'Google Scholar', 'Telegram', 'WhatsApp', 'Leetcode', 'X', 'Bluesky', 'Reddit']

available_social_networks = get_args(SocialNetworkName.__value__)

class SocialNetwork(BaseModelWithoutExtraKeys):
    network: SocialNetworkName = pydantic.Field()
    username: str = pydantic.Field(examples=['john_doe', '@johndoe@mastodon.social', '12345/john-doe'])
python
class CustomConnection(BaseModelWithoutExtraKeys):
    fontawesome_icon: str
    placeholder: str
    url: pydantic.HttpUrl | None

Entry Types

条目类型

cv.sections
is a dictionary: keys are section titles (any string), values are lists of entries. Each section must use a single entry type — you cannot mix different entry types within the same section. The entry type is auto-detected from the fields present in each entry.
Shared fields — these are available on entry types that support dates and complex fields (ExperienceEntry, EducationEntry, NormalEntry, PublicationEntry):
FieldTypeDefaultNotes
date
str | int | null
null
Free-form:
"2020-09"
,
"Fall 2023"
, etc. Mutually exclusive with
start_date
/
end_date
.
start_date
str | int | null
null
Strict format: YYYY-MM-DD, YYYY-MM, or YYYY.
end_date
str | int | "present" | null
null
Same formats as
start_date
, or
"present"
. Omitting defaults to
"present"
when
start_date
is set.
location
str | null
null
summary
str | null
null
highlights
list[str] | null
null
Bullet points.
9 entry types:
Entry TypeRequired FieldsOptional FieldsTypical Use
ExperienceEntry
company
,
position
all shared fieldsJobs, positions
EducationEntry
institution
,
area
degree
+ all shared fields
Degrees, schools
PublicationEntry
title
,
authors
doi
,
url
,
journal
,
summary
,
date
Papers, articles
NormalEntry
name
all shared fieldsProjects, awards
OneLineEntry
label
,
details
Skills, languages
BulletEntry
bullet
Simple bullet points
NumberedEntry
number
Numbered list items
ReversedNumberedEntry
reversed_number
Reverse-numbered items (5, 4, 3...)
TextEntry(plain string)Free-form paragraphs
Example:
yaml
cv:
  sections:
    experience:          # list of ExperienceEntry (detected by company + position)
      - company: Google
        position: Engineer
        start_date: 2020-01
        highlights:
          - Did something impactful
    skills:              # list of OneLineEntry (detected by label + details)
      - label: Languages
        details: Python, C++
    about_me:            # list of TextEntry (plain strings)
      - This is a free-form paragraph about me.
Entries also accept arbitrary extra keys (silently ignored during rendering). A typo in a field name will NOT cause an error.
cv.sections
是一个字典:键为章节标题(任意字符串),值为条目列表。每个章节必须使用单一条目类型——同一章节内不能混合不同类型的条目。条目类型会根据每个条目中的字段自动检测。
共享字段——适用于支持日期和复杂字段的条目类型(ExperienceEntry、EducationEntry、NormalEntry、PublicationEntry):
字段类型默认值说明
date
str | int | null
null
自由格式:
"2020-09"
"Fall 2023"
等。与
start_date
/
end_date
互斥。
start_date
str | int | null
null
严格格式:YYYY-MM-DD、YYYY-MM或YYYY。
end_date
str | int | "present" | null
null
格式与
start_date
相同,或使用
"present"
。如果仅设置了
start_date
,则默认
end_date
"present"
location
str | null
null
summary
str | null
null
highlights
list[str] | null
null
项目符号列表。
9种条目类型:
条目类型必填字段可选字段典型用途
ExperienceEntry
company
,
position
所有共享字段工作经历、职位
EducationEntry
institution
,
area
degree
+ 所有共享字段
教育经历、学校
PublicationEntry
title
,
authors
doi
,
url
,
journal
,
summary
,
date
论文、文章
NormalEntry
name
所有共享字段项目、奖项
OneLineEntry
label
,
details
技能、语言
BulletEntry
bullet
简单项目符号
NumberedEntry
number
编号列表项
ReversedNumberedEntry
reversed_number
反向编号项(5、4、3...)
TextEntry(纯字符串)自由格式段落
示例:
yaml
cv:
  sections:
    experience:          # list of ExperienceEntry (detected by company + position)
      - company: Google
        position: Engineer
        start_date: 2020-01
        highlights:
          - Did something impactful
    skills:              # list of OneLineEntry (detected by label + details)
      - label: Languages
        details: Python, C++
    about_me:            # list of TextEntry (plain strings)
      - This is a free-form paragraph about me.
条目也支持任意额外键(渲染时会被忽略)。字段名称拼写错误不会导致报错。

Design (
design
)

设计(
design

All built-in themes share the same structure — they only differ in default values. See the sample designs below for every available field and its default. Set
design.theme
to pick a theme, then override any field.
所有内置主题共享相同的结构——仅默认值不同。查看下方示例设计,了解所有可用字段及其默认值。设置
design.theme
选择主题,然后可覆盖任意字段。

Locale (
locale
)

语言区域(
locale

Built-in locales:
english
,
arabic
,
danish
,
dutch
,
french
,
german
,
hebrew
,
hindi
,
hungarian
,
indonesian
,
italian
,
japanese
,
korean
,
mandarin_chinese
,
norwegian_bokmål
,
norwegian_nynorsk
,
persian
,
portuguese
,
russian
,
spanish
,
turkish
,
vietnamese
Set
locale.language
to a built-in locale name to use it. Override any field to customize translations. Set
language
to any string and provide all translations for a fully custom locale.
内置语言区域:
english
,
arabic
,
danish
,
dutch
,
french
,
german
,
hebrew
,
hindi
,
hungarian
,
indonesian
,
italian
,
japanese
,
korean
,
mandarin_chinese
,
norwegian_bokmål
,
norwegian_nynorsk
,
persian
,
portuguese
,
russian
,
spanish
,
turkish
,
vietnamese
设置
locale.language
为内置语言区域名称即可使用。可覆盖任意字段来自定义翻译。若设置
language
为任意字符串并提供完整翻译,即可创建完全自定义的语言区域。

Settings (
settings
)

设置(
settings

Key fields:
bold_keywords
(list of strings to auto-bold),
current_date
(override today's date),
render_command.*
(output paths, generation flags).
关键字段:
bold_keywords
(自动加粗的字符串列表)、
current_date
(覆盖当前日期)、
render_command.*
(输出路径、生成标志)。

Important Patterns

重要注意事项

YAML quoting

YAML引号

ALWAYS quote string values that contain a colon (
:
).
This is the most common cause of invalid YAML. Highlights, titles, summaries, and any free-form text often contain colons:
yaml
undefined
包含冒号(
:
)的字符串值必须加引号。
这是YAML解析失败的最常见原因。项目要点、标题、摘要等自由格式文本通常包含冒号:
yaml
undefined

WRONG — colon breaks YAML parsing:

WRONG — colon breaks YAML parsing:

  • title: Catalytic Mechanisms: A New Approach highlights:
    • Relevant coursework: Distributed Systems, ML
  • title: Catalytic Mechanisms: A New Approach highlights:
    • Relevant coursework: Distributed Systems, ML

RIGHT — wrap in double quotes:

RIGHT — wrap in double quotes:

  • title: "Catalytic Mechanisms: A New Approach" highlights:
    • "Relevant coursework: Distributed Systems, ML"

Rule: if a string value contains `:`, it MUST be quoted. When in doubt, quote it.
  • title: "Catalytic Mechanisms: A New Approach" highlights:
    • "Relevant coursework: Distributed Systems, ML"

规则:如果字符串值包含`:`,必须加引号。不确定时,就加引号。

Bullet characters

项目符号字符

The
design.highlights.bullet
field only accepts these exact characters:
,
,
,
-
,
,
,
,
,
. Do not use en-dash (
),
>
,
*
, or any other character. When in doubt, omit
bullet
to use the theme default.
design.highlights.bullet
字段仅接受以下特定字符:
,
,
,
-
,
,
,
,
,
。不要使用短破折号(
)、
>
*
或其他字符。不确定时,可省略
bullet
字段,使用主题默认值。

Phone numbers

电话号码

Phone numbers MUST be in international format with country code (E.164). Never invent a phone number — only include one if the user provides it.
yaml
undefined
电话号码必须采用带国家代码的国际格式(E.164标准)。不要编造电话号码——仅当用户提供时才添加。
yaml
undefined

WRONG:

WRONG:

phone: "(555) 123-4567" phone: "555-123-4567"
phone: "(555) 123-4567" phone: "555-123-4567"

RIGHT:

RIGHT:

phone: "+15551234567"

If the user provides a local number without country code, ask which country, or omit the phone field.
phone: "+15551234567"

如果用户提供了不带国家代码的本地号码,请询问所属国家,或省略电话字段。

Text formatting

文本格式

All text fields support inline Markdown:
**bold**
,
*italic*
,
[link text](url)
. Block-level Markdown (headers, lists, blockquotes, code blocks) is not supported. Raw Typst commands and math (
$$f(x)$$
) also pass through.
所有文本字段支持行内Markdown:
**bold**
*italic*
[link text](url)
。不支持块级Markdown(标题、列表、块引用、代码块)。原始Typst命令和数学公式(
$$f(x)$$
)也会被直接传递。

Date handling

日期处理

  • date
    and
    start_date
    /
    end_date
    are mutually exclusive. If
    date
    is provided,
    start_date
    and
    end_date
    are ignored.
  • If only
    start_date
    is given,
    end_date
    defaults to
    "present"
    .
  • start_date
    /
    end_date
    require strict formats: YYYY-MM-DD, YYYY-MM, or YYYY.
  • date
    is flexible: accepts any string ("Fall 2023") in addition to date formats.
  • date
    start_date
    /
    end_date
    互斥。如果提供了
    date
    ,则
    start_date
    end_date
    会被忽略。
  • 如果仅提供
    start_date
    end_date
    默认值为
    "present"
  • start_date
    /
    end_date
    要求严格格式:YYYY-MM-DD、YYYY-MM或YYYY。
  • date
    格式灵活:除日期格式外,还接受任意字符串(如"Fall 2023")。

Section titles

章节标题

  • snake_case
    keys auto-capitalize:
    work_experience
    → "Work Experience"
  • Keys with spaces or uppercase are used as-is.
  • 蛇形命名(
    snake_case
    )的键会自动大写:
    work_experience
    → "Work Experience"
  • 包含空格或大写字母的键会原样使用。

Publication authors

论文作者

Use
*Name*
(single asterisks, italic) to highlight the CV owner in author lists.
使用
*Name*
(单星号,斜体)在作者列表中突出显示简历所有者。

Nested highlights (sub-bullets)

嵌套项目要点(子项目符号)

yaml
highlights:
  - Main bullet point
    - Sub-bullet 1
    - Sub-bullet 2
yaml
highlights:
  - Main bullet point
    - Sub-bullet 1
    - Sub-bullet 2

CLI Reference

CLI参考

rendercv new "Full Name"

rendercv new "Full Name"

Generate a starter YAML file.
OptionShortWhat it does
--theme THEME
Theme to use (default:
classic
)
--locale LOCALE
Locale to use (default:
english
)
--create-typst-templates
Also create editable Typst template files for full design control
生成初始YAML文件。
选项短选项功能
--theme THEME
使用的主题(默认:
classic
--locale LOCALE
使用的语言区域(默认:
english
--create-typst-templates
同时创建可编辑的Typst模板文件,实现完全设计控制

rendercv render <input.yaml>

rendercv render <input.yaml>

Generate PDF, Typst, Markdown, HTML, and PNG from a YAML file.
OptionShortWhat it does
--watch
-w
Re-render automatically when the YAML file changes
--quiet
-q
Suppress all output messages
--design FILE
-d
Load design section from a separate YAML file
--locale-catalog FILE
-lc
Load locale section from a separate YAML file
--settings FILE
-s
Load settings section from a separate YAML file
--output-folder DIR
-o
Custom output directory
Per-format controls:
--{format}-path PATH
sets custom output path,
--dont-generate-{format}
skips generation. Formats:
pdf
,
typst
,
markdown
,
html
,
png
.
Override any YAML field from the CLI using dot notation (overrides without editing the file):
bash
rendercv render CV.yaml --cv.name "Jane Doe" --design.theme "moderncv"
rendercv render CV.yaml --cv.sections.education.0.institution "MIT"
从YAML文件生成PDF、Typst、Markdown、HTML和PNG格式文件。
选项短选项功能
--watch
-w
YAML文件变化时自动重新渲染
--quiet
-q
抑制所有输出信息
--design FILE
-d
从单独的YAML文件加载设计部分
--locale-catalog FILE
-lc
从单独的YAML文件加载语言区域部分
--settings FILE
-s
从单独的YAML文件加载设置部分
--output-folder DIR
-o
自定义输出目录
按格式控制:
--{format}-path PATH
设置自定义输出路径,
--dont-generate-{format}
跳过对应格式的生成。支持的格式:
pdf
,
typst
,
markdown
,
html
,
png
通过CLI覆盖任意YAML字段(无需编辑文件):
bash
rendercv render CV.yaml --cv.name "Jane Doe" --design.theme "moderncv"
rendercv render CV.yaml --cv.sections.education.0.institution "MIT"

rendercv create-theme "theme-name"

rendercv create-theme "theme-name"

Scaffold a custom theme directory with editable Typst templates for complete design control.
生成包含可编辑Typst模板的自定义主题目录,实现完全设计控制。

JSON Schema

JSON Schema

For YAML editor autocompletion and validation:
yaml
undefined
用于YAML编辑器自动补全和验证:
yaml
undefined
undefined
undefined

Complete Example

完整示例

Sample CV

简历示例

yaml
cv:
  name: John Doe
  headline:
  location: San Francisco, CA
  email: john.doe@email.com
  photo:
  phone:
  website: https://rendercv.com/
  social_networks:
  - network: LinkedIn
    username: rendercv
  - network: GitHub
    username: rendercv
  custom_connections:
  sections:
    Welcome to RenderCV:
    - RenderCV reads a CV written in a YAML file, and generates a PDF with 
      professional typography.
    - Each section title is arbitrary.
    education:
    - institution: Princeton University
      area: Computer Science
      degree: PhD
      date:
      start_date: 2018-09
      end_date: 2023-05
      location: Princeton, NJ
      summary:
      highlights:
      - 'Thesis: Efficient Neural Architecture Search for Resource-Constrained Deployment'
      - 'Advisor: Prof. Sanjeev Arora'
      - NSF Graduate Research Fellowship, Siebel Scholar (Class of 2022)
    - institution: Boğaziçi University
      area: Computer Engineering
      degree: BS
      date:
      start_date: 2014-09
      end_date: 2018-06
      location: Istanbul, Türkiye
      summary:
      highlights:
      - 'GPA: 3.97/4.00, Valedictorian'
      - Fulbright Scholarship recipient for Graduate Studies
    experience:
    - company: Nexus AI
      position: Co-Founder & CTO
      date:
      start_date: 2023-06
      end_date: present
      location: San Francisco, CA
      summary:
      highlights:
      - Built foundation model infrastructure serving 2M+ monthly API requests 
        with 99.97% uptime
      - Raised $18M Series A led by Sequoia Capital, with participation from 
        a16z and Founders Fund
      - Scaled engineering team from 3 to 28 across ML research, platform, and 
        applied AI divisions
      - Developed proprietary inference optimization reducing latency by 73% 
        compared to baseline
    - company: NVIDIA Research
      position: Research Intern
      date:
      start_date: 2022-05
      end_date: 2022-08
      location: Santa Clara, CA
      summary:
      highlights:
      - Designed sparse attention mechanism reducing transformer memory 
        footprint by 4.2x
      - Co-authored paper accepted at NeurIPS 2022 (spotlight presentation, top 
        5% of submissions)
    projects:
    - name: '[FlashInfer](https://github.com/)'
      date:
      start_date: 2023-01
      end_date: present
      location:
      summary: Open-source library for high-performance LLM inference kernels
      highlights:
      - Achieved 2.8x speedup over baseline attention implementations on A100 
        GPUs
      - Adopted by 3 major AI labs, 8,500+ GitHub stars, 200+ contributors
    - name: '[NeuralPrune](https://github.com/)'
      date: '2021'
      start_date:
      end_date:
      location:
      summary: Automated neural network pruning toolkit with differentiable 
        masks
      highlights:
      - Reduced model size by 90% with less than 1% accuracy degradation on 
        ImageNet
      - Featured in PyTorch ecosystem tools, 4,200+ GitHub stars
    publications:
    - title: 'Sparse Mixture-of-Experts at Scale: Efficient Routing for Trillion-Parameter
        Models'
      authors:
      - '*John Doe*'
      - Sarah Williams
      - David Park
      summary:
      doi: 10.1234/neurips.2023.1234
      url:
      journal: NeurIPS 2023
      date: 2023-07
    - title: Neural Architecture Search via Differentiable Pruning
      authors:
      - James Liu
      - '*John Doe*'
      summary:
      doi: 10.1234/neurips.2022.5678
      url:
      journal: NeurIPS 2022, Spotlight
      date: 2022-12
    selected_honors:
    - bullet: MIT Technology Review 35 Under 35 Innovators (2024)
    - bullet: Forbes 30 Under 30 in Enterprise Technology (2024)
    skills:
    - label: Languages
      details: Python, C++, CUDA, Rust, Julia
    - label: ML Frameworks
      details: PyTorch, JAX, TensorFlow, Triton, ONNX
    patents:
    - number: Adaptive Quantization for Neural Network Inference on Edge Devices
        (US Patent 11,234,567)
    - number: Dynamic Sparsity Patterns for Efficient Transformer Attention (US 
        Patent 11,345,678)
    invited_talks:
    - reversed_number: Scaling Laws for Efficient Inference — Stanford HAI 
        Symposium (2024)
    - reversed_number: Building AI Infrastructure for the Next Decade — 
        TechCrunch Disrupt (2024)
yaml
cv:
  name: John Doe
  headline:
  location: San Francisco, CA
  email: john.doe@email.com
  photo:
  phone:
  website: https://rendercv.com/
  social_networks:
  - network: LinkedIn
    username: rendercv
  - network: GitHub
    username: rendercv
  custom_connections:
  sections:
    Welcome to RenderCV:
    - RenderCV reads a CV written in a YAML file, and generates a PDF with 
      professional typography.
    - Each section title is arbitrary.
    education:
    - institution: Princeton University
      area: Computer Science
      degree: PhD
      date:
      start_date: 2018-09
      end_date: 2023-05
      location: Princeton, NJ
      summary:
      highlights:
      - 'Thesis: Efficient Neural Architecture Search for Resource-Constrained Deployment'
      - 'Advisor: Prof. Sanjeev Arora'
      - NSF Graduate Research Fellowship, Siebel Scholar (Class of 2022)
    - institution: Boğaziçi University
      area: Computer Engineering
      degree: BS
      date:
      start_date: 2014-09
      end_date: 2018-06
      location: Istanbul, Türkiye
      summary:
      highlights:
      - 'GPA: 3.97/4.00, Valedictorian'
      - Fulbright Scholarship recipient for Graduate Studies
    experience:
    - company: Nexus AI
      position: Co-Founder & CTO
      date:
      start_date: 2023-06
      end_date: present
      location: San Francisco, CA
      summary:
      highlights:
      - Built foundation model infrastructure serving 2M+ monthly API requests 
        with 99.97% uptime
      - Raised $18M Series A led by Sequoia Capital, with participation from 
        a16z and Founders Fund
      - Scaled engineering team from 3 to 28 across ML research, platform, and 
        applied AI divisions
      - Developed proprietary inference optimization reducing latency by 73% 
        compared to baseline
    - company: NVIDIA Research
      position: Research Intern
      date:
      start_date: 2022-05
      end_date: 2022-08
      location: Santa Clara, CA
      summary:
      highlights:
      - Designed sparse attention mechanism reducing transformer memory 
        footprint by 4.2x
      - Co-authored paper accepted at NeurIPS 2022 (spotlight presentation, top 
        5% of submissions)
    projects:
    - name: '[FlashInfer](https://github.com/)'
      date:
      start_date: 2023-01
      end_date: present
      location:
      summary: Open-source library for high-performance LLM inference kernels
      highlights:
      - Achieved 2.8x speedup over baseline attention implementations on A100 
        GPUs
      - Adopted by 3 major AI labs, 8,500+ GitHub stars, 200+ contributors
    - name: '[NeuralPrune](https://github.com/)'
      date: '2021'
      start_date:
      end_date:
      location:
      summary: Automated neural network pruning toolkit with differentiable 
        masks
      highlights:
      - Reduced model size by 90% with less than 1% accuracy degradation on 
        ImageNet
      - Featured in PyTorch ecosystem tools, 4,200+ GitHub stars
    publications:
    - title: 'Sparse Mixture-of-Experts at Scale: Efficient Routing for Trillion-Parameter
        Models'
      authors:
      - '*John Doe*'
      - Sarah Williams
      - David Park
      summary:
      doi: 10.1234/neurips.2023.1234
      url:
      journal: NeurIPS 2023
      date: 2023-07
    - title: Neural Architecture Search via Differentiable Pruning
      authors:
      - James Liu
      - '*John Doe*'
      summary:
      doi: 10.1234/neurips.2022.5678
      url:
      journal: NeurIPS 2022, Spotlight
      date: 2022-12
    selected_honors:
    - bullet: MIT Technology Review 35 Under 35 Innovators (2024)
    - bullet: Forbes 30 Under 30 in Enterprise Technology (2024)
    skills:
    - label: Languages
      details: Python, C++, CUDA, Rust, Julia
    - label: ML Frameworks
      details: PyTorch, JAX, TensorFlow, Triton, ONNX
    patents:
    - number: Adaptive Quantization for Neural Network Inference on Edge Devices
        (US Patent 11,234,567)
    - number: Dynamic Sparsity Patterns for Efficient Transformer Attention (US 
        Patent 11,345,678)
    invited_talks:
    - reversed_number: Scaling Laws for Efficient Inference — Stanford HAI 
        Symposium (2024)
    - reversed_number: Building AI Infrastructure for the Next Decade — 
        TechCrunch Disrupt (2024)

Sample Design (classic — complete reference)

设计示例(classic——完整参考)

This shows every available design field with its default value. All themes share the same structure.
yaml
design:
  theme: classic
  page:
    size: us-letter
    top_margin: 0.7in
    bottom_margin: 0.7in
    left_margin: 0.7in
    right_margin: 0.7in
    show_footer: true
    show_top_note: true
  colors:
    body: rgb(0, 0, 0)
    name: rgb(0, 79, 144)
    headline: rgb(0, 79, 144)
    connections: rgb(0, 79, 144)
    section_titles: rgb(0, 79, 144)
    links: rgb(0, 79, 144)
    footer: rgb(128, 128, 128)
    top_note: rgb(128, 128, 128)
  typography:
    line_spacing: 0.6em
    alignment: justified
    date_and_location_column_alignment: right
    font_family:
      body: Source Sans 3
      name: Source Sans 3
      headline: Source Sans 3
      connections: Source Sans 3
      section_titles: Source Sans 3
    font_size:
      body: 10pt
      name: 30pt
      headline: 10pt
      connections: 10pt
      section_titles: 1.4em
    small_caps:
      name: false
      headline: false
      connections: false
      section_titles: false
    bold:
      name: true
      headline: false
      connections: false
      section_titles: true
  links:
    underline: false
    show_external_link_icon: false
  header:
    alignment: center
    photo_width: 3.5cm
    photo_position: left
    photo_space_left: 0.4cm
    photo_space_right: 0.4cm
    space_below_name: 0.7cm
    space_below_headline: 0.7cm
    space_below_connections: 0.7cm
    connections:
      phone_number_format: national
      hyperlink: true
      show_icons: true
      display_urls_instead_of_usernames: false
      separator: ''
      space_between_connections: 0.5cm
  section_titles:
    type: with_partial_line
    line_thickness: 0.5pt
    space_above: 0.5cm
    space_below: 0.3cm
  sections:
    allow_page_break: true
    space_between_regular_entries: 1.2em
    space_between_text_based_entries: 0.3em
    show_time_spans_in:
      - experience
  entries:
    date_and_location_width: 4.15cm
    side_space: 0.2cm
    space_between_columns: 0.1cm
    allow_page_break: false
    short_second_row: true
    degree_width: 1cm
    summary:
      space_above: 0cm
      space_left: 0cm
    highlights:
      bullet:      nested_bullet:      space_left: 0.15cm
      space_above: 0cm
      space_between_items: 0cm
      space_between_bullet_and_text: 0.5em
  templates:
    footer: '*NAME -- PAGE_NUMBER/TOTAL_PAGES*'
    top_note: '*LAST_UPDATED CURRENT_DATE*'
    single_date: MONTH_ABBREVIATION YEAR
    date_range: START_DATE – END_DATE
    time_span: HOW_MANY_YEARS YEARS HOW_MANY_MONTHS MONTHS
    one_line_entry:
      main_column: '**LABEL:** DETAILS'
    education_entry:
      main_column: |-
        **INSTITUTION**, AREA
        SUMMARY
        HIGHLIGHTS
      degree_column: '**DEGREE**'
      date_and_location_column: |-
        LOCATION
        DATE
    normal_entry:
      main_column: |-
        **NAME**
        SUMMARY
        HIGHLIGHTS
      date_and_location_column: |-
        LOCATION
        DATE
    experience_entry:
      main_column: |-
        **COMPANY**, POSITION
        SUMMARY
        HIGHLIGHTS
      date_and_location_column: |-
        LOCATION
        DATE
    publication_entry:
      main_column: |-
        **TITLE**
        SUMMARY
        AUTHORS
        URL (JOURNAL)
      date_and_location_column: DATE
以下展示了所有可用设计字段及其默认值。所有主题共享相同结构。
yaml
design:
  theme: classic
  page:
    size: us-letter
    top_margin: 0.7in
    bottom_margin: 0.7in
    left_margin: 0.7in
    right_margin: 0.7in
    show_footer: true
    show_top_note: true
  colors:
    body: rgb(0, 0, 0)
    name: rgb(0, 79, 144)
    headline: rgb(0, 79, 144)
    connections: rgb(0, 79, 144)
    section_titles: rgb(0, 79, 144)
    links: rgb(0, 79, 144)
    footer: rgb(128, 128, 128)
    top_note: rgb(128, 128, 128)
  typography:
    line_spacing: 0.6em
    alignment: justified
    date_and_location_column_alignment: right
    font_family:
      body: Source Sans 3
      name: Source Sans 3
      headline: Source Sans 3
      connections: Source Sans 3
      section_titles: Source Sans 3
    font_size:
      body: 10pt
      name: 30pt
      headline: 10pt
      connections: 10pt
      section_titles: 1.4em
    small_caps:
      name: false
      headline: false
      connections: false
      section_titles: false
    bold:
      name: true
      headline: false
      connections: false
      section_titles: true
  links:
    underline: false
    show_external_link_icon: false
  header:
    alignment: center
    photo_width: 3.5cm
    photo_position: left
    photo_space_left: 0.4cm
    photo_space_right: 0.4cm
    space_below_name: 0.7cm
    space_below_headline: 0.7cm
    space_below_connections: 0.7cm
    connections:
      phone_number_format: national
      hyperlink: true
      show_icons: true
      display_urls_instead_of_usernames: false
      separator: ''
      space_between_connections: 0.5cm
  section_titles:
    type: with_partial_line
    line_thickness: 0.5pt
    space_above: 0.5cm
    space_below: 0.3cm
  sections:
    allow_page_break: true
    space_between_regular_entries: 1.2em
    space_between_text_based_entries: 0.3em
    show_time_spans_in:
      - experience
  entries:
    date_and_location_width: 4.15cm
    side_space: 0.2cm
    space_between_columns: 0.1cm
    allow_page_break: false
    short_second_row: true
    degree_width: 1cm
    summary:
      space_above: 0cm
      space_left: 0cm
    highlights:
      bullet:      nested_bullet:      space_left: 0.15cm
      space_above: 0cm
      space_between_items: 0cm
      space_between_bullet_and_text: 0.5em
  templates:
    footer: '*NAME -- PAGE_NUMBER/TOTAL_PAGES*'
    top_note: '*LAST_UPDATED CURRENT_DATE*'
    single_date: MONTH_ABBREVIATION YEAR
    date_range: START_DATE – END_DATE
    time_span: HOW_MANY_YEARS YEARS HOW_MANY_MONTHS MONTHS
    one_line_entry:
      main_column: '**LABEL:** DETAILS'
    education_entry:
      main_column: |-
        **INSTITUTION**, AREA
        SUMMARY
        HIGHLIGHTS
      degree_column: '**DEGREE**'
      date_and_location_column: |-
        LOCATION
        DATE
    normal_entry:
      main_column: |-
        **NAME**
        SUMMARY
        HIGHLIGHTS
      date_and_location_column: |-
        LOCATION
        DATE
    experience_entry:
      main_column: |-
        **COMPANY**, POSITION
        SUMMARY
        HIGHLIGHTS
      date_and_location_column: |-
        LOCATION
        DATE
    publication_entry:
      main_column: |-
        **TITLE**
        SUMMARY
        AUTHORS
        URL (JOURNAL)
      date_and_location_column: DATE

Other Theme Overrides

其他主题配置示例

Other themes only override specific fields from the classic defaults above. To use a theme, set
design.theme
and optionally override any field. Each theme also customizes
design.templates
(entry layout patterns) — see the classic sample above for the full template structure. The override YAMLs below omit templates for brevity.
其他主题仅覆盖classic主题的特定字段。使用主题时,设置
design.theme
并可选择性覆盖任意字段。每个主题也会自定义
design.templates
(条目布局模板)——完整模板结构请参考上方classic示例。下方配置示例省略了模板部分以简化内容。

harvard

harvard

yaml
undefined
yaml
undefined

yaml-language-server: $schema=../../../../../../schema.json

yaml-language-server: $schema=../../../../../../schema.json

design: theme: harvard page: top_margin: 0.5in bottom_margin: 0.5in left_margin: 0.5in right_margin: 0.5in show_top_note: false colors: name: rgb(0,0,0) headline: rgb(0,0,0) connections: rgb(0,0,0) section_titles: rgb(0,0,0) links: rgb(0,0,0) typography: font_family: body: XCharter name: XCharter headline: XCharter connections: XCharter section_titles: XCharter font_size: name: 25pt connections: 9pt section_titles: 1.3em header: space_below_name: 0.5cm space_below_headline: 0.5cm space_below_connections: 0.5cm connections: show_icons: false separator: • space_between_connections: 0.4cm section_titles: type: centered_with_centered_partial_line space_below: 0.2cm sections: space_between_regular_entries: 1em show_time_spans_in: [] entries: short_second_row: false
undefined
design: theme: harvard page: top_margin: 0.5in bottom_margin: 0.5in left_margin: 0.5in right_margin: 0.5in show_top_note: false colors: name: rgb(0,0,0) headline: rgb(0,0,0) connections: rgb(0,0,0) section_titles: rgb(0,0,0) links: rgb(0,0,0) typography: font_family: body: XCharter name: XCharter headline: XCharter connections: XCharter section_titles: XCharter font_size: name: 25pt connections: 9pt section_titles: 1.3em header: space_below_name: 0.5cm space_below_headline: 0.5cm space_below_connections: 0.5cm connections: show_icons: false separator: • space_between_connections: 0.4cm section_titles: type: centered_with_centered_partial_line space_below: 0.2cm sections: space_between_regular_entries: 1em show_time_spans_in: [] entries: short_second_row: false
undefined

engineeringresumes

engineeringresumes

yaml
undefined
yaml
undefined

yaml-language-server: $schema=../../../../../../schema.json

yaml-language-server: $schema=../../../../../../schema.json

design: theme: engineeringresumes page: show_footer: false typography: font_family: body: XCharter name: XCharter headline: XCharter connections: XCharter section_titles: XCharter font_size: name: 25pt section_titles: 1.2em bold: name: false header: connections: separator: '|' show_icons: false display_urls_instead_of_usernames: true colors: name: rgb(0,0,0) connections: rgb(0,0,0) headline: rgb(0,0,0) section_titles: rgb(0,0,0) links: rgb(0,0,0) links: underline: true show_external_link_icon: false section_titles: type: with_full_line space_above: 0.5cm space_below: 0.3cm sections: space_between_regular_entries: 0.42cm space_between_text_based_entries: 0.15cm show_time_spans_in: [] entries: short_second_row: false summary: space_above: 0.08cm side_space: 0cm highlights: bullet: ● nested_bullet: ● space_left: 0cm space_above: 0.08cm space_between_items: 0.08cm space_between_bullet_and_text: 0.3em
undefined
design: theme: engineeringresumes page: show_footer: false typography: font_family: body: XCharter name: XCharter headline: XCharter connections: XCharter section_titles: XCharter font_size: name: 25pt section_titles: 1.2em bold: name: false header: connections: separator: '|' show_icons: false display_urls_instead_of_usernames: true colors: name: rgb(0,0,0) connections: rgb(0,0,0) headline: rgb(0,0,0) section_titles: rgb(0,0,0) links: rgb(0,0,0) links: underline: true show_external_link_icon: false section_titles: type: with_full_line space_above: 0.5cm space_below: 0.3cm sections: space_between_regular_entries: 0.42cm space_between_text_based_entries: 0.15cm show_time_spans_in: [] entries: short_second_row: false summary: space_above: 0.08cm side_space: 0cm highlights: bullet: ● nested_bullet: ● space_left: 0cm space_above: 0.08cm space_between_items: 0.08cm space_between_bullet_and_text: 0.3em
undefined

engineeringclassic

engineeringclassic

yaml
undefined
yaml
undefined

yaml-language-server: $schema=../../../../../../schema.json

yaml-language-server: $schema=../../../../../../schema.json

design: theme: engineeringclassic typography: font_family: body: Raleway name: Raleway headline: Raleway connections: Raleway section_titles: Raleway bold: name: false section_titles: false header: alignment: left links: show_external_link_icon: false section_titles: type: with_full_line sections: show_time_spans_in: [] entries: short_second_row: false summary: space_above: 0.12cm highlights: space_left: 0cm space_above: 0.12cm space_between_items: 0.12cm
undefined
design: theme: engineeringclassic typography: font_family: body: Raleway name: Raleway headline: Raleway connections: Raleway section_titles: Raleway bold: name: false section_titles: false header: alignment: left links: show_external_link_icon: false section_titles: type: with_full_line sections: show_time_spans_in: [] entries: short_second_row: false summary: space_above: 0.12cm highlights: space_left: 0cm space_above: 0.12cm space_between_items: 0.12cm
undefined

sb2nov

sb2nov

yaml
undefined
yaml
undefined

yaml-language-server: $schema=../../../../../../schema.json

yaml-language-server: $schema=../../../../../../schema.json

design: theme: sb2nov typography: font_family: body: New Computer Modern name: New Computer Modern headline: New Computer Modern connections: New Computer Modern section_titles: New Computer Modern colors: name: rgb(0,0,0) connections: rgb(0,0,0) section_titles: rgb(0,0,0) headline: rgb(0,0,0) links: rgb(0,0,0) links: underline: true show_external_link_icon: false section_titles: type: with_full_line sections: show_time_spans_in: [] header: connections: hyperlink: true show_icons: false display_urls_instead_of_usernames: true separator: • entries: short_second_row: false highlights: bullet: ◦ nested_bullet: ◦
undefined
design: theme: sb2nov typography: font_family: body: New Computer Modern name: New Computer Modern headline: New Computer Modern connections: New Computer Modern section_titles: New Computer Modern colors: name: rgb(0,0,0) connections: rgb(0,0,0) section_titles: rgb(0,0,0) headline: rgb(0,0,0) links: rgb(0,0,0) links: underline: true show_external_link_icon: false section_titles: type: with_full_line sections: show_time_spans_in: [] header: connections: hyperlink: true show_icons: false display_urls_instead_of_usernames: true separator: • entries: short_second_row: false highlights: bullet: ◦ nested_bullet: ◦
undefined

moderncv

moderncv

yaml
undefined
yaml
undefined

yaml-language-server: $schema=../../../../../../schema.json

yaml-language-server: $schema=../../../../../../schema.json

design: theme: moderncv typography: line_spacing: 0.6em font_family: body: Fontin name: Fontin headline: Fontin connections: Fontin section_titles: Fontin font_size: name: 25pt section_titles: 1.4em bold: name: false section_titles: false header: alignment: left photo_width: 4.15cm photo_space_left: 0cm photo_space_right: 0.3cm links: underline: true show_external_link_icon: false section_titles: type: moderncv space_above: 0.55cm space_below: 0.3cm line_thickness: 0.15cm sections: show_time_spans_in: [] entries: short_second_row: false side_space: 0cm space_between_columns: 0.3cm summary: space_above: 0.1cm highlights: space_left: 0cm space_above: 0.15cm space_between_items: 0.1cm space_between_bullet_and_text: 0.3em
undefined
design: theme: moderncv typography: line_spacing: 0.6em font_family: body: Fontin name: Fontin headline: Fontin connections: Fontin section_titles: Fontin font_size: name: 25pt section_titles: 1.4em bold: name: false section_titles: false header: alignment: left photo_width: 4.15cm photo_space_left: 0cm photo_space_right: 0.3cm links: underline: true show_external_link_icon: false section_titles: type: moderncv space_above: 0.55cm space_below: 0.3cm line_thickness: 0.15cm sections: show_time_spans_in: [] entries: short_second_row: false side_space: 0cm space_between_columns: 0.3cm summary: space_above: 0.1cm highlights: space_left: 0cm space_above: 0.15cm space_between_items: 0.1cm space_between_bullet_and_text: 0.3em
undefined