← All craftbooks

Company Research Brief

Personal and business workflowsevalv1.0.0released 2026-06-05workflow: build-loop

A sharp, dated, sourced brief on a company before an interview or application — what they do and how they make money, recent signals, team and role context, culture as evidenced, likely interview themes, and five specific questions to ask THEM. Skimmable in ten minutes; every claim dated or marked UNKNOWN rather than guessed. Use before any serious interview or when deciding whether to apply.

Steps

Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.

  1. Lock the brief templateplannerentry

    sections, sourcing rules, and what a ten-minute skim must deliver

    Show working prompt
    Lock the shape before researching. Step 1: confirm the target company, role, and interview round from the project record or the user (briefly). Step 2: lock the brief's section template: what they do + business model; recent news and signals (each dated); team and role context; culture as evidenced by concrete facts (not the careers-page adjectives); likely interview themes for this role; five sharp questions to ask THEM. Step 3: set the sourcing rules — every claim carries a date or a source, anything unverifiable is marked UNKNOWN, nothing is guessed. Step 4: set the size budget: skimmable in ten minutes. Step 5: write an acceptance-criteria checklist ('every section present', 'claims dated/sourced or UNKNOWN', 'questions specific to this company — would not fit a competitor', 'ten-minute skim'). Write the template + checklist via write_task_note AND to notes/brief-scope.md.
  2. Gather the factsresearcher

    dated, sourced notes keyed to the template sections

    Show working prompt
    Gather facts for every template section. Step 1: use the web research capabilities on your current roster when available; otherwise work from materials in the project and say so at the top of the notes. Step 2: collect facts into structured notes keyed by template section, each with its date and source. Step 3: hunt specifically for recent signals — funding, launches, leadership changes, layoffs, public filings, engineering-blog themes — and for evidence of how the team actually works. Step 4: mark anything you could not verify as UNKNOWN rather than filling the hole with a plausible guess. Step 5: note two or three observations that could become sharp questions to ask them. Write the notes via write_task_note AND to notes/research-notes.md.
  3. Write the briefcopywriter

    the ten-minute brief, led by what matters for the interview

    Show working prompt
    Assemble reports/company-brief.md to the locked template. Step 1: lead with the two or three things that matter most for THIS interview — the reader may only get the first screen. Step 2: fill every template section from the research notes; every claim traces to a dated note, UNKNOWNs stay visibly UNKNOWN. Step 3: write the likely-interview-themes section as preparation the candidate can act on tonight. Step 4: close with the five questions to ask them — each specific enough that it would make no sense asked of a competitor. Step 5: trim to the ten-minute skim budget; cut color, keep signal. On a loop-back, fix ONLY the named issues.
  4. Evaluatereviewer

    Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.

    Show working prompt
    QA the brief. Step 1: check every template section is present and filled from the notes — no section silently dropped. Step 2: spot-check claims against the research notes for dating/sourcing; FAIL any undated claim that isn't marked UNKNOWN. Step 3: read the five questions as the interviewer would — FAIL any that could be asked of any company. Step 4: time the skim — if it reads past ten minutes, FAIL with what to cut. Write PASS/FAIL per criterion.
    
    Then route — this is the whole point of the loop:
    
    - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`.
    - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "write" })` to loop back. The builder fixes exactly those gaps.
    
    Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.
  5. Finishdeveloper

    All acceptance criteria met. Stamp a short summary and report DONE.

    Show working prompt
    Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.

Triggers

Phrases that suggest this craftbook to a crew.

Source

View this craftbook on GitHub · MIT license