event-prospecting
Extract and qualify conference speaker leads against ICP.
Developer Setup
Setup & Installation
npx skills add https://github.com/browserbase/skills --skill event-prospectingnpx skills add https://github.com/browserbase/skills --skill event-prospectingOverview
What This Skill Does
Extracts speaker lists from event pages, qualifies company fits, compiles social info, and generates DM-ready reports.
Application
When to use this Skill
- When you want to extract speaker or attendee lists from conference/event web pages.
- When qualifying event leads against a company's target ICP criteria.
- When compiling person-first prospecting reports with social profiles (LinkedIn, Twitter/X).
- When prepping sales teams for specific networking events or industry conferences.
- When you want to generate one-click LinkedIn message openers for warm outreach.
Documentation
Show Skills.md file
Event Prospecting
Take a conference URL → get a ranked list of people the AE should talk to, with a "why reach out" rationale per person.
Required: BROWSERBASE_API_KEY env var and the browse CLI installed (npm install -g browse). Use browse cloud ... for API calls and browse open / browse get markdown for JS-heavy speaker pages.
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 (typically /Users/jay/skills/skills/event-prospecting).
Output directory: All event prospecting output goes to ~/Desktop/{event_slug}_prospects_{YYYY-MM-DD-HHMM}/. Final deliverable is index.html (people grouped by company, ranked by company ICP), with companies.html and people.html (filterable) as alternate views, plus results.csv for cold-outbound import.
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 viabrowse cloud fetch --output, parses title + meta tags + visible body text, and automatically falls back tobrowse get markdownwhen fetch fails or returns thin JS-rendered content. NEVER hand-roll abrowse cloud fetch | sedpipeline. NEVER use WebFetch. - All research output: subagents write one markdown file per company OR per person to
{OUTPUT_DIR}/companies/{slug}.mdor{OUTPUT_DIR}/people/{slug}.mdusing bash heredoc. NEVER use the Write tool orpython3 -c. Seereferences/example-research.mdfor both file formats. - Report compilation: use
node {SKILL_DIR}/scripts/compile_report.mjs {OUTPUT_DIR} --open. - Subagents must use ONLY the Bash tool. No other tools allowed.
- HARD TOOL-CALL CAPS: ICP triage = 1 call/company; deep research = 5 calls/company; person enrichment = 4 calls/person. See
references/workflow.mdfor enforcement detail.
CRITICAL — Anti-hallucination rules (applies to main agent AND all subagents):
- NEVER infer
product_description,industry, or a person'srole_reasonfrom a site's fonts, framework, design system, or typography. These are cosmetic and say nothing about what the company sells or what the person does. - 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_descriptionMUST quote or paraphrase a specific phrase fromextract_page.mjsoutput. If none of TITLE/META/OG/HEADINGS/BODY yield a recognizable product statement, writeUnknown — homepage content not accessibleand capicp_fit_scoreat 3.- A person's
hookMUST quote or paraphrase a specific finding from abrowse cloud searchresult (podcast title, blog headline, GitHub repo, talk abstract). If no public signal exists in the last 6 months, fall back to event-context (their talk title at this event).
CRITICAL — Minimize permission prompts:
Recommendations