Proof of Stack · Playbook
The autopilot lead machine.
Lead generation is the perfect first thing to put on autopilot: a boring, repetitive job with a clear input and a clear output. The trick is splitting it in two — Apify does the scraping, and n8n runs the whole thing unattended. Scrape → orchestrate → CRM, no human in the loop. Here's the build.
The problem
You need a steady list of qualified prospects. Doing it by hand is soul-crushing; writing a one-off scraper means owning proxies, browser automation, retries and a place to run it. The autopilot version keeps the two hard parts where they belong: the scraping on a marketplace of maintained Actors, and the orchestration on a runtime that already solves scheduling, credentials and “tell me when it breaks.”
The stack
Two tools. Each does one job well.
The build, in three moves
Apify scrapes the leads
ApifyPoint Apify's Google Maps Scraper at a query like “dentists in Manchester” and it returns structured rows — name, address, phone, website, rating, category — as clean JSON. No proxies to babysit, no HTML to parse. You pay per result, and one Actor run replaces a browser-automation project you'd otherwise build and maintain.
Swap the Actor for the job: Google Maps Scraper for local businesses, an Apollo/company scraper for B2B, Website Content Crawler to enrich each domain. Same pattern, different input.
n8n runs it — on schedule, with a memory
n8nAn n8n workflow triggers the Actor on a cron, waits for the run to finish, then dedupes against what you've already seen, enriches (validate the email, guess the domain, score the fit), and only keeps rows worth your time. When a run fails at 3am, n8n retries the branch and pings you — it doesn't silently stop.
This is the orchestration layer: scheduling, retries with backoff, credential storage, and an execution log you can open to see exactly what happened to any single lead.
The rows land where you work
n8n writes the survivors straight into Google Sheets, Airtable, or your CRM, tags the source and date, and drops you a one-line summary: “37 new leads, 4 flagged, 0 errors.” You wake up to a filled pipeline, not a task list.
Every step is deterministic. The only place an LLM belongs here is one optional node — scoring or drafting a first-line — never deciding whether the machine runs.
The flow
cron (every morning)
│
▼
┌───────────────┐ run + wait ┌──────────────────┐
│ n8n trigger │ ──────────────────▶ │ Apify Actor │
└───────────────┘ │ Google Maps │
▲ │ Scraper → JSON │
│ └──────────────────┘
│ retry on fail │
│ ▼
┌───────────────┐ dedupe · enrich · score ┌──────────────┐
│ alert / log │ ◀───────────────────────── │ n8n logic │
└───────────────┘ └──────────────┘
│ keep the good ones
▼
┌────────────────────┐
│ Sheet / Airtable │
│ / CRM │
└────────────────────┘Where the orchestration lives
You could write this whole thing as one Python script — and for a developer, sometimes that's the right call. But the script is never the work: the scheduling, the retries with backoff, the credential storage and the “ping me when it silently stops” end up longer than the logic. That scaffolding isorchestration. Here we let a runtime own it, and keep the scraping on a marketplace — so the only thing you maintain is the part that's actually yours: which leads count.
pilot perk The Apify and n8n links above are referral links: they get you the current sign-up perk and they support the index at no cost to you. We monetize the stack, never the subjects of coverage — referral links never buy placement or a kinder write-up.
The Autopilot Index tracks companies run by AI — and the stack behind them. Get the playbooks and the weekly teardown by email.
Read Autopilot Pulse →