AmbassadorFlow

Operations Console

Funnel — All lead types

Live
Full pipeline from raw scraped sites through classification, CRM upload, verification, outreach and signups.

Funnel — Shopify App Signups

Live
Merchants who installed the AmbassadorFlow Shopify app. Each install lands here as a lead (status signed_up → installed → active). Detected via the Shopify Partner API poller.

Funnel — Shopify Brands

Funnel — WooCommerce Brands

Funnel — Agencies

Funnel — Shopify Agencies

Funnel — WooCommerce Agencies

Funnel — Clutch Shopify Agencies

Funnel — Clutch eComm Marketing Agencies

Funnel — SaaS Partners

Funnel — Job Boards

Funnel — Reviews

Funnel — Expos

Competitor Review Leads

loading…
Brands that left negative reviews on competitor Shopify apps, resolved to named decision-makers via MoltSets + website scraping. In-policy leads (≤12 months) get a personalized LinkedIn DM via SendPilot. The Message Variants section below groups leads by complaint scenario so you can review and improve each message over time.

Get Leads

loading…

How much of our Swedish Shopify base the GetLeads database (334M contacts) actually covers, measured shop by shop with free count calls — credits are only ever spent when a record is pulled. The sweep runs on the Mac and mirrors here every 20 seconds; the panel refreshes every 15 while it moves. Every contact bought so far is listed at the bottom.

loading…

Pipeline Flow

loading…
Scrape → classify → verify, end to end. Each stage hands to the next automatically: a page classified a minute ago is in the verifier’s queue a minute later. Auto-refreshes every 15s while open.

Site Traffic

loading…
Every request to ambassadorflow.com, from the Vercel drain. Vercel forgets its own logs after about a day; this keeps 14. Deliveries are batched, so a visit takes up to a minute to appear.

Live Scrape Feed

loading…
Every site streamed live from any running scrape or classification. Raw scrapes keep a rolling window of the most recent ~5,000 sites; classifications persist in full. Auto-refreshes every 8s while open.

MoltSets enrichment — live feed

Decision-maker emails scraped on MoltSets, biggest shops first. Auto-refreshes every 30s.

Leads collected
Yield by band — emails/company; empirical where processed, estimated otherwise
Current run
Latest leads found — ● verified ● catch-all ● unverified ● invalid
Previous runs
Process control
checking…
Start or restart the long-running jobs. Restarting is safe: an interrupted batch writes nothing for the rows it did not finish, so they simply come round again.
Loading…
Script vs model
loading…
What the Python scrapers produced, and what gemma judged on top of it. Every row passes through the scripts; only a subset reaches the model.
Daily sending — emails sent against the cap, and the positive replies they earned
Loading…
Live campaigns — sending right now: today's emails, and the positive replies they earned
Loading…
Results — what the sending has earned
Emails per positive reply ↗
 
Positive replies ↗
read them
1 · Installed app ↗
 
2 · + Plan activated ↗
 
3 · + Embed live ↗
 
AmbassadorFlow revenue — what these stores pay us
MRR — subscriptions
 
Fee this month
 
Stores referring ↗
 
Billed by month
 
Plan mix
 
Store revenue — what the installed shops are selling, as APP has measured it
30-day store revenue ↗
 
Live stores ↗
 
Not live yet ↗
 
Stores measured ↗
 
Last full month
 
By month
 
Biggest stores ↗
 
This system's campaigns — the SE and US runs built and sent here; the 2025 lists are not counted
In our campaigns ↗
 
Replied ↗
 
Interested ↗
 
Waiting on you ↗
 
Meetings ↗
Signed up ↗
Live inboxes ↗
Classified by Gemma ↗
 
Sending & deliverability — volume against capacity, and whether the mail is landing
Loading…
Lead pipeline — scrape → classify → verify: how fast each is running, and when it finishes
Loading…
Leads still queued — how much each live campaign has left, and how long that lasts
Loading…

System health

Live
Scrapers, sending capacity, inbox health, and data freshness across the stack.
Loading…

GTM Agencies — 4 Pipelines + Brands

~75% Complete
Four parallel agency pipelines (Shopify, WooCommerce/Clutch, Clutch Shopify, Clutch eComm Marketing) plus a brand-direct pipeline. Each follows: scrape → enrich → score → campaign → outreach → CRM.

Pipeline 1: Shopify Agencies

