ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un pipeline de prospection commerciale avec une API de recherche
Tutoriel

Comment construire un pipeline de prospection commerciale avec une API de recherche

Construisez un pipeline de prospection commerciale automatisé qui trouve, qualifie et enrichit les prospects à l'aide des données de l'API de recherche. Tutoriel Python complet.

Obtenez une clé API gratuiteDocumentation API

Un pipeline de prospection commerciale automatise le processus de recherche de clients potentiels, de qualification basée sur des signaux tels que la taille de l'entreprise et la stack technologique, et d'enrichissement de leurs profils pour la prospection. Les outils de prospection traditionnels comme Apollo (49 $/utilisateur/mois) ou ZoomInfo fournissent des bases de données pré-construites, mais ils sont coûteux et souvent obsolètes. En utilisant une API de recherche, vous pouvez construire un pipeline de prospection en temps réel qui trouve des leads frais en recherchant des signaux d'achat. Ce tutoriel construit le pipeline complet à 0,005 $ par recherche via Scavio.

Prérequis

  • Python 3.9+ installé
  • bibliothèque requests installée
  • Une clé API Scavio depuis scavio.dev
  • Un profil client cible (secteur d'activité, taille, stack technologique)

Parcours

Étape 1: Définissez les recherches de votre profil client idéal

Créez des requêtes de recherche qui ciblent les entreprises correspondant à votre ICP. Utilisez des signaux d'achat comme les offres d'emploi, les mentions technologiques et les annonces de financement.

Python
ICP_SEARCHES = [
    # Companies hiring for roles that signal they need your product
    '"hiring" AND "head of marketing" AND "series A" 2026',
    # Companies using competitor products (potential switchers)
    '"switching from HubSpot" OR "HubSpot alternative" 2026',
    # Companies in target verticals with growth signals
    'SaaS startup raised funding 2026 marketing automation',
    # Job boards as lead source
    'site:linkedin.com/jobs marketing director saas startup',
]

for i, q in enumerate(ICP_SEARCHES, 1):
    print(f'{i}. {q}')

Étape 2: Recherchez et extrayez les entreprises prospects

Exécutez chaque recherche ICP et extrayez les noms d'entreprise et les URL des résultats. Dédupliquez entre les recherches.

Python
import requests, os, re

API_KEY = os.environ['SCAVIO_API_KEY']

def search(query: str) -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return resp.json().get('organic_results', [])

def extract_prospects(queries: list) -> list:
    seen_domains = set()
    prospects = []
    for query in queries:
        results = search(query)
        for r in results:
            from urllib.parse import urlparse
            domain = urlparse(r.get('link', '')).netloc.replace('www.', '')
            if domain and domain not in seen_domains:
                seen_domains.add(domain)
                prospects.append({
                    'domain': domain,
                    'title': r['title'],
                    'snippet': r.get('snippet', ''),
                    'source_query': query[:50]
                })
    return prospects

prospects = extract_prospects(ICP_SEARCHES)
print(f'Found {len(prospects)} unique prospects')

Étape 3: Qualifiez les prospects avec un score

Attribuez un score à chaque prospect en fonction des signaux trouvés dans leurs extraits de recherche. Des scores plus élevés indiquent une meilleure adéquation avec votre ICP.

Python
SCORING_RULES = {
    'series a': 10, 'series b': 15, 'raised': 10,
    'hiring': 8, 'growing': 5, 'saas': 5,
    'marketing': 5, 'automation': 5, 'startup': 3,
    '2026': 3, 'remote': 2
}

def score_prospect(prospect: dict) -> int:
    text = f'{prospect["title"]} {prospect["snippet"]}'.lower()
    score = sum(points for keyword, points in SCORING_RULES.items() if keyword in text)
    return score

def qualify_prospects(prospects: list, min_score: int = 10) -> list:
    scored = []
    for p in prospects:
        p['score'] = score_prospect(p)
        scored.append(p)
    qualified = sorted([p for p in scored if p['score'] >= min_score],
                       key=lambda x: x['score'], reverse=True)
    print(f'Qualified: {len(qualified)}/{len(prospects)} (score >= {min_score})')
    return qualified

qualified = qualify_prospects(prospects)
for p in qualified[:5]:
    print(f'  [{p["score"]}] {p["domain"]}: {p["title"][:50]}')

Étape 4: Enrichissez les prospects qualifiés

Pour les prospects qualifiés uniquement, effectuez des recherches supplémentaires pour trouver les pages de contact, les pages d'équipe et les profils sociaux. Cet enrichissement ciblé permet de maintenir les coûts bas.

Python
import time

def enrich_prospect(prospect: dict) -> dict:
    domain = prospect['domain']
    # Find contact/team page
    contact_results = search(f'site:{domain} contact OR team OR about')
    contact_urls = [r['link'] for r in contact_results[:3]]
    # Find social profiles
    social_results = search(f'{domain} linkedin OR twitter company')
    social_links = [r['link'] for r in social_results
                    if 'linkedin.com' in r.get('link', '') or 'twitter.com' in r.get('link', '')]
    prospect['contact_pages'] = contact_urls
    prospect['social_profiles'] = social_links[:3]
    return prospect

def enrich_batch(prospects: list) -> list:
    enriched = []
    for i, p in enumerate(prospects):
        enriched.append(enrich_prospect(p))
        if (i + 1) % 5 == 0:
            print(f'  Enriched {i + 1}/{len(prospects)}')
        time.sleep(0.3)
    return enriched

enriched = enrich_batch(qualified[:20])  # top 20 only
print(f'Enriched {len(enriched)} prospects')

Étape 5: Exportez la sortie du pipeline

Enregistrez les prospects qualifiés et enrichis dans un fichier CSV trié par score. Incluez le suivi des coûts pour connaître le ROI de chaque campagne de prospection.

Python
import csv

def export_prospects(prospects: list, output: str = 'prospects.csv') -> None:
    if not prospects:
        return
    fields = ['score', 'domain', 'title', 'snippet', 'contact_pages', 'social_profiles']
    with open(output, 'w', newline='') as f:
        writer = csv.DictWriter(f, fieldnames=fields, extrasaction='ignore')
        writer.writeheader()
        for p in prospects:
            row = {**p}
            row['contact_pages'] = ' | '.join(p.get('contact_pages', []))
            row['social_profiles'] = ' | '.join(p.get('social_profiles', []))
            writer.writerow(row)
    # Cost calculation:
    # ICP searches: 4 queries = $0.02
    # Enrichment: 20 prospects x 2 searches = $0.20
    total_cost = (len(ICP_SEARCHES) + len(prospects) * 2) * 0.005
    print(f'Saved {len(prospects)} prospects to {output}')
    print(f'Pipeline cost: ${total_cost:.2f}')
    print(f'Cost per qualified lead: ${total_cost / max(len(prospects), 1):.3f}')

export_prospects(enriched)

Exemple Python

Python
import os, requests, time

API_KEY = os.environ['SCAVIO_API_KEY']

def search(query):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return resp.json().get('organic_results', [])

def prospect(queries):
    prospects = []
    for q in queries:
        for r in search(q):
            prospects.append({'title': r['title'], 'url': r['link'], 'snippet': r.get('snippet', '')})
        time.sleep(0.3)
    return prospects

queries = ['SaaS startup hiring marketing 2026', 'series A marketing automation']
results = prospect(queries)
print(f'Found {len(results)} prospects at ${len(queries) * 0.005:.3f}')
for r in results[:5]:
    print(f'  {r["title"][:60]}')

Exemple JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;

async function search(query) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, country_code: 'us' })
  });
  return (await resp.json()).organic_results || [];
}

