company-research

Skill de découverte d'entreprises et de recherche approfondie. Analyse le produit d'une entreprise et son ICP, découvre des entreprises cibles à démarcher via l'API Browserbase Search, effectue une recherche poussée sur chacune selon un pattern Plan→Research→Synthesize, et évalue leur adéquation à l'ICP — le tout compilé dans un rapport de recherche scoré et un CSV. Prend en charge des modes de profondeur (quick/deep/deeper) pour équilibrer volume et niveau d'analyse. À utiliser lorsque l'utilisateur souhaite : (1) trouver des entreprises à démarcher, (2) rechercher des clients potentiels, (3) découvrir des entreprises correspondant à un ICP, (4) constituer une liste d'entreprises cibles, (5) effectuer une étude de marché sur des prospects. Déclencheurs : "find companies to sell to", "company research", "find prospects", "ICP research", "target companies", "who should we sell to", "market research", "lead research", "prospect list".

npx skills add https://github.com/browserbase/skills --skill company-research

Recherche d'entreprises

Découvrir et approfondir la recherche sur des entreprises pour les vendre. Utilise l'API Browserbase Search pour la découverte et un motif Plan→Recherche→Synthèse pour l'enrichissement approfondi — générant un rapport de recherche noté et un CSV.

Requis : variable d'environnement BROWSERBASE_API_KEY et CLI bb installé.

Configuration première exécution : À la première exécution, vous serez invité à approuver bb fetch, bb search, cat, mkdir, sed, etc. Sélectionnez "Yes, and don't ask again for: bb fetch:*" (ou équivalent) pour chacun afin d'approuver automatiquement pour la session. Pour approuver définitivement, ajoutez ceux-ci à votre ~/.claude/settings.json sous permissions.allow :

"Bash(bb:*)", "Bash(bunx:*)", "Bash(bun:*)", "Bash(node:*)",
"Bash(cat:*)", "Bash(mkdir:*)", "Bash(sed:*)", "Bash(head:*)", "Bash(tr:*)", "Bash(rm:*)"

Règles de chemin : Toujours utiliser le chemin littéral complet dans toutes les commandes Bash — JAMAIS ~ ou $HOME (tous deux déclenchent des invites d'approbation « syntaxe d'expansion shell »). Résoudre le répertoire personnel une fois et l'utiliser partout. Lors de la construction de prompts de sous-agents, remplacer {SKILL_DIR} par le chemin littéral complet.

Répertoire de sortie : Toutes les sorties de recherche vont à ~/Desktop/{company_slug}_research_{YYYY-MM-DD}/. Ce répertoire contient un fichier .md par entreprise recherchée plus un .csv final. L'utilisateur obtient à la fois le tableur noté et les fichiers de recherche complets sur son Bureau.

CRITIQUE — Restrictions d'outils (s'applique à l'agent principal ET à tous les sous-agents) :

  • Toutes les recherches web : utiliser bb search. JAMAIS WebSearch.
  • Toute extraction de contenu de page : utiliser node {SKILL_DIR}/scripts/extract_page.mjs "<url>". Ce script récupère via bb fetch, analyse le titre + balises meta + texte du corps visible, et bascule automatiquement vers bb browse quand la page est rendue en JS ou dépasse 1 Mo. JAMAIS créer manuellement un pipeline bb fetch | sed — il supprime silencieusement les balises meta et ne gère pas l'enveloppe JSON. JAMAIS utiliser WebFetch.
  • Toute sortie de recherche : les sous-agents écrivent un fichier markdown par entreprise vers {OUTPUT_DIR}/{company-slug}.md en utilisant bash heredoc. JAMAIS utiliser l'outil Write ou python3 -c. Voir references/example-research.md pour le format de fichier.
  • Compilation rapport + CSV : utiliser node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --open — génère un rapport HTML et CSV en une étape, ouvre l'aperçu dans le navigateur.
  • Déduplications d'URL : utiliser node {SKILL_DIR}/scripts/list_urls.mjs /tmp après la découverte.
  • Les sous-agents ne doivent utiliser QUE l'outil Bash. Aucun autre outil autorisé.
  • L'agent principal NE LIT JAMAIS les fichiers JSON de lot de découverte bruts. Utiliser list_urls.mjs pour la déduplications.

CRITIQUE — Règles anti-hallucination (s'applique à l'agent principal ET à tous les sous-agents) :

  • JAMAIS déduire product_description, industry, ou target_audience à partir des polices d'un site, du framework (Framer/Next.js/React), du système de conception ou de la typographie. Ce sont des cosmétiques et ne disent rien sur ce que l'entreprise vend.
  • JAMAIS laisser l'ICP de l'utilisateur fuir dans la description d'une cible. Si vous ne savez pas ce que fait la cible, écrivez Unknown — ne les mettez pas en pattern-matching sur l'ICP.
  • product_description DOIT citer ou paraphraser une phrase spécifique de la sortie extract_page.mjs (TITLE, META_DESCRIPTION, OG_DESCRIPTION, HEADINGS, ou BODY). Si aucun de ces champs ne donne une déclaration de produit reconnaissable, écrivez Unknown — homepage content not accessible.
  • Si product_description est Unknown, plafonner icp_fit_score à 3 et définir icp_fit_reasoning à Insufficient evidence — homepage returned no readable content.

