
Rendercv
Turn CV content in YAML into publication-quality PDFs and sidecar exports without wrestling with Word or LaTeX layout.
Overview
RenderCV is an agent skill for the Build phase that turns YAML résumé content into Typst-typeset PDFs and related exports using the RenderCV CLI.
Install
npx skills add https://github.com/rendercv/rendercv-skill --skill rendercvWhat is this skill?
- YAML-authored content with Typst-backed PDF typesetting via RenderCV v2.8
- 6 built-in themes (classic, harvard, engineeringresumes, engineeringclassic, sb2nov, moderncv) with full visual customiz
- 22 built-in locales plus custom locale definitions for multilingual CVs
- Default exports: PDF, PNG, HTML, Markdown, and Typst alongside `rendercv render`
- Watch mode re-renders when the YAML file changes
- 6 built-in CV themes
- RenderCV v2.8 referenced in skill metadata
Adoption & trust: 798 installs on skills.sh; 5 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have résumé facts in notes or chat but no repeatable way to get consistent, professional PDF layout across themes and languages.
Who is it for?
Founders, contractors, and indie devs who want YAML-as-source-of-truth CVs with theme and locale control and CLI automation.
Skip if: Teams that only need a one-off Canva graphic, a proprietary ATS-only template with no YAML workflow, or in-app résumé builders inside an existing HR SaaS.
When should I use this skill?
User wants to create, edit, customize, or render a CV or resume with RenderCV and YAML-driven layout.
What do I get? / Deliverables
You get a versioned YAML source file and rendered PDF (plus HTML, Markdown, PNG) you can iterate in watch mode before sharing.
- YAML CV source file from `rendercv new`
- PDF plus default PNG, HTML, Markdown, and Typst outputs from `rendercv render`
Recommended Skills
Journey fit
Solo builders produce polished résumé and CV artifacts as part of shipping a personal brand, hiring collateral, or founder one-pagers alongside product docs. The skill’s output is a documented deliverable (PDF, HTML, Markdown, PNG), which maps cleanly to the docs shelf rather than app runtime code.
How it compares
Use instead of manual Word or raw LaTeX when you want YAML content plus deterministic PDF output from a dedicated CV tool.
Common Questions / FAQ
Who is rendercv for?
Solo and indie builders who maintain their own CV in files, care about typography, and prefer `rendercv render` over drag-and-drop document editors.
When should I use rendercv?
During Build when preparing founder bios and docs, before Validate when testing personal landing copy, or anytime the user asks to create, edit, customize, or render a CV or resume in YAML.
Is rendercv safe to install?
The skill instructs installing RenderCV via `uv tool install`; review the Security Audits panel on this Prism page and treat third-party CLI installs like any other supply-chain dependency.
SKILL.md
READMESKILL.md - Rendercv
## 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 # Install RenderCV uv tool install "rendercv[full]" # Create a starter YAML file (you can specify theme and locale) rendercv new "John Doe" rendercv new "John Doe" --theme moderncv --locale german # Render to PDF (also generates Typst, Markdown, HTML, PNG by default) rendercv render John_Doe_CV.yaml # Watch mode: auto-re-render whenever the YAML file changes rendercv render John_Doe_CV.yaml --watch # 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 # Override fields from the CLI without editing the YAML rendercv render cv.yaml --cv.name "Jane Doe" --design.theme "moderncv" ``` ## YAML Structure 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 # Single self-contained file (all sections in one file) 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. ## Pydantic Schema The YAML input is validated against these Pydantic models. ### 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.') ``` ### CV Content (`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=['Softwar