Add company-research skill — deep ICP research with HTML report#75
Add company-research skill — deep ICP research with HTML report#75jay-sahnan merged 4 commits intomainfrom
Conversation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a342256. Configure here.
| const prefixIdx = args.indexOf('--prefix'); | ||
| const prefix = prefixIdx !== -1 && args[prefixIdx + 1] ? args[prefixIdx + 1] : 'company'; | ||
|
|
||
| const pattern = new RegExp(`^${prefix}_discovery_batch_.*\\.json$`); |
There was a problem hiding this comment.
Regex injection via unescaped prefix in RegExp constructor
Low Severity
The prefix variable is interpolated directly into new RegExp(...) without escaping regex special characters. If the prefix contains characters like ., (, [, *, or +, the regex could either throw a syntax error or match unintended filenames. The default value "company" is safe, but the --prefix flag accepts arbitrary user input.
Reviewed by Cursor Bugbot for commit a342256. Configure here.
| writeFileSync(join(dir, 'index.html'), indexHtml); | ||
|
|
||
| // Generate individual company pages | ||
| const { mkdirSync } = await import('fs'); |
There was a problem hiding this comment.
Redundant dynamic import of already-imported fs module
Low Severity
mkdirSync is obtained via await import('fs') at the top level, but fs is already statically imported on line 10. Adding mkdirSync to the existing static import is simpler and avoids an unnecessary top-level await that changes the module's evaluation semantics for no benefit.
Reviewed by Cursor Bugbot for commit a342256. Configure here.


Summary
company-researchskill for discovering + deep-researching target companies using Browserbase Search API and a Plan→Research→Synthesize pattern~/Desktop/{company}_research_{YYYY-MM-DD}/cold-outbound)Note
Medium Risk
Adds a new end-to-end research workflow plus Node.js scripts that read/write user-controlled files and invoke external
bbCLI/browser commands, so failures or environment differences (CLI availability, parsing edge cases) could impact output generation but existing functionality is largely unaffected.Overview
Adds a new
company-researchskill with a documented Plan→Research→Synthesize workflow for discovering targets viabb search, researching/scoring ICP fit, and writing one markdown file per company.Introduces supporting scripts:
extract_page.mjs(structured page extraction withbb fetchandbb browsefallback),list_urls.mjs(dedupe discovery batches by domain), andcompile_report.mjs(parse YAML frontmatter from research markdown, dedupe by normalized name, generateindex.html, per-company HTML pages, andresults.csv, with optional--open).Updates ignore rules to exclude per-skill local Claude settings and ignore
profiles/*.jsonwhile keeping an example profile in-repo.Reviewed by Cursor Bugbot for commit a342256. Bugbot is set up for automated code reviews on this repo. Configure here.