Yusuf Ahmed
← Builds
Open source · Public beta

Headless GTM

GTM without the SaaS layer. Describe an ICP in plain English and the chain takes it from company discovery to verified, signal-ranked contacts, every step on raw vendor APIs, with cost approved before any credit is spent. The coding agent is the operator, the vendor APIs are the backend, and the skills encode the methodology.

SinceJul 2026StackClaude CodeCodexPythonProspeoApifyFirecrawlCrustDataTheirStackZeroBounceLinksGitHub ↗Launch post ↗Repo walkthrough (3 min) ↗
The problem

What was actually hard

Most GTM tooling advice stops at "use Firecrawl for scraping." The hard part is everything between the tools: a list from one vendor, signals from another, judgment nowhere, and an orchestration platform charging per seat to glue it together.

Vendors sell facts: raised a Series A, hired 18 people, has an open VP Sales req. Campaigns run on fit. Whether a fact is an outreach angle for this offer is a judgment call, and no vendor sells that.

How it works

In order

  1. Router. picks the chain for the ICP, budget and volume, with a cost estimate per step, then runs it under supervision.
  2. Discover. firmographic pull from Prospeo, lookalikes from seed companies, or Google Maps for local businesses.
  3. Qualify. a free model-judgment gate decides who is worth paying to know more about. Runs before any credit is spent, and again once evidence arrives.
  4. Read the websites. Firecrawl turns each domain into page-typed markdown: homepage, about, careers, pricing.
  5. Signals. CrustData for what already happened (funding, headcount, hires); TheirStack for what is open right now (reqs, hiring team).
  6. Judge. rank every signal 1 to 10 with the verbatim sentence and source that back it, and pick the campaign approach.
  7. Resolve. a cost-ordered email waterfall with independent validation on every hit.
  8. Hand off. an owner-readable campaign sheet and a HubSpot-shaped CSV. Nothing downstream reads it, and nothing sends.
Judgment calls

Decisions that made it work

  • A shared record contract, not a tool pile.Every skill reads and writes the same JSONL records keyed by normalized domain into one runs folder. Each step adds fields and never overwrites upstream ones, so any skill's output is any later skill's input, and an interrupted run resumes without re-spending.
  • Two free judgment layers bracket the paid steps.The gate decides who is worth paying for; the judge decides what to say. Neither costs a credit. The gate runs twice and can demote a company it passed earlier once the scrape and signals come back.
  • Deliverability over find rate.Resolution optimizes bounce rate, not found-email count: cheapest resolver first, validation on every hit, seniority bands never crossed when a title search broadens, no invented info@ addresses.
  • Methodology as a readable decision tree.The router encodes which ICP shapes go through which chain, at what depth, at what cost, as prose anyone can inspect. The reasoning is in the repo, not in someone's head.
What it did

Outcomes

Internal benchmark, 4 scenarios and 27 assertions: chains run through the router scored 100% with zero variance, against 84% (±19) for the same setup without it, at equal time and token cost. The edge is the enforced operating contract, not tool knowledge.

Installs into Claude Code and Codex under the agent-skills standard; in beta with client teams.

Why it matters

This is the same chain Zevenue runs on paid engagements, released with its conventions, cost gates and decision tree. Read the code before the interview.