async function main() {
  const queries = ['SaaS startup hiring marketing 2026', 'series A marketing automation'];
  const prospects = [];
  for (const q of queries) {
    const results = await search(q);
    results.forEach(r => prospects.push({ title: r.title, url: r.link }));
  }
  console.log(`Found ${prospects.length} prospects`);
  prospects.slice(0, 5).forEach(p => console.log(`  ${p.title.slice(0, 60)}`));
}

main().catch(console.error);

Sortie attendue

JSON
Found 38 unique prospects
Qualified: 15/38 (score >= 10)
  [25] acmesaas.com: Acme SaaS Raises $12M Series A for Marketing...
  [20] growthco.io: GrowthCo Hiring Head of Marketing, Series B...
  [18] betastart.com: BetaStart Switches from HubSpot to...
  Enriched 5/15
  Enriched 10/15
  Enriched 15/15
Saved 15 prospects to prospects.csv
Pipeline cost: $0.17
Cost per qualified lead: $0.011

Tutoriels associés

  • Comment enrichir des leads avec une API de recherche en Python
  • Comment construire un pipeline d'extraction d'e-mails Google Maps avec n8n
  • Comment construire un scoring de leads n8n avec les données de l'API de recherche

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+ installé. bibliothèque requests installée. Une clé API Scavio depuis scavio.dev. Un profil client cible (secteur d'activité, taille, stack technologique). 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

Solution

Construisez un pipeline de prospection commerciale avec des données de recherche

Read more
Best Of

Meilleures API de recherche pour la génération de leads en 2026

Read more
Best Of

Meilleures API de recherche pour l'intégration dans les pipelines en 2026

Read more
Glossary

Pipeline de prospection automatisée

Read more
Glossary

Automatisation du pipeline de prospection

Read more
Use Case

Workflow d'enrichissement de recherche n8n

Read more

Commencer

Construisez un pipeline de prospection commerciale automatisé qui trouve, qualifie et enrichit les prospects à l'aide des données de l'API de recherche. Tutoriel Python complet.

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é