Local-first enrichment workbench

Build lists like
a spreadsheet,
that enriches itself

GTM Studio is a Clay/Sculptor-grade enrichment table that runs on your machine. Rows are companies or people. Columns are enrichment steps — tools, AI, waterfalls — that run as a dependency graph. Your providers, your data, your spend.

01 — What it is

A workbench, not a black box

Operators rebuilt the same enrichment plays column-by-column in expensive cloud tools. GTM Studio is the same shape — but it runs locally, talks to the real providers, and gates spend so you only pay for rows that qualify.

01

Local-first

SQLite on your disk is the source of truth. Works fully offline; optionally syncs each client to its own Supabase schema in the background.

02

Your providers

86 built-in tools — Blitz, Kitt, LeadMagic, IcyPeas, Serper, Spider, MillionVerifier and more. Add any HTTP API as a custom tool. Your keys, your bill.

03

Cost-gated

A cheap AI or formula check gates each paid column. Rows that don't qualify are skipped before any spend — the gates are the cost model.

04

A Companion

A Claude agent grounded in your GTM playbook and aware of the live table. Ask it to build the columns, fix a chain, or run the enrichment for you.

02 — How it works

Watch a run

Add rows, then columns enrich them in dependency order. The ICP gate decides who's worth spending on — unqualified rows skip the paid people + email columns entirely.

heydigital · Companies ▶ Run Enrichment
CompanyINPUT DomainINPUT FirmographicsTOOL · leadmagic ICP TierAI · gpt-4o-mini Work EmailWATERFALL
AI Tool Waterfall Gated → skipped (no spend) Complete
1

Create a client

Each client is an isolated workspace — its own tables, entities and (optional) cloud schema.

2

Start a table

Blank, from a recipe, a CSV import, or a Source (find companies / people from a provider).

3

Columns form a graph

Each column declares its inputs. The engine computes the run order — no manual wiring.

4

Gates control spend

A run_condition skips a column for rows that fail it. Cheap filters run first; paid steps stay behind the gate.

5

Run

Cells fill with a value, a status and a cost. Re-runs skip fresh cells and anything you edited by hand.

6

Send

Push qualified rows to a Destination — webhook, CRM, or a campaign — or export CSV.

03 — The column model

Eight kinds of column

Mix them freely. Every column reads upstream cells; the graph keeps them in order.

input

Manual data, CSV, or a Source. The seeds everything else reads from.

tool

One provider call — enrich a company, find an email, search the web. 86 built in.

ai

An LLM prompt over upstream cells: classify, score, write a line, extract.

waterfall

Try providers in order; stop at the first that returns. The email/phone play.

function

Deterministic JS — build a query, derive a domain, normalize a value. Free.

transform

Built-in cleaners (name, company, email) with an optional LLM fallback.

reference

Read a cached field off the row's company/contact entity. No cost.

cloud

Offload a heavy enrichment to a managed cloud job and stream results back.

04 — The waterfall

First hit wins

A waterfall column tries each provider in order and stops the instant one returns a usable value — so you never pay the third finder when the first one had it.

Work Email · stripe.com
LeadMagicqueued
Anymailfinderqueued
QuickEnrichqueued
awaiting result…
05 — Starter recipes

One click to a working table

Pre-built column chains — pick one and it instantiates a table ready to run. The flagship GTM pipelines come gated out of the box.

Pipeline · Company → People
Firmographics → biz-type → disqualify → ICP gate → decision-makers + hiring signal.
Pipeline · LinkedIn → CRM
Engager → job-title gate → Blitz email + firmographics → size/competitor gates → waterfall + copy.
Contact Enrichment
Find → verify → role-fit, via the email waterfall + MillionVerifier.
Company Enrichment
Domain → live web context → AI industry + one-line summary.
LeadGrow ICP Qualify
Serper context → AI ICP fit + segment + outreach angle.
Copy Generation + QA
Research → AI cold email → AI QA for spam triggers + length.
Hiring Signal
Jobs query → Serper → AI reads whether they're actively hiring.
Competitor Scan
Build a query → Serper → AI lists the likely competitors.
Email Waterfall + Personalization
Find a work email, then write one personalized opener.
06 — Local-first, cloud-optional

SQLite is the truth. The cloud is a mirror.

Every edit writes to local SQLite instantly. If a workspace is connected, the active client replicates to its own Postgres schema every 30s — row-level last-write-wins. Pull the plug and nothing breaks.

Your machine
SQLite · authoritative
Background sync
dirty rows · every 30s · LWW
Supabase
proj_<id> schema · per client
07 — The Companion

Tell it what you want

The Companion is a Claude agent that runs inside your GTM playbook checkout and can drive the live table through the archon CLI — read context, add columns, run, approve gates.

you › add an ICP score gated to tier A/B, then find emails
— reading table context (3 columns, 3170 rows)…
+ ai column “ICP Tier” (gpt-4o-mini)
+ waterfall “Work Email” · run_condition: tier ∈ {A,B}
✓ 2 columns added · run queued
you ›
08 — Get started

Five steps to your first enriched list

1

Install

Run the desktop installer. Your data lives at %APPDATA%/archon.

2

Create a client

Name your workspace from the welcome screen.

3

Pick a recipe

e.g. Pipeline · Company → People — it builds the columns for you.

4

Add your keys

Drop provider API keys in Settings → API Keys. Only the ones a recipe uses are needed.

5

Add rows & Run

Paste, import, or use a Source — then hit ▶ Run Enrichment.

Or just ask the Companion

“Build me a list of Series-B fintechs with verified emails.”