Overview
Automation agencies waste time on cold outreach to businesses that do not need automation. This workflow identifies high-intent prospects by searching for businesses hiring for repetitive roles (data entry, manual QA, report generation), businesses using outdated tools, and businesses in industries ripe for automation. Each prospect gets scored by automation potential before outreach.
Trigger
Weekly on Monday 8 AM.
Schedule
Weekly
Workflow Steps
Define Target Industries and Signals
List industries and hiring signals that indicate automation readiness: data entry jobs, manual reporting roles, legacy tool mentions.
Search Google for Hiring Signals
Search for target companies hiring for manual roles. Companies hiring data entry clerks are prime automation prospects.
Search Google Maps for Local Businesses
Find businesses in target areas that match the industry criteria. Check website presence and technology signals.
Score Automation Potential
Score each prospect: hiring manual roles (+30), no website (+20), low review count (+10), industry match (+25).
Output Prioritized Prospect List
Generate a ranked list of prospects with scores, contact info, and recommended automation pitch angle.
Python Implementation
import requests, os, json
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
SIGNALS = [
{"query": "hiring data entry clerk {city}", "weight": 30, "label": "manual_hiring"},
{"query": "{industry} companies in {city}", "weight": 25, "label": "industry_match"},
]
def search(query: str, platform: str = "google") -> list:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "platform": platform, "country_code": "us"},
timeout=15,
)
return resp.json().get("organic_results", resp.json().get("local_results", []))
def discover_prospects(industry: str, city: str) -> list:
prospects = {}
for signal in SIGNALS:
query = signal["query"].format(industry=industry, city=city)
results = search(query)
for r in results:
name = r.get("title", "").split(" - ")[0].split(" | ")[0].strip()
if name not in prospects:
prospects[name] = {"name": name, "url": r.get("link", ""), "score": 0, "signals": []}
prospects[name]["score"] += signal["weight"]
prospects[name]["signals"].append(signal["label"])
maps_results = search(f"{industry} in {city}", "google-maps")
for r in maps_results:
name = r.get("title", "")
if name not in prospects:
prospects[name] = {"name": name, "url": "", "score": 0, "signals": []}
if not r.get("website"):
prospects[name]["score"] += 20
prospects[name]["signals"].append("no_website")
prospects[name]["address"] = r.get("address", "")
ranked = sorted(prospects.values(), key=lambda p: p["score"], reverse=True)
return ranked[:20]
prospects = discover_prospects("accounting", "Phoenix AZ")
print(f"Found {len(prospects)} prospects")
for p in prospects[:5]:
print(f" [{p['score']}] {p['name']} - signals: {', '.join(p['signals'])}")JavaScript Implementation
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const SIGNALS = [
{query:'hiring data entry clerk {city}', weight:30, label:'manual_hiring'},
{query:'{industry} companies in {city}', weight:25, label:'industry_match'},
];
async function search(query, platform='google') {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform, country_code:'us'})});
const data = await r.json();
return data.organic_results || data.local_results || [];
}
async function discoverProspects(industry, city) {
const prospects = {};
for (const signal of SIGNALS) {
const query = signal.query.replace('{industry}', industry).replace('{city}', city);
const results = await search(query);
for (const r of results) {
const name = (r.title||'').split(' - ')[0].split(' | ')[0].trim();
if (!prospects[name]) prospects[name] = {name, url:r.link||'', score:0, signals:[]};
prospects[name].score += signal.weight;
prospects[name].signals.push(signal.label);
}
}
const mapsResults = await search(industry+' in '+city, 'google-maps');
for (const r of mapsResults) {
const name = r.title||'';
if (!prospects[name]) prospects[name] = {name, url:'', score:0, signals:[]};
if (!r.website) { prospects[name].score += 20; prospects[name].signals.push('no_website'); }
prospects[name].address = r.address||'';
}
return Object.values(prospects).sort((a,b)=>b.score-a.score).slice(0,20);
}
const prospects = await discoverProspects('accounting', 'Phoenix AZ');
console.log('Found '+prospects.length+' prospects');
for (const p of prospects.slice(0,5)) console.log(' ['+p.score+'] '+p.name+' - signals: '+p.signals.join(', '));Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Google Maps
Local business search with ratings and contact info