[ Construire un fichier de prospection ]
Segmenter un marché B2B français : les critères qui existent vraiment
La segmentation théorique et la segmentation praticable ne se ressemblent pas. Beaucoup de critères que les méthodes recommandent n'existent tout simplement pas dans les données françaises. Autant savoir lesquels avant de construire son ciblage.
Ce qui est disponible sur la quasi-totalité du parc
- L'activité déclarée, par le code NAF, avec toutes ses réserves.
- La localisation, jusqu'à la commune, pour l'entreprise et pour chacun de ses établissements.
- La forme juridique, qui sépare les sociétés, les entreprises individuelles, les associations, les SCI et les holdings.
- L'ancienneté, à partir de la date de création, un critère très discriminant et sous-utilisé.
- La tranche d'effectif, déclarée pour les employeurs, avec sa case « non renseigné » qu'il ne faut pas confondre avec zéro.
- Le statut : en activité, cessée, en procédure collective.
- Le nombre d'établissements, qui distingue l'indépendant du réseau mieux que n'importe quel autre champ.
Ce qui n'est disponible que sur une partie
| Critère | Pourquoi c'est partiel |
|---|---|
| Chiffre d'affaires | La confidentialité des comptes est largement utilisée |
| Site web | Une grande partie des petites entreprises françaises n'en a pas |
| Page LinkedIn | Présente surtout au-delà d'une certaine taille et dans les métiers de bureau |
| Fiche Google | Excellente sur le commerce et les services de proximité, faible sur le B2B pur |
| Téléphone | Dépend de la présence sur Google ou d'un numéro publié sur le site |
| Convention collective | Disponible pour les employeurs, absente pour les structures sans salarié |
C'est ce tableau qui explique pourquoi un filtre ambitieux rend peu de lignes : ce n'est pas la base qui est vide, c'est l'intersection de plusieurs critères partiels qui l'est.
Ce qui n'existe pas, malgré ce qu'on lit
- Le budget d'un service. Aucune source publique ne le porte, pour aucune entreprise.
- Les outils utilisés en interne. Détectables sur un site web pour la partie visible, invisibles pour le reste.
- Les intentions d'achat. Ce qui se vend sous ce nom est une inférence à partir de signaux faibles, pas une donnée.
- Les retards de paiement. Non publics en France, sauf à passer par un assureur-crédit.
- Le rattachement à un groupe, au-delà de ce que les liens capitalistiques déclarés permettent de reconstituer, c'est-à-dire partiellement.
Construire un profil de client idéal qui se traduit en filtres
La méthode qui fonctionne part de vos clients, pas d'une hypothèse. Prenez vos vingt meilleurs, ceux qui achètent vite et restent longtemps. Retrouvez leur SIREN. Regardez ce qu'ils ont en commun dans les champs réellement disponibles.
Le résultat est presque toujours plus étroit et plus banal qu'on ne l'imaginait : une tranche d'effectif, deux ou trois codes d'activité, une ancienneté minimale, la présence d'un site web. Ce profil-là se traduit directement en filtres, ce qui est exactement le but.
Découper plutôt qu'élargir
Quand un segment rend trop peu de lignes, le réflexe est d'élargir les critères. C'est souvent l'erreur : un segment large rend un message générique, donc un taux de réponse plus faible, donc au total moins de rendez-vous qu'un segment étroit bien traité.
L'alternative est de multiplier les segments étroits, chacun avec son message. C'est plus de travail au départ, et beaucoup moins de gâchis ensuite. Voir comment constituer le fichier correspondant.
Traduire un profil de client idéal en filtres, et le compter avant d'extraire
Vous sortez de l'analyse de vos vingt meilleurs clients avec trois constantes : une tranche d'effectif, deux ou trois activités, une ancienneté minimale. Cette opération les pose en filtres et rend un nombre de lignes. Le comptage est gratuit et se refait à volonté : rien n'est extrait, rien n'est débité tant que vous n'avez pas vu le chiffre.
Dans la plateforme, pas à pas
- Ouvrez la recherche et placez-vous sur l'onglet « Entreprises ».
- Dans « Activité », tapez le métier et prenez une suggestion. La suggestion est un concept qui se déplie dans les trois vocabulaires (code NAF, catégorie Google, secteur LinkedIn), donc une seule saisie couvre les trois sources. Répétez pour vos deux ou trois activités : elles se cumulent en OU.
- Dans « Employés », renseignez le minimum et le maximum de votre tranche.
- Dans « Année de création », renseignez la borne « À » pour votre ancienneté minimale. « À » = 2022 garde les entreprises créées au plus tard le 31 décembre 2022.
- Laissez « Entreprises actives uniquement » activée : sans elle, le fichier contient des sociétés radiées.
- Lisez le compteur de résultats en haut de la liste. C'est le seul chiffre à regarder avant d'extraire quoi que ce soit, et il se recalcule à chaque changement de filtre.
- Retirez ensuite un filtre à la fois et regardez le compteur remonter. Vous saurez lequel de vos trois critères vous coûte le plus de lignes, ce qui est l'information utile pour arbitrer.
Deux effets de bord à connaître avant de conclure que votre marché est petit. Le filtre « Employés » écarte automatiquement les entreprises dont l'effectif est inconnu, or il n'est renseigné que pour environ une entreprise sur quinze : un compteur qui s'effondre en posant cette tranche dit que la donnée manque, pas que les entreprises n'existent pas (l'interface le signale d'ailleurs sous le champ). Et « Année de création » n'existe que dans le registre légal : la poser ramène la recherche à cette seule source, les fiches Google et LinkedIn ne portant aucune date de création.
Par l'API : POST /companies/find
{
"filters": {
"activity": { "include": ["naf:62.01Z", "naf:62.02A", "naf:70.22Z"] },
"headcount_min": 10,
"headcount_max": 49,
"creation_date_max": "2022",
"company_ceased": false
},
"countOnly": true
}`total`, le nombre de résultats. Il est le décompte dédupliqué exact tant qu'il reste sous 2 000 ; au-delà, c'est la somme brute des documents des sources retenues, avant déduplication, donc un majorant, et la réponse porte alors `totalEstimated: true` pour le dire. `leads` est vide, c'est normal en mode comptage. `meta.sources` dit quelles sources ont réellement participé, ce qui explique un total plus bas qu'attendu, et `meta.noticeCode` apparaît quand la résolution des sources n'allait pas de soi. `establishmentsTotal` vaut 0 ici : `creation_date_max` est un filtre du registre, il écarte la source Google, et le décompte des points de vente vient uniquement de celle-ci.
`countOnly: true` ne débite rien et n'est jamais plafonné. Sans lui, la recherche renvoie des fiches, plafonne le `total` à 100 000, et une clé d'API se voit débiter un crédit par fiche renvoyée. Comptez d'abord, puis relancez le même corps sans `countOnly`, avec un `limit` réglé sur ce que vous traiterez vraiment. Sur les valeurs d'activité : un identifiant de concept (celui que rend `/companies/activity-suggest`) se déplie dans les trois vocabulaires, alors qu'une valeur `naf:` ne s'adresse qu'au registre légal et laisse les deux autres sources sans correspondance. Ici la restriction au registre est de toute façon acquise par `creation_date_max`, donc les codes NAF sont le choix le plus lisible. Ils acceptent le joker de division (`"naf:62.x"` prend tous les codes commençant par 62.). `creation_date_max` accepte une année seule, comprise comme le 31 décembre de cette année à 23 h 59, ou une date ISO complète. La clé se passe en clair dans l'en-tête `Authorization`.
Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.
Avec Claude, en langage courant
J'ai repris mes vingt meilleurs clients : ce sont des sociétés d'édition de logiciels et de conseil informatique, entre 10 et 49 salariés, créées avant 2023. Combien y en a-t-il en France ? Ne m'extrais rien tant que je n'ai pas vu le chiffre.
Claude enchaîne basile_activity_suggest, basile_count puis basile_search_companies.
basile_activity_suggest sert à convertir « édition de logiciels » en identifiants d'activité utilisables, ce qui évite de deviner des codes NAF et couvre les trois sources d'un coup. basile_count est gratuit et non plafonné : c'est lui qui passe en premier. Son total est exact sous 2 000 résultats ; au-dessus, lisez-le comme un ordre de grandeur majorant, le fichier extrait en contiendra moins. basile_search_companies coûte un crédit par fiche renvoyée, à chaque appel et sans mémoire d'un appel à l'autre : ne le lancez qu'une fois le volume validé, et avec un petit `limit` si c'est pour contrôler un échantillon.
Découper un segment trop large en sous-segments, par département et par tranche d'effectif
Le découpage n'a d'intérêt que si chaque morceau reçoit son propre message. La bonne unité de travail n'est donc pas l'export unique mais une liste par sous-segment, nommée d'après ce qui la distingue, que vous exporterez au moment de l'envoi. Comptez chaque case avant de la constituer : une case qui rend trente lignes ne mérite pas son message, une qui en rend quatre mille n'est pas encore découpée.
Dans la plateforme, pas à pas
- Repartez de la recherche qui porte votre profil de client idéal.
- Dans « Localisation », renseignez un seul département.
- Dans « Employés », resserrez sur une seule tranche, par exemple 10 à 49.
- Lisez le compteur. Visez le volume que vous traitez réellement en une semaine, pas le volume disponible.
- Ouvrez « Sélectionner tous les résultats », puis « Ajouter à une liste », et créez une nouvelle liste nommée d'après la case : l'activité, le département, la tranche.
- Changez de département, gardez le reste, recommencez. Puis changez de tranche d'effectif et refaites le tour.
- Au moment d'envoyer, ouvrez la liste voulue depuis « Mes listes » et exportez-la.
L'ajout à une liste consomme des crédits, un par nouveau résultat, les enregistrements déjà présents étant ignorés et gratuits. L'export de la liste, lui, est ensuite gratuit et sans plafond : c'est ce qui rend le découpage en listes moins cher qu'une série d'exports directs, puisque vous payez une fois la constitution et jamais la réutilisation. Deux détails : filtrer sur le département ramène la recherche au seul registre légal, ce champ n'étant pas exploitable sur les fiches Google ni LinkedIn ; et après une mise à jour de la base, une liste affiche un compteur « X / Y synchronisés pour l'export » le temps que ses lignes soient repréparées, l'export complet n'étant disponible qu'une fois ce compteur rattrapé.
Par l'API : POST /lists/{listId}/items/by-filter
{
"filters": {
"activity": { "include": ["naf:62.01Z", "naf:62.02A"] },
"headquarters_department_code": { "include": ["69"] },
"headcount_min": 10,
"headcount_max": 49,
"company_ceased": false
},
"confirm": true
}Sans `confirm`, l'appel ne fait qu'un devis : il rend `needsConfirmation: true`, `total` et `wouldAdd` (le nombre trouvé, majorant de ce qui sera réellement ajouté puisque les doublons ne sont pas connus d'avance), `willAdd` (ce qui tient dans vos crédits restants), `remaining` et `monthlyLimit`. Rien n'est ajouté, rien n'est débité. Avec `confirm: true`, la réponse rend `added` (les nouveaux enregistrements insérés), `charged` (le même nombre, un crédit chacun), `itemCount` (la taille de la liste après l'ajout), `totalMatched`, plus `truncated` et `quotaReached` quand la marche s'est arrêtée avant la fin. Les doublons sont ignorés sans être facturés.
La liste se crée d'abord par `POST /lists` avec `{ "name": "Conseil IT 10-49 · Rhône", "type": "companies" }`, qui rend son identifiant. Une liste par sous-segment veut dire une création et un ajout par sous-segment, en ne changeant que `headquarters_department_code` et les deux bornes d'effectif. Deux bornes à connaître : la marche s'arrête à 50 pages, donc un ajout unique ne dépasse pas cet ordre de grandeur et rend `truncated: true` s'il reste des résultats, ce qui est sans conséquence sur des cases taillées pour une semaine de travail ; et un corps de filtres vide ou inopérant est refusé en clé d'API, pour qu'un `{}` distrait n'ajoute pas l'index entier à vos frais. Ne passez pas par la file d'attente d'ajout de la plateforme (`POST /lists/{listId}/add-jobs`) : le travail créé n'avance que tant que son flux de progression est ouvert, ce qui en fait un chemin d'interface, pas un chemin d'API. Ensuite, `GET /lists/{listId}/export/count` donne le nombre de lignes réellement exportables, et l'export se lance soit par `POST /lists/{listId}/export`, soit, pour les gros volumes, par `POST /exports` avec `{ "source": "list", "listId": "..." }`, qui construit le fichier en tâche de fond et le tient à disposition sur `GET /exports/{jobId}/download`.
Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.
Avec Claude, en langage courant
Ce segment fait plus de six mille lignes, c'est trop pour un seul message. Découpe-le par département sur le Rhône, l'Isère et la Loire, et dans chacun sépare les 10 à 49 salariés des 50 à 249. Donne-moi le compte de chaque case avant d'exporter quoi que ce soit.
Claude enchaîne basile_count puis basile_export.
Aucun outil du serveur MCP ne crée de liste ni n'y ajoute d'enregistrements : Claude rend un fichier par sous-segment, pas une liste enregistrée par sous-segment. Si vous tenez aux listes, faites le comptage avec Claude et la constitution sur la plateforme ou par l'API. Par ailleurs basile_export renvoie le CSV en clair dans la conversation, donc plafonné à 500 lignes : au-delà il refuse, sans rien débiter, et renvoie vers l'export de la plateforme. Ce plafond joue plutôt en votre faveur ici, un sous-segment taillé pour une semaine de travail le dépassant rarement.
Cibler par ancienneté, à la création récente ou à l'autre bout
Les deux extrémités ne se travaillent pas avec le même champ, et c'est ce qui fait rater l'opération. Les créations très récentes passent par une fenêtre relative en mois, qui suit le calendrier toute seule. Les entreprises installées de longue date passent par des bornes d'année. Poser les deux ensemble ne les combine pas : la fenêtre relative l'emporte et les bornes deviennent inertes.
Dans la plateforme, pas à pas
- Ouvrez la recherche sur l'onglet « Entreprises » et posez d'abord votre activité et votre zone, l'ancienneté seule n'étant pas un ciblage.
- Pour les créations récentes, servez-vous du champ « Créée récemment », dont la ligne de puces « Créée il y a moins de » propose 1, 3, 6 et 12 mois. Les bornes « De » et « À » d'« Année de création », juste au-dessus, se grisent aussitôt, avec la mention « Ignorée tant que « Créée récemment » est active ».
- Pour l'autre bout, laissez cette ligne de puces vide et renseignez « À » : « À » = 2005 garde les entreprises créées au plus tard le 31 décembre 2005.
- Pour une fenêtre intermédiaire, celle des un à trois ans par exemple, servez-vous des deux bornes ensemble : « De » = 2022 et « À » = 2024.
- Comparez les compteurs des deux bouts sur la même activité avant de choisir lequel vous travaillez.
La fenêtre « Créée il y a moins de » s'arrête aux mois entiers, elle ne glisse pas au jour près : début septembre, « 3 mois » couvre depuis le 1er juin, soit un peu plus de trois mois. Elle ne va pas au-delà de douze mois, donc au-delà d'un an il faut repasser par les bornes d'année. Enfin ces filtres relèvent du registre légal et ramènent la recherche à cette source : une fiche Google ou une page LinkedIn ne porte pas de date de création, et les entreprises connues uniquement par ces deux sources sortent donc du résultat.
Par l'API : POST /companies/find
{
"filters": {
"created_since_months": 3,
"activity": { "include": ["naf:56.10A"] },
"headquarters_department_code": { "include": ["33", "40", "64"] },
"company_ceased": false
},
"countOnly": true
}`total`, exact tant qu'il reste sous 2 000 résultats, au-delà un majorant signalé par `totalEstimated: true`. Sur une fenêtre de trois mois dans trois départements, vous serez le plus souvent dans la zone exacte. `establishmentsTotal` vaut 0 : la fenêtre de création et le département sont des filtres du registre, ils écartent la source Google, seule porteuse du décompte des points de vente. `meta.sources` le confirme en ne listant que `Legal`.
`created_since_months` n'accepte que 1, 3, 6 et 12, toute autre valeur partant en 400. Il l'emporte sur `creation_date_min` et `creation_date_max` : posés ensemble, ces deux derniers sont ignorés, le serveur le garantit indépendamment de ce que fait l'interface. Pour l'autre bout, retirez `created_since_months` et mettez `"creation_date_max": "2005"` ; pour une fenêtre, `"creation_date_min": "2022"` et `"creation_date_max": "2024"`. Ces deux bornes acceptent une année seule, comprise comme l'année entière, ou une date ISO complète du type `"2022-03-12"`. La borne relative se calcule sur le cluster, arrondie au premier jour du mois, elle ne dépend donc ni de votre fuseau ni du moment où la requête a été écrite : une recherche sauvegardée rejouée un mois plus tard suit le calendrier. Enfin, la valeur `naf:` employée ici ne s'adresse qu'au registre légal, ce qui est cohérent puisque la fenêtre de création y ramène déjà la recherche ; sur une recherche sans filtre du registre, préférez un identifiant de concept, qui couvre les trois sources.
Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.
Avec Claude, en langage courant
Combien de restaurants ont été créés ces trois derniers mois en Gironde, dans les Landes et dans les Pyrénées-Atlantiques ? Et par comparaison, combien y en a-t-il qui ont plus de vingt ans ? Donne-moi les deux chiffres avant d'extraire la première liste.
Claude enchaîne basile_activity_suggest, basile_count puis basile_search_companies.
Les deux questions sont deux comptages, tous les deux gratuits : c'est la manière la moins chère d'arbitrer entre les deux bouts. Précisez bien « ces trois derniers mois » d'un côté et « plus de vingt ans » de l'autre, pour que Claude emploie la fenêtre relative dans un cas et la borne d'année dans l'autre : posés dans la même requête, ces deux filtres ne se combinent pas, le premier neutralise le second. Sur le second chiffre, attendez-vous à un total au-delà de 2 000, donc à un majorant plutôt qu'à un décompte exact : c'est suffisant pour trancher entre les deux bouts, pas pour annoncer une taille de fichier.
À lire ensuite
- Fichier de prospection : le constituer ou l'acheterCe que contient un bon fichier de prospection, ce que coûte vraiment un fichier acheté, et comment reconnaître celui qui vous fera perdre votre temps.
- Le code NAF, le code APE, et pourquoi ils se trompent souventNAF et APE désignent la même chose : le code d'activité attribué par l'Insee. Ce qu'il contient, où le lire, et pourquoi il ne décrit pas toujours le vrai métier.
- La convention collective d'une entreprise : la trouver, et ce qu'elle révèleLa convention collective découle de l'activité réelle, pas du code NAF. Où lire l'IDCC d'une entreprise, et pourquoi c'est un excellent critère de segmentation.