Resumen
Outbound sales teams waste time on unqualified leads porque CRM datos es stale. Este flujo de trabajo activa on cada nuevo lead (via webhook o batch), searches for el company y contact on Google, extrae senales like company tamano, reciente funding, tech stack menciones, y job postings, y appends enriquecimiento datos to el lead registro antes de enrutamiento to un sales rep. Cada enriquecimiento costs 1-2 credits ($0.005-$0.01) depending on search depth. Replaces expensive enriquecimiento herramientas ese charge $0.10+ per registro.
Desencadenador
Nuevo lead webhook o batch importar
Programación
On-demand
Pasos del flujo de trabajo
Recibir Lead Datos
Accept el lead registro con company nombre, dominio, y contact nombre de el webhook o batch file.
Search Company Profile
Call Scavio search on Google for el company nombre to encontrar reciente news, funding, y company tamano senales.
Extraer Enriquecimiento Signals
Analizar resultados de busqueda for revenue indicators, employee conteo, reciente press, tech stack, y hiring senales.
Puntuacion Lead Calidad
Assign un lead puntuacion basado on enriquecimiento senales: funded companies con hiring activity puntuacion highest.
Route Enriquecido Lead
Agregar enriquecimiento datos to el lead registro y route to el appropriate sales rep o sequence.
Implementacion en Python
import requests, os, json, re
API_KEY = os.environ["SCAVIO_API_KEY"]
SH = {"x-api-key": API_KEY, "Content-Type": "application/json"}
SIGNAL_PATTERNS = {
"funding": r"raised|funding|series [a-d]|seed round|venture",
"hiring": r"hiring|job opening|careers|we.re growing",
"enterprise": r"fortune 500|enterprise|large.scale",
"recent_news": r"announced|launched|partnership|acquired",
}
def search_company(company: str) -> list:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=SH,
json={"query": f"{company} company news 2026", "platform": "google"},
timeout=15,
)
resp.raise_for_status()
return resp.json().get("organic", [])
def extract_signals(results: list) -> dict:
signals = {k: False for k in SIGNAL_PATTERNS}
snippets = " ".join(r.get("snippet", "") for r in results).lower()
for signal, pattern in SIGNAL_PATTERNS.items():
if re.search(pattern, snippets, re.IGNORECASE):
signals[signal] = True
return signals
def score_lead(signals: dict) -> int:
score = 50
if signals.get("funding"):
score += 25
if signals.get("hiring"):
score += 15
if signals.get("enterprise"):
score += 10
if signals.get("recent_news"):
score += 5
return min(score, 100)
def enrich_lead(lead: dict) -> dict:
results = search_company(lead["company"])
signals = extract_signals(results)
lead_score = score_lead(signals)
return {
**lead,
"enrichment": {
"signals": signals,
"lead_score": lead_score,
"top_results": [{"title": r.get("title", ""), "url": r.get("url", "")} for r in results[:3]],
},
}
# Example: process a batch of leads
leads = [
{"company": "Vercel", "contact": "Jane Doe", "email": "[email protected]"},
{"company": "Supabase", "contact": "John Smith", "email": "[email protected]"},
]
for lead in leads:
enriched = enrich_lead(lead)
score = enriched["enrichment"]["lead_score"]
signals = enriched["enrichment"]["signals"]
active = [k for k, v in signals.items() if v]
print(f"{lead['company']}: score={score}, signals={active}")Implementacion en JavaScript
const SH = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const SIGNAL_PATTERNS = {
funding: /raised|funding|series [a-d]|seed round|venture/i,
hiring: /hiring|job opening|careers|we're growing/i,
enterprise: /fortune 500|enterprise|large.scale/i,
recentNews: /announced|launched|partnership|acquired/i,
};
async function searchCompany(company) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:SH, body:JSON.stringify({query:company+' company news 2026', platform:'google'})});
return (await r.json()).organic || [];
}
function extractSignals(results) {
const text = results.map(r=>r.snippet||'').join(' ');
const signals = {};
for (const [key, pattern] of Object.entries(SIGNAL_PATTERNS)) {
signals[key] = pattern.test(text);
}
return signals;
}
function scoreLead(signals) {
let score = 50;
if (signals.funding) score += 25;
if (signals.hiring) score += 15;
if (signals.enterprise) score += 10;
if (signals.recentNews) score += 5;
return Math.min(score, 100);
}
const leads = [
{company:'Vercel', contact:'Jane Doe', email:'[email protected]'},
{company:'Supabase', contact:'John Smith', email:'[email protected]'},
];
for (const lead of leads) {
const results = await searchCompany(lead.company);
const signals = extractSignals(results);
const score = scoreLead(signals);
const active = Object.entries(signals).filter(([k,v])=>v).map(([k])=>k);
console.log(lead.company+': score='+score+', signals='+JSON.stringify(active));
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA