The Problem
Sales teams need local business leads with phone numbers, addresses, and ratings. Buying lead lists costs $800+/month from Apollo or ZoomInfo, and the data goes stale within weeks. Google Maps has fresh data but no API for bulk extraction.
The Scavio Solution
Build an n8n workflow that searches Google Maps via Scavio, extracts business details (name, phone, address, rating, reviews), and writes them to Google Sheets or a CRM. Each search costs $0.005, so 1,000 leads cost $5.
Before
Buying 1,000 local business leads from a list broker for $200. Data is 3-6 months old. 20% of phone numbers are disconnected.
After
Extracting 1,000 local business leads from Google Maps for $5 via n8n. Data is current. Phone numbers, ratings, and review counts are live.
Who It Is For
Sales teams and lead gen agencies who need fresh local business leads without paying for expensive list brokers.
Key Benefits
- 1,000 local leads for $5 vs $200+ from list brokers
- Live data: phone numbers, ratings, review counts
- Filter by rating, review count, and business category
- Automated daily runs via n8n cron trigger
- Direct export to Google Sheets or CRM
Python Example
import requests, os, json
API_KEY = os.environ["SCAVIO_API_KEY"]
def extract_maps_leads(query: str, location: str) -> list:
"""Extract business leads from Google Maps."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": query, "platform": "google-maps", "country_code": "us"},
timeout=15,
)
data = resp.json()
leads = []
for place in data.get("local_results", []):
leads.append({
"name": place.get("title", ""),
"address": place.get("address", ""),
"phone": place.get("phone", ""),
"rating": place.get("rating"),
"reviews": place.get("reviews"),
"website": place.get("website", ""),
"category": place.get("type", ""),
})
return leads
leads = extract_maps_leads("plumbers", "Austin TX")
print(f"Found {len(leads)} leads")
for lead in leads[:3]:
print(f" {lead['name']} | {lead['phone']} | {lead['rating']} stars")JavaScript Example
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function extractMapsLeads(query) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform:'google-maps', country_code:'us'})});
const d = await r.json();
return (d.local_results||[]).map(p=>({name:p.title, address:p.address, phone:p.phone, rating:p.rating, reviews:p.reviews, website:p.website}));
}
const leads = await extractMapsLeads('plumbers Austin TX');
console.log(leads.length + ' leads extracted');
leads.slice(0,3).forEach(l => console.log(l.name + ' | ' + l.phone));Platforms Used
Google Maps
Local business search with ratings and contact info