Scoring done
Shopify Partner Directory agencies. Source: official partner directory, 2-pass scraper (listing + detail pages). DB: Shopify-Agencies
74%
Scrape 100% Websites 96% Intel 76% Score 97% Campaign stale Outreach 0%
1 Scrape Done 2,416 agencies
2 Enrich Done 2,313 text / 1,823 intel
3 Score Done 2,351 scored — 2,125 T1
4 Campaign Stale 21,177 generated (Mar 13)
5 Outreach Pending Not started
Scoring Dimensions (lead_scorer_v2.py)
DimensionWhat it measuresTier 1 signal
Vertical matchBeauty, supplements, pet, coffee keywordsBeauty/supplements → Tier 1
Service typeEmail, retention, CRO vs. dev-onlyEmail/retention/CRO = high fit
E-commerce focusDTC/ecommerce signals in website textDTC focus detected
Agency qualityPartner tier, rating_score, rating_countPremier + high rating
Tiers: Tier 1 = score ≥30 + vertical keyword • Tier 2 = score 15–29 • AI review = 10–24 (claude -p) • Skip = <10
Stale Campaign Segments (Need Regeneration)
SegmentLeadsGeneratedStatus
Nutrition (supplements, health)13,186Mar 13Stale
General (remaining Tier 1+2)5,059Mar 13Stale
Premier Plus (Shopify top-tier)1,117Mar 13Stale
Pet & Coffee (subscription)784Mar 13Stale
Beauty (skincare, cosmetics)685Mar 13Stale
Scandinavia (Nordic, any vertical)352Mar 13Stale

Pipeline 2: WooCommerce Agencies

Scored, needs campaigns
WooCommerce agencies from Clutch.co directory (184 pages). This is the largest pipeline by volume. DB: WooCommerce-Agencies
1 Scrape Done 9,195 agencies
2 Enrich Done 7,621 text / 6,658 intel
3 Score Done 7,173 scored — 3,754 T1 / 1,710 T2
4 Campaign Pending Not started
5 Outreach Pending Not started
Scoring Dimensions (score_woocommerce_agencies.py)
DimensionMax ScoreWhat it measures
Industry match35Nutrition, beauty, pet, coffee verticals
Service fit25Email, retention, CRO, growth marketing
Platform profile20Shopify +10, WooCommerce +5, Wix/Squarespace -5
Agency quality15Rating, reviews, Clutch verification
Size fit5Team size & min project thresholds
Tiers: Tier 1 = score ≥30 + vertical keyword • Tier 2 = score ≥20 • AI review = 12–25 (claude -p) • Skip = <12
Service Breakdown (Top Detected)
Primary ServiceCountFit for AmbassadorFlow
Development4,212Low (dev-only)
SEO835Medium
Paid Ads707Medium
Email Marketing291High
Social Media182Medium
Branding173Low

Pipeline 3: Clutch Shopify Agencies

Scraping in progress
Secondary Shopify agency source from Clutch.co (not the official Shopify Partner Directory). Includes non-partner agencies + verified Clutch reviews. DB: Clutch-Shopify-Agencies
1 Scrape Enriching
Directory listing scrape
Done~10,104 agencies
Profile enrichment
~In progress
Website URL extraction
0%waiting
2 Enrich Pending Waiting for scrape
3 Score Pending Not started
4 Campaign Pending Not started
5 Outreach Pending Not started

Pipeline 4: Clutch eComm Marketing Agencies

Re-scraping directory
Broader e-commerce digital marketing agencies (not platform-specific). These are marketing-first agencies — email, growth, retention, SMS, paid ads — with higher propensity to work with DTC brands. DB: Clutch-Ecomm-Marketing
1 Scrape Enriching
Directory listing scrape
Done~14,152 agencies
Profile enrichment
~In progress
Website URL extraction
0%waiting
2 Enrich Pending Waiting for scrape
3 Score Pending Not started
4 Campaign Pending Not started
5 Outreach Pending Not started

Pipeline 5: WooCommerce Brands

Classification in progress
Direct outreach to WooCommerce e-commerce brands from Storeleads data (4.6M records). Currently in the classification & rule-building phase — 13 rounds complete, learning which sites are real online stores vs. B2B/service/etc.
1 Data Done 4.6M brands loaded
2 Scrape Borderline text fill running 2.25M have text · filling 34k borderline
Brand text coverage (Storeleads)
49%2.25M / 4.6M have text
Borderline text fill (AI-review)
~34,122 borderline rows (no usable text → blocks Woo classifier)
3 Score Classification 2.3M scored — 882 classified
Rule-based scoring
50%2.3M / 4.6M
E-commerce classification
<1%882 classified (13 rounds)
Exclusion rule learning
80%238 KB rules
AI scoring (claude -p)
0%borderline brands
4 Campaign Pending Not started
Brand Scoring Dimensions (score_brands.py)
DimensionMax ScoreWhat it measures
Category match40Beauty, supplements = highest; pet, coffee = secondary
Repeat purchase25Evidence of subscriptions, replenishment, loyalty
Revenue / size25Estimated annual revenue signals
Opportunity20Market size, growth potential
Brand quality15Trust signals, reviews, site polish
Tiers: Tier 1 = score ≥50 + beauty/supplements • Tier 2 = score ≥35 • AI review = 15–34 (claude -p) • Hard filters: excludes dropshippers, POD, B2B, restaurants, service businesses

Pipeline 6: Shopify Brands

Gemma classification running
Direct outreach to Shopify e-commerce brands from Storeleads data (2.5M records). Local Gemma 4 (Ollama, free, on the Mac) is classifying the 18,513 target-vertical tier-1/2 brands in hybrid mode.
1 Data Done 2.5M brands loaded
2 Scrape In progress Brand website text scraping
Brand website scraping
~in progress
3 Score Pending Not started (WooCommerce rules transferable)
4 Campaign Pending Not started

