PROTOTYPE — DELETE AFTER APPROVAL

LeadGrow Fulfillment Pipeline

PROTOTYPE · Variant A — Swimlane · question: does the lane assignment feel right?
Claude Code (local)
Dashboard
Trigger.dev (cloud)
Bison CLI
Multi-system handoff
LiteLLM (AI gateway)
Langfuse (observability)
Phase
Claude Code
Dashboard
Trigger.dev
Bison CLI
Campaign Setup
1 Brief authoring (frozen)
List Assembly
2 List assembly — DiscoLike / AI Ark / GMaps / custom
raw-list.csv
Normalize
3 Normalize + MX + tech fill-in
Clay Enrich
4 Dispatch → Clay company enrich (fire-and-wait, Cloudflare)
4b Execute Clay fire-and-wait per row, poll until done
Custom Enrich
5 Dispatch custom enrichments
5b Execute → writes to Clay + Supabase cache
enriched-list.csv
Supabase cache warm
ICP Anneal
6 Anneal ICP prompt on sample
ICP at Scale
7 ICP qualification at scale (graduated prompt)
icp-qualified.csv
Seg Anneal
8 Anneal segmentation prompt
Seg at Scale
9b Low-confidence tiebreak
9a Segmentation at scale → flags low-confidence to CC
segmented.csv
Prospects
10 AI Ark 3-tier prospect waterfall with annealing
Suppression
11 Suppression check + dedup
prospects-clean.csv
Copy Gen
12 Copy gen — Braun + copywriter, per segment
Personalization
13 Anneal personalization prompt on sample
14 Personalization fan-out (cached by domain)
QA
15 Semantic QA on sample (rendered)
16 Mechanical QA — spam, variables
campaign-ready.csv
copy-per-segment.md
Bison Setup
17 Bison 9a-9b deterministic
17 Create campaign + upload sequence
Inbox Select
18 9c inbox selection
18 Dashboard inbox UI
Campaign Cfg
19 Bison 9d-9f deterministic
19 Lead upload + settings + schedule
Launch Gate
20 Human sign-off (CC review)
20 Dashboard launch gate UI
Post-Launch
21 Reply scoring, retrospective, weekly rhythm
21 Automated: lead-recycle, job-change, health, hire-signal

LeadGrow Fulfillment Pipeline

PROTOTYPE · Variant B — Phase Cards · sequential with handoff artifacts
CC
Dashboard
Trigger.dev
Bison
Handoff
LiteLLM
Langfuse
PHASE 1 Campaign Setup → brief.md + raw-list.csv
CC
1. Brief authoring
Client context, ICP snapshot, campaign angle — frozen before list work begins
CC
2. List assembly
DiscoLike / AI Ark / GMaps / custom — normalized CSV output
PHASE 2 Data Enrichment → enriched-list.csv + Supabase cache
DASH
3. Normalize + MX + tech fill-in
Dashboard handles column mapping, MX validation, tech stack inference
HAND
4. Clay company enrich — fire-and-wait via Cloudflare
Dashboard dispatches → Trigger.dev executes clay fire --wait per row, polls result
HAND
5. Custom out-of-box enrichments
Dashboard dispatches → Trigger.dev executes → writes to Clay table + Supabase cache
PHASE 3 ICP Qualification → icp-qualified.csv (score ≥ 60)
CC
6. Anneal ICP prompt on sample
10-iteration anneal loop on 50-lead sample, graduates prompt to 92%+ accuracy
TRIG
7. ICP qualification at scale
Graduated prompt runs on full list via Trigger.dev, writes scores to Supabase
PHASE 4 Segmentation → segmented.csv (N segments)
CC
8. Anneal segmentation prompt
Derives 3-5 segments from ICP + brief, validates on sample
TRIG
9a. Segmentation at scale
Classifies all rows, flags low-confidence (<0.7) for CC tiebreak
CC
9b. Low-confidence tiebreak
CC reviews flagged rows, makes final call, writes back to CSV
PHASE 5 Prospect Building → prospects-clean.csv
CC
10. AI Ark 3-tier prospect waterfall with annealing
T1: founder/CEO — T2: VP Sales/Marketing — T3: Director. Anneals find prompt per tier.
TRIG
11. Suppression check + dedup
Cross-checks lgsupabase blacklist + existing campaign_prospects in Supabase
PHASE 6 Copy & Personalization → copy-per-segment.md + personalized.csv
CC
12. Copy generation — Braun + copywriter, per segment
4T / 4P structure, proximity framework, spam check loop
CC
13. Anneal personalization prompt on sample
Domain-level first-line personalization, annealed to match voice
TRIG
14. Personalization fan-out (cached by domain)
Trigger.dev fans out to all prospects, dedupes by domain for cache efficiency
PHASE 7 QA → campaign-ready.csv (QA passed)
CC
15. Semantic QA on sample (rendered)
CC reads rendered emails, checks voice, logic, personalization quality
TRIG
16. Mechanical QA — spam, variables
Automated: spam score, variable rendering, em-dash check, subject line length
PHASE 8 Campaign Launch → live campaign in Bison
TRIG
17. Bison 9a-9b — create campaign + upload sequence
Deterministic: campaign create, sequence upload, settings apply
HAND
18. 9c inbox selection (CC + Dashboard)
Human selects sending inboxes from dashboard UI, confirmed by CC review
TRIG
19. Bison 9d-9f — lead upload + schedule
Deterministic: bulk lead upload, sending schedule, warm-up config
HAND
20. 9g Launch gate — human sign-off
Final review in dashboard + CC confirmation before Bison sets campaign active
PHASE 9 Post-Launch Automation → campaign_prospects in Supabase + Neo4j
CC
21a. Reply scoring + retrospective
Weekly: pull Bison reply data, score sentiment, update Neo4j knowledge graph
TRIG
21b. Automated background workflows
lead-recycle · job-change-tracker · client-health · new-hire-signal — all weekly/daily

