← Intent Outreach

Intent Solutions · Walkthrough

How a run actually happens

Six steps. The operator decides at the checkpoints, code decides the order, and the model is consulted at exactly one step. Every step cites the file that implements it.

1
operator decides

State the campaign

An ideal customer profile, a list of target domains, and a channel. That is the whole input, from the Claude Code skill or the command line.

skills/intent-outreach/SKILL.md · cli.ts

2
code decides

Research every domain

One researcher per domain, fanned out. Data connectors run in the order written in code, free tiers first; a connector with no key set skips itself and is recorded as skipped. Every fact carries its source. The run then checkpoints: the operator reviews the leads before anything else happens.

pipeline_core/pipeline.ts · pipeline_core/connectors/index.ts

3
code decides

Find and verify contacts

Contacts are found, emails verified, and records enriched with signals the draft can use, funding, hiring, team size. Everything is a typed record before it moves on. Second checkpoint: the operator sees who would be contacted.

pipeline_core/pipeline.ts · pipeline_core/models.ts

4
code decides

Screen before drafting

The compliance gate runs ahead of any drafting: do-not-call lists, TCPA quiet hours, and service area. It is pure, clock-injected, and fails closed, so a contact it cannot clear is blocked. Blocked contacts are recorded on the run with a reason and never reach the model.

pipeline_core/compliance/index.ts · pipeline_core/packs/b2b-sdr.ts

5
model consulted

Score, then draft

Two model calls per cleared contact: a fit score with reasoning, then a draft grounded in the researched facts. Output is structured and treated as a proposal, never trusted directly. Each message records its model, prompt version, and score. The cost meter records tokens and dollars per call.

pipeline_core/seam.ts · pipeline_core/cost.ts · prompts/

6
code decides

Validate, then save

The validator is the only code that can mint the record type the store accepts, so an invalid run cannot be persisted; the compiler and CI both enforce it. The finished run lands in a local file the operator owns, with cost totals and the audit trail attached.

pipeline_core/validator.ts · pipeline_core/store.ts

Run status as it progresses: researchedenrichedcomplete. The operator can stop at either checkpoint and keep everything gathered so far.

← Back to the executive brief  ·  See a sample run  ·  What it touches