LeadGrow Fulfillment Pipeline
PROTOTYPE · Variant A — Swimlane · question: does the lane assignment feel right?
Campaign Setup
1
Brief authoring (frozen)
List Assembly
2
List assembly — DiscoLike / AI Ark / GMaps / custom
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)
Seg Anneal
8
Anneal segmentation prompt
Seg at Scale
9b
Low-confidence tiebreak
9a
Segmentation at scale → flags low-confidence to CC
Prospects
10
AI Ark 3-tier prospect waterfall with annealing
Suppression
11
Suppression check + dedup
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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)
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
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)