Aperçu
Les agences d'automatisation perdent du temps en prospection à froid auprès d'entreprises qui n'ont pas besoin d'automatisation. Ce workflow identifie les prospects à forte intention en recherchant les entreprises qui embauchent pour des rôles répétitifs (saisie de données, QA manuelle, génération de rapports), les entreprises utilisant des outils obsolètes et les entreprises dans des secteurs mûrs pour l'automatisation. Chaque prospect est noté selon son potentiel d'automatisation avant la prospection.
Déclencheur
Hebdomadaire le lundi à 8h00.
Planification
Hebdomadaire
Étapes du workflow
Définir les industries cibles et les signaux
Répertorier les industries et les signaux d'embauche qui indiquent une préparation à l'automatisation : emplois de saisie de données, postes de reporting manuel, mentions d'outils obsolètes.
Rechercher sur Google les signaux d'embauche
Rechercher les entreprises cibles qui embauchent pour des postes manuels. Les entreprises qui recrutent des commis à la saisie de données sont des prospects idéaux pour l'automatisation.
Rechercher sur Google Maps les entreprises locales
Trouver les entreprises dans les zones cibles qui correspondent aux critères de l'industrie. Vérifier la présence en ligne et les signaux technologiques.
Noter le potentiel d'automatisation
Noter chaque prospect : embauche de postes manuels (+30), pas de site web (+20), faible nombre d'avis (+10), correspondance sectorielle (+25).
Produire une liste de prospects priorisés
Générer une liste classée de prospects avec les scores, les coordonnées et l'angle de pitch d'automatisation recommandé.
Implémentation Python
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'])}")Implémentation JavaScript
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(', '));Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA
Google Maps
Recherche d'entreprises locales avec notes et coordonnées