Shared Infrastructure

Production-ready
Tools and systems shared across all four agency pipelines: enrichment engine, campaign generator, outreach tooling, CRM integration, orchestration.

Built & Working

  • AI Enrichment (extract_agency_intel.py): 3-pass (keyword → Claude Haiku → self-verify)
  • Few-shot learning: intel_examples.json auto-corrects from past mistakes
  • Campaign generator (campaign_generator.py): 6 segments, SpinTax A/B/C variants
  • Email verification (verify_leads.py): MillionVerifier integration
  • ReachInbox uploader: round-robin sender assignment, warmup score ≥80 filter
  • Gmail classifier: interest / objection / unrelated reply detection
  • Landing pages (generate_pages.py): unique slugs per lead, Supabase upsert
  • CRM (6_crm/): Google Sheets setup, lead import, commission calculator
  • Scoring logger: appends run summaries to CRM Scoring tab
  • Orchestration: status.py (live dashboard), run_overnight.sh

Waiting (Cross-Pipeline)

  • !Post-send automation: auto-reply within 3 min (stub exists, not wired)
  • !TidyCal demo scheduling: not started
  • !SPF/DKIM/DMARC: email infrastructure setup
  • 3-touch bounced sequence: not started
  • Personalized pages: 14,700+ slugs live on Supabase
  • Cross-pipeline deduplication: agencies appearing in multiple Clutch DBs
Enrichment Cost Model
ComponentModelCost per 10K
Keyword passRegex (free)$0
AI enrichmentClaude Haiku$1.50–$7.50
Agency scoring (borderline AI)Claude Haiku (claude -p)$0 (subscription)
Brand scoring (borderline AI)Claude Haiku (claude -p)$0 (subscription)
Brand auto-researchClaude Haiku (claude -p)$0 (subscription)
Database Locations
PipelineDatabase PathSize
Shopify Agencies/AmbassadorFlow/work/Shopify-Agencies
WooCommerce Agencies/AmbassadorFlow/work/WooCommerce-Agencies
Clutch Shopify/AmbassadorFlow/work/Clutch-Shopify-Agencies
Clutch eComm Marketing/AmbassadorFlow/work/Clutch-Ecomm-Marketing
Shopify Brands/AmbassadorFlow/work/Shopify-Storeleads.duckdb
WooCommerce Brands/AmbassadorFlow/work/woocommerce_test_full_text_check.duckdb
GTM Agencies — Total Monthly Cost: $210–$420
ServiceWhat ForModel / TierUnit CostEst. Volume/moEst. $/mo
Claude Code subAll AI classification + scoring + enrichmentClaude Haiku via claude -p$0 marginalAll volume$0
ReachInboxCampaign sending + warmupPlan-based~$199–$499/mo flat5–10K leads$200–$400
MillionVerifierEmail verificationBulk API$0.002/email5–10K emails$10–$20
Total GTM Agencies$210–$420
All AI costs covered by Claude Code subscription (claude -p --model haiku). No per-call API charges. Biggest variable cost is ReachInbox for campaign sending.

Website & Partner Portal

~85% Complete
Next.js 15 marketing site + Supabase-backed partner portal. Full authentication, multi-tier commissions, admin dashboard. Deployed on Vercel.
85%
Marketing site Partner portal Admin dashboard Auth & commissions Stripe payments Theme App Extension
100%
Landing page
100%full feature overview
Competitor comparisons
100%7 pages
Alternative pages
100%dynamic /alternatives/
Personalized landing pages
100%dynamic [slug]
Pricing plans
100%3 tiers
LP visit tracking
100%Sheets + Supabase
98%
Authentication (signup/login)
100%Supabase Auth
Dashboard (KPIs + chart)
100%4 KPIs, 30-day chart
Brands management
100%list, status, revenue
Payouts page
100%history + status
Referral system
100%2-tier, 5% upstream
Revenue breakdown
100%12-month chart
Partner settings
100%name, company, payment
Commission engine
100%20% + 5% referral
Click tracking data
85%collected, no UI
100%
Partner management
100%approve/suspend
Partner detail pages
100%referral chain, stats
Revenue dashboard
100%GMV, fees, top 10
Brand management
100%all brands, status
Payout management
100%create + mark paid
Partner type assignment
100%agency, consultant…
100%
Order webhook
100%attribution + AF fee
Brand status webhook
100%status + touchpoints
Click tracking API
100%IP hash, referral
Platform detection API
100%Shopify/Woo detect
Partner signup API
100%referral code gen
Partner settings API
100%PATCH profile
Industry benchmarks API
100%11 industries
6%
Stripe / payment integration
0%manual payouts only
Email notifications
0%no email library
CSV export
0%not started
Theme App Extension
0%Shopify widget
Hybrid attribution
0%cookie + discount
Webhook HMAC validation
50%Bearer only
Click analytics dashboard
0%data exists, no UI
Two-factor authentication
0%not started
Admin audit logging
0%not started
API documentation
0%not started
Tech Stack
LayerTechnology
FrontendNext.js 15, React 19, TailwindCSS 4, Radix UI
AuthSupabase Auth (email/password)
DatabaseSupabase (PostgreSQL)
ChartsRecharts 3.8
DeploymentVercel
TypesTypeScript 5
Website — Monthly Cost: $90–$150
ServiceWhat ForPlanEst. $/mo
SupabasePostgreSQL database + AuthFree → Pro ($25 base + row overage)$60–$100
VercelNext.js hosting + serverless functionsPro ($20/mo + analytics)$30–$50
Total Website$90–$150
Note: Supabase currently on free tier (50K rows max). Will need Pro tier ($25/mo + variable) once lead_pages + revenue_events + click_events exceed 50K rows. Vercel Pro includes Web Analytics + Speed Insights.

