Aperçu
Les leads entrants arrivent avec seulement un nom et un email. Les équipes commerciales perdent du temps à appeler des leads non qualifiés car aucune donnée d'enrichissement n'est disponible pour les scorer. Ce workflow recherche l'entreprise du lead, extrait les signaux (recrutement, financement, stack technologique) et attribue un score. Coût : 0,015 $ par lead (3 recherches) contre 0,50 à 2,00 $ par lead chez les fournisseurs d'enrichissement.
Déclencheur
En temps réel via webhook à la création d'un nouveau lead, ou en batch quotidien à 6h UTC.
Planification
Webhook en temps réel ou batch quotidien à 6h UTC
Étapes du workflow
Recevoir les données d'un nouveau lead
Capturer les données du lead depuis un formulaire ou un webhook CRM. Extraire le nom de l'entreprise depuis le domaine email.
Rechercher des informations sur l'entreprise
Effectuer 3 recherches : nom de l'entreprise, entreprise + recrutement, entreprise + financement/actualités. Extraire les données du Knowledge Graph, les extraits organiques et les PAA.
Extraire les signaux de scoring
Analyser les résultats de recherche pour les signaux : taille de l'entreprise (depuis KG), activité de recrutement (extraits d'offres d'emploi), financement (extraits d'actualités), stack technologique (depuis les descriptions de site web).
Calculer le score du lead
Attribuer des points selon les signaux : recrutement = +20, financement récent = +30, correspondance technologique = +25, correspondance de taille d'entreprise = +15. Classer en chaud/tiède/froid.
Mettre à jour le CRM et notifier l'équipe commerciale
Écrire les données d'enrichissement et le score dans le CRM. Notifier l'équipe commerciale des leads chauds via Slack.
Implémentation Python
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def score_lead(company: str) -> dict:
"""Score a lead via search enrichment. Cost: $0.015 (3 searches)."""
queries = [company, f"{company} hiring 2026", f"{company} funding news 2026"]
signals = {"company": company, "hiring": False, "funding": False, "tech_match": False, "score": 0}
for i, q in enumerate(queries):
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": q, "country_code": "us"},
timeout=10,
)
data = resp.json()
snippets = " ".join(r.get("snippet", "") for r in data.get("organic_results", [])[:5]).lower()
if i == 0 and data.get("knowledge_graph"):
signals["description"] = data["knowledge_graph"].get("description", "")
signals["score"] += 15
if i == 1 and any(w in snippets for w in ["hiring", "job opening", "we're growing"]):
signals["hiring"] = True
signals["score"] += 20
if i == 2 and any(w in snippets for w in ["raised", "funding", "series"]):
signals["funding"] = True
signals["score"] += 30
signals["tier"] = "hot" if signals["score"] >= 45 else "warm" if signals["score"] >= 20 else "cold"
return signals
lead = score_lead("Vercel")
print(f"{lead['company']}: {lead['tier']} (score: {lead['score']}) hiring={lead['hiring']} funding={lead['funding']}")Implémentation JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function scoreLead(company) {
const queries = [company, company+' hiring 2026', company+' funding news 2026'];
const signals = {company, hiring:false, funding:false, score:0};
for (let i=0; i<queries.length; i++) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:queries[i], country_code:'us'})});
const d = await r.json();
const snippets = (d.organic_results||[]).slice(0,5).map(r=>r.snippet||'').join(' ').toLowerCase();
if (i===0 && d.knowledge_graph) { signals.description = d.knowledge_graph.description||''; signals.score += 15; }
if (i===1 && /hiring|job opening/.test(snippets)) { signals.hiring = true; signals.score += 20; }
if (i===2 && /raised|funding|series/.test(snippets)) { signals.funding = true; signals.score += 30; }
}
signals.tier = signals.score >= 45 ? 'hot' : signals.score >= 20 ? 'warm' : 'cold';
return signals;
}
const lead = await scoreLead('Vercel');
console.log(lead.company+': '+lead.tier+' ('+lead.score+') hiring='+lead.hiring+' funding='+lead.funding);Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA