The Problem
Traditional B2B prospecting targets businesses with no website or random directory listings. These leads are often inactive or too small. The best prospects are businesses with high review volume but mediocre ratings -- they are active but have visible problems.
The Scavio Solution
Search Google for business types in target areas and filter results by review count and star rating. Businesses with 40+ reviews and under 4.0 stars are pre-qualified leads: busy enough to generate reviews, but struggling enough to need help.
Before
Before review-based targeting, a freelancer scraped business directories and cold-emailed 200 businesses per week. Response rate: 1.5%. Most leads were inactive or not a fit. Time spent qualifying: 5 hours/week.
After
After switching to review-based targeting, the freelancer searches 30 neighborhoods for target business types. Filter: 40+ reviews, under 4.0 stars. Result: 40-60 pre-qualified leads per batch. Response rate: 12% (outreach references specific review themes). 30 queries = $0.15.
Who It Is For
B2B sales teams, reputation management agencies, local marketing consultants, and freelancers targeting businesses with visible reputation problems.
Key Benefits
- Pre-qualified leads with visible problems to reference
- 40+ reviews confirms business is active and worth selling to
- Sub-4.0 rating provides a specific pain point for outreach
- Cover entire metro via neighborhood-level queries
- 30 queries = $0.15 for 40-60 pre-qualified leads
Python Example
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def find_leads(biz_type, areas, min_reviews=40, max_rating=4.0):
leads = []
for area in areas:
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google',
'query': f'{biz_type} near {area}'}, timeout=10).json()
for result in r.get('organic_results', []):
reviews = result.get('review_count', 0)
rating = result.get('rating', 5.0)
if reviews >= min_reviews and rating <= max_rating:
leads.append({'name': result['title'], 'rating': rating,
'reviews': reviews, 'area': area})
return leads
leads = find_leads('restaurant', ['Loop Chicago', 'Lincoln Park Chicago'])
for l in leads:
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 findLeads(type, areas, minReviews = 40, maxRating = 4.0) {
const leads = [];
for (const area of areas) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({platform: 'google', query: `${type} near ${area}`})
}).then(r => r.json());
(r.organic_results || []).forEach(r => {
if ((r.review_count || 0) >= minReviews && (r.rating || 5) <= maxRating)
leads.push({name: r.title, rating: r.rating, reviews: r.review_count});
});
}
return leads;
}
findLeads('restaurant', ['Loop Chicago']).then(l => console.log(`${l.length} leads`));Platforms Used
Web search with knowledge graph, PAA, and AI overviews