Competitor Monitor

Live
Weekly source monitor (Hetzner cron, Mondays 09:00) watches each competitor's pricing & feature pages and flags changes to re-verify in the comparison tables. Same alerts go to Telegram.
Pages watched
Changes logged
Unreachable
never
Last check
WhenCompetitorChange to re-verify
Loading…
Comparison pages

35 indexed competitor comparison pages are live under ambassadorflow.com/compare (source-verified matrices; the long-tail set is noindex until it earns demand). Google Search Console wiring is pending.

Content Gaps

Live
Google Search Console queries mapped against our published pages. Opportunities are searches where we already rank in striking distance (positions ~4–20) or pull impressions without a dedicated page worth building.
Keywords tracked
Opportunities
Striking distance
Monthly impressions
QueryPosImpr.ClicksGap
Loading…

Leads

CompanyContactEmailTypeStatusCampaignLast Touch

Lead Sources & Provenance

Where these leads came from and how they were filtered, from the raw database down to what we actually emailed.

The funnel

By status

By email type

Store/generic = info@, sales@, hello@ (general inbox). Named = a person's address.

Activity

Campaigns

Conversations & Auto-replies

Live from the ReachInbox unified inbox. Each thread shows the lead's reply and our auto-reply (flagged). Click a conversation to expand the full thread.

Loading conversations…

Sending Inboxes

Inbox Name Provider Status Health Daily Limit Sent Today

Email Sending Capacity

Selected range
This Month

Range Utilization

Daily Sends vs Capacity

Each bar is one day (emails sent vs the /day capacity). Grey bars are weekends, which are excluded from the capacity total.

Funnel

Every domain Gemma has classified, through to a reply. Filters recompute the whole funnel.

Leaks — leads that skipped a step

Lists

Gather companies from All companies, then Prepare. The checks run cheapest first — deduplication, suppression, is-it-a-shop, platform, liveness and language are all free. Verification is the only step that costs money, so it runs last and only ever sees what survived.

Classification

Gemma decides whether a domain is an e-commerce shop and what it sells. Nothing may be emailed before it has an answer here, and it runs locally, so it costs nothing but time.

Email verification

Verification is the bottleneck on every segment — there are always more leads than deliverable addresses. A verdict is bought once and never paid for twice, and a shop whose site is down is skipped before a credit is spent on it.
Which campaign the credits were spent for
Waiting to be verified — live, never contacted
Live — addresses as they come back
History — what each day's credits bought
Recent verification runs

Activity

Every action across the system, newest first — a reply arriving, a suppression, a stage move, a draft written, a job finishing. The Live Feed shows conversations; this shows what happened.

Live Feed

All companies

One row per company, newest action at the top. A company that replied on any channel is marked blocked and every automation skips it — see Do not contact for the full list and for what the block has actually stopped.
Quick segments
🏢 The company
What the business is, independent of us
📍 Where it came from
Which list, scrape or channel put it in front of us
🎯 Fit and score
How good a prospect we think it is
✉️ How to reach them
Whether we hold a usable way in
📤 What we have done
Our side of the conversation
💬 What they did
Their side of it
🚦 May we contact them
The suppression gate
🧩 What they run
Detected from their site — 20,065 companies have at least one
Outreach state — across every source. Each company is in exactly one state.
Channel dots: grey = not contacted, blue = contacted, green = replied, hollow = no handle for that channel. Click a row for the full history.

Do not contact

Everyone no automation may contact, on any channel, whatever source they came from. The block is computed from every signal at once — a reply, a hand-written message, a booked meeting, a signup, an unsubscribe, a Telegram pause, a manual stop — so email cannot keep sending to someone who already answered on LinkedIn. An out-of-office auto-reply does not block.

Blocked sends — what the suppression actually prevented

The list

All shops

Outreach state — where the shops in this list stand right now. "This list" is our built candidate pool: every domain our scrapers pulled in and Gemma classified, plus leads that entered outreach. Not all of Shopify. Each shop is in exactly one state.
Channel dots: grey = not contacted, blue = contacted, green = replied, hollow = no handle for that channel. Click a row for the full history.

Angles

One angle is one argument for why a visitor should come back, not one ad. Two angles from the same territory are a copy variation rather than a test, so a wave is built by taking the best angle from each territory instead of the loudest five overall. Headlines are capped at 40 characters and descriptions at 30 because the platforms truncate past that; the limit is enforced here, in the API and in the database, so copy that saves is copy that exports.

Experiments

One row per angle × audience. The Meta ad-set id is recorded here when the upload comes back, because Meta reports spend against an ad set and knows nothing about our angles — that mapping has to be written down when the ad set is made, not reconstructed from ad names later. An ad set is not a test until it has run three weeks, and cost per signup is the number to judge it on, never CTR.
AngleTerritoryAudienceStatus $/dayMeta ad setStarted

Build

Pick who the ads are for. Every angle written for that buyer appears below with its creative and the copy that ships with it — the call-out already applied, exactly as it will read in the upload. The words and the picture are on one page because they are one ad.
+

Creative

The same creative/template.html the PNG renderer uses, rendered here in the browser — so what you see is what uploads. Edit the wording in Angles; this reflects it on save. Download writes a PNG named exactly as the Image File Name column in meta_bulk.csv, so dropping the files into Meta’s bulk import makes the sheet resolve by name.

Results

What each angle cost and what it produced. Spend comes from Meta against an ad set; outcomes come from our own ads_touch rows, keyed on the utm_term the generator stamps with the angle id. Judge on cost per signup, never on CTR — the loudest angle and the one that converts are usually not the same ad. An angle needs three weeks before it means anything, so days is shown next to the money.
AngleTerritorySpend LandingsLeads SignupsCost/lead Cost/signupDays Verdict

Copy Studio

A segment is a saved filter, so it stays live as brands become sendable. The preview below runs the same resolvers and the same checks the push runs, against real brands from the segment. A lead that cannot fill a slot the body uses is excluded rather than mailed with a gap in it.

Segments

Templates

Signals

Every brand with the signals the copy branches on. Checked means we fetched the site; no programme means we fetched it and found nothing. A brand that is neither is unknown, not clean, and is never counted as having no programme. Detection reads server-rendered HTML and follows one hop, so a programme behind a JavaScript footer reads as none — open a row to see the evidence a call was made on.
DomainBrandCategoryCountry SignalsAddressVerificationScore
Loading…

Segments

The stage between the pipeline and outreach. Each segment is platform-verified live (we fetch the site, not trust the label), the emails are cleaned for free (syntax, dedupe, live MX, brand-match) before any MillionVerifier credit, and it is split by verified platform. Shopify and WooCommerce become separate campaigns so a shop is never told it is on the wrong platform.

Campaigns

Reply rate is only meaningful for campaigns this system ran. The 2025 campaigns show 100% because only the shops that replied were ever imported, so their denominator is the repliers themselves.
Built here
Results from ReachInbox

Reminders

Conversations where we answered last and they went quiet. Writing a reminder creates a draft from that conversation — it is never sent until you approve it in Drafts, where it threads back into their own email chain.

Scheduled emails

Live
Every follow-up the sequence scheduler will send, soonest first. Move one, reword one, or cancel it — a pending step is a plan, not a promise. Stop conditions still run at send time: a reply, an install or a manual email stops the whole run regardless of what is listed here.
Loading…

Drafts

Nothing here sends on its own. Approving marks a draft ready; a separate step puts it on the wire, so a mis-click cannot email anyone.

All agencies

Outreach state — where the agencies in this list stand right now
Channel dots: grey = not contacted, blue = contacted, green = replied, hollow = no handle for that channel. Click a row for the full history.

Outreach settings

Every rule the automation follows. Changes apply within 30 seconds, no restart.

Waiting for you

What the bot just did

Deploy token

So dashboard deploys stop expiring. Create a token at vercel.com → Account Settings → Tokens with No Expiration, scope it to the ambassadorflows team, and paste it here. Saved to the server env file, never to the code.

Merchants — AmbassadorFlow APP

Their data, copied here. Click a row for every field, including the raw response.
📈 Installs per day
📥 Events received from APP
Loading…
Loading…

Pipeline Board

Everyone we are actually working. Click a card to open it; drag it to another column to move the stage.
Where the conversations are happening
Loading

Reply Trainer

Draft and approve auto-replies to common prospect questions. Generation runs claude -p on the server. Approve good ones to build the training set.

Loading…

Cold Email Trainer

Pick a lead from the CRM; the server reads their website and drafts a personalized first cold email. Edit and approve.

Loading…

Per-lead Reply Trainer

Pick a lead, paste their reply, and draft a personalized response based on their website. Edit and approve.

Loading…

Objection Handling

Draft and approve the best short answer to each common objection.

Loading…

Cold Email Personalizer

Write or paste a cold email; the trainer suggests the merge variables to personalize it per brand, and rewrites it as a reusable template.

Loading…

Approved Examples

Everything you've approved across the trainers. This is the corpus the replies are tuned from.

Loading…

SaaS Partners

~60% Complete
Scrape Shopify App Store, WordPress.org, and WooCommerce.com for complementary SaaS tools (email, subscriptions, loyalty, reviews, shipping) as partnership leads.
60%
Scrape 6,679 apps Scored 4,698 Tiered top 41 Contacts 20 Email finding 0.5% Outreach 0%
Scrape
3 marketplaces
Consolidate
4,618 leads
Tier & Curate
41 top-tier
Email Finding
0.5% have emails
Outreach
Not started
100%
Shopify App Store scraper
100%2,688 apps
WordPress.org scraper
100%3,523 plugins
WooCommerce marketplace
100%468 extensions
Competitor filtering
100%208 excluded
Unified CSV export
100%4,618 deduped
100%
5-point scoring engine
100%4,698 scored
AI pass for uncertain leads
100%score 25–44 band
Competitor penalty scoring
100%auto-exclude
Top-tier ranking
100%41 companies tiered
Tier 1 deep research
100%20 with program details
34%
Contact finding script
100%website + email gen
Contacts found at scale
<1%20 / 4,698
Email verification
0%MillionVerifier
0%
Outreach automation
0%not started
CRM integration
0%not started
Company validation
0%not started
Data by Source
SourceTotalCompetitorsQualified
WordPress.org3,5231563,367
Shopify App Store2,688482,640
WooCommerce.com4684464
Tier 1 Partnership Targets (Top 20)
CompanyCategory
KlaviyoEmail & SMS
OmnisendEmail & SMS
AttentiveEmail & SMS
PostscriptEmail & SMS
SendlaneEmail & SMS
Judge.meReviews & UGC
LooxReviews & UGC
OkendoReviews & UGC
JunipReviews & UGC
RechargeSubscriptions
SkioSubscriptions
Loop SubscriptionsSubscriptions
Smile.ioLoyalty
LoyaltyLionLoyalty
RebuyUpsell & CRO
ReploUpsell & CRO
GorgiasSupport
AfterShipShipping & Returns
Triple WhaleAnalytics
ElevarAnalytics
SaaS Partners — Monthly Cost: $0
All scraping uses Playwright (free, open-source) and the WordPress.org REST API (free, no auth). Data stored in local DuckDB (free). No paid services required for current pipeline.
Future cost: Email finding (if using Hunter.io, Apollo, etc.) would add ~$50–200/mo depending on volume. Outreach automation would use ReachInbox (shared with GTM Agencies).

Job Board Scraper

~90% Complete
Scrapes 14 remote job boards daily for ambassador/referral/influencer marketing roles, filters with 50+ keywords, detects e-commerce companies, enriches with contact info.
90%
14 scrapers 4,823 records Daily schedule E-commerce detection DB persistence pending
95%
API-based scrapers (11)
100%Remotive, RemoteOK…
HTML scrapers (2)
100%BuiltIn, DailyRemote
ATS scrapers (2)
80%hardcoded companies
LinkedIn scraper
70%guest API, 50 max
100%
Keyword filtering (50+)
100%ambassador, referral…
E-commerce detection
100%56 platform signals
Email extraction
100%domain + SMTP
Deduplication
100%per-run dedup
100%
CSV/JSON output
100%4,823 records
Daily scheduling
100%macOS launchd
Rate limiting & error handling
100%graceful retries
0%
Cross-run deduplication
0%not started
Database persistence
0%file-only output
ATS company expansion
0%beyond 30-40 hardcoded
LinkedIn API upgrade
0%guest API limited
14 Active Sources
SourceTypeStatus
RemotivePublic APIActive
RemoteOKPublic APIActive
ArbeitNowPublic APIActive
WeWorkRemotelyPublic APIActive
HimalayasPublic APIActive
JobicyPublic APIActive
LinkedInGuest APILimited
WorkingNomadsPublic APIActive
NoFluffJobsPublic APIActive
JobSpressoPublic APIActive
DailyRemotePublic APIActive
Built InHTML scrapeActive
GreenhouseATS scrapeActive
LeverATS scrapeActive
Job Boards — Monthly Cost: $0
All 14 scrapers use free public APIs or Playwright (free). Data stored locally as CSV/JSON. Scheduled via macOS launchd (free). No paid services.
SMTP email verification feature exists but uses outbound port 25 (free, no API needed).

Competitor Reviews

~75% Complete
Competitive intelligence: scrape negative reviews from 5 platforms, classify pain points with AI (Claude Sonnet), generate personalized outreach, notify via Slack.
75%
Scraped 1,048 Categorized 198 (19%) Outreach 62 (6%) Slack notifications G2/Capterra blocking
92%
Shopify App Store scraper
100%star filtering, pagination
G2 scraper
80%blocking issues
Capterra scraper
80%blocking issues
Trustpilot scraper
100%working
Reddit scraper
100%7 subs, 12 queries
Competitor mapping
100%90+ competitors
13%
Pain point classification
19%198 / 1,048
Outreach message generation
6%62 / 1,048
Uses Claude Sonnet for classification (10 pain point categories) and personalized outreach. ~300–500 tokens input, ~600 output per review.
80%
SQLite deduplication
100%state mgmt
Slack notifications
100%webhook alerts
Continuous monitoring
100%monitor.py
Pricing analysis
100%scrape + report
Reddit pipeline integration
50%standalone only
Trend analysis
0%not started
Automated CI reports
0%not started
Scraper health monitoring
0%not started
Reviews — Monthly Cost: ~$0.04
ServiceWhat ForModelVolumeEst. $/mo
Claude (Anthropic)Pain point classification + outreach genSonnet 4.6~50–100 reviews~$0.04
SlackWebhook notificationsFree (incoming webhooks)~50 notifications$0
PlaywrightScraping (Shopify, Trustpilot)Free$0
Near-zero cost. Claude Sonnet is only called for AI-enriched reviews (~300–500 tokens input, ~600 output per review). At 100 reviews/month this is ~80K tokens — under $1.

Trade Show Expos

~50% Complete
Scrape exhibitor lists from beauty, food, pet, and retail trade shows. 35 scrapers targeting 20+ events. Website enrichment as post-processing.
50%
35 scrapers built 10,671 exhibitors 3,219 classified 4 scrapers broken ~5% enriched
100%
Interzoo 2026
100%4,820 exhibitors
SuperZoo 2026
100%821 exhibitors
Pet industry events
100%325 exhibitors
90%
High Point Market
100%1,664 exhibitors
NRF Big Show
100%1,030 (29% enriched)
Shoptalk Spring
100%604 (72% enriched)
Shoptalk Fall
100%135 (89% enriched)
Groceryshop
100%43 (86% enriched)
80%
Beautyworld ME
100%scraper built
NYSCC Suppliers Day
100%scraper built
ABS / Premiere Orlando
100%scraper built
Cosmoprof (intl)
50%partial data
Beauty enrichment
<1%643 total, 0.2%
60%
Expo West
<1%1 / 3,200 (broken)
Sweets & Snacks
0%scraper broken
Summer Fancy Food
<1%12 / 2,400
NRA Show
5%98 / 2,000
Other food/bev events
100%297 (14.5% enriched)
30%
E-commerce classification
100%3,219 classified
URL enrichment script
100%Playwright-based
URLs extracted
~5%most events missing
Export pipeline
100%JSON → CSV
0%
Contact finding
0%not started
Script consolidation
0%36 files, messy
Clean up debug HTML
0%44 files
International events
0%SIAL, Cosmoprof
Events by Category
EventCategoryExhibitorsEnrichedStatus
Interzoo 2026Pet4,8200%Need enrichment
High Point MarketRetail1,6640%Need enrichment
NRF Big ShowRetail1,03029%Partial
SuperZoo 2026Pet8210%Need enrichment
Shoptalk SpringRetail60472%Good
Pet Industry eventsPet3250%Need enrichment
Beauty events (5)Beauty6430.2%Partial scrapes
Food/Bev events (7)Food29714.5%Partial scrapes
Shoptalk FallRetail13589%Good
GroceryshopFood4386%Good
Expos — Monthly Cost: $0
All scraping uses Playwright (free) + BeautifulSoup (free). Data stored as local JSON/CSV. No paid APIs.

LinkedIn Monitor

Built, Not Active
Playwright-based LinkedIn post comment scraper. Extracts commenter profile URLs and adds them to a Sendpilot email campaign. Includes watch mode with 5-minute polling.
40%
Scraper built Sendpilot API Watch mode Not configured No production runs
100%
LinkedIn comment scraper
100%Playwright
Watch/polling mode
100%5-min interval
Config & session mgmt
100%Chrome profile
Login session detection
100%error handling
100%
Sendpilot API client
100%add leads, list
Deduplication store
100%JSON-backed
0%
Post URL configuration
0%LINKEDIN_POST_URL
Target post identification
0%high-value posts
First production run
0%never run
LinkedIn — Monthly Cost: $50–$150 (when active)
ServiceWhat ForEst. $/mo
SendpilotEmail campaign management for LinkedIn leads$50–$150
PlaywrightLinkedIn comment scraping$0
Currently $0 — not yet activated (LINKEDIN_POST_URL not configured). Sendpilot cost kicks in only when monitoring starts and leads are being added to campaigns.

Other Projects & Resources

Claude Skills Production

34 reusable marketing/growth/ops skill modules with SKILL.md templates
SEO: 5 CRO: 6 Content: 5 Sales: 3 Ads: 3 Other: 12

Podcast Outreach Reference

18 research docs with 100+ channel targets (podcasts, YouTube, newsletters, communities)
Docs: 18 Size: ~500KB

Auto Research Ready

Autonomous ML experiment swarm — GPT training with iterative agent modifications
Framework: PyTorch 2.9 Model: GPT + RoPE

Meta-Dream Daemon Running

Nightly launchd job that syncs project memory across all 9 sub-projects
Last run: Mar 26, 03:05
Empty / Placeholder Directories
DirectoryCreatedStatus
cliffs/Mar 26Empty
legal/Mar 26Empty
logistic-partners/Mar 19Empty
reddit/Mar 18Empty
-design/Mar 18Empty
-growth/Mar 18Empty
-operations/Mar 18Empty
-product/Mar 18Empty
-sales/Mar 18Empty

Everything Waiting To Be Done

