Aperçu
Ce flux de travail prend une liste de cibles LinkedIn (nom + entreprise) et enrichit chaque contact avec des données récentes de recherche Google avant la prospection. Pour chaque contact, il recherche les actualités récentes de l'entreprise, les lancements de produits ou les articles de blog, puis génère une ligne d'accroche personnalisée faisant référence à quelque chose de spécifique. La liste enrichie est exportée avec des champs personnalisés prêts pour votre outil de prospection.
Déclencheur
Manuel (exécuter avant chaque campagne de prospection)
Planification
À la demande (avant chaque campagne de prospection)
Étapes du workflow
Charger la liste de cibles LinkedIn
Importer un fichier CSV ou JSON avec les noms des contacts et des entreprises. Chaque ligne devient une cible d'enrichissement.
Rechercher sur Google pour chaque contact
Pour chaque contact, effectuer une recherche Scavio Google avec 'name company recent 2026'. Extraire les 3 premiers résultats organiques avec titres et extraits.
Extraire le contexte de personnalisation
À partir des résultats de recherche, identifier l'élément de contexte le plus pertinent : un article de blog récent, un lancement de produit, un tour de financement ou une intervention en conférence.
Générer une ligne d'accroche
Créer une ligne d'accroche personnalisée faisant référence au contexte extrait. Gardez-la sous 100 caractères et spécifique au contact.
Exporter la liste enrichie
Écrire la liste de contacts enrichie avec le champ de personnalisation ajouté. Compatible avec les formats d'importation Instantly, Smartlead ou Lemlist.
Implémentation Python
import requests, os, csv
SCAVIO_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": SCAVIO_KEY}
def enrich(name: str, company: str) -> dict:
resp = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": "google", "query": f"{name} {company} recent 2026"},
timeout=10)
results = resp.json().get("organic", [])[:3]
if results:
best = results[0]
return {
"context_title": best["title"],
"context_snippet": best.get("snippet", ""),
"opening": f"Saw your work on {best['title'][:60]}. Relevant to what I do."
}
return {"context_title": "", "context_snippet": "", "opening": ""}
# Read targets
with open("targets.csv") as f:
targets = list(csv.DictReader(f))
# Enrich each target
for t in targets:
enrichment = enrich(t["name"], t["company"])
t.update(enrichment)
# Write enriched list
with open("enriched_targets.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=targets[0].keys())
w.writeheader()
w.writerows(targets)
print(f"Enriched {len(targets)} contacts")Implémentation JavaScript
import { readFileSync, writeFileSync } from "fs";
async function enrich(name, company) {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ platform: "google", query: `${name} ${company} recent 2026` })
});
const results = ((await resp.json()).organic || []).slice(0, 3);
if (results.length > 0) {
const best = results[0];
return {
context_title: best.title,
context_snippet: best.snippet || "",
opening: `Saw your work on ${best.title.slice(0, 60)}. Relevant to what I do.`
};
}
return { context_title: "", context_snippet: "", opening: "" };
}
// Load targets and enrich
const targets = JSON.parse(readFileSync("targets.json", "utf8"));
for (const t of targets) {
const enrichment = await enrich(t.name, t.company);
Object.assign(t, enrichment);
}
writeFileSync("enriched_targets.json", JSON.stringify(targets, null, 2));
console.log(`Enriched ${targets.length} contacts`);Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA