ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un pipeline d'enrichissement d'e-mail froid
Tutoriel

Comment construire un pipeline d'enrichissement d'e-mail froid

Transformez un nom d'entreprise en une ouverture d'e-mail froid personnalisée à l'aide d'une API de recherche. Extrait les informations de l'entreprise, les actualités récentes et la stack technique pour une première ligne ciblée.

Obtenez une clé API gratuiteDocumentation API

Un pipeline d'enrichissement d'e-mail froid prend un nom d'entreprise, recherche les actualités récentes et les informations produit via l'API Scavio, extrait les signaux pertinents et génère une ligne d'ouverture personnalisée à l'aide d'un LLM.

Prérequis

  • Python 3.9+
  • Clé API Scavio
  • SDK anthropic ou openai

Parcours

Étape 1: Rechercher des signaux d'entreprise

Effectuer deux recherches par entreprise : une pour les actualités récentes, une pour la stack technique et le produit.

Python
import requests

API_KEY = "your-scavio-api-key"

def search_company(company: str) -> dict:
    signals = {}

    # Recent news
    r1 = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": f"{company} news 2026", "num_results": 3},
        headers={"x-api-key": API_KEY}, timeout=15
    )
    signals["news"] = r1.json().get("organic_results", [])

    # Product and tech
    r2 = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": f"{company} product features stack", "num_results": 3},
        headers={"x-api-key": API_KEY}, timeout=15
    )
    signals["product"] = r2.json().get("organic_results", [])

    return signals

Étape 2: Extraire des extraits pour le prompt

Combiner les extraits d'actualités et de produits en une chaîne de contexte compacte.

Python
def extract_context(signals: dict, company: str) -> str:
    lines = [f"Company: {company}"]
    for result in signals.get("news", [])[:2]:
        lines.append(f"News: {result.get('title')} - {result.get('snippet', '')[:150]}")
    for result in signals.get("product", [])[:2]:
        lines.append(f"Product: {result.get('snippet', '')[:150]}")
    return "\n".join(lines)

Étape 3: Générer l'ouverture personnalisée

Envoyer le contexte à un LLM et demander une phrase d'ouverture.

Python
import anthropic

ANTHROPIC_KEY = "your-anthropic-key"

def generate_opener(company: str, recipient_role: str = "founder") -> str:
    signals = search_company(company)
    context = extract_context(signals, company)

    prompt = f"""Based on this company context, write ONE personalized first sentence for a cold email to their {recipient_role}. Be specific. No fluff. Max 25 words.

{context}

First sentence:"""

    client = anthropic.Anthropic(api_key=ANTHROPIC_KEY)
    msg = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=100,
        messages=[{"role": "user", "content": prompt}]
    )
    return msg.content[0].text.strip()

opener = generate_opener("Retool", recipient_role="Head of Engineering")
print(opener)

Exemple Python

Python
import requests
import anthropic

SCAVIO_KEY = "your-scavio-api-key"
ANTHROPIC_KEY = "your-anthropic-key"

def get_company_signals(company: str) -> str:
    snippets = []
    for query in [f"{company} news 2026", f"{company} product"]:
        r = requests.post(
            "https://api.scavio.dev/api/v1/search",
            json={"query": query, "num_results": 3},
            headers={"x-api-key": SCAVIO_KEY}, timeout=15
        )
        for res in r.json().get("organic_results", [])[:2]:
            snippets.append(f"{res.get('title')}: {res.get('snippet','')[:120]}")
    return "\n".join(snippets)

def generate_opener(company: str, role: str = "founder") -> dict:
    context = get_company_signals(company)
    prompt = f"""Company context:\n{context}\n\nWrite ONE personalized cold email opening sentence for the {role}. Specific, no fluff, max 25 words."""
    client = anthropic.Anthropic(api_key=ANTHROPIC_KEY)
    msg = client.messages.create(
        model="claude-sonnet-4-6", max_tokens=100,
        messages=[{"role": "user", "content": prompt}]
    )
    return {"company": company, "opener": msg.content[0].text.strip(), "context": context}

def enrich_lead_list(companies: list, role: str = "founder") -> list:
    results = []
    for company in companies:
        try:
            result = generate_opener(company, role)
            print(f"{company}: {result['opener']}")
            results.append(result)
        except Exception as e:
            print(f"Error for {company}: {e}")
    return results

if __name__ == "__main__":
    companies = ["Retool", "Linear", "Vercel"]
    enriched = enrich_lead_list(companies, role="Head of Engineering")
    for e in enriched:
        print(f"\n{e['company']}:\n  {e['opener']}")

Exemple JavaScript

JavaScript
const SCAVIO_KEY = 'your-scavio-api-key';
const ANTHROPIC_KEY = 'your-anthropic-key';

async function getCompanySignals(company) {
  const queries = [`${company} news 2026`, `${company} product`];
  const snippets = [];
  for (const q of queries) {
    const res = await fetch('https://api.scavio.dev/api/v1/search', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'x-api-key': SCAVIO_KEY },
      body: JSON.stringify({ query: q, num_results: 3 })
    });
    const data = await res.json();
    for (const r of (data.organic_results ?? []).slice(0, 2)) {
      snippets.push(`${r.title}: ${r.snippet?.slice(0, 120) ?? ''}`);
    }
  }
  return snippets.join('\n');
}

async function generateOpener(company, role = 'founder') {
  const context = await getCompanySignals(company);
  const prompt = `Context:\n${context}\n\nWrite ONE personalized cold email first sentence for the ${role}. Max 25 words.`;
  const res = await fetch('https://api.anthropic.com/v1/messages', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'x-api-key': ANTHROPIC_KEY, 'anthropic-version': '2023-06-01' },
    body: JSON.stringify({ model: 'claude-sonnet-4-6', max_tokens: 100, messages: [{ role: 'user', content: prompt }] })
  });
  const msg = await res.json();
  return { company, opener: msg.content[0].text.trim() };
}

console.log(await generateOpener('Retool', 'Head of Engineering'));

Sortie attendue

JSON
Retool: Saw Retool just launched multiplayer editing for internal tools — curious how your team is handling access control at scale.
Linear: Linear's new Triage mode looks like it halves the noise in engineering standups — is that holding up in practice?
Vercel: Noticed Vercel added Fluid Compute for always-warm serverless — how much did that move the needle on cold start complaints?

Tutoriels associés

  • Comment enrichir des leads avec une API de recherche dans n8n
  • Comment constituer une liste de prospects Google Maps avec une API
  • Comment vérifier les affirmations de prix des concurrents avec SERP

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.9+. Clé API Scavio. SDK anthropic ou openai. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Best Of

Meilleures API d'enrichissement de leads pour le cold outreach en 2026

Read more
Best Of

Meilleure API de recherche pour l'enrichissement des emails à froid en 2026

Read more
Solution

Enrichissez les leads commerciaux avec des données de recherche au lieu d'Apollo.

Read more
Use Case

Prospection par email froid avec audit one-page

Read more
Use Case

Enrichissement de données e-commerce pour Cold Email

Read more
Workflow

Campagne d'emails froids avec personnalisation basée sur l'audit SERP

Read more

Commencer

Transformez un nom d'entreprise en une ouverture d'e-mail froid personnalisée à l'aide d'une API de recherche. Extrait les informations de l'entreprise, les actualités récentes et la stack technique pour une première ligne ciblée.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité