Skip to content

AI enrichment pipeline

Gushwork · 10,000+ local-business leads a month, enriched from Google Business Profiles first and paid databases only on the misses.

The problem

10,000+ leads a month for US local businesses, with BDRs doing the research by hand. Speed-to-lead was the conversion bottleneck — not lead volume, not copy, not the pitch. Every hour a record sat unresearched was an hour a competitor could answer first.

The call that made it work

B2B databases like Apollo are weakest exactly where this ICP lives: SMB and local. So the primary source isn't a B2B database at all — it's Google Business Profiles, the authoritative record for local businesses.

Select a step for the reasoning

  1. GBP scraping

    Google Business Profiles are the authoritative database for local businesses. Name, phone, email, website, and reviews come off the profile directly.

    Marginal cost per record is near zero. That single property is what makes everything downstream affordable — you can afford to look at every lead because looking is free.

    This is the inversion: most teams start at a paid B2B database and treat scraping as the fallback. For SMB and local, the paid database is the weaker source. Starting there means paying more for worse data.

leads/month processed
10,000+
cut in lead response time
~85%
Build vs. buy: why this graduated out of Clay

The system was prototyped in Clay, then the stable high-volume steps were moved to custom code — n8n plus Python. Clay stayed useful for the parts still changing shape.

The decision rule has three inputs. Core vs. commodity: is this step a differentiator or plumbing? Unit economics at target volume, not at prototype volume — a price that is invisible at 100 rows a month decides the budget at 10,000. And rate of change: anything still being redesigned weekly belongs in a tool that makes redesign cheap.

Claygent was deliberately skipped. Paying agent pricing per row for deterministic scraping is the most expensive way to run a for-loop. Agents earn their cost on judgment, not on fetching a field that sits at a known address.

The architecture, step by step

How this actually runs: the n8n and Python split, what stayed in Clay and why, the fallback rule that keeps paid credits off the full list, and the verification gate that protects sending domains. Written for someone who has to build one, not to admire one.

Stored: what you type above, plus any campaign tag and referring page already in this URL. Not stored: your IP, cookies, or any device fingerprint. Used to email you this one thing and possibly follow up once — not added to a drip sequence.