Roles
A role is one job you have had. It holds:The brain dump
Unlimited free-form text about that job. Projects, metrics, technologies, stories, praise, org context, the thing that went badly. No structure required, no length limit, and deliberately no formatting rules. Length is a feature. This is the raw material every future resume is assembled from, and the difference between a thin one and a thorough one is the difference between a resume that names the number and one that says “responsible for”. Write it the way you would tell it to someone:Owned billing infra. The nightly reconciliation job took six hours and paged the on-call every Tuesday — rewrote the pipeline in Go and it came down to twenty minutes. Team of four, I was the only one who had touched the old Python version. Also did the Stripe migration in Q3, which nobody wanted, and it shipped a week early.
Highlights
A highlight is one polished, reusable achievement bullet — the distilled version of something in a brain dump, written in resume voice: strong verb, specific scope, quantified outcome. Each carriestext, an optional impact if the number is not already inside the text,
tags for retrieval, and strength from 1 to 5. They come back strongest first, and
they are what a resume gets assembled from when there is no time to mine the raw dump
again.
You do not have to write them by hand. The mine_brain_dump
workflow reads a role’s raw dump, checks what highlights already exist so it does not
duplicate them, and writes the rest in one call — flagging anywhere the dump hints at
impact without giving a number, so you can fill it in.
A highlight can be archived rather than deleted, which keeps it out of the way without
losing it.
Notes and standing rules
Notes are free-floating material that belongs to no single job: STAR stories, interview prep, references, compensation history, anything. They can be pinned and tagged, and they are found by searching. A note has akind, and this is where it gets interesting.
Standing rules
Setkind: "GUARDRAIL" and the note stops being something to find and becomes something
that is always true. Guardrails are carried in the briefing every connected assistant
receives, at the end of it, so they are in context before a single tool is called.
Use them for the things that must never be got wrong:
- How you may and may not be described. “I was a contributor to the migration, not its lead. Do not describe me as having led it.”
- Numbers that are unsettled and must not be cited. “The 40% figure was never verified. Never put it on a document.”
- Credit that must not be overstated. “Do not claim the patent — I am one of five names on it.”
NOTE, which is the default.
Guardrails are the mechanism for the failure that actually happens. Nobody’s assistant
fabricates a job from nothing. It upgrades a credit into a hire because the posting
asked for one. A guardrail is how you make that specific upgrade impossible.
The supporting collections
Four collections handled by the same four tools —list_extras, create_extra,
update_extra, delete_extra — with kind selecting which one:
education
education
school, degree, field, gpa, details, location, startDate, endDate.projects
projects
name, role, url, description, brainDump, startDate, endDate, tags.
Projects get their own long-form brain dump, exactly like roles do.skills
skills
name is the group name; skills is the list inside it, e.g.
['Python','Go','Rust']. Passing skills to update_extra replaces the whole list.certifications
certifications
name, issuer, date, url.The profile
One identity block per account: name, headline, email, phone, location, website, LinkedIn, GitHub, X, a career summary used as the default resume summary — and a personal brain dump of its own, for the things that are about you rather than about a job. Values, what you want next, compensation expectations, non-negotiables.The photo
One picture serves the whole app. It is your avatar in the interface and the headshot on every resume whose design has the photo switched on, so changing it once updates every document at once and there is never a second copy to keep in sync. Set it in Settings → Account — drop a file in and drag it around the circle — or ask for it: “use the photo on my GitHub profile.” An assistant can pass anhttps URL for
the server to fetch, or the bytes inline as a data URI. Anything over 400KB is refused,
which is far more than a resume needs: it prints about an inch square.
Whether a given resume shows it is a separate decision — showPhoto on that document,
or Design → Photo in the editor. It is off by default, and the Harvard template never
renders one whatever you set.
Getting things out again
Two tools, and the choice between them matters:search_brain
Ranked keyword search across brain dumps, highlights, notes, projects and the
profile. Returns excerpts with the id and kind of each hit, so you can fetch the
full record. This is the first call when tailoring anything.
get_brain_snapshot
Everything at once: profile, every role with its full dump, every highlight,
education, projects, skills, certifications and notes. Right for writing a resume
from scratch; large enough that targeted lookups should use search instead.
include_brain_dumps: false for a lighter payload when you only need the
shape of a career rather than its contents.