Google Maps Lead Scraper + Website Audit Score (A-F) avatar

Google Maps Lead Scraper + Website Audit Score (A-F)

Pricing

from $150.00 / 1,000 results

Go to Apify Store
Google Maps Lead Scraper + Website Audit Score (A-F)

Google Maps Lead Scraper + Website Audit Score (A-F)

Scrape Google Maps business leads with a website quality audit score (A-F). Get emails, phones, reviews, and identify businesses needing help.

Pricing

from $150.00 / 1,000 results

Rating

0.0

(0)

Developer

George Kioko

George Kioko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Google Maps Leads + Website Audit (Problem Score A-F)

Apify Actor Pricing Audit Checks Grade

Find businesses that are EASY TO CLOSE. This actor scrapes Google Maps for business leads, then audits every website across 20+ checks and assigns a Problem Score (A-F). Grade F businesses have broken websites and desperately need your help. Stop cold-calling. Start closing.


How It Works

flowchart LR
A["Search Query\n(e.g. dentists in Dallas TX)"] --> B["Google Maps\nScrape"]
B --> C["Website Audit\n20+ Checks"]
C --> D["Problem Scoring\nA-F Grade"]
D --> E["Hot Leads\nOutput"]
style A fill:#4285F4,color:#fff,stroke:none
style B fill:#34A853,color:#fff,stroke:none
style C fill:#FBBC05,color:#000,stroke:none
style D fill:#EA4335,color:#fff,stroke:none
style E fill:#7B1FA2,color:#fff,stroke:none
  1. Search -- Enter a Google Maps query like "plumbers in Austin TX"
  2. Scrape -- Puppeteer extracts business listings with contact info
  3. Audit -- Each website is tested across 20+ technical checks
  4. Score -- A Problem Score (0-100) and letter grade (A-F) are calculated
  5. Output -- Leads sorted by pain level, ready for outreach

Architecture

flowchart TB
subgraph Input
Q[Search Query] --> Config[maxResults / filters]
end
subgraph Pipeline
Config --> MS[Maps Scraper\nPuppeteer]
MS -->|Business + URL| WA[Website Auditor]
WA --> PS[PageSpeed API]
WA --> MC[Mobile Check]
WA --> SEO[SEO Checks]
WA --> SEC[Security Checks]
WA --> TECH[Tech Detection]
PS & MC & SEO & SEC & TECH --> SC[Problem Scorer]
end
subgraph Output
SC --> HL[Hot Leads View\nGrade + Contact]
SC --> FA[Full Audit View\n20+ metrics]
end
style MS fill:#34A853,color:#fff
style WA fill:#FBBC05,color:#000
style SC fill:#EA4335,color:#fff
style HL fill:#7B1FA2,color:#fff
style FA fill:#7B1FA2,color:#fff

What Gets Audited

CategoryChecks
PerformancePageSpeed score, load time, First Contentful Paint
MobileMobile-friendliness score, viewport meta, responsive layout
SEOMeta description, title tag, heading structure, canonical URL
SecuritySSL certificate, HTTPS redirect, mixed content
AnalyticsGoogle Analytics, Tag Manager, Facebook Pixel
TechnicalSchema markup, CMS detection, broken links

The Problem Score

The Problem Score is what makes this actor different from every other lead scraper. Instead of just pulling names and numbers, it tells you who needs help the most.

Grade A (0-20) -- Website is solid. Low priority.
Grade B (21-40) -- Minor issues. Some optimization opportunities.
Grade C (41-60) -- Notable problems. Good prospect for a pitch.
Grade D (61-80) -- Serious issues. High-pain business. Easy close.
Grade F (81-100) -- Website is broken. They need you yesterday.

Agency playbook: Filter for Grade D and F leads. These businesses have broken SSL, no mobile support, 10-second load times, and missing analytics. They are losing customers every day and they know it. Your pitch practically writes itself.


Use Cases

mindmap
root((Google Maps\nLeads + Audit))
Agency Lead Gen
Web design agencies
SEO agencies
Digital marketing firms
Freelance developers
Local SEO
Audit local competitors
Find underserved markets
Benchmark performance
Web Design Sales
Identify broken sites
Proof-based cold outreach
Portfolio gap analysis
Competitor Audit
Compare tech stacks
Benchmark load times
Track CMS adoption

Input

FieldTypeDefaultDescription
searchQuerystringrequiredGoogle Maps search (e.g. "dentists in Dallas TX")
maxResultsinteger100Number of leads to scrape (1-500)
deepScrapebooleanfalseExtract additional details from each listing
auditWebsitesbooleantrueRun the 20+ check website audit
directContactOnlybooleanfalseOnly return leads with phone or email
auditConcurrencyinteger3Parallel audit workers (1-10)
pageSpeedApiKeystring""Optional Google PageSpeed API key for higher rate limits
languagestring"en"Language for Google Maps results

Example Input

{
"searchQuery": "dentists in Dallas TX",
"maxResults": 50,
"auditWebsites": true,
"directContactOnly": true,
"auditConcurrency": 5
}

Output

The actor produces two dataset views.

Output Schema

erDiagram
LEAD {
string name
string problemGrade
int problemScore
string problemSummary
string category
string phone
string email
string website
string address
float rating
}
AUDIT {
int performanceScore
int mobileScore
float loadTime
bool hasSSL
bool hasAnalytics
bool hasSchemaMarkup
bool hasMetaDescription
string cms
int criticalCount
int highCount
int mediumCount
}
LEAD ||--o| AUDIT : "has"

