Atlas / Skills / browserbase / Company Research

Company ResearchCAUTION

skills/browserbase/company-research

Browserbase's official collection of agent skills to access the web.

Verdict
CAUTION
Grade
B
Trust score
89 /100
Version
1.1.0
Hosts
—
License
—
Stars
3,743
01

Overview

Browserbase's official collection of agent skills to access the web.

Read from source at commit 45d21dc75974OBSERVED · 2026-10-26
Advertisement
02

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: company-research
description: |
  Company discovery and deep research skill. Researches a company's product and ICP,
  discovers target companies to sell to using Browserbase Search API, deeply researches
  each using a Plan→Research→Synthesize pattern, and scores ICP fit — compiled into
  a scored research report and CSV. Supports depth modes (quick/deep/deeper) for
  balancing scale vs intelligence.
  Use when the user wants to: (1) find companies to sell to, (2) research potential
  customers, (3) discover companies matching an ICP, (4) build a target company list,
  (5) do market research on prospects. Triggers: "find companies to sell to",
  "company research", "find prospects", "ICP research", "target companies",
  "who should we sell to", "market research", "lead research", "prospect list".
license: MIT
compatibility: Requires browse CLI (`npm install -g browse`) and BROWSERBASE_API_KEY env var
allowed-tools: Bash Agent
metadata:
  author: browserbase
  version: "1.1.0"
---

# 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. **C
03

Trust audit

CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)WARN
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
declared (1 observation(s))
Dependencies
pinned
Secrets in source
none-found

Findings (3)

MEDIUMPrompt injection · review.data_transfer · CWE-94, CWE-1427
SKILL.md
All research output goes to `~/Desktop/{company_slug}_research_{YYYY-MM-DD}/`
Why it matters. It directs the agent to write research data containing user company profiles and competitor ICPs directly to the user's Desktop without explicit consent.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
MEDIUMPrivilege escalation / persistence · review.unsafe_action · CWE-269, CWE-250
SKILL.md
Also clean up discovery batch files from prior runs:
```bash
rm -f /tmp/company_discovery_batch_*.json
```
Why it matters. The package explicitly instructs the agent to execute a destructive `rm` command on files without requiring user authorization or confirmation.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWPrivilege escalation / persistence · review.unsafe_action · CWE-269, CWE-250
SKILL.md
"Bash(browse:*)", "Bash(bunx:*)", "Bash(bun:*)", "Bash(node:*)", "Bash(cat:*)", "Bash(mkdir:*)", "Bash(sed:*)", "Bash(head:*)", "Bash(tr:*)", "Bash(rm:*)"
Why it matters. It prompts the user to permanently allow broad, privileged shell commands (like `rm` and `node`) by updating their local settings file.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts

Gates applied: no_behavioural_pass.

Audited 2026-10-26 · audit v0.4.1 · source sha 45d21dc75974full audit observations/trust-audit/skill/browserbase__company-research.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-2645d21dc75974CAUTIONB89first audit
05

Questions

What does the company-research — browserbase/skills skill do?

Browserbase's official collection of agent skills to access the web.

Is company-research — browserbase/skills safe to install?

With care. The audit graded it B (89/100) and found 3 things worth knowing before you trust this skill, listed below with the exact line each was found on.

What can company-research — browserbase/skills access on my machine?

The audit observed that it runs shell commands. Each of those is consistent with what it says it does. Secrets in the source: none found.

How current is this page?

The grade is for one exact copy of the source (45d21dc75974), read on 2026-10-26. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Company Research](https://modelsatlas.com/skills/browserbase/company-research/badge.svg)](https://modelsatlas.com/skills/browserbase/company-research/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement