A founder pulls 900 roofers out of Google Maps on a Sunday night, loads them into a sender, and by Wednesday the domain is on a warmup timeout and the reply folder is empty. The list was not the problem. Google Maps returned exactly what it was asked for. What the founder built was a phonebook, and phonebooks do not book meetings. This piece is about what has to happen between the export and the send to turn one into the other.

Why is Google Maps underrated for B2B?

For any business that serves a physical geography, Google Maps is the closest thing to a live directory of the real economy. Every listing has a name, category, address, phone, website, hours, review count, and often a photo of the storefront. That is more first party context than most paid databases will give you for a local operator.

The problem is that a raw export from Maps is a phonebook, not a prospect list. If you email 500 roofers with the same pitch you are doing telemarketing with extra steps. What turns a phonebook into a list is signal work.

The signal-first list build

A five step framework: (1) pick a tight market, (2) pull public data from Google Maps and the target websites, (3) apply buying signals so only businesses with a reason to buy stay in, (4) qualify by fit against your actual delivery capacity, (5) shape outreach around the specific signal you found. Skipping step 3 is why most Maps lists never convert.

Workflow

The five-step list build

  1. Step 01

    1. Pick market

    Vertical + geography

  2. Step 02

    2. Pull public data

    Maps + website crawl

  3. Step 03

    3. Apply signals

    Filter to reason-to-buy

  4. Step 04

    4. Qualify by fit

    Match your capacity

  5. Step 05

    5. Shape outreach

    One signal per email

Five steps, in order. Steps 3 and 5 are the ones most teams skip.

Step 1: pick a tight market

A tight market is one vertical, one geography, one size band. Not "contractors in the Midwest". Something like "residential roofing companies in Peoria, Illinois with 5 to 40 employees". Tight enough that your email can reference something specific, wide enough that there are 60 to 200 companies to work.

For this article we will use residential roofing in Peoria as the running example.

Step 2: how do you pull the public data?

Search Maps for the vertical and city. Capture: business name, category, website, phone, address, review count, average rating, hours, and the Place ID. The Place ID is the stable key you want to dedupe on later.

Enrich each site with a quick crawl

Then crawl each website for a few extra fields: services offered, service area pages, staff or team page, careers page, any mention of financing partners, and the CMS or website builder in use. Every one of those becomes a possible signal.

  • Field
    Business name, address, phone
    Source
    Public map data
    Why it matters
    Basic identity, dedupe key
  • Field
    Category and services
    Source
    Public map data + site review
    Why it matters
    Fit filter
  • Field
    Review count and rating
    Source
    Public map data
    Why it matters
    Proxy for company maturity
  • Field
    Careers or hiring page
    Source
    Website review
    Why it matters
    Growth signal
  • Field
    Financing partners
    Source
    Website footer
    Why it matters
    Ticket size signal
  • Field
    Website CMS or age
    Source
    Public site review
    Why it matters
    Buying window signal
Fields to pull for a local prospecting list

Step 3: how do you apply buying signals?

Signals are the reason a specific business would buy from you this quarter. For roofing in Peoria, three that work: (a) hiring for a project manager (growth stress on scheduling), (b) financing partner listed (they sell bigger tickets), (c) website last redesigned before 2020 (they are already in a refresh mindset).

Cut ruthlessly by signal

Drop everything that does not carry at least one signal. It feels wasteful and it is not. A 40 company signal list will beat a 400 company blast every time.

Step 4: do they actually fit your delivery?

Fit is about you, not them. Do you actually want to serve a five person roofer? Can your onboarding handle a shop that answers the phone by first name? If you sell software with a $12k floor, cut anything under about 15 crews. Better to have 30 qualified than 300 blurred.

Step 5: how do you shape outreach around the signal?

One email, one signal, one ask. If the signal was the hiring page, the first line names it. If it was the financing partner, the first line names that. The pitch is the same but the entry point is not. This is where the work of curating a signal list finally pays off.

Milo runs this exact loop end to end: discover the businesses that match your signal, personalize the outreach, and send it from your own inbox. How Milo works.

Ethics note

Stay on the right side of the line

Public data is fair to collect. Personal emails scraped through workarounds are not. Respect robots directives, respect the Google Maps terms of service, and never buy consumer data. If your outreach would embarrass you if the recipient forwarded it to a competitor, rewrite it.

Can I just export from public map data directly?

There is no first party export. Use the public map API within its terms, or a purpose-built tool. Manual copy-paste is legal and painful.

How large should a local list be?

For a single seller working one vertical in one metro, 60 to 200 signal-qualified accounts is the sweet spot per quarter.

Do I need emails for every contact?

No. Owner-operator businesses often respond to the general inbox. Send to info@ with the owner named in the greeting.