LeadGrow Fulfillment — System Map

PROTOTYPE · Variant C — System View · what each runtime owns
🖥️
Claude Code (local)
Human-in-loop · judgment calls · annealing
1Brief authoring (frozen)
2List assembly — DiscoLike / AI Ark / GMaps
6Anneal ICP prompt on sample
8Anneal segmentation prompt
9bLow-confidence segmentation tiebreak
10AI Ark 3-tier prospect waterfall + annealing
12Copy generation — Braun + copywriter
13Anneal personalization prompt on sample
15Semantic QA on sample (rendered)
189c inbox review + confirmation
209g launch gate sign-off
21aReply scoring + weekly retrospective
📊
Dashboard (Next.js)
Operator UI · dispatch · human gates
3Normalize columns + MX validation + tech fill-in
4Dispatch Clay company enrich job
5Dispatch custom out-of-box enrichment jobs
189c inbox selection UI
209g launch gate UI (human sign-off)
Trigger.dev (cloud)
Scale · automation · background jobs
4bExecute clay fire --wait per row (Cloudflare CF worker)
5bExecute custom enrichments → Clay + Supabase
7ICP qualification at scale (graduated prompt)
9aSegmentation at scale → flags low-confidence
11Suppression check + dedup vs Supabase
14Personalization fan-out (domain-cached)
16Mechanical QA — spam / variables
17Bison 9a-9b — campaign create + sequence upload
19Bison 9d-9f — lead upload + schedule
21blead-recycle · job-change · health · hire-signal
🐂
Bison CLI (via Trigger.dev)
Campaign execution layer
17Create campaign in client workspace
17Upload sequence (E1 + E2 per segment)
17Apply campaign settings (1000/800 sends, 2-email)
19Bulk lead upload (create-or-update/multiple)
19Sending schedule + warm-up config
20Set campaign ACTIVE (after human gate)
🔀
LiteLLM Cloud (AI gateway)
BYOK · OpenAI + Anthropic · model routing
6Routes ICP qualification calls (target model per client)
7Scales ICP calls at volume — Trigger.dev → LiteLLM → OpenAI
8Routes segmentation prompt (annealed model target)
9aSegmentation at scale via gateway
14Personalization fan-out — all calls through gateway
21aReply scoring LLM calls
allSingle endpoint for all LLM calls — swap models without touching workflow code
🔭
Langfuse Cloud (observability)
50k traces/mo free · per-client cost tracking
6-9Traces ICP + segmentation anneal loops — input/output/latency/cost
14Personalization fan-out traces — cost per domain, cache hit rate
21aReply scoring traces — sentiment accuracy over time
allPer-client cost attribution — see exactly what each client costs in LLM spend
debugWhen ICP scoring goes wrong on a specific client → trace the exact prompt/response
DATA ARTIFACTS — how state moves through the pipeline
brief.md
raw-list.csv
normalized.csv
enriched.csv + Supabase cache
icp-qualified.csv
segmented.csv
prospects-clean.csv
copy-per-segment.md
personalized.csv
campaign-ready.csv
Bison campaign (ACTIVE)
campaign_prospects (Supabase)
Contact→Campaign nodes (Neo4j)
A — Swimlane