brilliant-CV / template
AGENTS.md849 starsChanged 37 days agoApache-2.0View on GitHub
This folder is a CV and cover-letter workspace. It was created with typst init @preview/brilliant-cv. The package renders the documents. This folder and its content belong to the user. For a tailored application, keep one folder per job, for example applications/<company>/ with the posting, a cv.typ, and a letter.typ. Keep profile_<name>/ as the single source of truth and change facts there only. 1. Do not invent facts. Tailor by selecting, ordering, and rephrasing what the profile already contains. If a…
We split this AGENTS.md into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Keep profile_<name>/ as the single source of truth and change facts there only.
- Very specific: line 60
Keep only the modules you need, or paste the chosen entries from profile_<name>/*.typ into this file.
- Very specific: line 66
Verify with the commands in rule 4 from this folder, with --root ..
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CV Workspace
This folder is a CV and cover-letter workspace. It was created with
typst init @preview/brilliant-cv. The package renders the documents. This
folder and its content belong to the user.
Layout
| Path | Holds |
profile_<name>/metadata.toml | Identity, contact data, and layout settings of one profile |
profile_<name>/*.typ | CV content: education, experience, projects, skills |
cv.typ, letter.typ | Entry points. --input profile=<name> selects the profile (default en) |
assets/ | Photo, logos, signature, bibliography |
For a tailored application, keep one folder per job, for example
applications/<company>/ with the posting, a cv.typ, and a letter.typ.
Keep profile_<name>/ as the single source of truth and change facts there
only.
Rules
- Do not invent facts. Tailor by selecting, ordering, and rephrasing what the profile already contains. If a posting asks for something that the profile does not show, tell the user. Do not add it.
- Check the profile before you use it. Dates, degrees, locations, and header badges must agree with each other. Report a contradiction to the user instead of choosing a version yourself.
- Take the API from the installed package, not from memory. The
#import "@preview/brilliant-cv:<version>"lines pin the version. The doc-comments in that version'ssrc/lib.typandsrc/cv.typare the reference. Typst caches the package at<cache>/typst/packages/preview/brilliant-cv/<version>/, where<cache>is~/Library/Caches(macOS),~/.cache(Linux), or%LOCALAPPDATA%(Windows). The field reference formetadata.tomlismetadata.toml.schema.jsonin this folder. - Verify every change by compiling.
typst compile cv.typ --input profile=<name>- For a file in a subfolder that reads
../../profile_<name>/, add--root .and run from this folder:typst compile --root . applications/<company>/cv.typ - To check the page count without rendering (Typst 0.15+):
typst eval --input brilliant-cv-query=1 'query(<brilliant-cv>).last().value.pages' --in cv.typ. On Typst 0.14, usetypst query cv.typ '<brilliant-cv>' --field value --input brilliant-cv-query=1and readpagesfrom the last element. Each element also reports thepageon which it ends, so you can list what spilled to page 2; thecv()doc-comment lists the fields. - To see the layout, compile to PNG, one file per page:
typst compile --root . applications/<company>/cv.typ "applications/<company>/cv-{p}.png". Typst does not create a missing output folder.
- Keep personal data local. A scanned signature, a phone number, and
application folders do not belong in a public repository. Before the
first commit, add
applications/,*.pdf, andassets/signature.*to a.gitignorein this folder.
Tailor a CV for one application
- Copy
cv.typandletter.typtoapplications/<company>/. In both copies, change"profile_"to"../../profile_"and"assets/to"../../assets/. - Keep only the modules you need, or paste the chosen entries from
profile_<name>/*.typinto this file. Do not edit the profile for one job. - Override a profile value for this application only:
#metadata.insert("header_quote", "…")beforecv.with(metadata). - In the letter copy, set
recipient-name,recipient-address,subject, and a fixeddate:(the default is today, so it changes on every compile). - Verify with the commands in rule 4 from this folder, with
--root ..
Useful patterns
- To change the size, weight, style, color, or font of one kind of text,
for example all section titles, set
[layout.parts.<name>]inmetadata.toml.metadata.toml.schema.jsonlists the part names. Do not copy or edit the package for a style change. - For a structural layout change that
[layout]and[layout.parts]cannot make, copy the package tovendor/preview/brilliant-cv/<version>/, compile with--package-path vendor, and edit the copy. Record each change invendor/CHANGES.md: the copy gets no fixes from new versions. Details: https://yunanwg.github.io/brilliant-CV/recipes/#change-the-layout-beyond-the-configuration - The cover-letter body is 12pt.
[layout] font_sizeapplies to the CV only. - To keep the closing, the signature, and the name together on one page,
put them in
#block(breakable: false)[…]at the end of the letter. - Letter addresses use small caps by default, which prints "ß" as "SS" and
e-mail addresses in capitals. Pass
address-style: "normal"to keep them as written.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

