The core idea: Don't scrape blindly. Scrape a large list, then filter/qualify it down to only businesses that have specific problems you can solve. Your outreach hit rate goes from ~5% to 20%+ when you lead with a specific, real problem.
Can You Scrape Based on Problems? Yes — Here's How
You can't directly filter for "bad website" in a scraper. But you can use a multi-step approach:
Pull all trades businesses in your target area. This is the raw list.
- Tools: Outscraper, Google Maps manual search, or Data Miner
- Search terms: "plumber Midland MI", "HVAC Saginaw MI", "electrician Bay City MI", "contractor Mount Pleasant MI", etc.
- Export: Business name, website URL, phone, address, review count, rating
Look for these automatic disqualifiers that you can check quickly or automate:
| Signal | What it means | How to check |
| No website URL in their GBP listing | No website at all — your easiest sale | Check during scrape or manually in Maps |
| Website is on Facebook only | No real site — needs a Starter Website | If URL is facebook.com, flag it |
| PageSpeed score under 50 on mobile | Slow site — Cleanup or rebuild candidate | PageSpeed Insights API (automated) or manual |
| Missing SSL (http:// not https://) | Serious trust issue, easy fix | Check URL prefix |
| Copyright year 3+ years old | Neglected site, likely other issues | Check footer of site |
| Site not mobile-responsive | Appears broken on phones | Google Mobile-Friendly Test |
| No GBP listing found | Invisible on Maps — GBP Setup sale | Search "Business Name City" in Maps |
| GBP listing unclaimed or incomplete | No photos, no hours, no website link | Check Maps listing quality |
| Low review count (under 10) | Review campaign opportunity | Visible in Maps listing |
You can automate PageSpeed checks across a list using Google's free API + n8n or a simple script:
- Get a free Google PageSpeed API key at developers.google.com/speed
- In n8n: create a workflow that reads website URLs from a Google Sheet, calls the PageSpeed API for each, and writes the mobile score back to the sheet
- Filter the sheet for scores under 50 — those are your hot prospects
- Alternatively, use bulkpagespeeds.com (free, no API key needed) to check up to 100 URLs at once
This n8n workflow takes about 1 hour to build once. After that, screening 200 URLs takes 5 minutes of clicking instead of 2 hours of manual checks.
Outscraper — Step-by-Step
Outscraper is the best tool for scraping Google Maps at scale. Pay-as-you-go, ~$3 per 1,000 results.
- Go to outscraper.com → Sign up with Google or email
- Add credits: $10 gives you ~3,000 business listings — enough for weeks of prospecting
- Navigate to Google Maps Scraper in the dashboard
- Search queries: Enter your target searches, one per line. Example:
plumber Midland Michigan
HVAC contractor Saginaw Michigan
electrician Bay City Michigan
roofer Clare Michigan
general contractor Mount Pleasant Michigan
- Limit per query: Set to 50-100 (that's plenty per search term)
- Fields to include: Business name, phone, website, address, rating, reviews count, hours, category, GBP listing URL
- Click Run
- Download results as CSV or Excel
- Open in Google Sheets or Excel
- Filter out businesses with no website (they're in a separate bucket — easiest sales)
- Filter for businesses with a website — these go through PageSpeed batch check
- Filter for review count under 15 — these are review campaign upsell candidates
- Create three sub-lists: No Website, Bad Website, GBP Incomplete
Targeting tip: Focus first on trades with the highest average job value: HVAC, electrical, plumbing, roofing. These businesses have the most to gain from a professional online presence and are most likely to afford your services.
Manual Google Maps Method
For 5-10 hyper-qualified leads at a time, the manual method lets you pre-screen visually before adding anyone to your list.
- Open Google Maps → search "plumber [city] MI" (or other trade)
- Click through results one by one — looking at their GBP listing quality
- Click their website if listed — check:
- Does it load quickly on your phone?
- Is it mobile-friendly?
- Is the copyright year current?
- Do contact forms work?
- Is SSL enabled (https://)?
- If they fail 2+ checks, add to your prospect spreadsheet
- Note 2-3 specific problems for personalized outreach
- Take screenshots for your audit folder
Qualifying Leads — Ideal Client Profile
Not every lead is worth pursuing. Use this quick scoring to prioritize your time:
| Factor | Green Flag (+1 point) | Red Flag (-1 point) |
| Business age | 3+ years in business | Under 1 year |
| Review count | 10+ reviews | 0 reviews |
| Average rating | 4.0+ | Under 3.5 (reputation problem, not website problem) |
| Trade type | Plumbing, HVAC, electrical, roofing | Very niche trades (less demand) |
| Business size | Solo to 5-person crew | Large company with marketing dept |
| Website problems | 3+ visible issues | Website looks decent |
| GBP status | Missing, unclaimed, or incomplete | Fully optimized GBP |
| Online presence | Little to none | Active social media, running ads |
Target score 3+. A plumber with 25 reviews, a slow website, and an unclaimed GBP profile scores +3 or +4 — that's a perfect prospect. A new contractor with no reviews but a great website scores -1 — move on.
Lead Enrichment — Finding Owner Names & Emails
- Google "[Business Name] owner" — Check BBB, Yelp, local news, Chamber of Commerce directories
- Check their GBP listing — Owner replies to reviews often include their name
- Check their Facebook business page — About section often has owner's personal name linked
- Check their website About/Contact page — Many solo operators use their own email
- Hunter.io (hunter.io) — Find email patterns for a domain ($49/mo or 25 free/mo)
- VoilaNorbert (voilanorbert.com) — Pay-per-result email finder ($0.10/email)
- RocketReach (rocketreach.co) — More expensive but highly accurate
- Just call the business — "Hi, I had a quick note about your website — is the owner available?" Works 40% of the time.
For small trades businesses, calling is often the fastest way. They're not behind email like corporate contacts. A 30-second call gets you the owner's name, email, and a warm entry point.
Weekly Lead Generation Routine
| Day | Activity | Time | Output |
| Monday | Run Outscraper batch for 3-4 searches | 15 min | 50-100 raw leads |
| Monday | Run bulk PageSpeed check on website URLs | 20 min | Filtered hot list |
| Tue-Wed | Manual screening + screenshot 20 best prospects | 45 min | 20 qualified prospects |
| Wed-Thu | Find owner names and contact info for top 15 | 30 min | 15 ready-to-contact leads |
| Thu-Fri | Send outreach (see Prospecting section) | 45 min | 15 first touches sent |