Critical / High Priority
  • !GTM Agencies: Post-send automation — auto-reply within 3 min, demo scheduling (TidyCal)
  • !GTM Agencies: Email infrastructure — SPF/DKIM/DMARC for sender domains
  • !Website: Stripe/payment integration for partner payouts
  • !Website: Email notifications (payouts, approvals, alerts)
  • !SaaS Partners: Email finding for 4,618 leads (only 0.5% have emails)
  • !Expos: Fix broken scrapers (Expo West, Sweets & Snacks, Fancy Food, NRA Show)
Medium Priority
  • GTM Agencies: Brand website text scraping (Shopify + WooCommerce stores)
  • GTM Agencies: Full Clutch data integration (500-2,000 more agencies)
  • GTM Agencies: 14,700+ personalized landing pages live
  • GTM Agencies: 3-touch sequence for bounced emails
  • Website: Webhook HMAC signature validation
  • Website: CSV export from portal
  • Website: Theme App Extension (Shopify)
  • Website: Hybrid attribution (cookie + discount code)
  • SaaS Partners: Contact page scraping + outreach automation
  • Expos: Website enrichment on remaining 95% of exhibitors
  • Expos: Consolidate 35 scraper scripts
  • Reviews: Fix G2/Capterra blocking issues
  • Reviews: Integrate Reddit + pricing scrapers into main pipeline
  • LinkedIn: Configure post URL and run first production scrape
Lower Priority
  • Website: Click tracking analytics dashboard
  • Website: Admin audit logging
  • Website: Two-factor authentication
  • Website: API documentation for webhooks
  • Job Boards: Database persistence (currently file-only)
  • Job Boards: Expand Greenhouse/Lever beyond hardcoded companies
  • Reviews: Trend analysis & automated reporting
  • Expos: International events (SIAL, Cosmoprof)
  • Expos: Clean up 44 debug HTML files
  • General: Populate department folders (-design, -growth, etc.)

Cold Email Unit Economics — Inboxkit Phase 1a / 1b

Source doc: gtm-agencies/6_infrastructure/unit_economics.md. Update both when the model changes.

Model inputs (edit to recompute)
Computed outputs
Net close rate
Closes/mo (1a, 16,600 sends)
Closes/mo (1a+1b, 33,200)
AF $/mo per customer
LTV per customer
Steady-state MRR (1a)
Steady-state MRR (1a+1b)
Break-even customers/mo
Funnel breakdown
StepCautiousBaseGoodLive (your inputs)
Reply rate1.0%1.5%2.0%
Positive / replies25%30%40%
Downloads app45%55%65%
Activates (Shopify OAuth + first program)40%45%55%
Revenue-generating60%70%80%
Closes/mo (1a)4.51338
Cost structure
ItemPhase 1aPhase 1a + 1b
Inboxkit subscription$149/mo (Agency)$256/mo (Enterprise)
Domain amortization$18/mo$36/mo
MillionVerifier + proxies$10/mo$15/mo
Total monthly$180/mo$310/mo
Annual$2,160$3,700

Variable cost per extra email ≈ $0. Automated replies mean fixed-cost infra, no per-send marginal cost.

Infrastructure buildout timeline (Day 0 = domain purchase)
Day rangeMilestoneDaily cold volume
0-14Domain aging — Gmail/M365 penalize <14-day domains0
15-28Warmup phase 1 & 2 (5 → 20 warmup/day)0
29-35Cold ramp (5 cold/day/inbox)~255/day
36+Full Phase 1a volume765/day

Revenue lags another 6-10 weeks — send → reply → download → activate → first ambassador-driven sale. First meaningful AF revenue: ~week 12-14.

MRR trajectory — Phase 1a only (live)
Month from Day 0Active customersMRR% of ceiling
MRR trajectory — Phase 1a + 1b (1b on at month 4)
Month from Day 0Active customersMRR

Three levers to accelerate (in order of impact)
  • Turn on Phase 1b at month ~4. Doubles volume and ceiling. Cuts $80k-MRR crossover from ~month 48 (1a only) to ~month 15-18.
  • Close-rate lift. Each funnel step ~equally leveraged. Halving the largest drop-off lifts ceiling ~20%.
  • Raise avg CMR at activation. $150k → $300k CMR doubles per-customer revenue at same close rate. List quality + premier_plus targeting.
Minimum viable "definitely profitable" thresholds
  • Net close rate ≥ 0.03% (below cautious scenario — comfortable)
  • Avg CMR ≥ $50k/mo ($600k/yr) at activation
  • Churn ≤ 5%/mo (Performance Plan + referral-program retention ~2-3%)

All three inside realistic ranges. Break-even at base CMR ≈ 2-3 customers/mo — ~10× lower than base-case funnel throughput.

Track live once cold sends begin
  • Emails sent, replies received, reply rate
  • Positive replies, download events, activation events, revenue-generating count
  • Funnel rates per step (compare to model)
  • Active customer count, monthly revenue churn %
  • Avg CMR at activation (add to CRM "deal closed" row)
  • MRR & implied ARR; overlay vs model trajectory