Hot Leads View (by Problem Score)

Sorted by pain level. The leads most likely to convert are at the top.

FieldDescription
nameBusiness name
problemGradeLetter grade A-F
problemScoreNumeric score 0-100
problemSummaryHuman-readable list of issues found
categoryBusiness category from Google Maps
phonePhone number
emailEmail address (when available)
websiteWebsite URL
addressFull street address
ratingGoogle Maps star rating

Full Audit Details View

Every technical metric from the 20+ checks.

FieldDescription
performanceScorePageSpeed performance (0-100)
mobileScoreMobile-friendliness (0-100)
loadTimePage load time in seconds
hasSSLSSL certificate present
hasAnalyticsGoogle Analytics / Tag Manager detected
hasSchemaMarkupStructured data present
hasMetaDescriptionSEO meta description present
cmsDetected CMS (WordPress, Wix, Squarespace, etc.)
criticalCountNumber of critical issues
highCountNumber of high-severity issues
mediumCountNumber of medium-severity issues

Example Output

{
"name": "Dallas Smile Center",
"problemGrade": "D",
"problemScore": 72,
"problemSummary": "No SSL, 8.2s load time, missing analytics, no schema markup",
"category": "Dentist",
"phone": "+1-214-555-0123",
"email": "info@dallassmilecenter.com",
"website": "http://dallassmilecenter.com",
"address": "1234 Elm St, Dallas, TX 75201",
"rating": 3.8,
"performanceScore": 28,
"mobileScore": 45,
"loadTime": 8.2,
"hasSSL": false,
"hasAnalytics": false,
"hasSchemaMarkup": false,
"hasMetaDescription": false,
"cms": "WordPress",
"criticalCount": 3,
"highCount": 4,
"mediumCount": 2
}

AI Agent Integration

JavaScript (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('george.the.developer/google-maps-leads-website-audit').call({
searchQuery: 'dentists in Dallas TX',
maxResults: 50,
auditWebsites: true,
directContactOnly: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
// Filter for high-pain leads (Grade D and F)
const hotLeads = items.filter(lead => ['D', 'F'].includes(lead.problemGrade));
console.log(`Found ${hotLeads.length} hot leads ready for outreach`);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("george.the.developer/google-maps-leads-website-audit").call(run_input={
"searchQuery": "dentists in Dallas TX",
"maxResults": 50,
"auditWebsites": True,
"directContactOnly": True,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
# Filter for high-pain leads (Grade D and F)
hot_leads = [lead for lead in items if lead.get("problemGrade") in ("D", "F")]
print(f"Found {len(hot_leads)} hot leads ready for outreach")

cURL

# Start the actor
curl -X POST "https://api.apify.com/v2/acts/george.the.developer~google-maps-leads-website-audit/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQuery": "dentists in Dallas TX",
"maxResults": 50,
"auditWebsites": true,
"directContactOnly": true
}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_TOKEN"

Pricing

EventCost
Lead audited$0.01

Each scraped and audited lead costs $0.01. A run with maxResults: 100 costs approximately $1.00.

LeadsCost
50$0.50
100$1.00
250$2.50
500$5.00

One closed client from a Grade F lead pays for thousands of runs.


Comparison

vs. Manual Auditing

ManualThis Actor
Time per lead15-30 minutes~5 seconds
Checks3-5 (whatever you remember)20+ automated
ConsistencyVaries by personIdentical every time
Scale10-20/day max500 per run
CostYour hourly rate$0.01/lead

vs. Other Lead Gen Tools

Generic ScrapersThis Actor
Contact infoYesYes
Website auditNo20+ checks
Problem scoringNoA-F grade
PrioritizationManual guessworkAutomatic by pain level
Pitch materialNoneProblem summary per lead
Agency-readyNoBuilt for agencies

FAQ

Q: Do I need a Google PageSpeed API key? A: No. The actor works without one. Adding a key increases rate limits for faster audits on large runs. Get a free key at Google Cloud Console.

Q: How accurate is the Problem Score? A: The score is calculated from real PageSpeed data, live SSL checks, DOM analysis for analytics/schema, and mobile viewport testing. It reflects actual technical issues, not estimates.

Q: Can I scrape any location? A: Yes. Use any query that works on Google Maps: city, state, ZIP, country. Examples: "restaurants in London", "lawyers near 90210", "hotels in Tokyo".

Q: What happens if a business has no website? A: The lead is still returned with contact info and Google Maps data. The audit fields will be empty and no Problem Score is assigned.

Q: How many leads can I scrape per run? A: Up to 500 per run. For larger datasets, run the actor multiple times with different queries or location variations.

Q: What CMS platforms can it detect? A: WordPress, Wix, Squarespace, Shopify, Webflow, Joomla, Drupal, GoDaddy Builder, and more. Detection is based on DOM signatures and response headers.

Q: Can I use this with my CRM? A: Yes. Export results as JSON, CSV, or Excel. Use Apify integrations to push data directly to Google Sheets, Zapier, Make, or any webhook endpoint.

Q: Is this compliant with Google's terms? A: This actor scrapes publicly available information from Google Maps. Review Apify's terms of service and your local regulations before use.


Support