CRITIQUE — Minimiser les invites de permission :

  • Les sous-agents DOIVENT regrouper TOUS les écritures de fichiers en UN SEUL appel Bash utilisant des heredocs chaînés. Un appel Bash = une invite de permission.
  • Regrouper TOUTES les recherches et TOUTES les récupérations en appels Bash uniques utilisant le chaînage &&.

Aperçu du pipeline

Suivre ces 5 étapes dans l'ordre. Ne pas sauter les étapes ou les réordonner.

  1. Recherche d'entreprise — Comprendre profondément l'entreprise, le produit et à qui ils vendent de l'utilisateur
  2. Sélection du mode de profondeur — Choisir la profondeur de recherche en fonction du nombre de cibles désirées
  3. Découverte — Trouver les entreprises cibles en utilisant des requêtes de recherche variées
  4. Recherche approfondie et notation — Rechercher chaque entreprise, noter l'ajustement ICP
  5. Rapport et CSV — Présenter les résultats, compiler le CSV noté

Étape 0 : Configuration du répertoire de sortie

Avant de commencer, créer le répertoire de sortie sur le Bureau de l'utilisateur :

OUTPUT_DIR=~/Desktop/{company_slug}_research_{YYYY-MM-DD}
mkdir -p "$OUTPUT_DIR"

