Skip to content
NewSee how

Local-business playbook: build a local list with the Maps Scraper and get replies

Source a local ICP from Google Maps by trade and city, enrich and verify the contacts, run a simple campaign, and work the replies. The practical path for local and brick-and-mortar outreach.

  1. Know when Maps is the right source

    Local prospects (plumbers, clinics, restaurants, shops) don't live in a job-title database; they live on Google Maps. When your ICP is defined by trade and city rather than by role, the Maps Scraper is the right harvester. One catch: harvesting only runs inside an Autopilot campaign, so that's where you start. See Create a Maps-Scraper-Based Campaign.

  2. Create an Autopilot campaign

    Open Campaigns → Create Campaign. Set Campaign Type to Outreach and Campaign Mode to Autopilot. Pick a goal that matches local intent: Meeting if you want a call or visit booked, Get Reply if you just want the conversation started.

    Create an Autopilot campaign
  3. Open the Contact Harvester and pick Maps Scraper

    In the builder's Workflow, open the Contact Harvester node. It lists four sources: AI Leads, Maps Scraper, File Upload, Signal. Click Maps Scraper and toggle it ON to reveal its config.

  4. Configure search terms and locations

    Fill two fields, one entry per line: Search terms (the trade (plumber, hvac) and Locations (the place) Austin, TX). Every term runs against every location, so two terms across three cities is six searches. Set Max results, Language/Country, and Frequency alongside them.

  5. Turn on Find emails deliberately, save to a list

    Google Maps gives you name, phone, and website by default (not always an email. Turn on Find emails (paid, roughly 5 credits per place) when you specifically need addresses to send to. Businesses with no discoverable email stay in the list as phone-only records; email steps simply skip them. Point the harvest at a contact list) this is required and feeds the rest of the pipeline.

  6. Verify the contacts before sending

    Maps data is scraped and uneven, so turn on Contact cleaning (or re-clean an existing list) before your first send. Dirty or unverifiable addresses are auto-excluded, which protects a young sending domain from bounces. See Clean a Contact List.

  7. Let the standard pipeline run

    From here it's the normal Autopilot flow: Segmentation → Email Scheduler → Email Drafter → Content Approval → Email Sender. Keep Content Approval on for the first batch so you can sanity-check that the local tone reads right before trusting it to run unattended.

    Let the standard pipeline run
  8. Work the replies

    Triage replies in the Inbox and book the visit or call. If a city comes back thin, widen the search term or add nearby cities rather than raising Max results: relevance beats volume for local outreach.

Pro tips

  • Relevance beats volume locally

    A thin city means broaden the search term or add nearby cities: don't just crank Max results. Term × location multiplies fast, so start narrow.

  • Find emails is paid: flip it with intent

    Roughly 5 credits per place plus per-email cost. Leave it off for a phone-first list; turn it on when you specifically need to email.

  • Always clean a Maps list

    Maps emails are scraped and uneven. Run cleaning so bounces don't torch a young sending domain's reputation.

  • Phone-only isn't wasted

    Businesses with no discoverable email stay as phone records: useful if you also call, but your emailable count will be lower than your scraped count.

Frequently asked questions

Why use Maps instead of AI Leads?

Local businesses live on Google Maps by trade and city, not in a job-title database. AI Leads is built for role-based ICPs; Maps Scraper is built for local/brick-and-mortar ones.

Do I need Autopilot?

Yes: harvesting, including Maps Scraper, only runs in Autopilot mode via the Contact Harvester node. A Template campaign has no harvester.

How do terms and locations combine?

Every search term runs against every location: two terms across three cities produces six searches. Start narrow and expand once you see result quality.

Does it get email addresses?

Only if you turn on Find emails, a paid enrichment option (roughly 5 credits per place plus more per email found). It's off by default.

What about businesses with no email?

They're saved as phone-only records in your list. Email steps in the campaign skip them, so your emailable count is lower than your total scraped count.

Should I verify the list?

Yes: run Contact cleaning before sending. Maps data is uneven, and cleaning auto-excludes dead or unverifiable addresses.

Can I target exact places?

Yes: the tool accepts specific Place IDs or Google Maps Start URLs if you already know exactly which businesses you want, instead of relying on term-and-location search.

A city returned few results: what now?

Widen the search term or add nearby cities rather than raising Max results: that's usually a relevance problem, not a volume one.

Getting Started

Outreach that keeps going after you log off.Leads, emails, follow-ups and replies, handled.

Connect unlimited mailboxes and let AI agents find leads, write each email and follow up. Or send your own templates in manual mode. From $29/mo.

$1 for 3 days · Cancel anytime · No contract

Install with AI

Your coding agent sets up the FirstSales CLI and skills for you.

Prompt for Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.