Recettes

Enrichissement de leads

Enrichir les leads CRM à partir de sites d'entreprises avec extraction structurée

À partir d'une liste d'URLs d'entreprises (issues de ton CRM, d'un formulaire d'inscription ou d'un upload manuel), récupère des données firmographiques structurées — secteur, effectif, stack technique, canaux de contact — et écris-les dans la fiche du lead.

JSON Schema

{
  "type": "object",
  "properties": {
    "companyName":   { "type": "string" },
    "industry":      { "type": "string", "description": "Primary industry from the homepage / about page" },
    "employeeCount": { "type": "string", "description": "Headcount band, e.g. '11-50'" },
    "headquarters":  { "type": "string", "description": "City, country" },
    "contactEmail":  { "type": "string" },
    "linkedinUrl":   { "type": "string" }
  },
  "required": ["companyName"]
}

Implémentation

import httpx

API = "https://openapi.thunderbit.com/openapi/v1"
H = {"Authorization": "Bearer YOUR_API_KEY"}

leads = [
    {"id": "lead_1", "url": "https://acme.com"},
    {"id": "lead_2", "url": "https://stripe.com"},
]

job = httpx.post(f"{API}/batch/extract",
                 headers=H,
                 json={"urls": [l["url"] for l in leads],
                       "schema": SCHEMA,
                       "webhook": {"url": "https://your-server.com/webhook/leads",
                                   "secret": "whsec_..."}}).json()

Quand le Webhook se déclenche, joins results[].url à tes IDs de leads et écris les champs structurés dans ton CRM.

Astuces

  • Garde required minimal — beaucoup de sites de petites entreprises n'ont pas tous les champs
  • Ajoute une passe "best-effort" : si contactEmail manque, distille aussi la page /contact
  • Mets en cache par domaine — réenrichir le même domaine une fois par mois suffit en général

Liens

Cette recette est en cours d'extension avec des patterns d'intégration CRM (HubSpot / Salesforce) — repasse bientôt.