Skip to main content
The dashboard is where you review what GTM finds, drafts, sends and spends. It runs on your machine. Start it with:
The pages fall into four groups. Find and review
  • Queue: a triggers table (enable, edit config, fire) and the target queue with bulk approve and Batch send… per play. Approving sends nothing. Rejecting asks why by tapping, and the Learning strip at the top holds proposals waiting for you. Pending review sorts by newest or ranked, toggled on the page.
  • Prospects: everyone a finder ever surfaced, in any status, with who decided and why, and an override.
  • Add Prospect (from Queue or ⌘K): paste a LinkedIn, X or GitHub URL. GTM researches the person, picks an angle against your ICP and drafts an intro, and the row lands in the queue.
  • Run a play (/run/$playName): editable target rows, a dry-run toggle, and drafts shown as they are written, with lint flags and receipt links.
Send and follow up
  • Plays: cards with channel badges, a Run button, Copy CLI, and optional direct-mail steps with editable position and delay.
  • Cadences: stop, log an outcome, preview the next step on email or LinkedIn, batch send, and review or send direct mail per prospect. A LinkedIn message waiting on an invite reads “waiting for acceptance”.
  • Replies: every reply from OneShot, Gmail and Smartlead mailboxes and from LinkedIn, matched to its prospect, play and cadence status. Answer in place, by hand or with an LLM draft. Drafts use research: known prospects reuse their stored dossier, unknown senders are enriched and their site read (with receipts under inbox-reply), and replies may cite links from your product brief but never invented ones.
Measure spend and outcomes
  • Today: replies, sends and spend for the week, active cadences, current runs, and a strip with each trigger’s state, last run and next due time.
  • Meetings: meetings from your calendar, each waiting for an outcome.
  • Receipts: paginated, with each call’s memo and value chip, linking to the signed payload.
  • Measure: CAC and RoCS by time range, per-cadence spend against tagged value, and the LinkedIn funnel from invite to reply.
Configure
  • Setup: founder profile, ICP, social proof, product brief (facts plus the only links replies may cite), voice card, LLM provider, reply labels, wallet and spend ceiling, sender identities, LinkedIn, calendar, telemetry.
A floating strategist dock on every page reads your ICP and product one-liner and proposes trigger configs as confirmation chips. Beside it, a privacy toggle partially masks names, emails, companies and phone numbers everywhere, so you can screenshot a receipt or cadence without exposing a contact. Costs, receipt IDs and other figures stay visible. It is off by default, remembered per browser, and meant for readable screenshots, not secure redaction.

Measuring angles and formats

When a trigger’s edge carries at least one angle, the trigger editor under its config shows a panel broken into lines:
  • drafts: intro and follow-up totals (sent, regenerated, rotated, auto-sent, replied) for the whole edge;
  • voice: the same totals, split by whether the voice card was on or off for that draft;
  • first-touch format: the same totals per arm, shown only when the trigger sets firstTouchFormat;
  • one line per angle: offered, rotated, redrafted, sent and replied counts, in distinct people, for each angle in the edge.
A reply rate only appears once a line has 30 sends, or 30 people for an angle line. Below that threshold the panel shows how far the sample still has to go, rather than a noisy early rate. Angles are assigned to whoever the classifier thinks they fit, so comparing one angle’s reply rate against another’s is a hint, not a controlled test: different angles can land on different kinds of readers. The first-touch format split (standard vs. brief) is one controlled comparison: each prospect is fixed to one arm, so the two arms get a like-for-like share of the same traffic. For a controlled comparison between angles themselves, set angleAssignment: "arm" on the trigger (needs at least two //-separated angles): each prospect is fixed to one angle instead of getting one by fit, and keeps it through the follow-ups. The per-angle lines keep counting every draft regardless of assignment; once an arm draft exists, a separate angle arms line appears alongside them, counting only those arm-assigned drafts. See Plays and cadences for how to configure both.

Writing an edge

An edge is one or more angles separated by //; each prospect gets the one that fits them. Open every angle with who it’s for, stated in terms visible in the prospect’s own data (their role, their stack, their company’s situation), never a guess at their internal stage or tooling that nothing confirms. Then make one of two moves: a lesson (a named failure, a mechanism, something learned) or an opportunity (something this reader could do that their peers can’t yet), each backed by one concrete fact or number. Keep anything that must appear in every email out of the angle itself, and put it in the parts of your setup that reach every message instead.

Direct mail

Each letter needs its own proof and approval. Review the automatic mail defaults for selected motions in Plays, save the founder return address in Setup, then click Review mail on a prospect’s cadence row. Saved addresses are prefilled. Generate or edit a personalized letter, or upload the prospect’s PDF or JPEG, then review the proof and price and approve the send. The direct-mail guide covers address collection, missing addresses and order recovery.

Demo mode

A screenshot of a real prospect is a leak. Demo mode fills the dashboard with fictional data; it does not fake sends or paid actions. Run bun run cli -- demo seed, then bun run cli -- demo ui, for fictional prospects and outcomes in an isolated home. Scheduled triggers do not run in demo mode.