Two meetings from a 200-email test.
Here's the build behind it.

A GTM automation engineer walks through a real outbound rebuild: scrape, two-layer dedupe, website enrichment to detect competing tooling, two-track copy, and an AI reply classifier that escalates only qualified replies to a human.

  • 200 Emails in MVP test
  • 2 Qualified meetings booked
  • 10k/wk Target scraping volume

MVP booked 2 qualified meetings from 200 emails. Architecture ready to scale to 10k leads/week.

AI-qualified outbound, end to end

  • The outbound list was a pile of CSV exports. Nobody could tell who had been contacted, who replied, or who converted.
  • Duplicates were so bad that existing customers were getting cold-emailed. One reply: 'I'm your customer.'
  • Copy was generic. Prospects already using a competing tool got the same pitch as prospects using nothing.
  • No ICP filter. Reps were targeting businesses that didn't even have a website — prospects that could never buy.

The build

How we'd ship it.

A short look at the workflow, the stack, and how you can see it in action.

  1. Scrape candidate businesses from Google Maps–style sources against ICP filters (has a website, ≥50 reviews).
  2. First dedupe against the entire HubSpot database — existing customers, lost deals, even past demo-booked contacts — before anything else runs.
  3. Second dedupe inside Clay so enrichment credits aren't spent on prospects already processed in a prior week.
  4. A Claygent (Clay's AI web-scraping agent) visits each prospect's site to detect which booking system, if any, they already use.
  5. Route into one of two outbound tracks: prospects on a known competing tool get competitive, specific copy; prospects with no system get educational copy.
  6. SmartLead sends the outbound across 120 warmed inboxes.
  7. An LLM layer reads replies on top of SmartLead's native detection, catches mislabels, creates a HubSpot contact, and alerts Slack only when a human should step in.

Under the hood

Tool stack

  • n8n (orchestration)
  • Clay + Claygent (website enrichment)
  • HubSpot (CRM, dedupe source of truth)
  • SmartLead (120-inbox send infrastructure)
  • LLM reply classifier
  • Slack (human-handoff alerts)
  • Google Maps data source
  1. Scrape Google Maps

    ICP filters: has website, ≥50 reviews.

  2. Dedupe vs. HubSpot

    Customers, lost deals, prior demo-booked contacts — all removed before anything else runs.

  3. Dedupe vs. Clay

    Skip anyone enriched in a prior run so credits aren't spent twice.

  4. Claygent visits the site

    Detects the prospect's current booking system, if any.

  5. Route

    Uses a competing tool

    Competitive, specific copy.

    No booking system

    Educational copy.

  6. SmartLead sends

    Across 120 warmed inboxes.

  7. LLM reads every reply

    Catches SmartLead mislabels before a real prospect falls through.

  8. Qualified reply?

    Decide whether a human needs to step in.

  9. If yes

    HubSpot contact created

    Ready for human follow-up.

    Slack alert fires

    Rep picks it up from #replies.

End-to-end flow. Two dedupe layers, a branching point after enrichment, and an LLM layer on top of reply detection.

Their CRM tables were full of duplicates — people that had already said no, existing customers. One replied saying, 'I'm your customer.' That was shocking.
— Moeed Azam
If you're selling someone a booking system and they don't even qualify for that, we're just wasting our resources. That's what we tried to refine.
— Moeed Azam

What this covers

Walkthrough

Moeed, a GTM automation engineer, walks through a real outbound rebuild from sourcing to reply handoff.

The core problem was context: cold outreach with no signal about what the prospect already used. Fix that and response rates move.

The dedupe story is worth watching — existing customers were being cold-emailed before the two-layer dedupe (HubSpot → Clay) eliminated it.

He closes on what's next: AI-based reply qualification at 10k-per-week volume, and eventually AI-delivered demos.

More like this

Keep browsing.

Missed-call text-back

Turn every missed call into a booked conversation.

Unanswered calls auto-trigger a text-back, a short qualification thread, and routing into a follow-up queue. No manual chasing.

SMS within 30 seconds. Qualified reply before they move on.

View build

No-show recovery sequences

Win back the appointments your team forgot to chase.

Missed appointments trigger a timed AI/SMS sequence that personalizes outreach, offers a one-tap reschedule, and logs the outcome for QA.

Automatic 3-touch recovery that rebooks without feeling like spam.

View build