the machinery
Every AI call this app makes, told plainly: what goes in, what comes back, and where it lands. The model proposes and shows its work; you decide. In local mode nothing leaves your machine except the call to the backend you chose.
1. Chapter suggestions
intake_suggestionsIn chapter three, after you have written your roles and your throughline, the app offers horizon titles and signal words you might not have thought to claim. It reads only what you typed in the chapters themselves, nothing from disk, and its suggestions are clickable only because they are real: they come from your own words, rephrased.
The result is cached per user, so revisiting the chapter does not spend again.
Kept with your chapter progress; nothing lands until you click it.
2. Score a posting
score_postingThis is the heart. You paste a posting on Evaluate (or confirm a discovered company, or hit See roles on the watchlist) and the app assembles your entire side of the argument: your Compass, your Book, your Playbook, your signal and red-flag words, your compensation floor, and your recent disagreements with the machine. Ten score calibrations and five verdict overrides ride along, so the model reads your pushback before it scores.
It returns six scores from zero to three on your own dimensions, a verdict, a fit summary written to you, and a gap analysis with buildable project ideas. It also extracts the title, company, location, and salary, and it is under orders to keep the title clean.
Saved as a new role: the row behind every dashboard entry.
↳ The slim-book pre-pass
select_relevant_rolesOnly for the Claude CLI and local models, which cannot use prompt caching and choke on a full Book. Before scoring, a tiny call reads just your career timeline headings next to the posting and picks which of your roles actually matter for it. Scoring then runs against a slimmed Book: the chosen roles in full, everything else untouched. If the pre-pass fails, it fails open and keeps the whole Book.
Not saved; it only shapes the scoring call that follows.
3. Draft materials
generate_materialsOn a role’s Materials page, the model drafts a cover letter and a resume (or a resume summary, in summary mode) for that specific posting. It reads your Book and Playbook, the role’s scoring record including the fit summary, and your writing rules: the sections of your Playbook about what to say and what to never say.
It also reads your last five rounds of edits as line diffs. When you rewrote its sentence last time, it sees exactly which lines you cut and what you wrote instead, and it is told to draft closer to you this time.
Saved on the application record; exported to disk in local mode.
4. Base resumes
generate_base_resumeOne call per resume version, each drafting a full markdown resume from your Book and Playbook, angled at that version’s label. These are the starting points that per-role tailoring works from.
Saved per version; view and edit them under Settings → Your documents.
5. Discover companies
discover_companiesOn Discover, the model reads your Compass, Book, and Playbook and proposes companies worth watching, with a guess at each one’s careers page and screening vendor. It is handed exclusion lists of everything you already track, skipped, or were shown, so it cannot pad the list with what you have seen.
Its guesses do not stand alone: the app then verifies each ATS guess against the live board before anything is shown to you.
Saved as suggestions after live verification and the grounding pass below.
6. Ground the rationales
ground_suggestionsThe honesty pass. Right after discovery, a second call takes each suggested company’s “why it fits” and rewrites it against real posting text fetched from that company’s live board. A rationale that cannot be grounded in an actual posting comes back null and the claim is dropped. What reaches your screen has evidence behind it.
Replaces the first call’s rationale before suggestions are saved.
7. Autofill a company
autofill_companyWhen you add a company by hand, the model fills in what it knows from the name alone: category, a why-you-might-care line, the careers URL, a screening-vendor guess. If it does not recognize the company it says so with nulls instead of inventing one. Nothing is saved until you confirm the form.
Prefills the form only; saved when you submit it.
The feedback loop
Disagreement is the product. When you correct a score and say why, that becomes a calibration; the next ten scoring calls read it. When you overrule a verdict, the next five calls read that too. And when you edit a draft before sending it, the exact lines you cut and the lines you wrote instead are shown to the next materials call as a diff.
None of this trains a model. It is context, assembled fresh each time from your own records, and it stays in your database.
What it costs
The two heavy calls (scoring and discovery) split their prompts in half: a stable prefix holding your Compass, Book, Playbook, and calibrations, and a volatile tail holding the posting at hand. The prefix is cached by the API, so scoring twenty postings in a run rereads your documents at about a tenth of full price. A typical scoring call on Sonnet 5 runs around $0.032 before caching; the Claude CLI costs nothing extra on a subscription, and a local model costs only electricity.
Every call, whatever the backend, logs its tokens and cost to the usage ledger, which is what the Ledger page reads.
Hand-checked against the code on 2026-07-27. If a call changes, this page changes.