Overview
Sales teams stitch together 3-5 tools for prospecting: a lead finder, an enrichment service, a scoring model, and an outreach tool. Each has per-seat pricing and annual contracts. This workflow replaces the first three with search API calls at $0.005/query and pipes qualified leads directly to the existing outreach tool.
Trigger
Daily cron at 5 AM UTC or triggered when new target industries are added.
Schedule
Daily at 5 AM UTC
Workflow Steps
Discover Leads via Google Maps
Search Google Maps for businesses in target industries and locations. Extract name, phone, address, rating, and website.
Enrich Leads via Google Search
For each lead, search Google for the company name to pull description, recent news, tech stack signals, and social profiles.
Score Leads Based on Signals
Score each lead based on rating, review count, website presence, and enrichment signals. Assign A/B/C tiers.
Push Qualified Leads to Outreach Tool
Push A-tier and B-tier leads to the outreach tool (Instantly, Lemlist, or HubSpot) with personalized data fields populated.
Python Implementation
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def discover_and_enrich(industry: str, location: str) -> list:
# Discover via Maps
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": f"{industry} {location}", "platform": "google-maps", "country_code": "us"},
timeout=15,
)
leads = []
for place in resp.json().get("local_results", []):
if not place.get("phone") or (place.get("rating", 0) < 3.5):
continue
# Enrich
enrich = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": place.get("title", ""), "country_code": "us"},
timeout=10,
).json()
score = "A" if place.get("rating", 0) >= 4.5 and place.get("reviews", 0) >= 50 else "B" if place.get("rating", 0) >= 4.0 else "C"
leads.append({
"name": place.get("title", ""),
"phone": place.get("phone", ""),
"rating": place.get("rating"),
"score": score,
"description": enrich.get("knowledge_graph", {}).get("description", ""),
})
return [l for l in leads if l["score"] in ("A", "B")]
qualified = discover_and_enrich("HVAC contractors", "Phoenix AZ")
print(f"{len(qualified)} qualified leads ready for outreach")JavaScript Implementation
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function discoverAndEnrich(industry, location) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:industry+' '+location, platform:'google-maps', country_code:'us'})});
const d = await r.json();
const leads = [];
for (const p of (d.local_results||[]).filter(p=>p.phone && (p.rating||0)>=3.5)) {
const er = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:p.title, country_code:'us'})});
const ed = await er.json();
const score = (p.rating||0)>=4.5 && (p.reviews||0)>=50 ? 'A' : (p.rating||0)>=4.0 ? 'B' : 'C';
if (score==='A'||score==='B') leads.push({name:p.title, phone:p.phone, rating:p.rating, score, description:ed.knowledge_graph?.description||''});
}
return leads;
}
const leads = await discoverAndEnrich('HVAC contractors','Phoenix AZ');
console.log(leads.length+' qualified leads');Platforms Used
Google Maps
Local business search with ratings and contact info
Web search with knowledge graph, PAA, and AI overviews