Remplacer {company_slug} par le nom de l'entreprise de l'utilisateur (minuscules, avec traits d'union) et {YYYY-MM-DD} par la date d'aujourd'hui. Passer {OUTPUT_DIR} (comme chemin littéral complet, pas avec ~) à tous les prompts de sous-agents afin qu'ils écrivent les fichiers de recherche là-bas.

Aussi nettoyer les fichiers de lot de découverte des exécutions antérieures :

rm -f /tmp/company_discovery_batch_*.json

Étape 1 : Recherche approfondie d'entreprise

C'est l'étape la plus importante. La qualité de tout ce qui suit dépend de la compréhension approfondie de l'entreprise de l'utilisateur.

  1. Demander à l'utilisateur le nom ou l'URL de son entreprise

  2. Vérifier un profil existant :

    • Lister les fichiers dans {SKILL_DIR}/profiles/ (ignorer example.json)
    • Si un profil correspondant existe → le charger, présenter à l'utilisateur : « J'ai votre profil du {researched_at}. Toujours exact ? » Si oui → passer à l'étape 2.
    • Si aucun profil n'existe → procéder à la recherche approfondie ci-dessous.
  3. Exécuter une recherche approfondie complète sur l'entreprise de l'utilisateur en utilisant le motif Plan→Recherche→Synthèse. Voir references/research-patterns.md pour les modèles de sous-questions et la méthodologie de recherche.

    Étapes de recherche clés :

    • Recherche : bb search "{company name}" --num-results 10
    • Récupérer la page d'accueil : node {SKILL_DIR}/scripts/extract_page.mjs "{company website}"
    • Découvrir les pages du site via sitemap (NE PAS coder en dur les chemins comme /about ou /customers) :
      1. bb fetch --allow-redirects "{company website}/sitemap.xml" — sitemap est petit, bb fetch brut est acceptable
      2. Analyser pour les URLs avec mots-clés : customer, case-stud, pricing, about, use-case, industry, solution
      3. Optionnellement aussi récupérer /llms.txt pour les descriptions de pages
      4. Choisir 3-5 URLs les plus pertinentes et extraire avec extract_page.mjs (PAS bb fetch brut)
    • Rechercher le contexte externe et les concurrents
    • Accumuler les résultats avec niveaux de confiance

    Synthétiser en un profil : Entreprise, Produit, Clients existants, Concurrents, Cas d'usage. NE PAS inclure ICP ou sous-verticales — ce sont des décisions par exécution.

  4. Présenter le profil à l'utilisateur pour confirmation. Ne pas procéder sans confirmation.

  5. Enregistrer le profil confirmé vers {SKILL_DIR}/profiles/{company-slug}.json

  6. Poser des questions de clarification en utilisant AskUserQuestion avec cases à cocher :

    • « Quels segments ciblez-vous ? » avec options dérivées de la recherche d'entreprise
    • « Stade de l'entreprise ? » — Startups, Mid-market, Enterprise, All
    • « Combien d'entreprises / profondeur ? » — Quick (~100), Deep (~50), Deeper (~25)
    • C'est la SEULE interaction utilisateur. Après cela, exécuter silencieusement jusqu'à ce que les résultats soient prêts.

Étape 2 : Sélection du mode de profondeur

Mode Recherche par entreprise Meilleur pour
quick Page d'accueil + 1-2 recherches ~100 entreprises, exploration large
deep 2-3 sous-questions, 5-8 appels d'outils ~50 entreprises, recherche solide
deeper 4-5 sous-questions, 10-15 appels d'outils ~25 entreprises, intelligence complète

Étape 3 : Découverte

Formule : ceil(requested_companies / 35) requêtes de recherche nécessaires. Sur-découvrir d'environ 2-3x car le filtrage élimine généralement 50-70 %.

Générer des requêtes de recherche avec ces motifs :

  • Industrie + stade de l'entreprise + géographie (« startups fintech série A Bay Area »)
  • Pile technologique + cas d'usage (« entreprises utilisant Selenium pour web scraping »)
  • Adjacence aux concurrents (« alternatives à {entreprise connue dans ICP} »)
  • Persona d'acheteur + point douleur (« équipes d'ingénierie en difficulté avec l'automatisation du navigateur »)

Processus :

  1. Lancer TOUS les sous-agents de découverte à la fois (jusqu'à ~6 par message). Chacun exécute ses requêtes en UN SEUL appel Bash :
    bb search "{query}" --num-results 25 --output /tmp/company_discovery_batch_{N}.json
  2. Une fois toutes les vagues terminées, dédupliquer : node {SKILL_DIR}/scripts/list_urls.mjs /tmp
  3. Filtrer la liste d'URL — supprimer :
    • Articles de blog, articles d'actualités (globenewswire.com, techcrunch.com, etc.)
    • Répertoires/agrégateurs (tracxn.com, crunchbase.com, g2.com)
    • Les propres concurrents de l'utilisateur et clients existants (du profil)
    • Conserver uniquement les pages d'accueil d'entreprises.

Voir references/workflow.md pour les modèles de prompt de sous-agents et la gestion des vagues.

Étape 4 : Recherche approfondie et notation

Lancer les sous-agents pour rechercher les entreprises en parallèle. Voir references/workflow.md pour le modèle de prompt de sous-agent d'enrichissement. Voir references/research-patterns.md pour la méthodologie de recherche complète.

Processus :

  1. Diviser les URLs filtrées en groupes par sous-agent (quick : ~10, deep : ~5, deeper : ~2-3)

  2. Lancer TOUS les sous-agents d'enrichissement à la fois (jusqu'à ~6 par message)

  3. Chaque sous-agent utilise UNIQUEMENT Bash — pour chaque entreprise :

    Phase A — Plan (passer en mode quick) : Décomposer en 2-5 sous-questions basées sur ICP et champs d'enrichissement.

    Phase B — Boucle de recherche : Rechercher et récupérer des pages, extraire les résultats. Respecter le budget d'étapes (quick : 2-3, deep : 5-8, deeper : 10-15).

    Phase C — Synthèse : Noter l'ajustement ICP 1-10 avec preuves. Remplir les champs d'enrichissement à partir des résultats.

  4. Les sous-agents écrivent TOUS les fichiers markdown en UN SEUL appel Bash utilisant des heredocs chaînés vers {OUTPUT_DIR}/

  5. Une fois que TOUS les sous-agents sont terminés, procéder à l'étape 5

Critique : Inclure la description ICP confirmée verbatim dans chaque prompt de sous-agent. Passer le chemin littéral complet {OUTPUT_DIR} à chaque sous-agent.

Étape 5 : Rapport et CSV

  1. Générer un rapport HTML + CSV (ouvre l'aperçu dans le navigateur automatiquement) :

    node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --open

    Ceci génère :

    • {OUTPUT_DIR}/index.html — page d'aperçu avec tableau noté (s'ouvre dans le navigateur)
    • {OUTPUT_DIR}/companies/*.html — pages individuelles d'entreprises (liées depuis l'aperçu)
    • {OUTPUT_DIR}/results.csv — tableur noté pour l'import dans des feuilles/CRM
  2. Présenter également un résumé en chat :

## Recherche d'entreprise terminée

- **Nombre total d'entreprises recherchées** : {count}
- **Mode de profondeur** : {mode}
- **Distribution des notes** :
  - Ajustement fort (8-10) : {count}
  - Ajustement partiel (5-7) : {count}
  - Ajustement faible (1-4) : {count}
- **Rapport ouvert dans le navigateur** : ~/Desktop/{company_slug}_research_{date}/index.html
  1. Afficher les meilleures entreprises triées par note ICP dans un tableau :
| Entreprise | Note | Produit | Industrie | Justification de l'ajustement |
|-----------|------|---------|----------|------------------------------|
| Acme | 9 | Gestion d'inventaire IA | E-commerce SaaS | Série A, utilise Selenium, expansion en EU |
  1. Pour les 3-5 meilleures entreprises, afficher un bref résumé de recherche — résultats clés, pourquoi c'est un bon ajustement, et quel angle spécifique utiliser pour les approcher.

Proposer d'approfondir la recherche sur des entreprises spécifiques, ajuster les critères de notation, ou relancer la découverte avec des requêtes différentes.

Skills similaires