Automatiser sa prospection avec l'IA ne consiste pas à demander à ChatGPT de trouver des clients. Une vraie automatisation repose sur une chaîne de travail : une source de données fiable, des critères de ciblage explicites, un script qui nettoie et filtre, un agent IA qui enrichit ou qualifie, puis une décision humaine avant tout envoi.
C'est exactement le type de système que l'on peut construire avec les données ouvertes françaises, Python et des agents comme Claude Code ou GPT Codex. L'objectif n'est pas de remplacer votre jugement commercial : l'objectif est de supprimer les tâches répétitives pour que vous puissiez passer plus de temps sur la stratégie, le message et la relation.
Vous voulez apprendre à construire ce type de prospection IA pour votre activité ?
❋ Se former à l'IA agentique ❋Pour qui ? Une alternative à Waalaxy, Lemlist, Apollo ou d'autres logiciels
Cet article n'est pas pour ceux qui cherchent un "outil de prospection IA" et qui comparent Waalaxy, Lemlist, Apollo ou d'autres logiciels. Ici je présente une alternative, la cible est différente : des dirigeants, indépendants et petites équipes B2B qui veulent comprendre comment automatiser leur prospection avec l'IA sans dépendre d'une boîte noire coûteuse. Ici, un simple plan payant Claude 20€/mois permet d'automatiser une partie importante de sa prospection.
La requête principale ciblée est donc : automatiser prospection IA. Les requêtes secondaires sont : prospection IA B2B, automatiser prospection commerciale IA, agent IA prospection, Claude Code prospection et prospection B2B Python.
Pourquoi les entreprises bloquent
La plupart des entreprises qui veulent automatiser leur prospection se heurtent à quatre problèmes très concrets.
- La donnée de départ est floue. Elles ont une intuition de cible, mais pas une base propre d'entreprises à contacter.
- Les outils promettent trop. Beaucoup de plateformes automatisent l'envoi, mais pas la réflexion sur le ciblage.
- Le cadre RGPD est mal compris. En B2B, la prospection peut s'appuyer sur l'intérêt légitime si l'objet de la sollicitation est lié à la profession, mais chaque message doit identifier l'émetteur et permettre une opposition simple, comme le rappelle la CNIL.
- L'IA est utilisée trop tard. On lui demande de rédiger un email, alors qu'elle peut aussi aider à qualifier, prioriser, vérifier et documenter le pipeline.
Le principe : un pipeline, pas un prompt magique
Un pipeline de prospection IA fiable ressemble à une petite chaîne de production.
- Définir la cible. Zone géographique, taille, secteur, forme juridique, signaux d'intérêt.
- Extraire les entreprises. Utiliser une source officielle plutôt qu'un fichier revendu.
- Filtrer et nettoyer. Exclure les structures non pertinentes, doublons, établissements fermés ou hors cible.
- Enrichir. Trouver site web, email générique, téléphone ou informations publiques utiles.
- Qualifier. Noter les prospects selon leur pertinence réelle.
- Rédiger et tester le message. Adapter l'angle au contexte, sans automatiser l'envoi trop vite.
- Envoyer par vagues. Mesurer, corriger, respecter les désabonnements.
L'IA intervient à plusieurs endroits, mais elle ne doit pas décider seule. Elle accélère l'analyse, la recherche et la rédaction. La stratégie, le seuil de qualité et la décision d'envoi restent humains.
Étape 1 : partir de données fiables avec data.gouv.fr
La France met à disposition la base SIRENE des entreprises et de leurs établissements. Elle contient les unités légales et les établissements : SIREN, SIRET, activité principale, adresse, état administratif, tranche d'effectif, siège ou non.
Depuis 2025, data.gouv.fr propose aussi les gros fichiers tabulaires au format Parquet. Ce format est particulièrement adapté aux volumes importants : il réduit la taille des fichiers, accélère les traitements analytiques et permet de lire seulement les colonnes ou lignes utiles, sans charger tout le fichier en mémoire.
Dans un projet de prospection locale pour un club d'entrepreneurs à Saintes, le pipeline part de deux fichiers :
- StockEtablissement : un établissement par ligne, avec adresse, commune, statut actif ou fermé, effectif et indication du siège.
- StockUniteLegale : une unité légale par ligne, avec raison sociale, forme juridique, activité NAF et parfois le nom de la personne physique pour les entreprises individuelles.
La jointure se fait sur le SIREN. Le script Python peut alors extraire uniquement les établissements actifs, sièges, situés dans les communes visées et dans les tranches d'effectif pertinentes.
etablissements = pd.read_parquet(
"StockEtablissement_utf8.parquet",
filters=[
("etatAdministratifEtablissement", "=", "A"),
("etablissementSiege", "=", True),
("codeCommuneEtablissement", "in", communes_cibles),
],
columns=["siren", "siret", "codeCommuneEtablissement", "trancheEffectifsEtablissement"]
)
Ce point est essentiel : une bonne prospection IA commence par une bonne requête de données. Si la cible est mal filtrée, l'IA ne fera qu'automatiser une mauvaise liste.
Étape 2 : filtrer avec Python avant de demander à l'IA
Python fait très bien les tâches déterministes : lire un fichier, filtrer une colonne, joindre deux tables, exclure des codes NAF, créer un CSV propre. Il n'y a aucune raison de confier ces opérations à un modèle de langage.
Dans le cas d'un club d'entrepreneurs, on peut par exemple exclure les administrations, associations, SCI de location, clubs sportifs ou ménages. On peut aussi garder les TPE et PME, puis générer un fichier lisible avec le nom, l'adresse, l'activité, la taille et le SIRET.
La règle pratique est simple : Python pour le calcul exact, l'IA pour les tâches ambiguës. L'IA devient utile lorsque l'information n'est pas déjà structurée : chercher un site web, interpréter une page de contact, résumer l'activité réelle, repérer si une entreprise ressemble à une cible prioritaire.
Exemple concret : traduire un besoin métier flou en critères de code
Prenons un cas plus détaillé que le club d'entrepreneurs de Saintes, pour montrer ce que "bien filtrer" veut dire quand la cible est un secteur d'activité précis. Imaginons un commercial B2B qui vend des équipements de production — fours, injecteuses, lignes de conditionnement, machines sous vide — aux entreprises agroalimentaires. Sa demande de départ ressemble à ça : "Je veux les entreprises qui utilisent ce genre de machines, en Grand Est, pas trop petites, pas les artisans isolés." C'est une intuition, pas un filtre. Le travail consiste à la transformer en critères vérifiables, un par un, dans le code.
Premier arbitrage : quels codes NAF, et lesquels exclure malgré la tentation d'être large. "Agroalimentaire" correspond en réalité à deux divisions NAF : la production agricole (codes 01.xx) et la transformation industrielle (codes 10.xx). Mais la division 01 contient aussi la culture de la vigne (01.21Z), qui relève de la filière vin — donc des boissons, hors cible ici puisque le besoin exclut ce sous-secteur. Le bon réflexe n'est pas de l'exclure silencieusement : il faut le documenter dans le code, pour que quiconque relise le script comprenne pourquoi ce code précis manque à l'appel alors que le reste de la division 01 est conservé.
# Codes NAF inclus : division 01 (culture et production animale) +
# division 10 (industries alimentaires). La division 11 (boissons)
# est exclue.
NAF_AGRICULTURE = {
'01.11Z', '01.12Z', '01.13Z', '01.14Z', '01.15Z', '01.16Z', '01.19Z',
# 01.21Z (culture de la vigne) exclue : filière raisin-vin,
# hors périmètre "pas les boissons"
'01.22Z', '01.23Z', '01.24Z', '01.25Z', '01.26Z', '01.27Z',
# ... reste de la division 01
}
NAF_ALIMENTAIRE = {
'10.11Z', '10.12Z', '10.13A', '10.13B', # viande
'10.51A', '10.51B', '10.51C', '10.51D', # produits laitiers
'10.71A', '10.71B', '10.71C', '10.71D', # boulangerie, pâtisserie
# ... reste de la division 10
}
Deuxième arbitrage : la taille, et le décalage entre le seuil légal et la donnée disponible. Le commercial parle de "pas trop petites". Traduit en effectif salarié, on pourrait viser "à partir de 5 salariés". Sauf que la nomenclature SIRENE ne propose pas de tranche qui commence exactement à 5 : la tranche la plus proche, '02', couvre en réalité 3 à 5 salariés. Prendre cette tranche revient donc à inclure aussi des entreprises de 3 et 4 salariés. C'est un choix, pas une erreur — mais un choix qui doit être écrit noir sur blanc dans le code, pas deviné six mois plus tard en relisant une liste de sortie.
# Tranches d'effectif incluses : a partir de 5 salaries.
# La tranche '02' (3-5 salaries) est la plus fine granularite
# disponible dans SIRENE qui contienne "5 salaries" — elle est donc
# incluse, quitte a inclure aussi des entreprises de 3-4 salaries.
EFFECTIFS_INCLUS = [
'02', '03', '11', '12', '21', '22', '31', '32', '41', '42', '51', '52', '53',
]
Troisième arbitrage : cibler le siège, pas chaque établissement. Une base SIRENE contient un établissement par site, pas par entreprise : une usine avec trois sites de production peut apparaître trois fois. Pour une prospection qui vise un décideur ou un service achats, on filtre sur etablissementSiege = True : on ne garde que le siège social de chaque entreprise, là où se prend la décision d'achat d'équipement.
Quatrième arbitrage : écarter les formes juridiques hors cible. La base contient aussi des associations, des syndicats de copropriétaires, des indivisions ou des fiducies — des catégories juridiques qui ne correspondent jamais à une entreprise exploitante susceptible d'acheter une ligne de production. Elles sont identifiables par leur code de catégorie juridique et peuvent être exclues par une plage de codes, plutôt qu'entreprise par entreprise.
# Catégories juridiques exclues :
# 9100–9999 : associations, syndicats de copropriétaires, fondations
# 2100–2199 : indivisions et fiducies (pas des entreprises exploitantes)
def est_catjur_valide(categorie):
cat = pd.to_numeric(categorie, errors='coerce').fillna(0).astype(int)
return ~(
((cat >= 9100) & (cat <= 9999)) |
((cat >= 2100) & (cat <= 2199))
)
Une fois ces quatre filtres appliqués sur une grande région comme le Grand Est, on passe de plusieurs dizaines de milliers d'établissements agroalimentaires potentiels à une liste de l'ordre de quelques milliers d'entreprises réellement exploitables — un volume qui reste large, mais qui correspond enfin à une cible commerciale précise plutôt qu'à un secteur entier pris au sens large.
Le script ne s'arrête pas à l'export du CSV. Il produit aussi un rapport texte : répartition par département, par tranche d'effectif, par forme juridique, et top des secteurs d'activité représentés. Ce rapport n'est pas accessoire : c'est le point de contrôle qui permet de vérifier, avant de livrer la liste, que le filtrage n'a pas produit n'importe quoi. Si un département apparaît anormalement surreprésenté, ou si une forme juridique inattendue domine le classement, c'est le signal qu'il faut retourner ajuster les critères plutôt que d'enrichir une liste bancale.
Le principe à retenir : chaque exclusion ou inclusion douteuse doit être un choix écrit en commentaire dans le code, pas un filtre silencieux. Un script de filtrage se relit comme un cahier des charges : n'importe qui doit pouvoir comprendre pourquoi telle entreprise est dedans et telle autre n'y est pas.
Étape 3 : enrichir sans brûler son budget
Les données SIRENE ne contiennent pas les emails et les téléphones. L'enrichissement peut donc passer par une API de recherche, un moteur web, Pappers pour certains dirigeants, ou un agent IA capable de consulter plusieurs sources publiques.
C'est ici que les coûts et les erreurs peuvent monter vite. Avant de lancer 1 000 enrichissements, il faut tester 5 à 10 lignes, vérifier la qualité des résultats, ajuster le prompt et décider si l'enrichissement vaut son coût.
Point de contrôle indispensable : le client ou le responsable commercial doit valider un échantillon de données, le message et le budget d'enrichissement avant le lancement complet.
Étape 4 : lancer des agents en mode headless avec Claude Code
Le problème d'une grande prospection n'est pas seulement de demander une recherche à l'IA. Le problème est de répéter la même tâche 100, 500 ou 1 000 fois sans accumuler un contexte énorme, coûteux et de moins en moins précis.
Le mode headless de Claude Code répond à ce besoin. Dans la documentation officielle, Anthropic explique que le flag -p ou --print permet de lancer Claude Code en mode non interactif : l'agent exécute la demande, imprime la réponse, puis rend la main au script. La même page précise que --bare est recommandé pour les appels scriptés, car il saute la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire et fichiers CLAUDE.md.
claude --bare -p "Analyse cette entreprise et retourne un JSON propre" \
--model haiku \
--output-format json \
--max-turns 3
Ce mode est intéressant pour la prospection parce que chaque ligne peut devenir une petite tâche indépendante. Une entreprise à enrichir = un processus. Le résultat est écrit dans un fichier JSON ou CSV. Ensuite, un script d'agrégation rassemble les sorties.
Le modèle haiku est particulièrement adapté aux tâches répétitives et bornées : extraction d'informations, reformulation courte, classification simple, vérification d'un format. On peut réserver Sonnet ou Opus aux étapes plus complexes : stratégie, analyse d'échantillon, synthèse finale, rédaction du message principal.
Pourquoi ne pas tout faire dans une seule conversation ?
Une seule longue conversation avec 100 entreprises est tentante, mais c'est rarement la bonne architecture. Les résultats bruts s'accumulent, les consignes initiales se retrouvent noyées, et il devient difficile de reprendre uniquement les lignes en erreur.
Avec des appels headless, chaque tâche garde son propre contexte. On peut relancer seulement les échecs, limiter le nombre de tours, mesurer le coût par ligne et paralléliser prudemment.
| Approche | Avantage | Limite |
|---|---|---|
| Conversation unique | Simple pour explorer | Accumulation du contexte, difficile à industrialiser |
| Subagents | Pratique pour quelques recherches parallèles | Moins lisible pour un traitement massif |
claude -p scripté |
Contexte isolé, sorties structurées, relances faciles | Demande un minimum d'organisation technique |
| Python seul | Rapide, fiable, économique | Ne sait pas interpréter le web non structuré |
À quoi ressemble l'orchestration ?
En pratique, l'orchestrateur peut être un simple script Python :
- Lire le fichier
sortie_filtree.csv. - Créer une tâche par entreprise.
- Lancer plusieurs appels
claude --bare -pen parallèle, avec une limite raisonnable. - Écrire une sortie par entreprise.
- Relancer seulement les erreurs.
- Fusionner les résultats dans
sortie_enrichie.csv.
On peut aussi remplacer Claude Code par GPT Codex selon l'environnement, ou combiner plusieurs agents. Le principe reste le même : un agent ne doit pas avaler toute la campagne. Il doit recevoir une tâche claire, courte, contrôlable et vérifiable.
Les garde-fous à prévoir
Une automatisation de prospection devient utile seulement si elle reste maîtrisable. Les garde-fous minimum sont les suivants.
- Journaliser les sources. Chaque email ou téléphone trouvé doit venir d'une source identifiable.
- Conserver un statut. À vérifier, validé, rejeté, introuvable, doublon.
- Limiter les envois. Envoyer par vagues, jamais toute la base d'un coup.
- Prévoir l'opposition. Chaque sollicitation doit permettre de refuser les prochains messages.
- Éviter la personnalisation inventée. L'IA ne doit pas créer de faux prétextes de contact.
- Mesurer la qualité. Taux d'emails trouvés, taux d'erreur, réponses, désabonnements, conversions.
Ce que j'enseigne en formation
Une entreprise peut déléguer ce type de pipeline, mais elle gagne beaucoup à comprendre son fonctionnement. C'est le but d'une formation IA orientée prospection : rendre les équipes autonomes, pas leur vendre une automatisation opaque.
Dans une formation, on peut apprendre à :
- formaliser une cible B2B exploitable par un script ;
- utiliser les données SIRENE sans confondre code postal, commune et SIRET ;
- filtrer avec Python et pandas sans charger inutilement des millions de lignes ;
- écrire un prompt d'enrichissement qui retourne du JSON propre ;
- lancer Claude Code en mode headless avec
-p,--bare,--model haiku,--output-format jsonet--max-turns; - contrôler les coûts, les erreurs et les limites RGPD ;
- choisir quand utiliser Claude Code, GPT Codex, Python pur ou un outil no-code.
La bonne question à se poser
La question n'est pas : "Quel outil va prospecter à ma place ?" La bonne question est : quelles étapes de ma prospection peuvent être transformées en processus vérifiable ?
Si votre ciblage est clair, vos données propres et vos validations bien placées, l'IA agentique peut devenir un formidable accélérateur. Si votre cible est floue, elle accélérera surtout le désordre.
Vous voulez construire ce type de système avec vos propres données, vos contraintes et vos outils ?
❋ Réserver 1h de consultation ❋ Résultat obtenu ou remboursé