company-research
browserbase/skills
Выявляет и анализирует компании, соответствующие профилю идеального клиента, с помощью API-интерфейса Browserbase Search и схемы «Планирование → Исследование → Обобщение», что позволяет формировать отчеты с оценками и экспортировать данные в формате CSV.
...Расширить всеИсследование компаний
Поиск и углубленное исследование компаний, которым можно продавать продукцию. Использует Browserbase Search API для поиска и схему «План → Исследование → Синтез» для углубленного обогащения данных — с выводом оценочного отчета по результатам исследования и файла CSV.
Требуется: BROWSERBASE_API_KEY переменная среды и browse установленная CLI.
Настройка при первом запуске: при первом запуске вам будет предложено подтвердить browse cloud fetch, browse cloud search, cat, mkdir, sedи т. д. Выберите «Да, и больше не спрашивать: browse cloud fetch:*» (или эквивалент) для каждого из них, чтобы автоматически разрешить доступ на время сеанса. Для постоянного разрешения добавьте их в файл ~/.claude/settings.json в разделе permissions.allow:
"Bash(browse:*)", "Bash(bunx:*)", "Bash(bun:*)", "Bash(node:*)",
"Bash(cat:*)", "Bash(mkdir:*)", "Bash(sed:*)", "Bash(head:*)", "Bash(tr:*)", "Bash(rm:*)"
правила пути: во всех командах Bash всегда используйте полный буквальный путь — НЕ ~ или $HOME (оба варианта вызывают запросы на подтверждение по «синтаксису расширения оболочки»). Определите домашний каталог один раз и используйте его везде. При построении подпроектов подзапросов замените {SKILL_DIR} полным буквальным путем.
Каталог вывода: все результаты исследований сохраняются в ~/Desktop/{company_slug}_research_{YYYY-MM-DD}/. Этот каталог содержит по одному .md файл на каждую исследуемую компанию плюс итоговый .csv. Пользователь получает на рабочий стол как таблицу с оценками, так и полные файлы исследования.
ВАЖНО — Ограничения инструмента (применимы к главному агенту И всем подчиненным агентам):
- При всех поисках в Интернете: используйте
browse cloud search. НИКОГДА не используйте WebSearch. - Извлечение всего содержимого страниц: используйте
node {SKILL_DIR}/scripts/extract_page.mjs ". Этот скрипт извлекает данные с помощью" browse cloud fetch --output, анализирует заголовок, мета-теги и видимый текст тела страницы, а также автоматически переключается наbrowse get markdown, если извлечение не удаётся или возвращает скудное содержимое, отображаемое с помощью JS. НИКОГДА не создавайтеbrowse cloud fetch | sedконвейер — он удаляет мета-теги и не анализирует JSON-оболочку stdout. НИКОГДА не используйте WebFetch. - Все результаты исследования: субагенты создают по одному файлу в формате Markdown на каждую компанию,
{OUTPUT_DIR}/{company-slug}.mdс помощью bash heredoc. НИКОГДА не используйте инструмент Write илиpython3 -c. См.references/example-research.mdформат файла. - Составление отчёта и CSV-файла: используйте
node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --open— генерирует HTML-отчёт и CSV за один шаг, открывает обзор в браузере. - Удаление дубликатов URL: используйте
node {SKILL_DIR}/scripts/list_urls.mjs /tmpпосле обнаружения. - Подагенты должны использовать ТОЛЬКО инструмент Bash. Использование других инструментов запрещено.
- Главный агент НИКОГДА не считывает исходные пакетные файлы JSON обнаружения. Используйте
list_urls.mjsдля дедупликации.
КРИТИЧЕСКИ ВАЖНО — Правила против «галлюцинаций» (применимы к главному агенту И ко всем субагентам):
- НИКОГДА не делайте выводов
product_description,industryилиtarget_audienceна основе шрифтов сайта, фреймворка (Framer/Next.js/React), системы дизайна или типографики. Эти элементы носят чисто косметический характер и ничего не говорят о том, что продает компания. - НИКОГДА не допускайте, чтобы собственный ICP пользователя просачивался в описание целевой компании. Если вы не знаете, чем занимается целевая компания, напишите
Unknown— не сопоставляйте целевую аудиторию с вашим ICP. product_descriptionОБЯЗАТЕЛЬНО цитируйте или перефразируйте конкретную фразу изextract_page.mjsвывода (TITLE, META_DESCRIPTION, OG_DESCRIPTION, HEADINGS или BODY). Если ни одно из этих полей не содержит узнаваемого описания продукта, напишитеUnknown — homepage content not accessible.- Если
product_descriptionявляетсяUnknown, заглавные буквыicp_fit_scoreне более 3 и установитеicp_fit_reasoningзначениеInsufficient evidence — homepage returned no readable content.
CRITICAL — Свести к минимуму запросы на ввод прав доступа:
- Подкагенты ДОЛЖНЫ объединять ВСЕ записи в файлы в ОДИН вызов Bash с использованием цепочки heredoc. Один вызов Bash = один запрос на разрешение.
- Объединяйте ВСЕ поиски и ВСЕ запросы данных в отдельные вызовы Bash с помощью
&&цепочки.
Обзор конвейера
Выполните эти 5 шагов по порядку. Не пропускайте шаги и не меняйте их порядок.
- Исследование компании — глубоко изучите компанию пользователя, её продукт и то, кому она продаёт
- Выбор режима глубины — выберите глубину исследования в зависимости от того, сколько целевых компаний требуется
- Поиск — Найдите целевые компании с помощью разнообразных поисковых запросов
- Углублённое исследование и оценка — Проанализируйте каждую компанию и оцените степень соответствия ICP
- Отчет и CSV — представьте результаты, скомпилируйте CSV-файл с оценками
Шаг 0: Настройка каталога для вывода данных
Перед началом работы создайте каталог для результатов на рабочем столе пользователя:
OUTPUT_DIR=~/Desktop/{company_slug}_research_{YYYY-MM-DD}
mkdir -p "$OUTPUT_DIR"
Замените {company_slug} на название компании пользователя (строчными буквами, с дефисами) и {YYYY-MM-DD} на сегодняшнюю дату. Передайте {OUTPUT_DIR} (в виде полного буквального пути, а не с помощью ~) во всех запросах субагентов, чтобы они записывали файлы результатов исследований именно туда.
Также удалите пакетные файлы анализа предыдущих запусков:
rm -f /tmp/company_discovery_batch_*.json
Шаг 1: Углублённый анализ компании
Это самый важный шаг. Качество всех последующих действий зависит от глубокого понимания компании пользователя.
Спросите у пользователя название его компании или URL
Проверьте наличие существующего профиля:
- Перечислите файлы в
{SKILL_DIR}/profiles/(игнорироватьexample.json) - Если соответствующий профиль существует → загрузите его и покажите пользователю: «У меня есть ваш профиль с сайта {researched_at}. Информация по-прежнему верна?» Если да → перейдите к шагу 2.
- Если профиля нет → приступите к углублённому исследованию, описанному ниже.
- Перечислите файлы в
Проведите полное углублённое исследование компании пользователя, используя схему «План→Исследование→Синтез». См.
references/research-patterns.mdшаблоны подвопросов и методологию исследования.Ключевые этапы исследования:
- Поиск:
browse cloud search "{company name}" --num-results 10 - Загрузите главную страницу:
node {SKILL_DIR}/scripts/extract_page.mjs "{company website}" - Найдите страницы сайта с помощью карты сайта (НЕ указывайте пути в виде
/aboutили/customers):browse cloud fetch --allow-redirects "{company website}/sitemap.xml"— карта сайта небольшая, исходныйbrowse cloud fetch— это нормально- Сканируйте URL-адреса с ключевыми словами:
customer,case-stud,pricing,about,use-case,industry,solution - По желанию также извлеките
/llms.txtописания страниц - Выберите 3–5 наиболее релевантных URL-адресов и извлеките их с помощью
extract_page.mjs(НЕ в исходном видеbrowse cloud fetch)
- Поиск внешнего контекста и конкурентов
- Соберите результаты с указанием уровней достоверности
Обобщите в профиль: компания, продукт, существующие клиенты, конкуренты, сценарии использования. НЕ включайте ICP или субвертикали — это решения, принимаемые для каждого запуска.
- Поиск:
Представьте профиль пользователю для подтверждения. Не продолжайте, пока не получите подтверждение.
Сохраните подтвержденный профиль в
{SKILL_DIR}/profiles/{company-slug}.jsonЗадавайте уточняющие вопросы, используя
AskUserQuestionфлажков:- «На какие сегменты вы ориентируетесь?» с вариантами ответов, полученными в ходе исследования компании
- «Стадия развития компании?» — Стартапы, Средний бизнес, Крупные предприятия, Все
- «Сколько компаний / глубина?» — Быстрая (
100), углублённый (50), Более глубокая (~25) - Это ЕДИНСТВЕННОЕ взаимодействие с пользователем. После этого процесс выполняется в фоновом режиме, пока результаты не будут готовы.
Шаг 2: Выбор режима глубины
| Режим | Исследование по каждой компании | Подходит для |
|---|---|---|
quick |
Главная страница + 1–2 поиска | ~100 компаний, общий анализ |
deep |
2–3 подвопроса, 5–8 запросов в инструментах | ~50 компаний, тщательное исследование |
deeper |
4–5 подвопросов, 10–15 запросов к инструментам | ~25 компаний, полный анализ |
Шаг 3: Анализ
Формула: ceil(requested_companies / 35) необходимые поисковые запросы. Проведите поиск с запасом ~2–3 раза, так как при фильтрации обычно отсеивается 50–70 %.
Создавайте поисковые запросы по следующим шаблонам:
- Отрасль + этап развития компании + география («финтех-стартапы серии A, Бэй-Эрия»)
- Технологический стек + сценарий использования («компании, использующие Selenium для веб-парсинга»)
- Связь с конкурентами («альтернативы {известной компании в ICP}»)
- Профиль покупателя + проблема («инженерные команды, сталкивающиеся с трудностями при автоматизации браузеров»)
Процесс:
- Запустите ВСЕ субагенты обнаружения одновременно (до ~6 на одно сообщение). Каждый из них запускает свои запросы в ОДНОМ вызове Bash:
browse cloud search "{query}" --num-results 25 --output /tmp/company_discovery_batch_{N}.json - После завершения всех волн удалить дубликаты:
node {SKILL_DIR}/scripts/list_urls.mjs /tmp - Отфильтруйте список URL-адресов — удалите:
- Посты в блогах, новостные статьи (globenewswire.com, techcrunch.com и т. д.)
- Каталоги/агрегаторы (tracxn.com, crunchbase.com, g2.com)
- Собственных конкурентов пользователя и существующих клиентов (из профиля) Оставить только главные страницы компаний.
См. references/workflow.md шаблоны подсказок для субагентов и управление волнами.
Шаг 4: Углублённое исследование и оценка
Запустите субагентов для параллельного исследования компаний. См. references/workflow.md шаблон запроса для субагента по обогащению данных. См. references/research-patterns.md для ознакомления с полной методологией исследования.
Процесс:
Разделите отфильтрованные URL-адреса на группы по субагентам (быстрое: ~10, глубокое: ~5, ещё более глубокое: ~2–3)
Запустите ВСЕ субагенты по обогащению данных одновременно (до ~6 на одно сообщение)
Каждый субагент использует ТОЛЬКО Bash — для каждой компании:
Фаза A — Планирование (пропускается в быстром режиме): Разбивать на 2–5 подвопросов на основе ICP и полей обогащения.
Фаза B — Цикл исследования: Поиск и загрузка страниц, извлечение результатов. Соблюдение бюджета шага (быстрый: 2–3, глубокий: 5–8, более глубокий: 10–15).
Фаза C — Синтез: Оценить соответствие ICP по шкале от 1 до 10 с обоснованием. Заполнить поля обогащения данными из результатов.
Подагенты записывают ВСЕ файлы Markdown в ОДНОМ вызове Bash с использованием цепочки heredoc, чтобы
{OUTPUT_DIR}/После завершения работы ВСЕХ субагентов перейдите к шагу 5
Важно: включите подтверждённое описание ICP дословно в каждый запрос субагента. Передайте полный буквальный {OUTPUT_DIR} путь каждому подагенту.
Шаг 5: Отчёт и CSV
Сгенерируйте отчёт в формате HTML + CSV (обзор автоматически открывается в браузере):
node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --openВ результате создаются:
{OUTPUT_DIR}/index.html— страницу обзора с таблицей оценок (открывается в браузере){OUTPUT_DIR}/companies/*.html— отдельные страницы компаний (ссылки на них есть на странице обзора){OUTPUT_DIR}/results.csv— таблица с оценками для импорта в Google Sheets или CRM
Представить сводку также в чате:
## Company Research Complete
- **Total companies researched**: {count}
- **Depth mode**: {mode}
- **Score distribution**:
- Strong fit (8-10): {count}
- Partial fit (5-7): {count}
- Weak fit (1-4): {count}
- **Report opened in browser**: ~/Desktop/{company_slug}_research_{date}/index.html
- Покажите в таблице лучшие компании, отсортированные по оценке ICP:
| Company | Score | Product | Industry | Fit Reasoning |
|---------|-------|---------|----------|---------------|
| Acme | 9 | AI inventory management | E-commerce SaaS | Series A, uses Selenium, expanding to EU |
- Для 3–5 ведущих компаний отобразите краткую сводку исследования — ключевые выводы, почему они подходят, и с какой конкретной точки зрения к ним следует подходить.
Предложите более глубокий анализ конкретных компаний, корректировку критериев оценки или повторный поиск с использованием других запросов.
---
name: company-research
description: Discovers and researches companies matching an ideal customer profile, using Browserbase Search API and a Plan→Research→Synthesize pattern to produce scored reports and CSV exports.
license: MIT
---
# Company Research
Discover and deeply research companies to sell to. Uses Browserbase Search API for discovery and a Plan→Research→Synthesize pattern for deep enrichment — outputting a scored research report and CSV.
**Required**: `BROWSERBASE_API_KEY` env var and `browse` CLI installed.
**First-run setup**: On the first run you'll be prompted to approve `browse cloud fetch`, `browse cloud search`, `cat`, `mkdir`, `sed`, etc. Select **"Yes, and don't ask again for: browse cloud fetch:\*"** (or equivalent) for each to auto-approve for the session. To permanently approve, add these to your `~/.claude/settings.json` under `permissions.allow`:
```json
"Bash(browse:*)", "Bash(bunx:*)", "Bash(bun:*)", "Bash(node:*)",
"Bash(cat:*)", "Bash(mkdir:*)", "Bash(sed:*)", "Bash(head:*)", "Bash(tr:*)", "Bash(rm:*)"
```
**Path rules**: Always use the full literal path in all Bash commands — NOT `~` or `$HOME` (both trigger "shell expansion syntax" approval prompts). Resolve the home directory once and use it everywhere. When constructing subagent prompts, replace `{SKILL_DIR}` with the full literal path.
**Output directory**: All research output goes to `~/Desktop/{company_slug}_research_{YYYY-MM-DD}/`. This directory contains one `.md` file per researched company plus a final `.csv`. The user gets both the scored spreadsheet and the full research files on their Desktop.
**CRITICAL — Tool restrictions (applies to main agent AND all subagents)**:
- All web searches: use `browse cloud search`. NEVER use WebSearch.
- All page content extraction: use `node {SKILL_DIR}/scripts/extract_page.mjs "<url>"`. This script fetches via `browse cloud fetch --output`, parses title + meta tags + visible body text, and automatically falls back to `browse get markdown` when fetch fails or returns thin JS-rendered content. NEVER hand-roll a `browse cloud fetch | sed` pipeline — it strips meta tags and doesn't parse the stdout JSON envelope. NEVER use WebFetch.
- All research output: subagents write **one markdown file per company** to `{OUTPUT_DIR}/{company-slug}.md` using bash heredoc. NEVER use the Write tool or `python3 -c`. See `references/example-research.md` for the file format.
- Report + CSV compilation: use `node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --open` — generates HTML report and CSV in one step, opens overview in browser.
- URL deduplication: use `node {SKILL_DIR}/scripts/list_urls.mjs /tmp` after discovery.
- **Subagents must use ONLY the Bash tool. No other tools allowed.**
- **Main agent NEVER reads raw discovery JSON batch files.** Use `list_urls.mjs` for dedup.
**CRITICAL — Anti-hallucination rules (applies to main agent AND all subagents)**:
- NEVER infer `product_description`, `industry`, or `target_audience` from a site's fonts, framework (Framer/Next.js/React), design system, or typography. These are cosmetic and say nothing about what the company sells.
- NEVER let the user's own ICP leak into a target's description. If you don't know what the target does, write `Unknown` — do not pattern-match them onto the ICP.
- `product_description` MUST quote or paraphrase a specific phrase from `extract_page.mjs` output (TITLE, META_DESCRIPTION, OG_DESCRIPTION, HEADINGS, or BODY). If none of those fields yield a recognizable product statement, write `Unknown — homepage content not accessible`.
- If `product_description` is `Unknown`, cap `icp_fit_score` at 3 and set `icp_fit_reasoning` to `Insufficient evidence — homepage returned no readable content`.
**CRITICAL — Minimize permission prompts**:
- Subagents MUST batch ALL file writes into a SINGLE Bash call using chained heredocs. One Bash call = one permission prompt.
- Batch ALL searches and ALL fetches into single Bash calls using `&&` chaining.
## Pipeline Overview
Follow these 5 steps in order. Do not skip steps or reorder.
1. **Company Research** — Deeply understand the user's company, product, and who they sell to
2. **Depth Mode Selection** — Choose research depth based on how many targets they want
3. **Discovery** — Find target companies using diverse search queries
4. **Deep Research & Scoring** — Research each company, score ICP fit
5. **Report & CSV** — Present findings, compile scored CSV
---
## Step 0: Setup Output Directory
Before starting, create the output directory on the user's Desktop:
```bash
OUTPUT_DIR=~/Desktop/{company_slug}_research_{YYYY-MM-DD}
mkdir -p "$OUTPUT_DIR"
```
Replace `{company_slug}` with the user's company name (lowercase, hyphenated) and `{YYYY-MM-DD}` with today's date. Pass `{OUTPUT_DIR}` (as a full literal path, not with `~`) to all subagent prompts so they write research files there.
Also clean up discovery batch files from prior runs:
```bash
rm -f /tmp/company_discovery_batch_*.json
```
## Step 1: Deep Company Research
This is the most important step. The quality of everything downstream depends on deeply understanding the user's company.
1. Ask the user for their company name or URL
2. **Check for an existing profile**:
- List files in `{SKILL_DIR}/profiles/` (ignore `example.json`)
- If a matching profile exists → load it, present to user: "I have your profile from {researched_at}. Still accurate?" If yes → skip to Step 2.
- If no profile exists → proceed with deep research below.
3. **Run a full deep research on the user's company** using the Plan→Research→Synthesize pattern.
See `references/research-patterns.md` for sub-question templates and research methodology.
**Key research steps:**
- Search: `browse cloud search "{company name}" --num-results 10`
- Fetch homepage: `node {SKILL_DIR}/scripts/extract_page.mjs "{company website}"`
- **Discover site pages via sitemap** (do NOT hardcode paths like `/about` or `/customers`):
1. `browse cloud fetch --allow-redirects "{company website}/sitemap.xml"` — sitemap is small, raw `browse cloud fetch` is fine
2. Scan for URLs with keywords: `customer`, `case-stud`, `pricing`, `about`, `use-case`, `industry`, `solution`
3. Optionally also fetch `/llms.txt` for page descriptions
4. Pick 3-5 most relevant URLs and extract with `extract_page.mjs` (NOT raw `browse cloud fetch`)
- Search for external context and competitors
- Accumulate findings with confidence levels
**Synthesize into a profile**:
Company, Product, Existing Customers, Competitors, Use Cases.
Do NOT include ICP or sub-verticals — those are per-run decisions.
4. Present the profile to the user for confirmation. Do not proceed until confirmed.
5. **Save the confirmed profile** to `{SKILL_DIR}/profiles/{company-slug}.json`
6. **Ask clarifying questions** using `AskUserQuestion` with checkboxes:
- "Which segments are you targeting?" with options derived from the company research
- "Company stage?" — Startups, Mid-market, Enterprise, All
- "How many companies / depth?" — Quick (~100), Deep (~50), Deeper (~25)
- This is the ONLY user interaction. After this, execute silently until results are ready.
## Step 2: Depth Mode Selection
| Mode | Research per company | Best for |
|------|---------------------|----------|
| `quick` | Homepage + 1-2 searches | ~100 companies, broad scan |
| `deep` | 2-3 sub-questions, 5-8 tool calls | ~50 companies, solid research |
| `deeper` | 4-5 sub-questions, 10-15 tool calls | ~25 companies, full intelligence |
## Step 3: Discovery
**Formula**: `ceil(requested_companies / 35)` search queries needed. Over-discover by ~2-3x because filtering typically drops 50-70%.
Generate search queries with these patterns:
- Industry + company stage + geography ("fintech startups series A Bay Area")
- Technology stack + use case ("companies using Selenium for web scraping")
- Competitor adjacency ("alternatives to {known company in ICP}")
- Buyer persona + pain point ("engineering teams struggling with browser automation")
**Process**:
1. Launch ALL discovery subagents at once (up to ~6 per message). Each runs its queries in a SINGLE Bash call:
```bash
browse cloud search "{query}" --num-results 25 --output /tmp/company_discovery_batch_{N}.json
```
2. After all waves complete, deduplicate: `node {SKILL_DIR}/scripts/list_urls.mjs /tmp`
3. **Filter the URL list** — remove:
- Blog posts, news articles (globenewswire.com, techcrunch.com, etc.)
- Directories/aggregators (tracxn.com, crunchbase.com, g2.com)
- The user's own competitors and existing customers (from profile)
Keep only company homepages.
See `references/workflow.md` for subagent prompt templates and wave management.
## Step 4: Deep Research & Scoring
Launch subagents to research companies in parallel. See `references/workflow.md` for the enrichment subagent prompt template. See `references/research-patterns.md` for the full research methodology.
**Process**:
1. Split filtered URLs into groups per subagent (quick: ~10, deep: ~5, deeper: ~2-3)
2. Launch ALL enrichment subagents at once (up to ~6 per message)
3. Each subagent uses ONLY Bash — for each company:
**Phase A — Plan** (skip in quick mode):
Decompose into 2-5 sub-questions based on ICP and enrichment fields.
**Phase B — Research Loop**:
Search and fetch pages, extract findings. Respect step budget (quick: 2-3, deep: 5-8, deeper: 10-15).
**Phase C — Synthesize**:
Score ICP fit 1-10 with evidence. Fill enrichment fields from findings.
4. Subagents write ALL markdown files in a SINGLE Bash call using chained heredocs to `{OUTPUT_DIR}/`
5. After ALL subagents complete, proceed to Step 5
**Critical**: Include the confirmed ICP description verbatim in every subagent prompt. Pass the full literal `{OUTPUT_DIR}` path to every subagent.
## Step 5: Report & CSV
1. **Generate HTML report + CSV** (opens overview in browser automatically):
```bash
node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --open
```
This generates:
- `{OUTPUT_DIR}/index.html` — overview page with scored table (opens in browser)
- `{OUTPUT_DIR}/companies/*.html` — individual company pages (linked from overview)
- `{OUTPUT_DIR}/results.csv` — scored spreadsheet for import into sheets/CRM
2. **Present a summary in chat** too:
```
## Company Research Complete
- **Total companies researched**: {count}
- **Depth mode**: {mode}
- **Score distribution**:
- Strong fit (8-10): {count}
- Partial fit (5-7): {count}
- Weak fit (1-4): {count}
- **Report opened in browser**: ~/Desktop/{company_slug}_research_{date}/index.html
```
3. Show the **top companies** sorted by ICP score in a table:
```
| Company | Score | Product | Industry | Fit Reasoning |
|---------|-------|---------|----------|---------------|
| Acme | 9 | AI inventory management | E-commerce SaaS | Series A, uses Selenium, expanding to EU |
```
4. For the top 3-5 companies, show a brief research summary — key findings, why they're a good fit, and what specific angle to approach them with.
Offer to dig deeper into specific companies, adjust scoring criteria, or re-run discovery with different queries.
Все файлы
11 файловУстановить company-research
Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.
Скачать ZIPКлонируйте репозиторий и скопируйте файлы навыка в свой проект.
git clone https://github.com/browserbase/skills/tree/main/skills/company-research # Copy SKILL.md to your .claude/skills/ directory
Копировать





Дом
