ciblage — BYS Targeting Method on data.gouv
You guide the user through the complete Build Your Sales targeting methodology, augmented with real French company data from the data.gouv MCP and the public API Recherche d'entreprises.
Prerequisites
clients/<client>_<date>/client.yaml exists (created by /data-gouv-bys:setup)
- The data.gouv MCP is connected (run
setup first if not)
- Read
references/methodology-bys.md for the full reference of the CAB-P, ABM tiers, look-alike, and sweet spot principles
Flow
The flow has 4 steps, each producing a file in the client folder:
Step 1 — Discovery → discovery.md
Step 2 — CAB-P → cab-p.md
Step 3 — Recap → recap.md
Step 4 — 10 Ciblages → campaigns/C01.../ciblage.md (×10)
Step 1 — Discovery (mandatory)
Ask these questions ONE AT A TIME (never dump all 10 at once):
- URL du site web de votre boîte
- URL LinkedIn de la boîte
- Autres URLs utiles (Crunchbase, blog, case studies, landing)
- Décris ton offre en 2-3 phrases
- Qui sont tes clients actuels ? (secteurs, tailles, géographies)
- Quel est ton deal size moyen / ACV ?
- Tu as des case studies / témoignages clients utilisables ?
- Qui sont tes concurrents directs ?
- France uniquement ou plusieurs pays ? (data.gouv ne couvre que la France — si multi-pays, on traite la France ici et on bascule sur Lemlist People DB pour les autres via l'outbound engine)
- Y a-t-il des exclusions ? (clients existants, concurrents, secteurs interdits, tailles à exclure)
Automatic enrichment : après que l'utilisateur a répondu à la question 1, scrape le site et le LinkedIn en arrière-plan (via Firecrawl si dispo) pour combler les blancs des questions suivantes. Ne pas re-demander ce qu'on a déjà extrait.
Sauvegarde le résultat dans clients/<client>/discovery.md au format :
# Discovery — <Client>
## Q1 — Site web
<url>
## Q2 — LinkedIn
<url>
...
## Enrichissement automatique (sources)
- Site : <bullets de ce qu'on a trouvé>
- LinkedIn : <bullets>
Step 2 — CAB-P
Depuis la discovery, génère la matrice Caractéristiques / Avantages / Bénéfices / Douleurs :
| Offre |
Caractéristiques |
Avantages |
Bénéfices |
Douleurs visées |
| ... |
features concrètes |
différenciation vs concurrents |
impact business (ROI, temps, risque) |
ce qui empêche le prospect de dormir |
Présente la matrice et demande validation explicite :
"Voilà la matrice CAB-P. Les douleurs sont-elles bien formulées du point de vue du prospect (pas du vendeur) ? Il manque des bénéfices ?"
N'AVANCE PAS aux ciblages sans validation utilisateur.
Sauvegarde dans cab-p.md.
Step 3 — Recap
Génère un résumé court (5-10 lignes) qui combine discovery + CAB-P. Sauvegarde dans recap.md. Ce fichier sera utilisé par le handoff vers l'outbound engine.
Step 4 — 10 Ciblages (cœur de la méthode)
Propose jusqu'à 10 micro-campagnes en combinant :
- Signal :
funding, hiring, growth, newleader, techchange, lookalike, expansion, compliance, seasonal, pain-trigger
- Persona : titre + seniority (ATL = VP/C-level, BTL = manager/IC)
- Geo :
fr-national, fr-idf, fr-aura, fr-paca, fr-occitanie, fr-grand-est, etc.
- Tier ABM : T1 (<50 leads, 1:1), T2 (50-150, segmenté), T3 (150+, templates)
Pour chaque ciblage :
Convertir l'ICP en filtres data.gouv :
- Section / NAF code(s) →
activite_principale=62.01Z,62.02A ou section_activite_principale=J
- Tranche d'effectif →
tranche_effectif_salarie=12,21,22 (10-49 salariés). Voir references/tranches-effectif.md
- Département / région →
departement=75,92,93,94,77,78,91,95 (Île-de-France) ou region=11
- Catégorie →
categorie_entreprise=PME,ETI
- CA min/max si pertinent →
ca_min=1000000&ca_max=20000000
- État administratif → toujours
etat_administratif=A (entreprises actives)
- Filtres BYS spécifiques :
est_qualiopi=true (orgs de formation), est_rge=true (BTP éco), est_ess=true (économie sociale), est_organisme_formation=true
Pré-tester le ciblage via l'API :
curl -s "https://recherche-entreprises.api.gouv.fr/search?activite_principale=62.01Z&departement=75,92,93,94&tranche_effectif_salarie=21,22&per_page=1" -H "User-Agent: data-gouv-bys/0.1" | jq '.total_results'
- Si
total_results < 30 → cible trop étroite, propose d'élargir (autre NAF voisin, région voisine, tranche d'effectif élargie)
- Si
total_results > 2000 → cible trop large, propose de resserrer (CA min, signal, sous-secteur)
- Sweet spot : 50 à 500 entreprises matchant les critères, dont on tirera 30-50 leads après filtrage humain/look-alike
Créer le dossier campagne :
clients/<client>/campaigns/C{01-10}_<signal>_<persona>_<geo>/
├── campaign.yaml
└── ciblage.md
Générer campaign.yaml :
campaign:
code: C01
signal: funding
persona: vp-sales
geo: fr-national
tier: 1
language: fr
tone: "post-funding, scale-up, direct"
custom_rules:
- "Référence à la levée < 3 mois"
- "Pas de mention des concurrents génériques outbound"
banned_words:
- "synergie"
- "disruption"
data_gouv_filters:
activite_principale: ["62.01Z", "62.02A"]
tranche_effectif_salarie: ["21", "22", "31"]
departement: null
categorie_entreprise: ["PME", "ETI"]
etat_administratif: "A"
status: draft
Générer ciblage.md au format complet :
# C01 — Funding / VP Sales / France
- Date: 2026-05-21
- Tier: 1
- Persona: VP Sales, Head of Sales, CRO
- Seniority: ATL (VP/C-Level)
- Industry (NAF): 62.01Z (édition de logiciels), 62.02A (conseil SI)
- Section NAF: J — Information et communication
- Size: 50-249 salariés (tranches 21, 22, 31)
- Geo: France entière (multi-départements)
- Language: Français
- Signal: Levée de fonds < 3 mois (signal externe — Crunchbase / Maddyness)
- Pain (CAB-P): Scaler l'outbound sans recruter de SDR
- Angle: Post-funding, besoin de pipeline rapide sans grossir l'équipe
- Hook type: Lite (T1 mais volume max 50)
- Estimated TAM (data.gouv): <X> entreprises matchant les critères
- Filtres API:
- activite_principale: 62.01Z, 62.02A
- tranche_effectif_salarie: 21, 22, 31
- categorie_entreprise: PME, ETI
- etat_administratif: A
- Look-alike: oui — basé sur les 5 meilleurs clients de l'utilisateur
Présenter les 10 ciblages d'un coup au user pour validation finale :
"Voilà les 10 ciblages générés, chacun avec son TAM estimé via l'API. Tu valides, tu en supprimes / fusionnes, ou tu en ajoutes ?"
Sweet Spot Rule (BYS)
| Niveau |
Précision |
Verdict |
| 1 |
Section NAF seule |
Trop vague |
| 2 |
+ Tranche effectif |
Insuffisant |
| 3 |
+ NAF précis + département |
Sweet spot |
| 4 |
+ Signal (levée, hire, croissance) |
Idéal |
| 5 |
+ Hiring spécifique récent |
T1 uniquement |
Ne génère jamais un ciblage de niveau 1 ou 2. Au minimum niveau 3.
ABM Tiers (recap)
| Tier |
Définition |
Leads |
Personnalisation |
| 1 |
Forte douleur + forte relevance |
< 50 |
1:1, strong hooks |
| 2 |
Douleur modérée + signaux |
50-150 |
Segmenté, lite hooks |
| 3 |
Profil match, signal faible |
150+ |
Templates auto |
Diversifie les 10 ciblages : idéalement 2-3 T1, 4-5 T2, 2-3 T3.
Look-alike
Si l'utilisateur a fourni des clients existants en discovery (Q5) :
- Extraire les SIREN/SIRET des 5 meilleurs clients via
/search?q=<nom_client>
- Récupérer leurs caractéristiques (NAF, tranche d'effectif, département, CA)
- Construire au moins 1 ciblage "lookalike" avec ces critères médians
Rules
- ONE question at a time in Discovery
- NEVER move to ciblages without explicit CAB-P validation
- NEVER create a ciblage at sweet spot level < 3
- NEVER invent NAF codes — refer to
references/naf-codes.md
- 30-50 leads per campaign max — micro-campaigns only
- 1-2 contacts per company max — no spray
- Rate-limit API calls: max 7 req/s, batch and add
User-Agent: data-gouv-bys/0.1
- Default language = French (BYS audience)
Next step
Une fois les 10 ciblages validés :
"Lance /data-gouv-bys:market-size pour chiffrer le TAM/SAM/SOM de ton ICP global, puis /data-gouv-bys:handoff-outbound pour pousser tout ça vers l'Outbound Engine."
1---2name: ciblage3description: Run the full BYS targeting methodology on the French market — Discovery (10 questions), CAB-P matrix, 10 ciblages (signal × persona × geo) backed by real French companies fetched via the data.gouv MCP and the API Recherche d'entreprises. Use after /data-gouv-bys:setup to produce the strategic brief and lead lists.4---56# ciblage — BYS Targeting Method on data.gouv78You guide the user through the complete Build Your Sales targeting methodology, augmented with **real French company data** from the data.gouv MCP and the public API Recherche d'entreprises.910## Prerequisites1112- `clients/<client>_<date>/client.yaml` exists (created by `/data-gouv-bys:setup`)13- The data.gouv MCP is connected (run `setup` first if not)14- Read `references/methodology-bys.md` for the full reference of the CAB-P, ABM tiers, look-alike, and sweet spot principles1516## Flow1718The flow has **4 steps**, each producing a file in the client folder:1920```21Step 1 — Discovery → discovery.md22Step 2 — CAB-P → cab-p.md23Step 3 — Recap → recap.md24Step 4 — 10 Ciblages → campaigns/C01.../ciblage.md (×10)25```2627### Step 1 — Discovery (mandatory)2829Ask these questions **ONE AT A TIME** (never dump all 10 at once):30311. URL du site web de votre boîte322. URL LinkedIn de la boîte333. Autres URLs utiles (Crunchbase, blog, case studies, landing)344. Décris ton offre en 2-3 phrases355. Qui sont tes clients actuels ? (secteurs, tailles, géographies)366. Quel est ton deal size moyen / ACV ?377. Tu as des case studies / témoignages clients utilisables ?388. Qui sont tes concurrents directs ?399. **France uniquement ou plusieurs pays ?** (data.gouv ne couvre que la France — si multi-pays, on traite la France ici et on bascule sur Lemlist People DB pour les autres via l'outbound engine)4010. Y a-t-il des exclusions ? (clients existants, concurrents, secteurs interdits, tailles à exclure)4142**Automatic enrichment** : après que l'utilisateur a répondu à la question 1, scrape le site et le LinkedIn en arrière-plan (via Firecrawl si dispo) pour combler les blancs des questions suivantes. Ne pas re-demander ce qu'on a déjà extrait.4344Sauvegarde le résultat dans `clients/<client>/discovery.md` au format :4546```markdown47# Discovery — <Client>4849## Q1 — Site web50<url>5152## Q2 — LinkedIn53<url>5455...5657## Enrichissement automatique (sources)58- Site : <bullets de ce qu'on a trouvé>59- LinkedIn : <bullets>60```6162### Step 2 — CAB-P6364Depuis la discovery, génère la matrice **Caractéristiques / Avantages / Bénéfices / Douleurs** :6566| Offre | Caractéristiques | Avantages | Bénéfices | Douleurs visées |67|---|---|---|---|---|68| ... | features concrètes | différenciation vs concurrents | impact business (ROI, temps, risque) | ce qui empêche le prospect de dormir |6970Présente la matrice et **demande validation explicite** :71> "Voilà la matrice CAB-P. Les douleurs sont-elles bien formulées du point de vue du prospect (pas du vendeur) ? Il manque des bénéfices ?"7273**N'AVANCE PAS aux ciblages sans validation utilisateur.**7475Sauvegarde dans `cab-p.md`.7677### Step 3 — Recap7879Génère un résumé court (5-10 lignes) qui combine discovery + CAB-P. Sauvegarde dans `recap.md`. Ce fichier sera utilisé par le handoff vers l'outbound engine.8081### Step 4 — 10 Ciblages (cœur de la méthode)8283Propose **jusqu'à 10 micro-campagnes** en combinant :8485- **Signal** : `funding`, `hiring`, `growth`, `newleader`, `techchange`, `lookalike`, `expansion`, `compliance`, `seasonal`, `pain-trigger`86- **Persona** : titre + seniority (ATL = VP/C-level, BTL = manager/IC)87- **Geo** : `fr-national`, `fr-idf`, `fr-aura`, `fr-paca`, `fr-occitanie`, `fr-grand-est`, etc.88- **Tier ABM** : T1 (<50 leads, 1:1), T2 (50-150, segmenté), T3 (150+, templates)8990#### Pour chaque ciblage :91921. **Convertir l'ICP en filtres data.gouv** :93 - Section / NAF code(s) → `activite_principale=62.01Z,62.02A` ou `section_activite_principale=J`94 - Tranche d'effectif → `tranche_effectif_salarie=12,21,22` (10-49 salariés). Voir `references/tranches-effectif.md`95 - Département / région → `departement=75,92,93,94,77,78,91,95` (Île-de-France) ou `region=11`96 - Catégorie → `categorie_entreprise=PME,ETI`97 - CA min/max si pertinent → `ca_min=1000000&ca_max=20000000`98 - État administratif → toujours `etat_administratif=A` (entreprises actives)99 - Filtres BYS spécifiques : `est_qualiopi=true` (orgs de formation), `est_rge=true` (BTP éco), `est_ess=true` (économie sociale), `est_organisme_formation=true`1001012. **Pré-tester le ciblage via l'API** :102 ```bash103 curl -s "https://recherche-entreprises.api.gouv.fr/search?activite_principale=62.01Z&departement=75,92,93,94&tranche_effectif_salarie=21,22&per_page=1" -H "User-Agent: data-gouv-bys/0.1" | jq '.total_results'104 ```105 - Si `total_results < 30` → cible trop étroite, propose d'élargir (autre NAF voisin, région voisine, tranche d'effectif élargie)106 - Si `total_results > 2000` → cible trop large, propose de resserrer (CA min, signal, sous-secteur)107 - **Sweet spot** : 50 à 500 entreprises matchant les critères, dont on tirera 30-50 leads après filtrage humain/look-alike1081093. **Créer le dossier campagne** :110 ```111 clients/<client>/campaigns/C{01-10}_<signal>_<persona>_<geo>/112 ├── campaign.yaml113 └── ciblage.md114 ```1151164. **Générer `campaign.yaml`** :117 ```yaml118 campaign:119 code: C01120 signal: funding121 persona: vp-sales122 geo: fr-national123 tier: 1124 language: fr125 tone: "post-funding, scale-up, direct"126 custom_rules:127 - "Référence à la levée < 3 mois"128 - "Pas de mention des concurrents génériques outbound"129 banned_words:130 - "synergie"131 - "disruption"132 data_gouv_filters:133 activite_principale: ["62.01Z", "62.02A"]134 tranche_effectif_salarie: ["21", "22", "31"]135 departement: null136 categorie_entreprise: ["PME", "ETI"]137 etat_administratif: "A"138 status: draft139 ```1401415. **Générer `ciblage.md`** au format complet :142 ```markdown143 # C01 — Funding / VP Sales / France144145 - Date: 2026-05-21146 - Tier: 1147 - Persona: VP Sales, Head of Sales, CRO148 - Seniority: ATL (VP/C-Level)149 - Industry (NAF): 62.01Z (édition de logiciels), 62.02A (conseil SI)150 - Section NAF: J — Information et communication151 - Size: 50-249 salariés (tranches 21, 22, 31)152 - Geo: France entière (multi-départements)153 - Language: Français154 - Signal: Levée de fonds < 3 mois (signal externe — Crunchbase / Maddyness)155 - Pain (CAB-P): Scaler l'outbound sans recruter de SDR156 - Angle: Post-funding, besoin de pipeline rapide sans grossir l'équipe157 - Hook type: Lite (T1 mais volume max 50)158 - Estimated TAM (data.gouv): <X> entreprises matchant les critères159 - Filtres API:160 - activite_principale: 62.01Z, 62.02A161 - tranche_effectif_salarie: 21, 22, 31162 - categorie_entreprise: PME, ETI163 - etat_administratif: A164 - Look-alike: oui — basé sur les 5 meilleurs clients de l'utilisateur165 ```1661676. **Présenter les 10 ciblages d'un coup** au user pour validation finale :168 > "Voilà les 10 ciblages générés, chacun avec son TAM estimé via l'API. Tu valides, tu en supprimes / fusionnes, ou tu en ajoutes ?"169170## Sweet Spot Rule (BYS)171172| Niveau | Précision | Verdict |173|---|---|---|174| 1 | Section NAF seule | Trop vague |175| 2 | + Tranche effectif | Insuffisant |176| 3 | + NAF précis + département | **Sweet spot** |177| 4 | + Signal (levée, hire, croissance) | **Idéal** |178| 5 | + Hiring spécifique récent | T1 uniquement |179180**Ne génère jamais un ciblage de niveau 1 ou 2.** Au minimum niveau 3.181182## ABM Tiers (recap)183184| Tier | Définition | Leads | Personnalisation |185|---|---|---|---|186| 1 | Forte douleur + forte relevance | < 50 | 1:1, strong hooks |187| 2 | Douleur modérée + signaux | 50-150 | Segmenté, lite hooks |188| 3 | Profil match, signal faible | 150+ | Templates auto |189190Diversifie les 10 ciblages : idéalement 2-3 T1, 4-5 T2, 2-3 T3.191192## Look-alike193194Si l'utilisateur a fourni des clients existants en discovery (Q5) :195- Extraire les SIREN/SIRET des 5 meilleurs clients via `/search?q=<nom_client>`196- Récupérer leurs caractéristiques (NAF, tranche d'effectif, département, CA)197- Construire **au moins 1 ciblage "lookalike"** avec ces critères médians198199## Rules200201- **ONE question at a time** in Discovery202- **NEVER** move to ciblages without explicit CAB-P validation203- **NEVER** create a ciblage at sweet spot level < 3204- **NEVER** invent NAF codes — refer to `references/naf-codes.md`205- **30-50 leads per campaign max** — micro-campaigns only206- **1-2 contacts per company max** — no spray207- Rate-limit API calls: max 7 req/s, batch and add `User-Agent: data-gouv-bys/0.1`208- Default language = French (BYS audience)209210## Next step211212Une fois les 10 ciblages validés :213> "Lance `/data-gouv-bys:market-size` pour chiffrer le TAM/SAM/SOM de ton ICP global, puis `/data-gouv-bys:handoff-outbound` pour pousser tout ça vers l'Outbound Engine."