The Problem
Sales prospecting tools bundle search, enrichment, and outreach into expensive per-seat licenses ($49-300/user/month). Teams that only need the data layer overpay for features they do not use. Building a custom pipeline means stitching together multiple APIs.
The Scavio Solution
Build a lightweight prospecting pipeline: search Google Maps for local businesses, enrich with Google search data, score leads based on signals (reviews, website quality, hiring), and export to your CRM or outreach tool. Total cost under $0.025/lead.
Before
5-seat Apollo team license at $49/user/month = $245/month. Using 30% of features. Lead data refreshes monthly at best.
After
Custom pipeline enriches and scores 1,000 leads/week for $25. Data is fresh daily. Pipeline feeds directly into existing CRM.
Who It Is For
Sales teams building custom prospecting pipelines who want discovery, enrichment, and scoring without per-seat SaaS pricing.
Key Benefits
- Full pipeline for $0.025/lead (5 searches)
- Google Maps for discovery + Google for enrichment
- Lead scoring based on reviews, website signals, hiring
- Fresh data every run, not monthly snapshots
- Pipe directly into HubSpot, Salesforce, or Sheets
Python Example
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def prospect(industry: str, location: str, min_rating: float = 4.0) -> list:
"""Find and enrich local business leads."""
# Step 1: Discover via Google 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,
)
maps_data = resp.json()
leads = []
for place in maps_data.get("local_results", []):
if place.get("rating", 0) >= min_rating:
# Step 2: Enrich via Google search
enrich_resp = 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,
)
enrich_data = enrich_resp.json()
leads.append({
"name": place.get("title", ""),
"phone": place.get("phone", ""),
"address": place.get("address", ""),
"rating": place.get("rating"),
"reviews": place.get("reviews"),
"website": place.get("website", ""),
"snippet": enrich_data.get("organic_results", [{}])[0].get("snippet", ""),
})
return leads
leads = prospect("dentists", "San Francisco CA")
print(f"Found {len(leads)} qualified leads")
for l in leads[:3]:
print(f" {l['name']} | {l['rating']} stars | {l['reviews']} reviews")JavaScript Example
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function prospect(industry, location, minRating=4.0) {
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.rating||0)>=minRating)) {
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();
leads.push({name:p.title, phone:p.phone, rating:p.rating, reviews:p.reviews, snippet:(ed.organic_results||[])[0]?.snippet||''});
}
return leads;
}
const leads = await prospect('dentists','San Francisco CA');
console.log(leads.length+' qualified leads');Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Google Maps
Local business search with ratings and contact info