[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-browserbase-event-prospecting":3,"mdc--5xv461-key":34,"related-org-browserbase-event-prospecting":4584,"related-repo-browserbase-event-prospecting":4757},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"event-prospecting","research event speakers for sales prospecting","Event prospecting skill. Takes a conference \u002F event speakers URL,\nextracts the people, filters their companies against the user's\nICP, then deep-researches only the speakers at ICP-fit companies.\nOutputs a person-first HTML report where each card answers \"why\nshould the AE talk to this person?\" with all public links and a\none-click DM opener.\nUse when the user wants to: (1) find leads at a specific\nconference, (2) prep for an event, (3) research event speakers,\n(4) build a target list from a sponsor\u002Fexhibitor page,\n(5) scrape conference speakers and rank by ICP fit.\nTriggers: \"find leads at {event}\", \"research speakers at\",\n\"prospect this conference\", \"stripe sessions leads\",\n\"ai engineer summit prospects\", \"event prospecting\",\n\"scrape conference speakers\", \"who should I meet at\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"browserbase","Browserbase","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fbrowserbase.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Prospecting","prospecting",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Sales","sales",3649,"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills","2026-04-28T05:41:31.770467","MIT",232,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Browserbase's official collection of agent skills to access the web.","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fevent-prospecting","---\nname: event-prospecting\ndescription: |\n  Event prospecting skill. Takes a conference \u002F event speakers URL,\n  extracts the people, filters their companies against the user's\n  ICP, then deep-researches only the speakers at ICP-fit companies.\n  Outputs a person-first HTML report where each card answers \"why\n  should the AE talk to this person?\" with all public links and a\n  one-click DM opener.\n  Use when the user wants to: (1) find leads at a specific\n  conference, (2) prep for an event, (3) research event speakers,\n  (4) build a target list from a sponsor\u002Fexhibitor page,\n  (5) scrape conference speakers and rank by ICP fit.\n  Triggers: \"find leads at {event}\", \"research speakers at\",\n  \"prospect this conference\", \"stripe sessions leads\",\n  \"ai engineer summit prospects\", \"event prospecting\",\n  \"scrape conference speakers\", \"who should I meet at\".\nlicense: MIT\ncompatibility: Requires browse CLI (`npm install -g browse`) and BROWSERBASE_API_KEY env var. The same `browse` binary covers both API commands and JS-rendered page fallback.\nallowed-tools: Bash Agent AskUserQuestion\nmetadata:\n  author: browserbase\n  version: \"0.1.0\"\n---\n\n# Event Prospecting\n\nTake a conference URL → get a ranked list of people the AE should talk to, with a \"why reach out\" rationale per person.\n\n**Required**: `BROWSERBASE_API_KEY` env var and the `browse` CLI installed (`npm install -g browse`). Use `browse cloud ...` for API calls and `browse open` \u002F `browse get markdown` for JS-heavy speaker pages.\n\n**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 `\u002FUsers\u002Fjay\u002Fskills\u002Fskills\u002Fevent-prospecting`).\n\n**Output directory**: All event prospecting output goes to `~\u002FDesktop\u002F{event_slug}_prospects_{YYYY-MM-DD-HHMM}\u002F`. 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.\n\n**CRITICAL — Tool restrictions (applies to main agent AND all subagents)**:\n- All web searches: use `browse cloud search`. NEVER use WebSearch.\n- All page content extraction: use `node {SKILL_DIR}\u002Fscripts\u002Fextract_page.mjs \"\u003Curl>\"`. 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. NEVER use WebFetch.\n- All research output: subagents write **one markdown file per company OR per person** to `{OUTPUT_DIR}\u002Fcompanies\u002F{slug}.md` or `{OUTPUT_DIR}\u002Fpeople\u002F{slug}.md` using bash heredoc. NEVER use the Write tool or `python3 -c`. See `references\u002Fexample-research.md` for both file formats.\n- Report compilation: use `node {SKILL_DIR}\u002Fscripts\u002Fcompile_report.mjs {OUTPUT_DIR} --open`.\n- **Subagents must use ONLY the Bash tool. No other tools allowed.**\n- **HARD TOOL-CALL CAPS**: ICP triage = 1 call\u002Fcompany; deep research = 5 calls\u002Fcompany; person enrichment = 4 calls\u002Fperson. See `references\u002Fworkflow.md` for enforcement detail.\n\n**CRITICAL — Anti-hallucination rules (applies to main agent AND all subagents)**:\n- NEVER infer `product_description`, `industry`, or a person's `role_reason` from 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.\n- 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.\n- `product_description` MUST quote or paraphrase a specific phrase from `extract_page.mjs` output. If none of TITLE\u002FMETA\u002FOG\u002FHEADINGS\u002FBODY yield a recognizable product statement, write `Unknown — homepage content not accessible` and cap `icp_fit_score` at 3.\n- A person's `hook` MUST quote or paraphrase a specific finding from a `browse cloud search` result (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).\n\n**CRITICAL — Minimize permission prompts**:\n- Subagents MUST batch ALL file writes into a SINGLE Bash call using chained heredocs. One Bash call = one permission prompt.\n- Batch ALL searches and ALL fetches into single Bash calls using `&&` chaining.\n\n## Pipeline Overview\n\nFollow these 10 steps in order. Do not skip steps or reorder.\n\n0. **Setup** — output dir + clean slate\n1. **Load profile** — read `profiles\u002F{user_slug}.json`\n2. **Recon** — detect event platform\n3. **Extract people** — `people.jsonl`\n4. **Group by company** — `seed_companies.txt`\n5. **ICP triage** — fast company-level scoring (1 call\u002Fcompany)\n6. **Filter** — companies with `icp_fit_score >= --icp-threshold`\n7. **Deep research** — full Plan→Research→Synthesize on ICP fits\n8. **Enrich speakers** — ask user: ICP-fit only (default) or all speakers\n9. **Compile report** — HTML + CSV, open in browser\n\nThe user invokes the skill with a URL like `\u002Fevent-prospecting \u003CURL>`. Parse `EVENT_URL` from that invocation message. Defaults: `DEPTH=deep`, `ICP_THRESHOLD=6`. The `USER_SLUG` (ICP profile) is auto-resolved in Step 1 from whatever profile files exist locally — there is no built-in default profile. Do NOT ask the user to confirm the URL — they already gave you it.\n\n---\n\n## Step 0: Setup Output Directory\n\nDerive the output directory from the URL the user gave you. Do NOT hardcode any event name.\n\n```bash\n# EVENT_URL came from the invocation message (whatever the user typed after `\u002Fevent-prospecting`)\nEVENT_SLUG=$(node -e 'const h = new URL(process.argv[1]).hostname.replace(\u002F^www\\.\u002F,\"\"); console.log(h.split(\".\")[0])' \"$EVENT_URL\")\nTIMESTAMP=$(date +%Y-%m-%d-%H%M)\nOUTPUT_DIR=\u002FUsers\u002Fjay\u002FDesktop\u002F${EVENT_SLUG}_prospects_${TIMESTAMP}\nmkdir -p \"$OUTPUT_DIR\u002Fcompanies\" \"$OUTPUT_DIR\u002Fpeople\"\n```\n\nUse the full literal home path — never `~` or `$HOME`. Pass `{OUTPUT_DIR}` as the full literal path to all subagent prompts.\n\n## Step 1: Load User Profile\n\nThe profile defines the ICP that ICP triage and deep research score against. Load from `{SKILL_DIR}\u002Fprofiles\u002F{user_slug}.json` (interchangeable across all GTM skills — same shape as company-research). `example.json` is a template, not a real profile — never use it.\n\n**DO NOT look outside `{SKILL_DIR}\u002Fprofiles\u002F`** for profiles — never reach into other skills' directories. If a profile is needed elsewhere, the user copies it explicitly.\n\n**Resolution order**:\n1. If the user invoked with `--user-company \u003Cslug>`, use that slug.\n2. Else, list `profiles\u002F*.json` excluding `example.json`. If exactly one profile exists, use it (and tell the user which one). If multiple exist, ask the user (plain chat) which one.\n3. If zero profiles exist, **fail loudly** and instruct the user to create one (copy `profiles\u002Fexample.json` to `profiles\u002F\u003Cyour_slug>.json` and fill it in, or run the company-research skill which builds one automatically).\n\n```bash\nPROFILES=$(ls {SKILL_DIR}\u002Fprofiles\u002F*.json 2>\u002Fdev\u002Fnull | xargs -n1 basename | sed 's\u002F\\.json$\u002F\u002F' | grep -v '^example$')\nCOUNT=$(echo \"$PROFILES\" | grep -c .)\n\nif [ -z \"$USER_SLUG\" ]; then\n  if [ \"$COUNT\" -eq 0 ]; then\n    echo \"No profiles found in {SKILL_DIR}\u002Fprofiles\u002F. Copy profiles\u002Fexample.json to profiles\u002F\u003Cyour_slug>.json and fill it in, or run the company-research skill to build one.\"\n    exit 1\n  elif [ \"$COUNT\" -eq 1 ]; then\n    USER_SLUG=$PROFILES\n    echo \"Using the only profile available: ${USER_SLUG}\"\n  else\n    echo \"Multiple profiles found:\"\n    echo \"$PROFILES\" | sed 's\u002F^\u002F  - \u002F'\n    echo \"Re-invoke with --user-company \u003Cslug> to pick one.\"\n    exit 1\n  fi\nfi\n\ntest -f {SKILL_DIR}\u002Fprofiles\u002F${USER_SLUG}.json || {\n  echo \"Profile not found: profiles\u002F${USER_SLUG}.json\"\n  exit 1\n}\ncat {SKILL_DIR}\u002Fprofiles\u002F${USER_SLUG}.json\n```\n\nThe profile yields: `company`, `product`, `icp_description`, `existing_customers`. These get embedded verbatim in every subagent prompt downstream.\n\n## Step 2: Recon\n\nDetect the event platform and extraction strategy. One command:\n\n```bash\nnode {SKILL_DIR}\u002Fscripts\u002Frecon.mjs {EVENT_URL} {OUTPUT_DIR}\n```\n\nWrites `{OUTPUT_DIR}\u002Frecon.json` with `platform`, `strategy`, and (for Next.js) `nextDataPaths`. See `references\u002Fevent-platforms.md` for the platform catalog and detection priority.\n\nExpected outcomes:\n- Stripe Sessions class (Next.js): `platform: \"next-data\"`, 1-3 paths\n- Sessionize: `platform: \"sessionize\"`\n- Lu.ma \u002F Eventbrite: `platform: \"luma\" | \"eventbrite\"`\n- Anything else: `platform: \"custom\"`, `strategy: \"markdown\"` (best-effort fallback)\n\n## Step 3: Extract People\n\n```bash\nnode {SKILL_DIR}\u002Fscripts\u002Fextract_event.mjs {OUTPUT_DIR} --user-company {USER_SLUG}\n```\n\nReads `recon.json`, dispatches to the platform-specific extractor, writes `people.jsonl` (one speaker per line) and `seed_companies.txt` (deduped companies).\n\nThe `--user-company` flag also drops the host-org's own employees (a Stripe-hosted event drops Stripe employees) and the user's own employees from the speaker list — those aren't prospects.\n\nSanity-check the output:\n```bash\nwc -l {OUTPUT_DIR}\u002Fpeople.jsonl {OUTPUT_DIR}\u002Fseed_companies.txt\nhead -3 {OUTPUT_DIR}\u002Fpeople.jsonl\n```\n\nIf `people.jsonl` is empty or under ~10 lines, recon picked the wrong platform — see `references\u002Fevent-platforms.md` and re-run with adjusted strategy.\n\n## Step 4: Group by Company\n\n`extract_event.mjs` emits `seed_companies.txt` already (one company per line, deduped, sorted). This step is informational — verify the count looks reasonable before fanning out:\n\n```bash\nwc -l {OUTPUT_DIR}\u002Fseed_companies.txt\n```\n\nExpected: roughly 0.4-0.6× the speaker count (most events have ~2 speakers per company on average, some companies send 5+, many send 1).\n\n## Step 5: ICP Triage\n\n**Fast pass — one tool call per company, no deep research.** Score every company in `seed_companies.txt` against the user's ICP and write a thin triage stub to `companies\u002F{slug}.md`. Companies with `icp_fit_score >= --icp-threshold` (default 6) advance to Step 7's deep research; the rest stay as triage stubs.\n\n**Dispatch pattern**: split `seed_companies.txt` into batches of ~10 and fan out N subagents in a SINGLE Agent batch (multiple Agent tool calls in one message). Each subagent runs the prompt from `references\u002Fworkflow.md` → \"ICP Triage\" section. Hard cap: **1 tool call per company** (just `extract_page.mjs` on the homepage), enforced via the `# browse call N\u002F1` comment pattern.\n\n```bash\n# Build batch files: each batch line is \"name|guessed_homepage|slug\".\n# extract_event.mjs only emits company NAMES (no URLs), so we slugify and guess\n# https:\u002F\u002F{slug-without-spaces}.com as the canonical homepage. The triage subagent\n# is allowed to write product_description: \"Unknown — homepage content not accessible\"\n# and cap score at 3 if the guessed URL 404s — that's the documented fallback in\n# workflow.md (rule 3 of the ICP Triage prompt). Burning a real browse cloud search to\n# discover the URL would bust the 1-call-per-company HARD CAP.\nnode -e '\nconst fs = require(\"fs\");\nconst slugify = (s) => (s || \"\").toLowerCase().replace(\u002F[^a-z0-9]+\u002Fg, \"-\").replace(\u002F^-+|-+$\u002Fg, \"\");\nconst seed = fs.readFileSync(\"{OUTPUT_DIR}\u002Fseed_companies.txt\", \"utf-8\").split(\"\\n\").filter(Boolean);\nconst lines = seed.map(c => {\n  const slug = slugify(c);\n  const guessedHost = c.toLowerCase().replace(\u002F[^a-z0-9]\u002Fg, \"\");\n  return `${c}|https:\u002F\u002F${guessedHost}.com|${slug}`;\n});\nfs.writeFileSync(\"{OUTPUT_DIR}\u002F_seed_with_urls.txt\", lines.join(\"\\n\") + \"\\n\");\n'\n\n# Split into ~10-company batches\nsplit -l 10 {OUTPUT_DIR}\u002F_seed_with_urls.txt {OUTPUT_DIR}\u002F_batch_triage_\n\n# Count batches → number of subagents to dispatch (cap at 6 per message; second wave for the rest)\nls {OUTPUT_DIR}\u002F_batch_triage_* | wc -l\n```\n\nThen in a single message, dispatch one Agent call per batch (up to 6 in parallel; subsequent waves after the first returns). Each Agent gets the prompt from `references\u002Fworkflow.md` → \"ICP Triage\" with these substitutions before sending:\n- `{SKILL_DIR}` → full literal skill path (e.g. `\u002FUsers\u002Fjay\u002Fskills\u002Fskills\u002Fevent-prospecting`)\n- `{OUTPUT_DIR}` → full literal output path\n- `{USER_COMPANY}`, `{USER_PRODUCT}`, `{ICP_DESCRIPTION}` → from the loaded profile\n- `{EVENT_NAME}` → `recon.json` `.title`\n- `{COMPANY_LIST}` → contents of the batch file (e.g. `cat {OUTPUT_DIR}\u002F_batch_triage_aa`)\n- `{TOTAL}` → number of lines in this batch (substitute into `# browse call N\u002F{TOTAL}`)\n\n**Agent dispatch (skeleton, repeat per batch in one message)**:\n\n```\nAgent(\n  description: \"ICP triage batch aa\",\n  prompt: \u003CICP Triage prompt from workflow.md with all placeholders substituted>,\n  subagent_type: \"general-purpose\"\n)\nAgent(\n  description: \"ICP triage batch ab\",\n  prompt: \u003Csame prompt template, COMPANY_LIST swapped to batch ab>,\n  subagent_type: \"general-purpose\"\n)\n... up to 6 per message\n```\n\nAfter all subagents return, verify every company in `seed_companies.txt` has a corresponding `companies\u002F{slug}.md`:\n\n```bash\nls {OUTPUT_DIR}\u002Fcompanies\u002F*.md | wc -l\n# Should equal `wc -l {OUTPUT_DIR}\u002Fseed_companies.txt`\n```\n\nClean up the batch files: `rm {OUTPUT_DIR}\u002F_batch_triage_*`.\n\n## Step 6: Filter by ICP Threshold\n\nRead each `companies\u002F*.md` frontmatter, keep those with `icp_fit_score >= 6` (or whatever `--icp-threshold` is). Write the surviving company slugs to `{OUTPUT_DIR}\u002Ficp_fits.txt`:\n\n```bash\nTHRESHOLD=6   # from --icp-threshold flag\nfor f in {OUTPUT_DIR}\u002Fcompanies\u002F*.md; do\n  score=$(awk '\u002F^icp_fit_score:\u002F{print $2; exit}' \"$f\")\n  if [ -n \"$score\" ] && [ \"$score\" -ge \"$THRESHOLD\" ]; then\n    basename \"$f\" .md\n  fi\ndone > {OUTPUT_DIR}\u002Ficp_fits.txt\n\nwc -l {OUTPUT_DIR}\u002Ficp_fits.txt\n```\n\nExpected: 20-40% of `seed_companies.txt`. If the survival rate is \u003C 10%, the threshold may be too high or the ICP description too narrow — surface a warning to the user.\n\n## Step 7: Deep Research\n\nFull Plan→Research→Synthesize on ICP-fit companies only. Hard cap: **5 tool calls per company** (homepage extract + 2-3 sub-question searches + 1-2 supplementary fetches). Subagents OVERWRITE the existing `companies\u002F{slug}.md` triage stub with the richer deep-research version (frontmatter `triage_only: false`).\n\n**Dispatch pattern**: split `icp_fits.txt` into batches of ~5 (deep mode default) and fan out one Agent per batch in a SINGLE message (up to 6 Agents per message). Each Agent gets the prompt from `references\u002Fworkflow.md` → \"Deep Research\" with these substitutions:\n- `{SKILL_DIR}`, `{OUTPUT_DIR}`, `{USER_COMPANY}`, `{USER_PRODUCT}`, `{ICP_DESCRIPTION}`\n- `{EVENT_NAME}` (from `recon.json` `.title`), `{EVENT_CONTEXT}` (track \u002F topic, manually inferred from the event homepage)\n- `{COMPANY_LIST}` → contents of the batch file (each line `slug|website`)\n\n```bash\n# Build {company-slug|website} pairs by reading frontmatter from each triage stub\nwhile read slug; do\n  website=$(awk '\u002F^website:\u002F{print $2; exit}' {OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md)\n  echo \"${slug}|${website}\"\ndone \u003C {OUTPUT_DIR}\u002Ficp_fits.txt > {OUTPUT_DIR}\u002F_deep_targets.txt\n\n# Split into ~5-company batches (deep mode)\nsplit -l 5 {OUTPUT_DIR}\u002F_deep_targets.txt {OUTPUT_DIR}\u002F_batch_deep_\nls {OUTPUT_DIR}\u002F_batch_deep_* | wc -l\n```\n\n**Agent dispatch (skeleton, repeat per batch in one message)**:\n\n```\nAgent(\n  description: \"Deep research batch aa\",\n  prompt: \u003CDeep Research prompt from workflow.md with all placeholders substituted; COMPANY_LIST = cat _batch_deep_aa>,\n  subagent_type: \"general-purpose\"\n)\nAgent(\n  description: \"Deep research batch ab\",\n  prompt: \u003Csame template, COMPANY_LIST = cat _batch_deep_ab>,\n  subagent_type: \"general-purpose\"\n)\n... up to 6 per message; second wave after the first returns\n```\n\nAfter all subagents return, verify the deep-research files exist and have `triage_only: false`:\n\n```bash\ngrep -l \"triage_only: false\" {OUTPUT_DIR}\u002Fcompanies\u002F*.md | wc -l\n# Should equal wc -l icp_fits.txt\n```\n\n## Step 8: Enrich Speakers\n\nPer person: harvest LinkedIn URL, recent activity (podcast \u002F blog \u002F talk \u002F GitHub \u002F X), and write `people\u002F{slug}.md`. Hard cap: **4 tool calls per person**, three lanes:\n\n1. `browse cloud search \"{name} {company} linkedin\"` (always)\n2. `browse cloud search \"{name} podcast OR talk OR blog 2026\"` (deep+)\n3. `browse cloud search \"{name} github\"` (deeper)\n4. `browse cloud search \"{name} site:x.com OR site:twitter.com\"` (deeper, best-effort)\n\nQuick mode: skip Step 8 entirely. Deep mode: lanes 1-2. Deeper mode: lanes 1-4.\n\n### Step 8a — Ask the user: scope of enrichment\n\nBefore dispatching, compute the two candidate counts and ask the user to choose. The default is **ICP-fit only** (faster, cheaper, what most users want); enriching every speaker is opt-in because cost scales linearly with people enriched.\n\n```bash\nTOTAL=$(wc -l \u003C {OUTPUT_DIR}\u002Fpeople.jsonl)\nICP_FITS=$(node -e '\nconst fs = require(\"fs\");\nconst fits = new Set(fs.readFileSync(\"{OUTPUT_DIR}\u002Ficp_fits.txt\", \"utf-8\").split(\"\\n\").filter(Boolean));\nconst slug2name = {};\nfor (const slug of fits) {\n  const md = fs.readFileSync(`{OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md`, \"utf-8\");\n  const m = md.match(\u002F^company_name:\\s*(.+)$\u002Fm);\n  if (m) slug2name[slug] = m[1].trim();\n}\nconst want = new Set(Object.values(slug2name).map(s => s.toLowerCase()));\nconst ppl = fs.readFileSync(\"{OUTPUT_DIR}\u002Fpeople.jsonl\",\"utf-8\").split(\"\\n\").filter(Boolean).map(JSON.parse);\nconsole.log(ppl.filter(p => p.company && want.has(p.company.toLowerCase())).length);\n')\n\n# Lanes per person: 2 (deep) or 4 (deeper) — match {DEPTH}\nLANES=2   # or 4 for deeper\necho \"ICP fits: ${ICP_FITS} speakers × ${LANES} = $((ICP_FITS * LANES)) calls\"\necho \"All:      ${TOTAL} speakers × ${LANES} = $((TOTAL * LANES)) calls\"\n```\n\nThen ask via `AskUserQuestion` — clean two-option choice with the quantified cost on each:\n\n```\nAskUserQuestion(questions: [\n  {\n    question: \"Enrich which speakers?\",\n    header: \"Enrichment scope\",\n    multiSelect: false,\n    options: [\n      { label: \"ICP fits only\", description: \"${ICP_FITS} speakers, ~$((ICP_FITS * LANES)) calls (recommended)\" },\n      { label: \"All speakers\", description: \"${TOTAL} speakers, ~$((TOTAL * LANES)) calls\" }\n    ]\n  }\n])\n```\n\nSave the chosen scope as `ENRICH_SCOPE=icp_fits` or `ENRICH_SCOPE=all`. If the user picks \"All speakers\" and `TOTAL × LANES > 600`, print a warning and ask once more — that's a 10+ minute run with hundreds of tool calls.\n\n### Step 8b — Filter and batch\n\n```bash\n# Build _people_to_enrich.jsonl based on ENRICH_SCOPE\nif [ \"$ENRICH_SCOPE\" = \"all\" ]; then\n  cp {OUTPUT_DIR}\u002Fpeople.jsonl {OUTPUT_DIR}\u002F_people_to_enrich.jsonl\nelse\n  node -e '\nconst fs = require(\"fs\");\nconst fits = new Set(fs.readFileSync(\"{OUTPUT_DIR}\u002Ficp_fits.txt\", \"utf-8\").split(\"\\n\").filter(Boolean));\nconst slug2name = {};\nfor (const slug of fits) {\n  const md = fs.readFileSync(`{OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md`, \"utf-8\");\n  const m = md.match(\u002F^company_name:\\s*(.+)$\u002Fm);\n  if (m) slug2name[slug] = m[1].trim();\n}\nconst wantNames = new Set(Object.values(slug2name).map(s => s.toLowerCase()));\nconst lines = fs.readFileSync(\"{OUTPUT_DIR}\u002Fpeople.jsonl\", \"utf-8\").split(\"\\n\").filter(Boolean);\nconst keep = lines.filter(l => {\n  const p = JSON.parse(l);\n  return p.company && wantNames.has(p.company.toLowerCase());\n});\nfs.writeFileSync(\"{OUTPUT_DIR}\u002F_people_to_enrich.jsonl\", keep.join(\"\\n\") + \"\\n\");\nconsole.error(`Enriching ${keep.length} of ${lines.length} speakers`);\n'\nfi\n\n# Split into ~5-person batches\nsplit -l 5 {OUTPUT_DIR}\u002F_people_to_enrich.jsonl {OUTPUT_DIR}\u002F_batch_people_\n```\n\nThen in a single message, dispatch one Agent call per batch (up to 6 per message) with the prompt from `references\u002Fworkflow.md` → \"Person Enrichment\". Each subagent's prompt should include:\n- `{SKILL_DIR}`, `{OUTPUT_DIR}`, `{DEPTH}` (`deep` | `deeper`)\n- `{USER_COMPANY}`, `{USER_PRODUCT}`, `{ICP_DESCRIPTION}`\n- `{EVENT_NAME}` (from `recon.json` `.title`)\n- `{LANES}` → `2` for deep mode, `4` for deeper mode (substituted into `# browse call N\u002F{LANES}`)\n- `{PEOPLE_BATCH}` → contents of `_batch_people_aa` (each line a JSON record from `people.jsonl`)\n\n**Agent dispatch (skeleton, repeat per batch in one message)**:\n\n```\nAgent(\n  description: \"Person enrichment batch aa\",\n  prompt: \u003CPerson Enrichment prompt from workflow.md with all placeholders substituted; PEOPLE_BATCH = cat _batch_people_aa>,\n  subagent_type: \"general-purpose\"\n)\nAgent(\n  description: \"Person enrichment batch ab\",\n  prompt: \u003Csame template, PEOPLE_BATCH = cat _batch_people_ab>,\n  subagent_type: \"general-purpose\"\n)\n... up to 6 per message\n```\n\nAfter all subagents return, verify the people files exist:\n\n```bash\nls {OUTPUT_DIR}\u002Fpeople\u002F*.md | wc -l\n# Should equal wc -l _people_to_enrich.jsonl\n```\n\n## Step 9: Compile Report\n\nGenerate the company-grouped HTML index, alternate views, and CSV in one command:\n\n```bash\nnode {SKILL_DIR}\u002Fscripts\u002Fcompile_report.mjs {OUTPUT_DIR} --open\n```\n\nThis generates:\n- `{OUTPUT_DIR}\u002Findex.html` — people grouped by company, ranked by company ICP score (opens in browser)\n- `{OUTPUT_DIR}\u002Fpeople.html` — filterable speaker list (alternate view)\n- `{OUTPUT_DIR}\u002Fcompanies.html` — ICP-ranked company table with attendees\n- `{OUTPUT_DIR}\u002Fresults.csv` — cold-outbound-ready spreadsheet\n\nThen present a summary in chat:\n\n```\n## Event Prospecting Complete — {Event Name}\n\n- **Total speakers extracted**: {count}\n- **Unique companies**: {count}\n- **ICP fits (score ≥ {threshold})**: {count}\n- **Speakers enriched**: {count}\n- **Score distribution** (companies):\n  - Strong fit (8-10): {count}\n  - Partial fit (5-7): {count}\n  - Weak fit (1-4): {count}\n- **Report opened in browser**: {OUTPUT_DIR}\u002Findex.html\n```\n\nShow the **top 5 people cards** as a markdown table sorted by company ICP score, then offer to:\n- Adjust `--icp-threshold` and re-run Steps 6-9\n- Export the CSV to a CRM\n",{"data":35,"body":40},{"name":4,"description":6,"license":26,"compatibility":36,"allowed-tools":37,"metadata":38},"Requires browse CLI (`npm install -g browse`) and BROWSERBASE_API_KEY env var. The same `browse` binary covers both API commands and JS-rendered page fallback.","Bash Agent AskUserQuestion",{"author":8,"version":39},"0.1.0",{"type":41,"children":42},"root",[43,51,57,117,159,209,219,355,364,463,472,493,500,505,633,677,681,687,692,906,932,938,959,975,984,1047,1707,1741,1747,1752,1781,1824,1829,1887,1893,1927,1954,1967,1972,2020,2039,2045,2063,2085,2090,2096,2128,2174,2420,2432,2547,2556,2566,2584,2632,2644,2650,2686,2958,2970,2976,3002,3025,3108,3340,3348,3357,3368,3431,3437,3457,3504,3509,3516,3528,3884,3897,3906,3934,3940,4221,4233,4372,4380,4389,4394,4441,4447,4452,4480,4485,4532,4537,4546,4558,4578],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":4},[48],{"type":49,"value":50},"text","Event Prospecting",{"type":44,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"Take a conference URL → get a ranked list of people the AE should talk to, with a \"why reach out\" rationale per person.",{"type":44,"tag":52,"props":58,"children":59},{},[60,66,68,75,77,83,85,91,93,99,101,107,109,115],{"type":44,"tag":61,"props":62,"children":63},"strong",{},[64],{"type":49,"value":65},"Required",{"type":49,"value":67},": ",{"type":44,"tag":69,"props":70,"children":72},"code",{"className":71},[],[73],{"type":49,"value":74},"BROWSERBASE_API_KEY",{"type":49,"value":76}," env var and the ",{"type":44,"tag":69,"props":78,"children":80},{"className":79},[],[81],{"type":49,"value":82},"browse",{"type":49,"value":84}," CLI installed (",{"type":44,"tag":69,"props":86,"children":88},{"className":87},[],[89],{"type":49,"value":90},"npm install -g browse",{"type":49,"value":92},"). Use ",{"type":44,"tag":69,"props":94,"children":96},{"className":95},[],[97],{"type":49,"value":98},"browse cloud ...",{"type":49,"value":100}," for API calls and ",{"type":44,"tag":69,"props":102,"children":104},{"className":103},[],[105],{"type":49,"value":106},"browse open",{"type":49,"value":108}," \u002F ",{"type":44,"tag":69,"props":110,"children":112},{"className":111},[],[113],{"type":49,"value":114},"browse get markdown",{"type":49,"value":116}," for JS-heavy speaker pages.",{"type":44,"tag":52,"props":118,"children":119},{},[120,125,127,133,135,141,143,149,151,157],{"type":44,"tag":61,"props":121,"children":122},{},[123],{"type":49,"value":124},"Path rules",{"type":49,"value":126},": Always use the full literal path in all Bash commands — NOT ",{"type":44,"tag":69,"props":128,"children":130},{"className":129},[],[131],{"type":49,"value":132},"~",{"type":49,"value":134}," or ",{"type":44,"tag":69,"props":136,"children":138},{"className":137},[],[139],{"type":49,"value":140},"$HOME",{"type":49,"value":142}," (both trigger \"shell expansion syntax\" approval prompts). Resolve the home directory once and use it everywhere. When constructing subagent prompts, replace ",{"type":44,"tag":69,"props":144,"children":146},{"className":145},[],[147],{"type":49,"value":148},"{SKILL_DIR}",{"type":49,"value":150}," with the full literal path (typically ",{"type":44,"tag":69,"props":152,"children":154},{"className":153},[],[155],{"type":49,"value":156},"\u002FUsers\u002Fjay\u002Fskills\u002Fskills\u002Fevent-prospecting",{"type":49,"value":158},").",{"type":44,"tag":52,"props":160,"children":161},{},[162,167,169,175,177,183,185,191,193,199,201,207],{"type":44,"tag":61,"props":163,"children":164},{},[165],{"type":49,"value":166},"Output directory",{"type":49,"value":168},": All event prospecting output goes to ",{"type":44,"tag":69,"props":170,"children":172},{"className":171},[],[173],{"type":49,"value":174},"~\u002FDesktop\u002F{event_slug}_prospects_{YYYY-MM-DD-HHMM}\u002F",{"type":49,"value":176},". Final deliverable is ",{"type":44,"tag":69,"props":178,"children":180},{"className":179},[],[181],{"type":49,"value":182},"index.html",{"type":49,"value":184}," (people grouped by company, ranked by company ICP), with ",{"type":44,"tag":69,"props":186,"children":188},{"className":187},[],[189],{"type":49,"value":190},"companies.html",{"type":49,"value":192}," and ",{"type":44,"tag":69,"props":194,"children":196},{"className":195},[],[197],{"type":49,"value":198},"people.html",{"type":49,"value":200}," (filterable) as alternate views, plus ",{"type":44,"tag":69,"props":202,"children":204},{"className":203},[],[205],{"type":49,"value":206},"results.csv",{"type":49,"value":208}," for cold-outbound import.",{"type":44,"tag":52,"props":210,"children":211},{},[212,217],{"type":44,"tag":61,"props":213,"children":214},{},[215],{"type":49,"value":216},"CRITICAL — Tool restrictions (applies to main agent AND all subagents)",{"type":49,"value":218},":",{"type":44,"tag":220,"props":221,"children":222},"ul",{},[223,237,273,316,329,337],{"type":44,"tag":224,"props":225,"children":226},"li",{},[227,229,235],{"type":49,"value":228},"All web searches: use ",{"type":44,"tag":69,"props":230,"children":232},{"className":231},[],[233],{"type":49,"value":234},"browse cloud search",{"type":49,"value":236},". NEVER use WebSearch.",{"type":44,"tag":224,"props":238,"children":239},{},[240,242,248,250,256,258,263,265,271],{"type":49,"value":241},"All page content extraction: use ",{"type":44,"tag":69,"props":243,"children":245},{"className":244},[],[246],{"type":49,"value":247},"node {SKILL_DIR}\u002Fscripts\u002Fextract_page.mjs \"\u003Curl>\"",{"type":49,"value":249},". This script fetches via ",{"type":44,"tag":69,"props":251,"children":253},{"className":252},[],[254],{"type":49,"value":255},"browse cloud fetch --output",{"type":49,"value":257},", parses title + meta tags + visible body text, and automatically falls back to ",{"type":44,"tag":69,"props":259,"children":261},{"className":260},[],[262],{"type":49,"value":114},{"type":49,"value":264}," when fetch fails or returns thin JS-rendered content. NEVER hand-roll a ",{"type":44,"tag":69,"props":266,"children":268},{"className":267},[],[269],{"type":49,"value":270},"browse cloud fetch | sed",{"type":49,"value":272}," pipeline. NEVER use WebFetch.",{"type":44,"tag":224,"props":274,"children":275},{},[276,278,283,285,291,292,298,300,306,308,314],{"type":49,"value":277},"All research output: subagents write ",{"type":44,"tag":61,"props":279,"children":280},{},[281],{"type":49,"value":282},"one markdown file per company OR per person",{"type":49,"value":284}," to ",{"type":44,"tag":69,"props":286,"children":288},{"className":287},[],[289],{"type":49,"value":290},"{OUTPUT_DIR}\u002Fcompanies\u002F{slug}.md",{"type":49,"value":134},{"type":44,"tag":69,"props":293,"children":295},{"className":294},[],[296],{"type":49,"value":297},"{OUTPUT_DIR}\u002Fpeople\u002F{slug}.md",{"type":49,"value":299}," using bash heredoc. NEVER use the Write tool or ",{"type":44,"tag":69,"props":301,"children":303},{"className":302},[],[304],{"type":49,"value":305},"python3 -c",{"type":49,"value":307},". See ",{"type":44,"tag":69,"props":309,"children":311},{"className":310},[],[312],{"type":49,"value":313},"references\u002Fexample-research.md",{"type":49,"value":315}," for both file formats.",{"type":44,"tag":224,"props":317,"children":318},{},[319,321,327],{"type":49,"value":320},"Report compilation: use ",{"type":44,"tag":69,"props":322,"children":324},{"className":323},[],[325],{"type":49,"value":326},"node {SKILL_DIR}\u002Fscripts\u002Fcompile_report.mjs {OUTPUT_DIR} --open",{"type":49,"value":328},".",{"type":44,"tag":224,"props":330,"children":331},{},[332],{"type":44,"tag":61,"props":333,"children":334},{},[335],{"type":49,"value":336},"Subagents must use ONLY the Bash tool. No other tools allowed.",{"type":44,"tag":224,"props":338,"children":339},{},[340,345,347,353],{"type":44,"tag":61,"props":341,"children":342},{},[343],{"type":49,"value":344},"HARD TOOL-CALL CAPS",{"type":49,"value":346},": ICP triage = 1 call\u002Fcompany; deep research = 5 calls\u002Fcompany; person enrichment = 4 calls\u002Fperson. See ",{"type":44,"tag":69,"props":348,"children":350},{"className":349},[],[351],{"type":49,"value":352},"references\u002Fworkflow.md",{"type":49,"value":354}," for enforcement detail.",{"type":44,"tag":52,"props":356,"children":357},{},[358,363],{"type":44,"tag":61,"props":359,"children":360},{},[361],{"type":49,"value":362},"CRITICAL — Anti-hallucination rules (applies to main agent AND all subagents)",{"type":49,"value":218},{"type":44,"tag":220,"props":365,"children":366},{},[367,396,409,443],{"type":44,"tag":224,"props":368,"children":369},{},[370,372,378,380,386,388,394],{"type":49,"value":371},"NEVER infer ",{"type":44,"tag":69,"props":373,"children":375},{"className":374},[],[376],{"type":49,"value":377},"product_description",{"type":49,"value":379},", ",{"type":44,"tag":69,"props":381,"children":383},{"className":382},[],[384],{"type":49,"value":385},"industry",{"type":49,"value":387},", or a person's ",{"type":44,"tag":69,"props":389,"children":391},{"className":390},[],[392],{"type":49,"value":393},"role_reason",{"type":49,"value":395}," from 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.",{"type":44,"tag":224,"props":397,"children":398},{},[399,401,407],{"type":49,"value":400},"NEVER let the user's own ICP leak into a target's description. If you don't know what the target does, write ",{"type":44,"tag":69,"props":402,"children":404},{"className":403},[],[405],{"type":49,"value":406},"Unknown",{"type":49,"value":408}," — do not pattern-match them onto the ICP.",{"type":44,"tag":224,"props":410,"children":411},{},[412,417,419,425,427,433,435,441],{"type":44,"tag":69,"props":413,"children":415},{"className":414},[],[416],{"type":49,"value":377},{"type":49,"value":418}," MUST quote or paraphrase a specific phrase from ",{"type":44,"tag":69,"props":420,"children":422},{"className":421},[],[423],{"type":49,"value":424},"extract_page.mjs",{"type":49,"value":426}," output. If none of TITLE\u002FMETA\u002FOG\u002FHEADINGS\u002FBODY yield a recognizable product statement, write ",{"type":44,"tag":69,"props":428,"children":430},{"className":429},[],[431],{"type":49,"value":432},"Unknown — homepage content not accessible",{"type":49,"value":434}," and cap ",{"type":44,"tag":69,"props":436,"children":438},{"className":437},[],[439],{"type":49,"value":440},"icp_fit_score",{"type":49,"value":442}," at 3.",{"type":44,"tag":224,"props":444,"children":445},{},[446,448,454,456,461],{"type":49,"value":447},"A person's ",{"type":44,"tag":69,"props":449,"children":451},{"className":450},[],[452],{"type":49,"value":453},"hook",{"type":49,"value":455}," MUST quote or paraphrase a specific finding from a ",{"type":44,"tag":69,"props":457,"children":459},{"className":458},[],[460],{"type":49,"value":234},{"type":49,"value":462}," result (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).",{"type":44,"tag":52,"props":464,"children":465},{},[466,471],{"type":44,"tag":61,"props":467,"children":468},{},[469],{"type":49,"value":470},"CRITICAL — Minimize permission prompts",{"type":49,"value":218},{"type":44,"tag":220,"props":473,"children":474},{},[475,480],{"type":44,"tag":224,"props":476,"children":477},{},[478],{"type":49,"value":479},"Subagents MUST batch ALL file writes into a SINGLE Bash call using chained heredocs. One Bash call = one permission prompt.",{"type":44,"tag":224,"props":481,"children":482},{},[483,485,491],{"type":49,"value":484},"Batch ALL searches and ALL fetches into single Bash calls using ",{"type":44,"tag":69,"props":486,"children":488},{"className":487},[],[489],{"type":49,"value":490},"&&",{"type":49,"value":492}," chaining.",{"type":44,"tag":494,"props":495,"children":497},"h2",{"id":496},"pipeline-overview",[498],{"type":49,"value":499},"Pipeline Overview",{"type":44,"tag":52,"props":501,"children":502},{},[503],{"type":49,"value":504},"Follow these 10 steps in order. Do not skip steps or reorder.",{"type":44,"tag":506,"props":507,"children":509},"ol",{"start":508},0,[510,520,536,546,562,577,587,603,613,623],{"type":44,"tag":224,"props":511,"children":512},{},[513,518],{"type":44,"tag":61,"props":514,"children":515},{},[516],{"type":49,"value":517},"Setup",{"type":49,"value":519}," — output dir + clean slate",{"type":44,"tag":224,"props":521,"children":522},{},[523,528,530],{"type":44,"tag":61,"props":524,"children":525},{},[526],{"type":49,"value":527},"Load profile",{"type":49,"value":529}," — read ",{"type":44,"tag":69,"props":531,"children":533},{"className":532},[],[534],{"type":49,"value":535},"profiles\u002F{user_slug}.json",{"type":44,"tag":224,"props":537,"children":538},{},[539,544],{"type":44,"tag":61,"props":540,"children":541},{},[542],{"type":49,"value":543},"Recon",{"type":49,"value":545}," — detect event platform",{"type":44,"tag":224,"props":547,"children":548},{},[549,554,556],{"type":44,"tag":61,"props":550,"children":551},{},[552],{"type":49,"value":553},"Extract people",{"type":49,"value":555}," — ",{"type":44,"tag":69,"props":557,"children":559},{"className":558},[],[560],{"type":49,"value":561},"people.jsonl",{"type":44,"tag":224,"props":563,"children":564},{},[565,570,571],{"type":44,"tag":61,"props":566,"children":567},{},[568],{"type":49,"value":569},"Group by company",{"type":49,"value":555},{"type":44,"tag":69,"props":572,"children":574},{"className":573},[],[575],{"type":49,"value":576},"seed_companies.txt",{"type":44,"tag":224,"props":578,"children":579},{},[580,585],{"type":44,"tag":61,"props":581,"children":582},{},[583],{"type":49,"value":584},"ICP triage",{"type":49,"value":586}," — fast company-level scoring (1 call\u002Fcompany)",{"type":44,"tag":224,"props":588,"children":589},{},[590,595,597],{"type":44,"tag":61,"props":591,"children":592},{},[593],{"type":49,"value":594},"Filter",{"type":49,"value":596}," — companies with ",{"type":44,"tag":69,"props":598,"children":600},{"className":599},[],[601],{"type":49,"value":602},"icp_fit_score >= --icp-threshold",{"type":44,"tag":224,"props":604,"children":605},{},[606,611],{"type":44,"tag":61,"props":607,"children":608},{},[609],{"type":49,"value":610},"Deep research",{"type":49,"value":612}," — full Plan→Research→Synthesize on ICP fits",{"type":44,"tag":224,"props":614,"children":615},{},[616,621],{"type":44,"tag":61,"props":617,"children":618},{},[619],{"type":49,"value":620},"Enrich speakers",{"type":49,"value":622}," — ask user: ICP-fit only (default) or all speakers",{"type":44,"tag":224,"props":624,"children":625},{},[626,631],{"type":44,"tag":61,"props":627,"children":628},{},[629],{"type":49,"value":630},"Compile report",{"type":49,"value":632}," — HTML + CSV, open in browser",{"type":44,"tag":52,"props":634,"children":635},{},[636,638,644,646,652,654,660,661,667,669,675],{"type":49,"value":637},"The user invokes the skill with a URL like ",{"type":44,"tag":69,"props":639,"children":641},{"className":640},[],[642],{"type":49,"value":643},"\u002Fevent-prospecting \u003CURL>",{"type":49,"value":645},". Parse ",{"type":44,"tag":69,"props":647,"children":649},{"className":648},[],[650],{"type":49,"value":651},"EVENT_URL",{"type":49,"value":653}," from that invocation message. Defaults: ",{"type":44,"tag":69,"props":655,"children":657},{"className":656},[],[658],{"type":49,"value":659},"DEPTH=deep",{"type":49,"value":379},{"type":44,"tag":69,"props":662,"children":664},{"className":663},[],[665],{"type":49,"value":666},"ICP_THRESHOLD=6",{"type":49,"value":668},". The ",{"type":44,"tag":69,"props":670,"children":672},{"className":671},[],[673],{"type":49,"value":674},"USER_SLUG",{"type":49,"value":676}," (ICP profile) is auto-resolved in Step 1 from whatever profile files exist locally — there is no built-in default profile. Do NOT ask the user to confirm the URL — they already gave you it.",{"type":44,"tag":678,"props":679,"children":680},"hr",{},[],{"type":44,"tag":494,"props":682,"children":684},{"id":683},"step-0-setup-output-directory",[685],{"type":49,"value":686},"Step 0: Setup Output Directory",{"type":44,"tag":52,"props":688,"children":689},{},[690],{"type":49,"value":691},"Derive the output directory from the URL the user gave you. Do NOT hardcode any event name.",{"type":44,"tag":693,"props":694,"children":699},"pre",{"className":695,"code":696,"language":697,"meta":698,"style":698},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# EVENT_URL came from the invocation message (whatever the user typed after `\u002Fevent-prospecting`)\nEVENT_SLUG=$(node -e 'const h = new URL(process.argv[1]).hostname.replace(\u002F^www\\.\u002F,\"\"); console.log(h.split(\".\")[0])' \"$EVENT_URL\")\nTIMESTAMP=$(date +%Y-%m-%d-%H%M)\nOUTPUT_DIR=\u002FUsers\u002Fjay\u002FDesktop\u002F${EVENT_SLUG}_prospects_${TIMESTAMP}\nmkdir -p \"$OUTPUT_DIR\u002Fcompanies\" \"$OUTPUT_DIR\u002Fpeople\"\n","bash","",[700],{"type":44,"tag":69,"props":701,"children":702},{"__ignoreMap":698},[703,715,778,805,856],{"type":44,"tag":704,"props":705,"children":708},"span",{"class":706,"line":707},"line",1,[709],{"type":44,"tag":704,"props":710,"children":712},{"style":711},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[713],{"type":49,"value":714},"# EVENT_URL came from the invocation message (whatever the user typed after `\u002Fevent-prospecting`)\n",{"type":44,"tag":704,"props":716,"children":718},{"class":706,"line":717},2,[719,725,731,737,743,748,753,758,763,768,773],{"type":44,"tag":704,"props":720,"children":722},{"style":721},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[723],{"type":49,"value":724},"EVENT_SLUG",{"type":44,"tag":704,"props":726,"children":728},{"style":727},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[729],{"type":49,"value":730},"=$(",{"type":44,"tag":704,"props":732,"children":734},{"style":733},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[735],{"type":49,"value":736},"node",{"type":44,"tag":704,"props":738,"children":740},{"style":739},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[741],{"type":49,"value":742}," -e",{"type":44,"tag":704,"props":744,"children":745},{"style":727},[746],{"type":49,"value":747}," '",{"type":44,"tag":704,"props":749,"children":750},{"style":739},[751],{"type":49,"value":752},"const h = new URL(process.argv[1]).hostname.replace(\u002F^www\\.\u002F,\"\"); console.log(h.split(\".\")[0])",{"type":44,"tag":704,"props":754,"children":755},{"style":727},[756],{"type":49,"value":757},"'",{"type":44,"tag":704,"props":759,"children":760},{"style":727},[761],{"type":49,"value":762}," \"",{"type":44,"tag":704,"props":764,"children":765},{"style":721},[766],{"type":49,"value":767},"$EVENT_URL",{"type":44,"tag":704,"props":769,"children":770},{"style":727},[771],{"type":49,"value":772},"\"",{"type":44,"tag":704,"props":774,"children":775},{"style":727},[776],{"type":49,"value":777},")\n",{"type":44,"tag":704,"props":779,"children":781},{"class":706,"line":780},3,[782,787,791,796,801],{"type":44,"tag":704,"props":783,"children":784},{"style":721},[785],{"type":49,"value":786},"TIMESTAMP",{"type":44,"tag":704,"props":788,"children":789},{"style":727},[790],{"type":49,"value":730},{"type":44,"tag":704,"props":792,"children":793},{"style":733},[794],{"type":49,"value":795},"date",{"type":44,"tag":704,"props":797,"children":798},{"style":739},[799],{"type":49,"value":800}," +%Y-%m-%d-%H%M",{"type":44,"tag":704,"props":802,"children":803},{"style":727},[804],{"type":49,"value":777},{"type":44,"tag":704,"props":806,"children":808},{"class":706,"line":807},4,[809,814,819,824,829,833,838,843,847,851],{"type":44,"tag":704,"props":810,"children":811},{"style":721},[812],{"type":49,"value":813},"OUTPUT_DIR",{"type":44,"tag":704,"props":815,"children":816},{"style":727},[817],{"type":49,"value":818},"=",{"type":44,"tag":704,"props":820,"children":821},{"style":739},[822],{"type":49,"value":823},"\u002FUsers\u002Fjay\u002FDesktop\u002F",{"type":44,"tag":704,"props":825,"children":826},{"style":727},[827],{"type":49,"value":828},"${",{"type":44,"tag":704,"props":830,"children":831},{"style":721},[832],{"type":49,"value":724},{"type":44,"tag":704,"props":834,"children":835},{"style":727},[836],{"type":49,"value":837},"}",{"type":44,"tag":704,"props":839,"children":840},{"style":739},[841],{"type":49,"value":842},"_prospects_",{"type":44,"tag":704,"props":844,"children":845},{"style":727},[846],{"type":49,"value":828},{"type":44,"tag":704,"props":848,"children":849},{"style":721},[850],{"type":49,"value":786},{"type":44,"tag":704,"props":852,"children":853},{"style":727},[854],{"type":49,"value":855},"}\n",{"type":44,"tag":704,"props":857,"children":859},{"class":706,"line":858},5,[860,865,870,874,879,884,888,892,896,901],{"type":44,"tag":704,"props":861,"children":862},{"style":733},[863],{"type":49,"value":864},"mkdir",{"type":44,"tag":704,"props":866,"children":867},{"style":739},[868],{"type":49,"value":869}," -p",{"type":44,"tag":704,"props":871,"children":872},{"style":727},[873],{"type":49,"value":762},{"type":44,"tag":704,"props":875,"children":876},{"style":721},[877],{"type":49,"value":878},"$OUTPUT_DIR",{"type":44,"tag":704,"props":880,"children":881},{"style":739},[882],{"type":49,"value":883},"\u002Fcompanies",{"type":44,"tag":704,"props":885,"children":886},{"style":727},[887],{"type":49,"value":772},{"type":44,"tag":704,"props":889,"children":890},{"style":727},[891],{"type":49,"value":762},{"type":44,"tag":704,"props":893,"children":894},{"style":721},[895],{"type":49,"value":878},{"type":44,"tag":704,"props":897,"children":898},{"style":739},[899],{"type":49,"value":900},"\u002Fpeople",{"type":44,"tag":704,"props":902,"children":903},{"style":727},[904],{"type":49,"value":905},"\"\n",{"type":44,"tag":52,"props":907,"children":908},{},[909,911,916,917,922,924,930],{"type":49,"value":910},"Use the full literal home path — never ",{"type":44,"tag":69,"props":912,"children":914},{"className":913},[],[915],{"type":49,"value":132},{"type":49,"value":134},{"type":44,"tag":69,"props":918,"children":920},{"className":919},[],[921],{"type":49,"value":140},{"type":49,"value":923},". Pass ",{"type":44,"tag":69,"props":925,"children":927},{"className":926},[],[928],{"type":49,"value":929},"{OUTPUT_DIR}",{"type":49,"value":931}," as the full literal path to all subagent prompts.",{"type":44,"tag":494,"props":933,"children":935},{"id":934},"step-1-load-user-profile",[936],{"type":49,"value":937},"Step 1: Load User Profile",{"type":44,"tag":52,"props":939,"children":940},{},[941,943,949,951,957],{"type":49,"value":942},"The profile defines the ICP that ICP triage and deep research score against. Load from ",{"type":44,"tag":69,"props":944,"children":946},{"className":945},[],[947],{"type":49,"value":948},"{SKILL_DIR}\u002Fprofiles\u002F{user_slug}.json",{"type":49,"value":950}," (interchangeable across all GTM skills — same shape as company-research). ",{"type":44,"tag":69,"props":952,"children":954},{"className":953},[],[955],{"type":49,"value":956},"example.json",{"type":49,"value":958}," is a template, not a real profile — never use it.",{"type":44,"tag":52,"props":960,"children":961},{},[962,973],{"type":44,"tag":61,"props":963,"children":964},{},[965,967],{"type":49,"value":966},"DO NOT look outside ",{"type":44,"tag":69,"props":968,"children":970},{"className":969},[],[971],{"type":49,"value":972},"{SKILL_DIR}\u002Fprofiles\u002F",{"type":49,"value":974}," for profiles — never reach into other skills' directories. If a profile is needed elsewhere, the user copies it explicitly.",{"type":44,"tag":52,"props":976,"children":977},{},[978,983],{"type":44,"tag":61,"props":979,"children":980},{},[981],{"type":49,"value":982},"Resolution order",{"type":49,"value":218},{"type":44,"tag":506,"props":985,"children":986},{},[987,1000,1020],{"type":44,"tag":224,"props":988,"children":989},{},[990,992,998],{"type":49,"value":991},"If the user invoked with ",{"type":44,"tag":69,"props":993,"children":995},{"className":994},[],[996],{"type":49,"value":997},"--user-company \u003Cslug>",{"type":49,"value":999},", use that slug.",{"type":44,"tag":224,"props":1001,"children":1002},{},[1003,1005,1011,1013,1018],{"type":49,"value":1004},"Else, list ",{"type":44,"tag":69,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":49,"value":1010},"profiles\u002F*.json",{"type":49,"value":1012}," excluding ",{"type":44,"tag":69,"props":1014,"children":1016},{"className":1015},[],[1017],{"type":49,"value":956},{"type":49,"value":1019},". If exactly one profile exists, use it (and tell the user which one). If multiple exist, ask the user (plain chat) which one.",{"type":44,"tag":224,"props":1021,"children":1022},{},[1023,1025,1030,1032,1038,1039,1045],{"type":49,"value":1024},"If zero profiles exist, ",{"type":44,"tag":61,"props":1026,"children":1027},{},[1028],{"type":49,"value":1029},"fail loudly",{"type":49,"value":1031}," and instruct the user to create one (copy ",{"type":44,"tag":69,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":49,"value":1037},"profiles\u002Fexample.json",{"type":49,"value":284},{"type":44,"tag":69,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":49,"value":1044},"profiles\u002F\u003Cyour_slug>.json",{"type":49,"value":1046}," and fill it in, or run the company-research skill which builds one automatically).",{"type":44,"tag":693,"props":1048,"children":1050},{"className":695,"code":1049,"language":697,"meta":698,"style":698},"PROFILES=$(ls {SKILL_DIR}\u002Fprofiles\u002F*.json 2>\u002Fdev\u002Fnull | xargs -n1 basename | sed 's\u002F\\.json$\u002F\u002F' | grep -v '^example$')\nCOUNT=$(echo \"$PROFILES\" | grep -c .)\n\nif [ -z \"$USER_SLUG\" ]; then\n  if [ \"$COUNT\" -eq 0 ]; then\n    echo \"No profiles found in {SKILL_DIR}\u002Fprofiles\u002F. Copy profiles\u002Fexample.json to profiles\u002F\u003Cyour_slug>.json and fill it in, or run the company-research skill to build one.\"\n    exit 1\n  elif [ \"$COUNT\" -eq 1 ]; then\n    USER_SLUG=$PROFILES\n    echo \"Using the only profile available: ${USER_SLUG}\"\n  else\n    echo \"Multiple profiles found:\"\n    echo \"$PROFILES\" | sed 's\u002F^\u002F  - \u002F'\n    echo \"Re-invoke with --user-company \u003Cslug> to pick one.\"\n    exit 1\n  fi\nfi\n\ntest -f {SKILL_DIR}\u002Fprofiles\u002F${USER_SLUG}.json || {\n  echo \"Profile not found: profiles\u002F${USER_SLUG}.json\"\n  exit 1\n}\ncat {SKILL_DIR}\u002Fprofiles\u002F${USER_SLUG}.json\n",[1051],{"type":44,"tag":69,"props":1052,"children":1053},{"__ignoreMap":698},[1054,1169,1222,1231,1273,1317,1339,1353,1395,1413,1443,1452,1473,1515,1536,1548,1557,1566,1574,1618,1656,1669,1677],{"type":44,"tag":704,"props":1055,"children":1056},{"class":706,"line":707},[1057,1062,1066,1071,1076,1081,1086,1091,1096,1101,1106,1111,1116,1120,1125,1129,1134,1138,1142,1147,1152,1156,1161,1165],{"type":44,"tag":704,"props":1058,"children":1059},{"style":721},[1060],{"type":49,"value":1061},"PROFILES",{"type":44,"tag":704,"props":1063,"children":1064},{"style":727},[1065],{"type":49,"value":730},{"type":44,"tag":704,"props":1067,"children":1068},{"style":733},[1069],{"type":49,"value":1070},"ls",{"type":44,"tag":704,"props":1072,"children":1073},{"style":739},[1074],{"type":49,"value":1075}," {SKILL_DIR}\u002Fprofiles\u002F",{"type":44,"tag":704,"props":1077,"children":1078},{"style":721},[1079],{"type":49,"value":1080},"*",{"type":44,"tag":704,"props":1082,"children":1083},{"style":739},[1084],{"type":49,"value":1085},".json",{"type":44,"tag":704,"props":1087,"children":1088},{"style":727},[1089],{"type":49,"value":1090}," 2>",{"type":44,"tag":704,"props":1092,"children":1093},{"style":739},[1094],{"type":49,"value":1095},"\u002Fdev\u002Fnull",{"type":44,"tag":704,"props":1097,"children":1098},{"style":727},[1099],{"type":49,"value":1100}," |",{"type":44,"tag":704,"props":1102,"children":1103},{"style":733},[1104],{"type":49,"value":1105}," xargs",{"type":44,"tag":704,"props":1107,"children":1108},{"style":739},[1109],{"type":49,"value":1110}," -n1",{"type":44,"tag":704,"props":1112,"children":1113},{"style":739},[1114],{"type":49,"value":1115}," basename",{"type":44,"tag":704,"props":1117,"children":1118},{"style":727},[1119],{"type":49,"value":1100},{"type":44,"tag":704,"props":1121,"children":1122},{"style":733},[1123],{"type":49,"value":1124}," sed",{"type":44,"tag":704,"props":1126,"children":1127},{"style":727},[1128],{"type":49,"value":747},{"type":44,"tag":704,"props":1130,"children":1131},{"style":739},[1132],{"type":49,"value":1133},"s\u002F\\.json$\u002F\u002F",{"type":44,"tag":704,"props":1135,"children":1136},{"style":727},[1137],{"type":49,"value":757},{"type":44,"tag":704,"props":1139,"children":1140},{"style":727},[1141],{"type":49,"value":1100},{"type":44,"tag":704,"props":1143,"children":1144},{"style":733},[1145],{"type":49,"value":1146}," grep",{"type":44,"tag":704,"props":1148,"children":1149},{"style":739},[1150],{"type":49,"value":1151}," -v",{"type":44,"tag":704,"props":1153,"children":1154},{"style":727},[1155],{"type":49,"value":747},{"type":44,"tag":704,"props":1157,"children":1158},{"style":739},[1159],{"type":49,"value":1160},"^example$",{"type":44,"tag":704,"props":1162,"children":1163},{"style":727},[1164],{"type":49,"value":757},{"type":44,"tag":704,"props":1166,"children":1167},{"style":727},[1168],{"type":49,"value":777},{"type":44,"tag":704,"props":1170,"children":1171},{"class":706,"line":717},[1172,1177,1181,1187,1191,1196,1200,1204,1208,1213,1218],{"type":44,"tag":704,"props":1173,"children":1174},{"style":721},[1175],{"type":49,"value":1176},"COUNT",{"type":44,"tag":704,"props":1178,"children":1179},{"style":727},[1180],{"type":49,"value":730},{"type":44,"tag":704,"props":1182,"children":1184},{"style":1183},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1185],{"type":49,"value":1186},"echo",{"type":44,"tag":704,"props":1188,"children":1189},{"style":727},[1190],{"type":49,"value":762},{"type":44,"tag":704,"props":1192,"children":1193},{"style":721},[1194],{"type":49,"value":1195},"$PROFILES",{"type":44,"tag":704,"props":1197,"children":1198},{"style":727},[1199],{"type":49,"value":772},{"type":44,"tag":704,"props":1201,"children":1202},{"style":727},[1203],{"type":49,"value":1100},{"type":44,"tag":704,"props":1205,"children":1206},{"style":733},[1207],{"type":49,"value":1146},{"type":44,"tag":704,"props":1209,"children":1210},{"style":739},[1211],{"type":49,"value":1212}," -c",{"type":44,"tag":704,"props":1214,"children":1215},{"style":739},[1216],{"type":49,"value":1217}," .",{"type":44,"tag":704,"props":1219,"children":1220},{"style":727},[1221],{"type":49,"value":777},{"type":44,"tag":704,"props":1223,"children":1224},{"class":706,"line":780},[1225],{"type":44,"tag":704,"props":1226,"children":1228},{"emptyLinePlaceholder":1227},true,[1229],{"type":49,"value":1230},"\n",{"type":44,"tag":704,"props":1232,"children":1233},{"class":706,"line":807},[1234,1240,1245,1250,1254,1259,1263,1268],{"type":44,"tag":704,"props":1235,"children":1237},{"style":1236},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1238],{"type":49,"value":1239},"if",{"type":44,"tag":704,"props":1241,"children":1242},{"style":727},[1243],{"type":49,"value":1244}," [",{"type":44,"tag":704,"props":1246,"children":1247},{"style":727},[1248],{"type":49,"value":1249}," -z",{"type":44,"tag":704,"props":1251,"children":1252},{"style":727},[1253],{"type":49,"value":762},{"type":44,"tag":704,"props":1255,"children":1256},{"style":721},[1257],{"type":49,"value":1258},"$USER_SLUG",{"type":44,"tag":704,"props":1260,"children":1261},{"style":727},[1262],{"type":49,"value":772},{"type":44,"tag":704,"props":1264,"children":1265},{"style":727},[1266],{"type":49,"value":1267}," ];",{"type":44,"tag":704,"props":1269,"children":1270},{"style":1236},[1271],{"type":49,"value":1272}," then\n",{"type":44,"tag":704,"props":1274,"children":1275},{"class":706,"line":858},[1276,1281,1285,1289,1294,1298,1303,1309,1313],{"type":44,"tag":704,"props":1277,"children":1278},{"style":1236},[1279],{"type":49,"value":1280},"  if",{"type":44,"tag":704,"props":1282,"children":1283},{"style":727},[1284],{"type":49,"value":1244},{"type":44,"tag":704,"props":1286,"children":1287},{"style":727},[1288],{"type":49,"value":762},{"type":44,"tag":704,"props":1290,"children":1291},{"style":721},[1292],{"type":49,"value":1293},"$COUNT",{"type":44,"tag":704,"props":1295,"children":1296},{"style":727},[1297],{"type":49,"value":772},{"type":44,"tag":704,"props":1299,"children":1300},{"style":727},[1301],{"type":49,"value":1302}," -eq",{"type":44,"tag":704,"props":1304,"children":1306},{"style":1305},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1307],{"type":49,"value":1308}," 0",{"type":44,"tag":704,"props":1310,"children":1311},{"style":727},[1312],{"type":49,"value":1267},{"type":44,"tag":704,"props":1314,"children":1315},{"style":1236},[1316],{"type":49,"value":1272},{"type":44,"tag":704,"props":1318,"children":1320},{"class":706,"line":1319},6,[1321,1326,1330,1335],{"type":44,"tag":704,"props":1322,"children":1323},{"style":1183},[1324],{"type":49,"value":1325},"    echo",{"type":44,"tag":704,"props":1327,"children":1328},{"style":727},[1329],{"type":49,"value":762},{"type":44,"tag":704,"props":1331,"children":1332},{"style":739},[1333],{"type":49,"value":1334},"No profiles found in {SKILL_DIR}\u002Fprofiles\u002F. Copy profiles\u002Fexample.json to profiles\u002F\u003Cyour_slug>.json and fill it in, or run the company-research skill to build one.",{"type":44,"tag":704,"props":1336,"children":1337},{"style":727},[1338],{"type":49,"value":905},{"type":44,"tag":704,"props":1340,"children":1342},{"class":706,"line":1341},7,[1343,1348],{"type":44,"tag":704,"props":1344,"children":1345},{"style":1183},[1346],{"type":49,"value":1347},"    exit",{"type":44,"tag":704,"props":1349,"children":1350},{"style":1305},[1351],{"type":49,"value":1352}," 1\n",{"type":44,"tag":704,"props":1354,"children":1356},{"class":706,"line":1355},8,[1357,1362,1366,1370,1374,1378,1382,1387,1391],{"type":44,"tag":704,"props":1358,"children":1359},{"style":1236},[1360],{"type":49,"value":1361},"  elif",{"type":44,"tag":704,"props":1363,"children":1364},{"style":727},[1365],{"type":49,"value":1244},{"type":44,"tag":704,"props":1367,"children":1368},{"style":727},[1369],{"type":49,"value":762},{"type":44,"tag":704,"props":1371,"children":1372},{"style":721},[1373],{"type":49,"value":1293},{"type":44,"tag":704,"props":1375,"children":1376},{"style":727},[1377],{"type":49,"value":772},{"type":44,"tag":704,"props":1379,"children":1380},{"style":727},[1381],{"type":49,"value":1302},{"type":44,"tag":704,"props":1383,"children":1384},{"style":1305},[1385],{"type":49,"value":1386}," 1",{"type":44,"tag":704,"props":1388,"children":1389},{"style":727},[1390],{"type":49,"value":1267},{"type":44,"tag":704,"props":1392,"children":1393},{"style":1236},[1394],{"type":49,"value":1272},{"type":44,"tag":704,"props":1396,"children":1398},{"class":706,"line":1397},9,[1399,1404,1408],{"type":44,"tag":704,"props":1400,"children":1401},{"style":721},[1402],{"type":49,"value":1403},"    USER_SLUG",{"type":44,"tag":704,"props":1405,"children":1406},{"style":727},[1407],{"type":49,"value":818},{"type":44,"tag":704,"props":1409,"children":1410},{"style":721},[1411],{"type":49,"value":1412},"$PROFILES\n",{"type":44,"tag":704,"props":1414,"children":1416},{"class":706,"line":1415},10,[1417,1421,1425,1430,1434,1438],{"type":44,"tag":704,"props":1418,"children":1419},{"style":1183},[1420],{"type":49,"value":1325},{"type":44,"tag":704,"props":1422,"children":1423},{"style":727},[1424],{"type":49,"value":762},{"type":44,"tag":704,"props":1426,"children":1427},{"style":739},[1428],{"type":49,"value":1429},"Using the only profile available: ",{"type":44,"tag":704,"props":1431,"children":1432},{"style":727},[1433],{"type":49,"value":828},{"type":44,"tag":704,"props":1435,"children":1436},{"style":721},[1437],{"type":49,"value":674},{"type":44,"tag":704,"props":1439,"children":1440},{"style":727},[1441],{"type":49,"value":1442},"}\"\n",{"type":44,"tag":704,"props":1444,"children":1446},{"class":706,"line":1445},11,[1447],{"type":44,"tag":704,"props":1448,"children":1449},{"style":1236},[1450],{"type":49,"value":1451},"  else\n",{"type":44,"tag":704,"props":1453,"children":1455},{"class":706,"line":1454},12,[1456,1460,1464,1469],{"type":44,"tag":704,"props":1457,"children":1458},{"style":1183},[1459],{"type":49,"value":1325},{"type":44,"tag":704,"props":1461,"children":1462},{"style":727},[1463],{"type":49,"value":762},{"type":44,"tag":704,"props":1465,"children":1466},{"style":739},[1467],{"type":49,"value":1468},"Multiple profiles found:",{"type":44,"tag":704,"props":1470,"children":1471},{"style":727},[1472],{"type":49,"value":905},{"type":44,"tag":704,"props":1474,"children":1476},{"class":706,"line":1475},13,[1477,1481,1485,1489,1493,1497,1501,1505,1510],{"type":44,"tag":704,"props":1478,"children":1479},{"style":1183},[1480],{"type":49,"value":1325},{"type":44,"tag":704,"props":1482,"children":1483},{"style":727},[1484],{"type":49,"value":762},{"type":44,"tag":704,"props":1486,"children":1487},{"style":721},[1488],{"type":49,"value":1195},{"type":44,"tag":704,"props":1490,"children":1491},{"style":727},[1492],{"type":49,"value":772},{"type":44,"tag":704,"props":1494,"children":1495},{"style":727},[1496],{"type":49,"value":1100},{"type":44,"tag":704,"props":1498,"children":1499},{"style":733},[1500],{"type":49,"value":1124},{"type":44,"tag":704,"props":1502,"children":1503},{"style":727},[1504],{"type":49,"value":747},{"type":44,"tag":704,"props":1506,"children":1507},{"style":739},[1508],{"type":49,"value":1509},"s\u002F^\u002F  - \u002F",{"type":44,"tag":704,"props":1511,"children":1512},{"style":727},[1513],{"type":49,"value":1514},"'\n",{"type":44,"tag":704,"props":1516,"children":1518},{"class":706,"line":1517},14,[1519,1523,1527,1532],{"type":44,"tag":704,"props":1520,"children":1521},{"style":1183},[1522],{"type":49,"value":1325},{"type":44,"tag":704,"props":1524,"children":1525},{"style":727},[1526],{"type":49,"value":762},{"type":44,"tag":704,"props":1528,"children":1529},{"style":739},[1530],{"type":49,"value":1531},"Re-invoke with --user-company \u003Cslug> to pick one.",{"type":44,"tag":704,"props":1533,"children":1534},{"style":727},[1535],{"type":49,"value":905},{"type":44,"tag":704,"props":1537,"children":1539},{"class":706,"line":1538},15,[1540,1544],{"type":44,"tag":704,"props":1541,"children":1542},{"style":1183},[1543],{"type":49,"value":1347},{"type":44,"tag":704,"props":1545,"children":1546},{"style":1305},[1547],{"type":49,"value":1352},{"type":44,"tag":704,"props":1549,"children":1551},{"class":706,"line":1550},16,[1552],{"type":44,"tag":704,"props":1553,"children":1554},{"style":1236},[1555],{"type":49,"value":1556},"  fi\n",{"type":44,"tag":704,"props":1558,"children":1560},{"class":706,"line":1559},17,[1561],{"type":44,"tag":704,"props":1562,"children":1563},{"style":1236},[1564],{"type":49,"value":1565},"fi\n",{"type":44,"tag":704,"props":1567,"children":1569},{"class":706,"line":1568},18,[1570],{"type":44,"tag":704,"props":1571,"children":1572},{"emptyLinePlaceholder":1227},[1573],{"type":49,"value":1230},{"type":44,"tag":704,"props":1575,"children":1577},{"class":706,"line":1576},19,[1578,1583,1588,1592,1596,1600,1604,1608,1613],{"type":44,"tag":704,"props":1579,"children":1580},{"style":1183},[1581],{"type":49,"value":1582},"test",{"type":44,"tag":704,"props":1584,"children":1585},{"style":739},[1586],{"type":49,"value":1587}," -f",{"type":44,"tag":704,"props":1589,"children":1590},{"style":739},[1591],{"type":49,"value":1075},{"type":44,"tag":704,"props":1593,"children":1594},{"style":727},[1595],{"type":49,"value":828},{"type":44,"tag":704,"props":1597,"children":1598},{"style":721},[1599],{"type":49,"value":674},{"type":44,"tag":704,"props":1601,"children":1602},{"style":727},[1603],{"type":49,"value":837},{"type":44,"tag":704,"props":1605,"children":1606},{"style":739},[1607],{"type":49,"value":1085},{"type":44,"tag":704,"props":1609,"children":1610},{"style":727},[1611],{"type":49,"value":1612}," ||",{"type":44,"tag":704,"props":1614,"children":1615},{"style":727},[1616],{"type":49,"value":1617}," {\n",{"type":44,"tag":704,"props":1619,"children":1621},{"class":706,"line":1620},20,[1622,1627,1631,1636,1640,1644,1648,1652],{"type":44,"tag":704,"props":1623,"children":1624},{"style":1183},[1625],{"type":49,"value":1626},"  echo",{"type":44,"tag":704,"props":1628,"children":1629},{"style":727},[1630],{"type":49,"value":762},{"type":44,"tag":704,"props":1632,"children":1633},{"style":739},[1634],{"type":49,"value":1635},"Profile not found: profiles\u002F",{"type":44,"tag":704,"props":1637,"children":1638},{"style":727},[1639],{"type":49,"value":828},{"type":44,"tag":704,"props":1641,"children":1642},{"style":721},[1643],{"type":49,"value":674},{"type":44,"tag":704,"props":1645,"children":1646},{"style":727},[1647],{"type":49,"value":837},{"type":44,"tag":704,"props":1649,"children":1650},{"style":739},[1651],{"type":49,"value":1085},{"type":44,"tag":704,"props":1653,"children":1654},{"style":727},[1655],{"type":49,"value":905},{"type":44,"tag":704,"props":1657,"children":1659},{"class":706,"line":1658},21,[1660,1665],{"type":44,"tag":704,"props":1661,"children":1662},{"style":1183},[1663],{"type":49,"value":1664},"  exit",{"type":44,"tag":704,"props":1666,"children":1667},{"style":1305},[1668],{"type":49,"value":1352},{"type":44,"tag":704,"props":1670,"children":1672},{"class":706,"line":1671},22,[1673],{"type":44,"tag":704,"props":1674,"children":1675},{"style":727},[1676],{"type":49,"value":855},{"type":44,"tag":704,"props":1678,"children":1680},{"class":706,"line":1679},23,[1681,1686,1690,1694,1698,1702],{"type":44,"tag":704,"props":1682,"children":1683},{"style":733},[1684],{"type":49,"value":1685},"cat",{"type":44,"tag":704,"props":1687,"children":1688},{"style":739},[1689],{"type":49,"value":1075},{"type":44,"tag":704,"props":1691,"children":1692},{"style":727},[1693],{"type":49,"value":828},{"type":44,"tag":704,"props":1695,"children":1696},{"style":721},[1697],{"type":49,"value":674},{"type":44,"tag":704,"props":1699,"children":1700},{"style":727},[1701],{"type":49,"value":837},{"type":44,"tag":704,"props":1703,"children":1704},{"style":739},[1705],{"type":49,"value":1706},".json\n",{"type":44,"tag":52,"props":1708,"children":1709},{},[1710,1712,1718,1719,1725,1726,1732,1733,1739],{"type":49,"value":1711},"The profile yields: ",{"type":44,"tag":69,"props":1713,"children":1715},{"className":1714},[],[1716],{"type":49,"value":1717},"company",{"type":49,"value":379},{"type":44,"tag":69,"props":1720,"children":1722},{"className":1721},[],[1723],{"type":49,"value":1724},"product",{"type":49,"value":379},{"type":44,"tag":69,"props":1727,"children":1729},{"className":1728},[],[1730],{"type":49,"value":1731},"icp_description",{"type":49,"value":379},{"type":44,"tag":69,"props":1734,"children":1736},{"className":1735},[],[1737],{"type":49,"value":1738},"existing_customers",{"type":49,"value":1740},". These get embedded verbatim in every subagent prompt downstream.",{"type":44,"tag":494,"props":1742,"children":1744},{"id":1743},"step-2-recon",[1745],{"type":49,"value":1746},"Step 2: Recon",{"type":44,"tag":52,"props":1748,"children":1749},{},[1750],{"type":49,"value":1751},"Detect the event platform and extraction strategy. One command:",{"type":44,"tag":693,"props":1753,"children":1755},{"className":695,"code":1754,"language":697,"meta":698,"style":698},"node {SKILL_DIR}\u002Fscripts\u002Frecon.mjs {EVENT_URL} {OUTPUT_DIR}\n",[1756],{"type":44,"tag":69,"props":1757,"children":1758},{"__ignoreMap":698},[1759],{"type":44,"tag":704,"props":1760,"children":1761},{"class":706,"line":707},[1762,1766,1771,1776],{"type":44,"tag":704,"props":1763,"children":1764},{"style":733},[1765],{"type":49,"value":736},{"type":44,"tag":704,"props":1767,"children":1768},{"style":739},[1769],{"type":49,"value":1770}," {SKILL_DIR}\u002Fscripts\u002Frecon.mjs",{"type":44,"tag":704,"props":1772,"children":1773},{"style":739},[1774],{"type":49,"value":1775}," {EVENT_URL}",{"type":44,"tag":704,"props":1777,"children":1778},{"style":739},[1779],{"type":49,"value":1780}," {OUTPUT_DIR}\n",{"type":44,"tag":52,"props":1782,"children":1783},{},[1784,1786,1792,1794,1800,1801,1807,1809,1815,1816,1822],{"type":49,"value":1785},"Writes ",{"type":44,"tag":69,"props":1787,"children":1789},{"className":1788},[],[1790],{"type":49,"value":1791},"{OUTPUT_DIR}\u002Frecon.json",{"type":49,"value":1793}," with ",{"type":44,"tag":69,"props":1795,"children":1797},{"className":1796},[],[1798],{"type":49,"value":1799},"platform",{"type":49,"value":379},{"type":44,"tag":69,"props":1802,"children":1804},{"className":1803},[],[1805],{"type":49,"value":1806},"strategy",{"type":49,"value":1808},", and (for Next.js) ",{"type":44,"tag":69,"props":1810,"children":1812},{"className":1811},[],[1813],{"type":49,"value":1814},"nextDataPaths",{"type":49,"value":307},{"type":44,"tag":69,"props":1817,"children":1819},{"className":1818},[],[1820],{"type":49,"value":1821},"references\u002Fevent-platforms.md",{"type":49,"value":1823}," for the platform catalog and detection priority.",{"type":44,"tag":52,"props":1825,"children":1826},{},[1827],{"type":49,"value":1828},"Expected outcomes:",{"type":44,"tag":220,"props":1830,"children":1831},{},[1832,1845,1856,1867],{"type":44,"tag":224,"props":1833,"children":1834},{},[1835,1837,1843],{"type":49,"value":1836},"Stripe Sessions class (Next.js): ",{"type":44,"tag":69,"props":1838,"children":1840},{"className":1839},[],[1841],{"type":49,"value":1842},"platform: \"next-data\"",{"type":49,"value":1844},", 1-3 paths",{"type":44,"tag":224,"props":1846,"children":1847},{},[1848,1850],{"type":49,"value":1849},"Sessionize: ",{"type":44,"tag":69,"props":1851,"children":1853},{"className":1852},[],[1854],{"type":49,"value":1855},"platform: \"sessionize\"",{"type":44,"tag":224,"props":1857,"children":1858},{},[1859,1861],{"type":49,"value":1860},"Lu.ma \u002F Eventbrite: ",{"type":44,"tag":69,"props":1862,"children":1864},{"className":1863},[],[1865],{"type":49,"value":1866},"platform: \"luma\" | \"eventbrite\"",{"type":44,"tag":224,"props":1868,"children":1869},{},[1870,1872,1878,1879,1885],{"type":49,"value":1871},"Anything else: ",{"type":44,"tag":69,"props":1873,"children":1875},{"className":1874},[],[1876],{"type":49,"value":1877},"platform: \"custom\"",{"type":49,"value":379},{"type":44,"tag":69,"props":1880,"children":1882},{"className":1881},[],[1883],{"type":49,"value":1884},"strategy: \"markdown\"",{"type":49,"value":1886}," (best-effort fallback)",{"type":44,"tag":494,"props":1888,"children":1890},{"id":1889},"step-3-extract-people",[1891],{"type":49,"value":1892},"Step 3: Extract People",{"type":44,"tag":693,"props":1894,"children":1896},{"className":695,"code":1895,"language":697,"meta":698,"style":698},"node {SKILL_DIR}\u002Fscripts\u002Fextract_event.mjs {OUTPUT_DIR} --user-company {USER_SLUG}\n",[1897],{"type":44,"tag":69,"props":1898,"children":1899},{"__ignoreMap":698},[1900],{"type":44,"tag":704,"props":1901,"children":1902},{"class":706,"line":707},[1903,1907,1912,1917,1922],{"type":44,"tag":704,"props":1904,"children":1905},{"style":733},[1906],{"type":49,"value":736},{"type":44,"tag":704,"props":1908,"children":1909},{"style":739},[1910],{"type":49,"value":1911}," {SKILL_DIR}\u002Fscripts\u002Fextract_event.mjs",{"type":44,"tag":704,"props":1913,"children":1914},{"style":739},[1915],{"type":49,"value":1916}," {OUTPUT_DIR}",{"type":44,"tag":704,"props":1918,"children":1919},{"style":739},[1920],{"type":49,"value":1921}," --user-company",{"type":44,"tag":704,"props":1923,"children":1924},{"style":739},[1925],{"type":49,"value":1926}," {USER_SLUG}\n",{"type":44,"tag":52,"props":1928,"children":1929},{},[1930,1932,1938,1940,1945,1947,1952],{"type":49,"value":1931},"Reads ",{"type":44,"tag":69,"props":1933,"children":1935},{"className":1934},[],[1936],{"type":49,"value":1937},"recon.json",{"type":49,"value":1939},", dispatches to the platform-specific extractor, writes ",{"type":44,"tag":69,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":49,"value":561},{"type":49,"value":1946}," (one speaker per line) and ",{"type":44,"tag":69,"props":1948,"children":1950},{"className":1949},[],[1951],{"type":49,"value":576},{"type":49,"value":1953}," (deduped companies).",{"type":44,"tag":52,"props":1955,"children":1956},{},[1957,1959,1965],{"type":49,"value":1958},"The ",{"type":44,"tag":69,"props":1960,"children":1962},{"className":1961},[],[1963],{"type":49,"value":1964},"--user-company",{"type":49,"value":1966}," flag also drops the host-org's own employees (a Stripe-hosted event drops Stripe employees) and the user's own employees from the speaker list — those aren't prospects.",{"type":44,"tag":52,"props":1968,"children":1969},{},[1970],{"type":49,"value":1971},"Sanity-check the output:",{"type":44,"tag":693,"props":1973,"children":1975},{"className":695,"code":1974,"language":697,"meta":698,"style":698},"wc -l {OUTPUT_DIR}\u002Fpeople.jsonl {OUTPUT_DIR}\u002Fseed_companies.txt\nhead -3 {OUTPUT_DIR}\u002Fpeople.jsonl\n",[1976],{"type":44,"tag":69,"props":1977,"children":1978},{"__ignoreMap":698},[1979,2002],{"type":44,"tag":704,"props":1980,"children":1981},{"class":706,"line":707},[1982,1987,1992,1997],{"type":44,"tag":704,"props":1983,"children":1984},{"style":733},[1985],{"type":49,"value":1986},"wc",{"type":44,"tag":704,"props":1988,"children":1989},{"style":739},[1990],{"type":49,"value":1991}," -l",{"type":44,"tag":704,"props":1993,"children":1994},{"style":739},[1995],{"type":49,"value":1996}," {OUTPUT_DIR}\u002Fpeople.jsonl",{"type":44,"tag":704,"props":1998,"children":1999},{"style":739},[2000],{"type":49,"value":2001}," {OUTPUT_DIR}\u002Fseed_companies.txt\n",{"type":44,"tag":704,"props":2003,"children":2004},{"class":706,"line":717},[2005,2010,2015],{"type":44,"tag":704,"props":2006,"children":2007},{"style":733},[2008],{"type":49,"value":2009},"head",{"type":44,"tag":704,"props":2011,"children":2012},{"style":739},[2013],{"type":49,"value":2014}," -3",{"type":44,"tag":704,"props":2016,"children":2017},{"style":739},[2018],{"type":49,"value":2019}," {OUTPUT_DIR}\u002Fpeople.jsonl\n",{"type":44,"tag":52,"props":2021,"children":2022},{},[2023,2025,2030,2032,2037],{"type":49,"value":2024},"If ",{"type":44,"tag":69,"props":2026,"children":2028},{"className":2027},[],[2029],{"type":49,"value":561},{"type":49,"value":2031}," is empty or under ~10 lines, recon picked the wrong platform — see ",{"type":44,"tag":69,"props":2033,"children":2035},{"className":2034},[],[2036],{"type":49,"value":1821},{"type":49,"value":2038}," and re-run with adjusted strategy.",{"type":44,"tag":494,"props":2040,"children":2042},{"id":2041},"step-4-group-by-company",[2043],{"type":49,"value":2044},"Step 4: Group by Company",{"type":44,"tag":52,"props":2046,"children":2047},{},[2048,2054,2056,2061],{"type":44,"tag":69,"props":2049,"children":2051},{"className":2050},[],[2052],{"type":49,"value":2053},"extract_event.mjs",{"type":49,"value":2055}," emits ",{"type":44,"tag":69,"props":2057,"children":2059},{"className":2058},[],[2060],{"type":49,"value":576},{"type":49,"value":2062}," already (one company per line, deduped, sorted). This step is informational — verify the count looks reasonable before fanning out:",{"type":44,"tag":693,"props":2064,"children":2066},{"className":695,"code":2065,"language":697,"meta":698,"style":698},"wc -l {OUTPUT_DIR}\u002Fseed_companies.txt\n",[2067],{"type":44,"tag":69,"props":2068,"children":2069},{"__ignoreMap":698},[2070],{"type":44,"tag":704,"props":2071,"children":2072},{"class":706,"line":707},[2073,2077,2081],{"type":44,"tag":704,"props":2074,"children":2075},{"style":733},[2076],{"type":49,"value":1986},{"type":44,"tag":704,"props":2078,"children":2079},{"style":739},[2080],{"type":49,"value":1991},{"type":44,"tag":704,"props":2082,"children":2083},{"style":739},[2084],{"type":49,"value":2001},{"type":44,"tag":52,"props":2086,"children":2087},{},[2088],{"type":49,"value":2089},"Expected: roughly 0.4-0.6× the speaker count (most events have ~2 speakers per company on average, some companies send 5+, many send 1).",{"type":44,"tag":494,"props":2091,"children":2093},{"id":2092},"step-5-icp-triage",[2094],{"type":49,"value":2095},"Step 5: ICP Triage",{"type":44,"tag":52,"props":2097,"children":2098},{},[2099,2104,2106,2111,2113,2119,2121,2126],{"type":44,"tag":61,"props":2100,"children":2101},{},[2102],{"type":49,"value":2103},"Fast pass — one tool call per company, no deep research.",{"type":49,"value":2105}," Score every company in ",{"type":44,"tag":69,"props":2107,"children":2109},{"className":2108},[],[2110],{"type":49,"value":576},{"type":49,"value":2112}," against the user's ICP and write a thin triage stub to ",{"type":44,"tag":69,"props":2114,"children":2116},{"className":2115},[],[2117],{"type":49,"value":2118},"companies\u002F{slug}.md",{"type":49,"value":2120},". Companies with ",{"type":44,"tag":69,"props":2122,"children":2124},{"className":2123},[],[2125],{"type":49,"value":602},{"type":49,"value":2127}," (default 6) advance to Step 7's deep research; the rest stay as triage stubs.",{"type":44,"tag":52,"props":2129,"children":2130},{},[2131,2136,2138,2143,2145,2150,2152,2157,2159,2164,2166,2172],{"type":44,"tag":61,"props":2132,"children":2133},{},[2134],{"type":49,"value":2135},"Dispatch pattern",{"type":49,"value":2137},": split ",{"type":44,"tag":69,"props":2139,"children":2141},{"className":2140},[],[2142],{"type":49,"value":576},{"type":49,"value":2144}," into batches of ~10 and fan out N subagents in a SINGLE Agent batch (multiple Agent tool calls in one message). Each subagent runs the prompt from ",{"type":44,"tag":69,"props":2146,"children":2148},{"className":2147},[],[2149],{"type":49,"value":352},{"type":49,"value":2151}," → \"ICP Triage\" section. Hard cap: ",{"type":44,"tag":61,"props":2153,"children":2154},{},[2155],{"type":49,"value":2156},"1 tool call per company",{"type":49,"value":2158}," (just ",{"type":44,"tag":69,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":49,"value":424},{"type":49,"value":2165}," on the homepage), enforced via the ",{"type":44,"tag":69,"props":2167,"children":2169},{"className":2168},[],[2170],{"type":49,"value":2171},"# browse call N\u002F1",{"type":49,"value":2173}," comment pattern.",{"type":44,"tag":693,"props":2175,"children":2177},{"className":695,"code":2176,"language":697,"meta":698,"style":698},"# Build batch files: each batch line is \"name|guessed_homepage|slug\".\n# extract_event.mjs only emits company NAMES (no URLs), so we slugify and guess\n# https:\u002F\u002F{slug-without-spaces}.com as the canonical homepage. The triage subagent\n# is allowed to write product_description: \"Unknown — homepage content not accessible\"\n# and cap score at 3 if the guessed URL 404s — that's the documented fallback in\n# workflow.md (rule 3 of the ICP Triage prompt). Burning a real browse cloud search to\n# discover the URL would bust the 1-call-per-company HARD CAP.\nnode -e '\nconst fs = require(\"fs\");\nconst slugify = (s) => (s || \"\").toLowerCase().replace(\u002F[^a-z0-9]+\u002Fg, \"-\").replace(\u002F^-+|-+$\u002Fg, \"\");\nconst seed = fs.readFileSync(\"{OUTPUT_DIR}\u002Fseed_companies.txt\", \"utf-8\").split(\"\\n\").filter(Boolean);\nconst lines = seed.map(c => {\n  const slug = slugify(c);\n  const guessedHost = c.toLowerCase().replace(\u002F[^a-z0-9]\u002Fg, \"\");\n  return `${c}|https:\u002F\u002F${guessedHost}.com|${slug}`;\n});\nfs.writeFileSync(\"{OUTPUT_DIR}\u002F_seed_with_urls.txt\", lines.join(\"\\n\") + \"\\n\");\n'\n\n# Split into ~10-company batches\nsplit -l 10 {OUTPUT_DIR}\u002F_seed_with_urls.txt {OUTPUT_DIR}\u002F_batch_triage_\n\n# Count batches → number of subagents to dispatch (cap at 6 per message; second wave for the rest)\nls {OUTPUT_DIR}\u002F_batch_triage_* | wc -l\n",[2178],{"type":44,"tag":69,"props":2179,"children":2180},{"__ignoreMap":698},[2181,2189,2197,2205,2213,2221,2229,2237,2253,2261,2269,2277,2285,2293,2301,2309,2317,2325,2332,2339,2347,2374,2381,2389],{"type":44,"tag":704,"props":2182,"children":2183},{"class":706,"line":707},[2184],{"type":44,"tag":704,"props":2185,"children":2186},{"style":711},[2187],{"type":49,"value":2188},"# Build batch files: each batch line is \"name|guessed_homepage|slug\".\n",{"type":44,"tag":704,"props":2190,"children":2191},{"class":706,"line":717},[2192],{"type":44,"tag":704,"props":2193,"children":2194},{"style":711},[2195],{"type":49,"value":2196},"# extract_event.mjs only emits company NAMES (no URLs), so we slugify and guess\n",{"type":44,"tag":704,"props":2198,"children":2199},{"class":706,"line":780},[2200],{"type":44,"tag":704,"props":2201,"children":2202},{"style":711},[2203],{"type":49,"value":2204},"# https:\u002F\u002F{slug-without-spaces}.com as the canonical homepage. The triage subagent\n",{"type":44,"tag":704,"props":2206,"children":2207},{"class":706,"line":807},[2208],{"type":44,"tag":704,"props":2209,"children":2210},{"style":711},[2211],{"type":49,"value":2212},"# is allowed to write product_description: \"Unknown — homepage content not accessible\"\n",{"type":44,"tag":704,"props":2214,"children":2215},{"class":706,"line":858},[2216],{"type":44,"tag":704,"props":2217,"children":2218},{"style":711},[2219],{"type":49,"value":2220},"# and cap score at 3 if the guessed URL 404s — that's the documented fallback in\n",{"type":44,"tag":704,"props":2222,"children":2223},{"class":706,"line":1319},[2224],{"type":44,"tag":704,"props":2225,"children":2226},{"style":711},[2227],{"type":49,"value":2228},"# workflow.md (rule 3 of the ICP Triage prompt). Burning a real browse cloud search to\n",{"type":44,"tag":704,"props":2230,"children":2231},{"class":706,"line":1341},[2232],{"type":44,"tag":704,"props":2233,"children":2234},{"style":711},[2235],{"type":49,"value":2236},"# discover the URL would bust the 1-call-per-company HARD CAP.\n",{"type":44,"tag":704,"props":2238,"children":2239},{"class":706,"line":1355},[2240,2244,2248],{"type":44,"tag":704,"props":2241,"children":2242},{"style":733},[2243],{"type":49,"value":736},{"type":44,"tag":704,"props":2245,"children":2246},{"style":739},[2247],{"type":49,"value":742},{"type":44,"tag":704,"props":2249,"children":2250},{"style":727},[2251],{"type":49,"value":2252}," '\n",{"type":44,"tag":704,"props":2254,"children":2255},{"class":706,"line":1397},[2256],{"type":44,"tag":704,"props":2257,"children":2258},{"style":739},[2259],{"type":49,"value":2260},"const fs = require(\"fs\");\n",{"type":44,"tag":704,"props":2262,"children":2263},{"class":706,"line":1415},[2264],{"type":44,"tag":704,"props":2265,"children":2266},{"style":739},[2267],{"type":49,"value":2268},"const slugify = (s) => (s || \"\").toLowerCase().replace(\u002F[^a-z0-9]+\u002Fg, \"-\").replace(\u002F^-+|-+$\u002Fg, \"\");\n",{"type":44,"tag":704,"props":2270,"children":2271},{"class":706,"line":1445},[2272],{"type":44,"tag":704,"props":2273,"children":2274},{"style":739},[2275],{"type":49,"value":2276},"const seed = fs.readFileSync(\"{OUTPUT_DIR}\u002Fseed_companies.txt\", \"utf-8\").split(\"\\n\").filter(Boolean);\n",{"type":44,"tag":704,"props":2278,"children":2279},{"class":706,"line":1454},[2280],{"type":44,"tag":704,"props":2281,"children":2282},{"style":739},[2283],{"type":49,"value":2284},"const lines = seed.map(c => {\n",{"type":44,"tag":704,"props":2286,"children":2287},{"class":706,"line":1475},[2288],{"type":44,"tag":704,"props":2289,"children":2290},{"style":739},[2291],{"type":49,"value":2292},"  const slug = slugify(c);\n",{"type":44,"tag":704,"props":2294,"children":2295},{"class":706,"line":1517},[2296],{"type":44,"tag":704,"props":2297,"children":2298},{"style":739},[2299],{"type":49,"value":2300},"  const guessedHost = c.toLowerCase().replace(\u002F[^a-z0-9]\u002Fg, \"\");\n",{"type":44,"tag":704,"props":2302,"children":2303},{"class":706,"line":1538},[2304],{"type":44,"tag":704,"props":2305,"children":2306},{"style":739},[2307],{"type":49,"value":2308},"  return `${c}|https:\u002F\u002F${guessedHost}.com|${slug}`;\n",{"type":44,"tag":704,"props":2310,"children":2311},{"class":706,"line":1550},[2312],{"type":44,"tag":704,"props":2313,"children":2314},{"style":739},[2315],{"type":49,"value":2316},"});\n",{"type":44,"tag":704,"props":2318,"children":2319},{"class":706,"line":1559},[2320],{"type":44,"tag":704,"props":2321,"children":2322},{"style":739},[2323],{"type":49,"value":2324},"fs.writeFileSync(\"{OUTPUT_DIR}\u002F_seed_with_urls.txt\", lines.join(\"\\n\") + \"\\n\");\n",{"type":44,"tag":704,"props":2326,"children":2327},{"class":706,"line":1568},[2328],{"type":44,"tag":704,"props":2329,"children":2330},{"style":727},[2331],{"type":49,"value":1514},{"type":44,"tag":704,"props":2333,"children":2334},{"class":706,"line":1576},[2335],{"type":44,"tag":704,"props":2336,"children":2337},{"emptyLinePlaceholder":1227},[2338],{"type":49,"value":1230},{"type":44,"tag":704,"props":2340,"children":2341},{"class":706,"line":1620},[2342],{"type":44,"tag":704,"props":2343,"children":2344},{"style":711},[2345],{"type":49,"value":2346},"# Split into ~10-company batches\n",{"type":44,"tag":704,"props":2348,"children":2349},{"class":706,"line":1658},[2350,2355,2359,2364,2369],{"type":44,"tag":704,"props":2351,"children":2352},{"style":733},[2353],{"type":49,"value":2354},"split",{"type":44,"tag":704,"props":2356,"children":2357},{"style":739},[2358],{"type":49,"value":1991},{"type":44,"tag":704,"props":2360,"children":2361},{"style":1305},[2362],{"type":49,"value":2363}," 10",{"type":44,"tag":704,"props":2365,"children":2366},{"style":739},[2367],{"type":49,"value":2368}," {OUTPUT_DIR}\u002F_seed_with_urls.txt",{"type":44,"tag":704,"props":2370,"children":2371},{"style":739},[2372],{"type":49,"value":2373}," {OUTPUT_DIR}\u002F_batch_triage_\n",{"type":44,"tag":704,"props":2375,"children":2376},{"class":706,"line":1671},[2377],{"type":44,"tag":704,"props":2378,"children":2379},{"emptyLinePlaceholder":1227},[2380],{"type":49,"value":1230},{"type":44,"tag":704,"props":2382,"children":2383},{"class":706,"line":1679},[2384],{"type":44,"tag":704,"props":2385,"children":2386},{"style":711},[2387],{"type":49,"value":2388},"# Count batches → number of subagents to dispatch (cap at 6 per message; second wave for the rest)\n",{"type":44,"tag":704,"props":2390,"children":2392},{"class":706,"line":2391},24,[2393,2397,2402,2406,2410,2415],{"type":44,"tag":704,"props":2394,"children":2395},{"style":733},[2396],{"type":49,"value":1070},{"type":44,"tag":704,"props":2398,"children":2399},{"style":739},[2400],{"type":49,"value":2401}," {OUTPUT_DIR}\u002F_batch_triage_",{"type":44,"tag":704,"props":2403,"children":2404},{"style":721},[2405],{"type":49,"value":1080},{"type":44,"tag":704,"props":2407,"children":2408},{"style":727},[2409],{"type":49,"value":1100},{"type":44,"tag":704,"props":2411,"children":2412},{"style":733},[2413],{"type":49,"value":2414}," wc",{"type":44,"tag":704,"props":2416,"children":2417},{"style":739},[2418],{"type":49,"value":2419}," -l\n",{"type":44,"tag":52,"props":2421,"children":2422},{},[2423,2425,2430],{"type":49,"value":2424},"Then in a single message, dispatch one Agent call per batch (up to 6 in parallel; subsequent waves after the first returns). Each Agent gets the prompt from ",{"type":44,"tag":69,"props":2426,"children":2428},{"className":2427},[],[2429],{"type":49,"value":352},{"type":49,"value":2431}," → \"ICP Triage\" with these substitutions before sending:",{"type":44,"tag":220,"props":2433,"children":2434},{},[2435,2452,2462,2487,2511,2529],{"type":44,"tag":224,"props":2436,"children":2437},{},[2438,2443,2445,2450],{"type":44,"tag":69,"props":2439,"children":2441},{"className":2440},[],[2442],{"type":49,"value":148},{"type":49,"value":2444}," → full literal skill path (e.g. ",{"type":44,"tag":69,"props":2446,"children":2448},{"className":2447},[],[2449],{"type":49,"value":156},{"type":49,"value":2451},")",{"type":44,"tag":224,"props":2453,"children":2454},{},[2455,2460],{"type":44,"tag":69,"props":2456,"children":2458},{"className":2457},[],[2459],{"type":49,"value":929},{"type":49,"value":2461}," → full literal output path",{"type":44,"tag":224,"props":2463,"children":2464},{},[2465,2471,2472,2478,2479,2485],{"type":44,"tag":69,"props":2466,"children":2468},{"className":2467},[],[2469],{"type":49,"value":2470},"{USER_COMPANY}",{"type":49,"value":379},{"type":44,"tag":69,"props":2473,"children":2475},{"className":2474},[],[2476],{"type":49,"value":2477},"{USER_PRODUCT}",{"type":49,"value":379},{"type":44,"tag":69,"props":2480,"children":2482},{"className":2481},[],[2483],{"type":49,"value":2484},"{ICP_DESCRIPTION}",{"type":49,"value":2486}," → from the loaded profile",{"type":44,"tag":224,"props":2488,"children":2489},{},[2490,2496,2498,2503,2505],{"type":44,"tag":69,"props":2491,"children":2493},{"className":2492},[],[2494],{"type":49,"value":2495},"{EVENT_NAME}",{"type":49,"value":2497}," → ",{"type":44,"tag":69,"props":2499,"children":2501},{"className":2500},[],[2502],{"type":49,"value":1937},{"type":49,"value":2504}," ",{"type":44,"tag":69,"props":2506,"children":2508},{"className":2507},[],[2509],{"type":49,"value":2510},".title",{"type":44,"tag":224,"props":2512,"children":2513},{},[2514,2520,2522,2528],{"type":44,"tag":69,"props":2515,"children":2517},{"className":2516},[],[2518],{"type":49,"value":2519},"{COMPANY_LIST}",{"type":49,"value":2521}," → contents of the batch file (e.g. ",{"type":44,"tag":69,"props":2523,"children":2525},{"className":2524},[],[2526],{"type":49,"value":2527},"cat {OUTPUT_DIR}\u002F_batch_triage_aa",{"type":49,"value":2451},{"type":44,"tag":224,"props":2530,"children":2531},{},[2532,2538,2540,2546],{"type":44,"tag":69,"props":2533,"children":2535},{"className":2534},[],[2536],{"type":49,"value":2537},"{TOTAL}",{"type":49,"value":2539}," → number of lines in this batch (substitute into ",{"type":44,"tag":69,"props":2541,"children":2543},{"className":2542},[],[2544],{"type":49,"value":2545},"# browse call N\u002F{TOTAL}",{"type":49,"value":2451},{"type":44,"tag":52,"props":2548,"children":2549},{},[2550,2555],{"type":44,"tag":61,"props":2551,"children":2552},{},[2553],{"type":49,"value":2554},"Agent dispatch (skeleton, repeat per batch in one message)",{"type":49,"value":218},{"type":44,"tag":693,"props":2557,"children":2561},{"className":2558,"code":2560,"language":49},[2559],"language-text","Agent(\n  description: \"ICP triage batch aa\",\n  prompt: \u003CICP Triage prompt from workflow.md with all placeholders substituted>,\n  subagent_type: \"general-purpose\"\n)\nAgent(\n  description: \"ICP triage batch ab\",\n  prompt: \u003Csame prompt template, COMPANY_LIST swapped to batch ab>,\n  subagent_type: \"general-purpose\"\n)\n... up to 6 per message\n",[2562],{"type":44,"tag":69,"props":2563,"children":2564},{"__ignoreMap":698},[2565],{"type":49,"value":2560},{"type":44,"tag":52,"props":2567,"children":2568},{},[2569,2571,2576,2578,2583],{"type":49,"value":2570},"After all subagents return, verify every company in ",{"type":44,"tag":69,"props":2572,"children":2574},{"className":2573},[],[2575],{"type":49,"value":576},{"type":49,"value":2577}," has a corresponding ",{"type":44,"tag":69,"props":2579,"children":2581},{"className":2580},[],[2582],{"type":49,"value":2118},{"type":49,"value":218},{"type":44,"tag":693,"props":2585,"children":2587},{"className":695,"code":2586,"language":697,"meta":698,"style":698},"ls {OUTPUT_DIR}\u002Fcompanies\u002F*.md | wc -l\n# Should equal `wc -l {OUTPUT_DIR}\u002Fseed_companies.txt`\n",[2588],{"type":44,"tag":69,"props":2589,"children":2590},{"__ignoreMap":698},[2591,2624],{"type":44,"tag":704,"props":2592,"children":2593},{"class":706,"line":707},[2594,2598,2603,2607,2612,2616,2620],{"type":44,"tag":704,"props":2595,"children":2596},{"style":733},[2597],{"type":49,"value":1070},{"type":44,"tag":704,"props":2599,"children":2600},{"style":739},[2601],{"type":49,"value":2602}," {OUTPUT_DIR}\u002Fcompanies\u002F",{"type":44,"tag":704,"props":2604,"children":2605},{"style":721},[2606],{"type":49,"value":1080},{"type":44,"tag":704,"props":2608,"children":2609},{"style":739},[2610],{"type":49,"value":2611},".md",{"type":44,"tag":704,"props":2613,"children":2614},{"style":727},[2615],{"type":49,"value":1100},{"type":44,"tag":704,"props":2617,"children":2618},{"style":733},[2619],{"type":49,"value":2414},{"type":44,"tag":704,"props":2621,"children":2622},{"style":739},[2623],{"type":49,"value":2419},{"type":44,"tag":704,"props":2625,"children":2626},{"class":706,"line":717},[2627],{"type":44,"tag":704,"props":2628,"children":2629},{"style":711},[2630],{"type":49,"value":2631},"# Should equal `wc -l {OUTPUT_DIR}\u002Fseed_companies.txt`\n",{"type":44,"tag":52,"props":2633,"children":2634},{},[2635,2637,2643],{"type":49,"value":2636},"Clean up the batch files: ",{"type":44,"tag":69,"props":2638,"children":2640},{"className":2639},[],[2641],{"type":49,"value":2642},"rm {OUTPUT_DIR}\u002F_batch_triage_*",{"type":49,"value":328},{"type":44,"tag":494,"props":2645,"children":2647},{"id":2646},"step-6-filter-by-icp-threshold",[2648],{"type":49,"value":2649},"Step 6: Filter by ICP Threshold",{"type":44,"tag":52,"props":2651,"children":2652},{},[2653,2655,2661,2663,2669,2671,2677,2679,2685],{"type":49,"value":2654},"Read each ",{"type":44,"tag":69,"props":2656,"children":2658},{"className":2657},[],[2659],{"type":49,"value":2660},"companies\u002F*.md",{"type":49,"value":2662}," frontmatter, keep those with ",{"type":44,"tag":69,"props":2664,"children":2666},{"className":2665},[],[2667],{"type":49,"value":2668},"icp_fit_score >= 6",{"type":49,"value":2670}," (or whatever ",{"type":44,"tag":69,"props":2672,"children":2674},{"className":2673},[],[2675],{"type":49,"value":2676},"--icp-threshold",{"type":49,"value":2678}," is). Write the surviving company slugs to ",{"type":44,"tag":69,"props":2680,"children":2682},{"className":2681},[],[2683],{"type":49,"value":2684},"{OUTPUT_DIR}\u002Ficp_fits.txt",{"type":49,"value":218},{"type":44,"tag":693,"props":2687,"children":2689},{"className":695,"code":2688,"language":697,"meta":698,"style":698},"THRESHOLD=6   # from --icp-threshold flag\nfor f in {OUTPUT_DIR}\u002Fcompanies\u002F*.md; do\n  score=$(awk '\u002F^icp_fit_score:\u002F{print $2; exit}' \"$f\")\n  if [ -n \"$score\" ] && [ \"$score\" -ge \"$THRESHOLD\" ]; then\n    basename \"$f\" .md\n  fi\ndone > {OUTPUT_DIR}\u002Ficp_fits.txt\n\nwc -l {OUTPUT_DIR}\u002Ficp_fits.txt\n",[2690],{"type":44,"tag":69,"props":2691,"children":2692},{"__ignoreMap":698},[2693,2715,2753,2800,2881,2906,2913,2935,2942],{"type":44,"tag":704,"props":2694,"children":2695},{"class":706,"line":707},[2696,2701,2705,2710],{"type":44,"tag":704,"props":2697,"children":2698},{"style":721},[2699],{"type":49,"value":2700},"THRESHOLD",{"type":44,"tag":704,"props":2702,"children":2703},{"style":727},[2704],{"type":49,"value":818},{"type":44,"tag":704,"props":2706,"children":2707},{"style":739},[2708],{"type":49,"value":2709},"6",{"type":44,"tag":704,"props":2711,"children":2712},{"style":711},[2713],{"type":49,"value":2714},"   # from --icp-threshold flag\n",{"type":44,"tag":704,"props":2716,"children":2717},{"class":706,"line":717},[2718,2723,2728,2733,2738,2743,2748],{"type":44,"tag":704,"props":2719,"children":2720},{"style":1236},[2721],{"type":49,"value":2722},"for",{"type":44,"tag":704,"props":2724,"children":2725},{"style":721},[2726],{"type":49,"value":2727}," f ",{"type":44,"tag":704,"props":2729,"children":2730},{"style":1236},[2731],{"type":49,"value":2732},"in",{"type":44,"tag":704,"props":2734,"children":2735},{"style":721},[2736],{"type":49,"value":2737}," {",{"type":44,"tag":704,"props":2739,"children":2740},{"style":733},[2741],{"type":49,"value":2742},"OUTPUT_DIR}\u002Fcompanies\u002F*.md",{"type":44,"tag":704,"props":2744,"children":2745},{"style":727},[2746],{"type":49,"value":2747},";",{"type":44,"tag":704,"props":2749,"children":2750},{"style":1236},[2751],{"type":49,"value":2752}," do\n",{"type":44,"tag":704,"props":2754,"children":2755},{"class":706,"line":780},[2756,2761,2765,2770,2774,2779,2783,2787,2792,2796],{"type":44,"tag":704,"props":2757,"children":2758},{"style":721},[2759],{"type":49,"value":2760},"  score",{"type":44,"tag":704,"props":2762,"children":2763},{"style":727},[2764],{"type":49,"value":730},{"type":44,"tag":704,"props":2766,"children":2767},{"style":733},[2768],{"type":49,"value":2769},"awk",{"type":44,"tag":704,"props":2771,"children":2772},{"style":727},[2773],{"type":49,"value":747},{"type":44,"tag":704,"props":2775,"children":2776},{"style":739},[2777],{"type":49,"value":2778},"\u002F^icp_fit_score:\u002F{print $2; exit}",{"type":44,"tag":704,"props":2780,"children":2781},{"style":727},[2782],{"type":49,"value":757},{"type":44,"tag":704,"props":2784,"children":2785},{"style":727},[2786],{"type":49,"value":762},{"type":44,"tag":704,"props":2788,"children":2789},{"style":721},[2790],{"type":49,"value":2791},"$f",{"type":44,"tag":704,"props":2793,"children":2794},{"style":727},[2795],{"type":49,"value":772},{"type":44,"tag":704,"props":2797,"children":2798},{"style":727},[2799],{"type":49,"value":777},{"type":44,"tag":704,"props":2801,"children":2802},{"class":706,"line":807},[2803,2807,2811,2816,2820,2825,2829,2834,2839,2843,2847,2851,2855,2860,2864,2869,2873,2877],{"type":44,"tag":704,"props":2804,"children":2805},{"style":1236},[2806],{"type":49,"value":1280},{"type":44,"tag":704,"props":2808,"children":2809},{"style":727},[2810],{"type":49,"value":1244},{"type":44,"tag":704,"props":2812,"children":2813},{"style":727},[2814],{"type":49,"value":2815}," -n",{"type":44,"tag":704,"props":2817,"children":2818},{"style":727},[2819],{"type":49,"value":762},{"type":44,"tag":704,"props":2821,"children":2822},{"style":721},[2823],{"type":49,"value":2824},"$score",{"type":44,"tag":704,"props":2826,"children":2827},{"style":727},[2828],{"type":49,"value":772},{"type":44,"tag":704,"props":2830,"children":2831},{"style":727},[2832],{"type":49,"value":2833}," ]",{"type":44,"tag":704,"props":2835,"children":2836},{"style":727},[2837],{"type":49,"value":2838}," &&",{"type":44,"tag":704,"props":2840,"children":2841},{"style":727},[2842],{"type":49,"value":1244},{"type":44,"tag":704,"props":2844,"children":2845},{"style":727},[2846],{"type":49,"value":762},{"type":44,"tag":704,"props":2848,"children":2849},{"style":721},[2850],{"type":49,"value":2824},{"type":44,"tag":704,"props":2852,"children":2853},{"style":727},[2854],{"type":49,"value":772},{"type":44,"tag":704,"props":2856,"children":2857},{"style":727},[2858],{"type":49,"value":2859}," -ge",{"type":44,"tag":704,"props":2861,"children":2862},{"style":727},[2863],{"type":49,"value":762},{"type":44,"tag":704,"props":2865,"children":2866},{"style":721},[2867],{"type":49,"value":2868},"$THRESHOLD",{"type":44,"tag":704,"props":2870,"children":2871},{"style":727},[2872],{"type":49,"value":772},{"type":44,"tag":704,"props":2874,"children":2875},{"style":727},[2876],{"type":49,"value":1267},{"type":44,"tag":704,"props":2878,"children":2879},{"style":1236},[2880],{"type":49,"value":1272},{"type":44,"tag":704,"props":2882,"children":2883},{"class":706,"line":858},[2884,2889,2893,2897,2901],{"type":44,"tag":704,"props":2885,"children":2886},{"style":733},[2887],{"type":49,"value":2888},"    basename",{"type":44,"tag":704,"props":2890,"children":2891},{"style":727},[2892],{"type":49,"value":762},{"type":44,"tag":704,"props":2894,"children":2895},{"style":721},[2896],{"type":49,"value":2791},{"type":44,"tag":704,"props":2898,"children":2899},{"style":727},[2900],{"type":49,"value":772},{"type":44,"tag":704,"props":2902,"children":2903},{"style":739},[2904],{"type":49,"value":2905}," .md\n",{"type":44,"tag":704,"props":2907,"children":2908},{"class":706,"line":1319},[2909],{"type":44,"tag":704,"props":2910,"children":2911},{"style":1236},[2912],{"type":49,"value":1556},{"type":44,"tag":704,"props":2914,"children":2915},{"class":706,"line":1341},[2916,2921,2926,2930],{"type":44,"tag":704,"props":2917,"children":2918},{"style":1236},[2919],{"type":49,"value":2920},"done",{"type":44,"tag":704,"props":2922,"children":2923},{"style":727},[2924],{"type":49,"value":2925}," >",{"type":44,"tag":704,"props":2927,"children":2928},{"style":721},[2929],{"type":49,"value":2737},{"type":44,"tag":704,"props":2931,"children":2932},{"style":733},[2933],{"type":49,"value":2934},"OUTPUT_DIR}\u002Ficp_fits.txt\n",{"type":44,"tag":704,"props":2936,"children":2937},{"class":706,"line":1355},[2938],{"type":44,"tag":704,"props":2939,"children":2940},{"emptyLinePlaceholder":1227},[2941],{"type":49,"value":1230},{"type":44,"tag":704,"props":2943,"children":2944},{"class":706,"line":1397},[2945,2949,2953],{"type":44,"tag":704,"props":2946,"children":2947},{"style":733},[2948],{"type":49,"value":1986},{"type":44,"tag":704,"props":2950,"children":2951},{"style":739},[2952],{"type":49,"value":1991},{"type":44,"tag":704,"props":2954,"children":2955},{"style":739},[2956],{"type":49,"value":2957}," {OUTPUT_DIR}\u002Ficp_fits.txt\n",{"type":44,"tag":52,"props":2959,"children":2960},{},[2961,2963,2968],{"type":49,"value":2962},"Expected: 20-40% of ",{"type":44,"tag":69,"props":2964,"children":2966},{"className":2965},[],[2967],{"type":49,"value":576},{"type":49,"value":2969},". If the survival rate is \u003C 10%, the threshold may be too high or the ICP description too narrow — surface a warning to the user.",{"type":44,"tag":494,"props":2971,"children":2973},{"id":2972},"step-7-deep-research",[2974],{"type":49,"value":2975},"Step 7: Deep Research",{"type":44,"tag":52,"props":2977,"children":2978},{},[2979,2981,2986,2988,2993,2995,3001],{"type":49,"value":2980},"Full Plan→Research→Synthesize on ICP-fit companies only. Hard cap: ",{"type":44,"tag":61,"props":2982,"children":2983},{},[2984],{"type":49,"value":2985},"5 tool calls per company",{"type":49,"value":2987}," (homepage extract + 2-3 sub-question searches + 1-2 supplementary fetches). Subagents OVERWRITE the existing ",{"type":44,"tag":69,"props":2989,"children":2991},{"className":2990},[],[2992],{"type":49,"value":2118},{"type":49,"value":2994}," triage stub with the richer deep-research version (frontmatter ",{"type":44,"tag":69,"props":2996,"children":2998},{"className":2997},[],[2999],{"type":49,"value":3000},"triage_only: false",{"type":49,"value":158},{"type":44,"tag":52,"props":3003,"children":3004},{},[3005,3009,3010,3016,3018,3023],{"type":44,"tag":61,"props":3006,"children":3007},{},[3008],{"type":49,"value":2135},{"type":49,"value":2137},{"type":44,"tag":69,"props":3011,"children":3013},{"className":3012},[],[3014],{"type":49,"value":3015},"icp_fits.txt",{"type":49,"value":3017}," into batches of ~5 (deep mode default) and fan out one Agent per batch in a SINGLE message (up to 6 Agents per message). Each Agent gets the prompt from ",{"type":44,"tag":69,"props":3019,"children":3021},{"className":3020},[],[3022],{"type":49,"value":352},{"type":49,"value":3024}," → \"Deep Research\" with these substitutions:",{"type":44,"tag":220,"props":3026,"children":3027},{},[3028,3060,3091],{"type":44,"tag":224,"props":3029,"children":3030},{},[3031,3036,3037,3042,3043,3048,3049,3054,3055],{"type":44,"tag":69,"props":3032,"children":3034},{"className":3033},[],[3035],{"type":49,"value":148},{"type":49,"value":379},{"type":44,"tag":69,"props":3038,"children":3040},{"className":3039},[],[3041],{"type":49,"value":929},{"type":49,"value":379},{"type":44,"tag":69,"props":3044,"children":3046},{"className":3045},[],[3047],{"type":49,"value":2470},{"type":49,"value":379},{"type":44,"tag":69,"props":3050,"children":3052},{"className":3051},[],[3053],{"type":49,"value":2477},{"type":49,"value":379},{"type":44,"tag":69,"props":3056,"children":3058},{"className":3057},[],[3059],{"type":49,"value":2484},{"type":44,"tag":224,"props":3061,"children":3062},{},[3063,3068,3070,3075,3076,3081,3083,3089],{"type":44,"tag":69,"props":3064,"children":3066},{"className":3065},[],[3067],{"type":49,"value":2495},{"type":49,"value":3069}," (from ",{"type":44,"tag":69,"props":3071,"children":3073},{"className":3072},[],[3074],{"type":49,"value":1937},{"type":49,"value":2504},{"type":44,"tag":69,"props":3077,"children":3079},{"className":3078},[],[3080],{"type":49,"value":2510},{"type":49,"value":3082},"), ",{"type":44,"tag":69,"props":3084,"children":3086},{"className":3085},[],[3087],{"type":49,"value":3088},"{EVENT_CONTEXT}",{"type":49,"value":3090}," (track \u002F topic, manually inferred from the event homepage)",{"type":44,"tag":224,"props":3092,"children":3093},{},[3094,3099,3101,3107],{"type":44,"tag":69,"props":3095,"children":3097},{"className":3096},[],[3098],{"type":49,"value":2519},{"type":49,"value":3100}," → contents of the batch file (each line ",{"type":44,"tag":69,"props":3102,"children":3104},{"className":3103},[],[3105],{"type":49,"value":3106},"slug|website",{"type":49,"value":2451},{"type":44,"tag":693,"props":3109,"children":3111},{"className":695,"code":3110,"language":697,"meta":698,"style":698},"# Build {company-slug|website} pairs by reading frontmatter from each triage stub\nwhile read slug; do\n  website=$(awk '\u002F^website:\u002F{print $2; exit}' {OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md)\n  echo \"${slug}|${website}\"\ndone \u003C {OUTPUT_DIR}\u002Ficp_fits.txt > {OUTPUT_DIR}\u002F_deep_targets.txt\n\n# Split into ~5-company batches (deep mode)\nsplit -l 5 {OUTPUT_DIR}\u002F_deep_targets.txt {OUTPUT_DIR}\u002F_batch_deep_\nls {OUTPUT_DIR}\u002F_batch_deep_* | wc -l\n",[3112],{"type":44,"tag":69,"props":3113,"children":3114},{"__ignoreMap":698},[3115,3123,3149,3203,3241,3271,3278,3286,3312],{"type":44,"tag":704,"props":3116,"children":3117},{"class":706,"line":707},[3118],{"type":44,"tag":704,"props":3119,"children":3120},{"style":711},[3121],{"type":49,"value":3122},"# Build {company-slug|website} pairs by reading frontmatter from each triage stub\n",{"type":44,"tag":704,"props":3124,"children":3125},{"class":706,"line":717},[3126,3131,3136,3141,3145],{"type":44,"tag":704,"props":3127,"children":3128},{"style":1236},[3129],{"type":49,"value":3130},"while",{"type":44,"tag":704,"props":3132,"children":3133},{"style":1183},[3134],{"type":49,"value":3135}," read",{"type":44,"tag":704,"props":3137,"children":3138},{"style":739},[3139],{"type":49,"value":3140}," slug",{"type":44,"tag":704,"props":3142,"children":3143},{"style":727},[3144],{"type":49,"value":2747},{"type":44,"tag":704,"props":3146,"children":3147},{"style":1236},[3148],{"type":49,"value":2752},{"type":44,"tag":704,"props":3150,"children":3151},{"class":706,"line":780},[3152,3157,3161,3165,3169,3174,3178,3182,3186,3191,3195,3199],{"type":44,"tag":704,"props":3153,"children":3154},{"style":721},[3155],{"type":49,"value":3156},"  website",{"type":44,"tag":704,"props":3158,"children":3159},{"style":727},[3160],{"type":49,"value":730},{"type":44,"tag":704,"props":3162,"children":3163},{"style":733},[3164],{"type":49,"value":2769},{"type":44,"tag":704,"props":3166,"children":3167},{"style":727},[3168],{"type":49,"value":747},{"type":44,"tag":704,"props":3170,"children":3171},{"style":739},[3172],{"type":49,"value":3173},"\u002F^website:\u002F{print $2; exit}",{"type":44,"tag":704,"props":3175,"children":3176},{"style":727},[3177],{"type":49,"value":757},{"type":44,"tag":704,"props":3179,"children":3180},{"style":739},[3181],{"type":49,"value":2602},{"type":44,"tag":704,"props":3183,"children":3184},{"style":727},[3185],{"type":49,"value":828},{"type":44,"tag":704,"props":3187,"children":3188},{"style":721},[3189],{"type":49,"value":3190},"slug",{"type":44,"tag":704,"props":3192,"children":3193},{"style":727},[3194],{"type":49,"value":837},{"type":44,"tag":704,"props":3196,"children":3197},{"style":739},[3198],{"type":49,"value":2611},{"type":44,"tag":704,"props":3200,"children":3201},{"style":727},[3202],{"type":49,"value":777},{"type":44,"tag":704,"props":3204,"children":3205},{"class":706,"line":807},[3206,3210,3215,3219,3223,3228,3232,3237],{"type":44,"tag":704,"props":3207,"children":3208},{"style":1183},[3209],{"type":49,"value":1626},{"type":44,"tag":704,"props":3211,"children":3212},{"style":727},[3213],{"type":49,"value":3214}," \"${",{"type":44,"tag":704,"props":3216,"children":3217},{"style":721},[3218],{"type":49,"value":3190},{"type":44,"tag":704,"props":3220,"children":3221},{"style":727},[3222],{"type":49,"value":837},{"type":44,"tag":704,"props":3224,"children":3225},{"style":739},[3226],{"type":49,"value":3227},"|",{"type":44,"tag":704,"props":3229,"children":3230},{"style":727},[3231],{"type":49,"value":828},{"type":44,"tag":704,"props":3233,"children":3234},{"style":721},[3235],{"type":49,"value":3236},"website",{"type":44,"tag":704,"props":3238,"children":3239},{"style":727},[3240],{"type":49,"value":1442},{"type":44,"tag":704,"props":3242,"children":3243},{"class":706,"line":858},[3244,3248,3253,3257,3262,3266],{"type":44,"tag":704,"props":3245,"children":3246},{"style":1236},[3247],{"type":49,"value":2920},{"type":44,"tag":704,"props":3249,"children":3250},{"style":727},[3251],{"type":49,"value":3252}," \u003C",{"type":44,"tag":704,"props":3254,"children":3255},{"style":721},[3256],{"type":49,"value":2737},{"type":44,"tag":704,"props":3258,"children":3259},{"style":733},[3260],{"type":49,"value":3261},"OUTPUT_DIR}\u002Ficp_fits.txt",{"type":44,"tag":704,"props":3263,"children":3264},{"style":727},[3265],{"type":49,"value":2925},{"type":44,"tag":704,"props":3267,"children":3268},{"style":739},[3269],{"type":49,"value":3270}," {OUTPUT_DIR}\u002F_deep_targets.txt\n",{"type":44,"tag":704,"props":3272,"children":3273},{"class":706,"line":1319},[3274],{"type":44,"tag":704,"props":3275,"children":3276},{"emptyLinePlaceholder":1227},[3277],{"type":49,"value":1230},{"type":44,"tag":704,"props":3279,"children":3280},{"class":706,"line":1341},[3281],{"type":44,"tag":704,"props":3282,"children":3283},{"style":711},[3284],{"type":49,"value":3285},"# Split into ~5-company batches (deep mode)\n",{"type":44,"tag":704,"props":3287,"children":3288},{"class":706,"line":1355},[3289,3293,3297,3302,3307],{"type":44,"tag":704,"props":3290,"children":3291},{"style":733},[3292],{"type":49,"value":2354},{"type":44,"tag":704,"props":3294,"children":3295},{"style":739},[3296],{"type":49,"value":1991},{"type":44,"tag":704,"props":3298,"children":3299},{"style":1305},[3300],{"type":49,"value":3301}," 5",{"type":44,"tag":704,"props":3303,"children":3304},{"style":739},[3305],{"type":49,"value":3306}," {OUTPUT_DIR}\u002F_deep_targets.txt",{"type":44,"tag":704,"props":3308,"children":3309},{"style":739},[3310],{"type":49,"value":3311}," {OUTPUT_DIR}\u002F_batch_deep_\n",{"type":44,"tag":704,"props":3313,"children":3314},{"class":706,"line":1397},[3315,3319,3324,3328,3332,3336],{"type":44,"tag":704,"props":3316,"children":3317},{"style":733},[3318],{"type":49,"value":1070},{"type":44,"tag":704,"props":3320,"children":3321},{"style":739},[3322],{"type":49,"value":3323}," {OUTPUT_DIR}\u002F_batch_deep_",{"type":44,"tag":704,"props":3325,"children":3326},{"style":721},[3327],{"type":49,"value":1080},{"type":44,"tag":704,"props":3329,"children":3330},{"style":727},[3331],{"type":49,"value":1100},{"type":44,"tag":704,"props":3333,"children":3334},{"style":733},[3335],{"type":49,"value":2414},{"type":44,"tag":704,"props":3337,"children":3338},{"style":739},[3339],{"type":49,"value":2419},{"type":44,"tag":52,"props":3341,"children":3342},{},[3343,3347],{"type":44,"tag":61,"props":3344,"children":3345},{},[3346],{"type":49,"value":2554},{"type":49,"value":218},{"type":44,"tag":693,"props":3349,"children":3352},{"className":3350,"code":3351,"language":49},[2559],"Agent(\n  description: \"Deep research batch aa\",\n  prompt: \u003CDeep Research prompt from workflow.md with all placeholders substituted; COMPANY_LIST = cat _batch_deep_aa>,\n  subagent_type: \"general-purpose\"\n)\nAgent(\n  description: \"Deep research batch ab\",\n  prompt: \u003Csame template, COMPANY_LIST = cat _batch_deep_ab>,\n  subagent_type: \"general-purpose\"\n)\n... up to 6 per message; second wave after the first returns\n",[3353],{"type":44,"tag":69,"props":3354,"children":3355},{"__ignoreMap":698},[3356],{"type":49,"value":3351},{"type":44,"tag":52,"props":3358,"children":3359},{},[3360,3362,3367],{"type":49,"value":3361},"After all subagents return, verify the deep-research files exist and have ",{"type":44,"tag":69,"props":3363,"children":3365},{"className":3364},[],[3366],{"type":49,"value":3000},{"type":49,"value":218},{"type":44,"tag":693,"props":3369,"children":3371},{"className":695,"code":3370,"language":697,"meta":698,"style":698},"grep -l \"triage_only: false\" {OUTPUT_DIR}\u002Fcompanies\u002F*.md | wc -l\n# Should equal wc -l icp_fits.txt\n",[3372],{"type":44,"tag":69,"props":3373,"children":3374},{"__ignoreMap":698},[3375,3423],{"type":44,"tag":704,"props":3376,"children":3377},{"class":706,"line":707},[3378,3383,3387,3391,3395,3399,3403,3407,3411,3415,3419],{"type":44,"tag":704,"props":3379,"children":3380},{"style":733},[3381],{"type":49,"value":3382},"grep",{"type":44,"tag":704,"props":3384,"children":3385},{"style":739},[3386],{"type":49,"value":1991},{"type":44,"tag":704,"props":3388,"children":3389},{"style":727},[3390],{"type":49,"value":762},{"type":44,"tag":704,"props":3392,"children":3393},{"style":739},[3394],{"type":49,"value":3000},{"type":44,"tag":704,"props":3396,"children":3397},{"style":727},[3398],{"type":49,"value":772},{"type":44,"tag":704,"props":3400,"children":3401},{"style":739},[3402],{"type":49,"value":2602},{"type":44,"tag":704,"props":3404,"children":3405},{"style":721},[3406],{"type":49,"value":1080},{"type":44,"tag":704,"props":3408,"children":3409},{"style":739},[3410],{"type":49,"value":2611},{"type":44,"tag":704,"props":3412,"children":3413},{"style":727},[3414],{"type":49,"value":1100},{"type":44,"tag":704,"props":3416,"children":3417},{"style":733},[3418],{"type":49,"value":2414},{"type":44,"tag":704,"props":3420,"children":3421},{"style":739},[3422],{"type":49,"value":2419},{"type":44,"tag":704,"props":3424,"children":3425},{"class":706,"line":717},[3426],{"type":44,"tag":704,"props":3427,"children":3428},{"style":711},[3429],{"type":49,"value":3430},"# Should equal wc -l icp_fits.txt\n",{"type":44,"tag":494,"props":3432,"children":3434},{"id":3433},"step-8-enrich-speakers",[3435],{"type":49,"value":3436},"Step 8: Enrich Speakers",{"type":44,"tag":52,"props":3438,"children":3439},{},[3440,3442,3448,3450,3455],{"type":49,"value":3441},"Per person: harvest LinkedIn URL, recent activity (podcast \u002F blog \u002F talk \u002F GitHub \u002F X), and write ",{"type":44,"tag":69,"props":3443,"children":3445},{"className":3444},[],[3446],{"type":49,"value":3447},"people\u002F{slug}.md",{"type":49,"value":3449},". Hard cap: ",{"type":44,"tag":61,"props":3451,"children":3452},{},[3453],{"type":49,"value":3454},"4 tool calls per person",{"type":49,"value":3456},", three lanes:",{"type":44,"tag":506,"props":3458,"children":3459},{},[3460,3471,3482,3493],{"type":44,"tag":224,"props":3461,"children":3462},{},[3463,3469],{"type":44,"tag":69,"props":3464,"children":3466},{"className":3465},[],[3467],{"type":49,"value":3468},"browse cloud search \"{name} {company} linkedin\"",{"type":49,"value":3470}," (always)",{"type":44,"tag":224,"props":3472,"children":3473},{},[3474,3480],{"type":44,"tag":69,"props":3475,"children":3477},{"className":3476},[],[3478],{"type":49,"value":3479},"browse cloud search \"{name} podcast OR talk OR blog 2026\"",{"type":49,"value":3481}," (deep+)",{"type":44,"tag":224,"props":3483,"children":3484},{},[3485,3491],{"type":44,"tag":69,"props":3486,"children":3488},{"className":3487},[],[3489],{"type":49,"value":3490},"browse cloud search \"{name} github\"",{"type":49,"value":3492}," (deeper)",{"type":44,"tag":224,"props":3494,"children":3495},{},[3496,3502],{"type":44,"tag":69,"props":3497,"children":3499},{"className":3498},[],[3500],{"type":49,"value":3501},"browse cloud search \"{name} site:x.com OR site:twitter.com\"",{"type":49,"value":3503}," (deeper, best-effort)",{"type":44,"tag":52,"props":3505,"children":3506},{},[3507],{"type":49,"value":3508},"Quick mode: skip Step 8 entirely. Deep mode: lanes 1-2. Deeper mode: lanes 1-4.",{"type":44,"tag":3510,"props":3511,"children":3513},"h3",{"id":3512},"step-8a-ask-the-user-scope-of-enrichment",[3514],{"type":49,"value":3515},"Step 8a — Ask the user: scope of enrichment",{"type":44,"tag":52,"props":3517,"children":3518},{},[3519,3521,3526],{"type":49,"value":3520},"Before dispatching, compute the two candidate counts and ask the user to choose. The default is ",{"type":44,"tag":61,"props":3522,"children":3523},{},[3524],{"type":49,"value":3525},"ICP-fit only",{"type":49,"value":3527}," (faster, cheaper, what most users want); enriching every speaker is opt-in because cost scales linearly with people enriched.",{"type":44,"tag":693,"props":3529,"children":3531},{"className":695,"code":3530,"language":697,"meta":698,"style":698},"TOTAL=$(wc -l \u003C {OUTPUT_DIR}\u002Fpeople.jsonl)\nICP_FITS=$(node -e '\nconst fs = require(\"fs\");\nconst fits = new Set(fs.readFileSync(\"{OUTPUT_DIR}\u002Ficp_fits.txt\", \"utf-8\").split(\"\\n\").filter(Boolean));\nconst slug2name = {};\nfor (const slug of fits) {\n  const md = fs.readFileSync(`{OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md`, \"utf-8\");\n  const m = md.match(\u002F^company_name:\\s*(.+)$\u002Fm);\n  if (m) slug2name[slug] = m[1].trim();\n}\nconst want = new Set(Object.values(slug2name).map(s => s.toLowerCase()));\nconst ppl = fs.readFileSync(\"{OUTPUT_DIR}\u002Fpeople.jsonl\",\"utf-8\").split(\"\\n\").filter(Boolean).map(JSON.parse);\nconsole.log(ppl.filter(p => p.company && want.has(p.company.toLowerCase())).length);\n')\n\n# Lanes per person: 2 (deep) or 4 (deeper) — match {DEPTH}\nLANES=2   # or 4 for deeper\necho \"ICP fits: ${ICP_FITS} speakers × ${LANES} = $((ICP_FITS * LANES)) calls\"\necho \"All:      ${TOTAL} speakers × ${LANES} = $((TOTAL * LANES)) calls\"\n",[3532],{"type":44,"tag":69,"props":3533,"children":3534},{"__ignoreMap":698},[3535,3567,3591,3598,3606,3614,3622,3630,3638,3646,3653,3661,3669,3677,3688,3695,3703,3725,3808],{"type":44,"tag":704,"props":3536,"children":3537},{"class":706,"line":707},[3538,3543,3547,3551,3555,3559,3563],{"type":44,"tag":704,"props":3539,"children":3540},{"style":721},[3541],{"type":49,"value":3542},"TOTAL",{"type":44,"tag":704,"props":3544,"children":3545},{"style":727},[3546],{"type":49,"value":730},{"type":44,"tag":704,"props":3548,"children":3549},{"style":733},[3550],{"type":49,"value":1986},{"type":44,"tag":704,"props":3552,"children":3553},{"style":739},[3554],{"type":49,"value":1991},{"type":44,"tag":704,"props":3556,"children":3557},{"style":727},[3558],{"type":49,"value":3252},{"type":44,"tag":704,"props":3560,"children":3561},{"style":739},[3562],{"type":49,"value":1996},{"type":44,"tag":704,"props":3564,"children":3565},{"style":727},[3566],{"type":49,"value":777},{"type":44,"tag":704,"props":3568,"children":3569},{"class":706,"line":717},[3570,3575,3579,3583,3587],{"type":44,"tag":704,"props":3571,"children":3572},{"style":721},[3573],{"type":49,"value":3574},"ICP_FITS",{"type":44,"tag":704,"props":3576,"children":3577},{"style":727},[3578],{"type":49,"value":730},{"type":44,"tag":704,"props":3580,"children":3581},{"style":733},[3582],{"type":49,"value":736},{"type":44,"tag":704,"props":3584,"children":3585},{"style":739},[3586],{"type":49,"value":742},{"type":44,"tag":704,"props":3588,"children":3589},{"style":727},[3590],{"type":49,"value":2252},{"type":44,"tag":704,"props":3592,"children":3593},{"class":706,"line":780},[3594],{"type":44,"tag":704,"props":3595,"children":3596},{"style":739},[3597],{"type":49,"value":2260},{"type":44,"tag":704,"props":3599,"children":3600},{"class":706,"line":807},[3601],{"type":44,"tag":704,"props":3602,"children":3603},{"style":739},[3604],{"type":49,"value":3605},"const fits = new Set(fs.readFileSync(\"{OUTPUT_DIR}\u002Ficp_fits.txt\", \"utf-8\").split(\"\\n\").filter(Boolean));\n",{"type":44,"tag":704,"props":3607,"children":3608},{"class":706,"line":858},[3609],{"type":44,"tag":704,"props":3610,"children":3611},{"style":739},[3612],{"type":49,"value":3613},"const slug2name = {};\n",{"type":44,"tag":704,"props":3615,"children":3616},{"class":706,"line":1319},[3617],{"type":44,"tag":704,"props":3618,"children":3619},{"style":739},[3620],{"type":49,"value":3621},"for (const slug of fits) {\n",{"type":44,"tag":704,"props":3623,"children":3624},{"class":706,"line":1341},[3625],{"type":44,"tag":704,"props":3626,"children":3627},{"style":739},[3628],{"type":49,"value":3629},"  const md = fs.readFileSync(`{OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md`, \"utf-8\");\n",{"type":44,"tag":704,"props":3631,"children":3632},{"class":706,"line":1355},[3633],{"type":44,"tag":704,"props":3634,"children":3635},{"style":739},[3636],{"type":49,"value":3637},"  const m = md.match(\u002F^company_name:\\s*(.+)$\u002Fm);\n",{"type":44,"tag":704,"props":3639,"children":3640},{"class":706,"line":1397},[3641],{"type":44,"tag":704,"props":3642,"children":3643},{"style":739},[3644],{"type":49,"value":3645},"  if (m) slug2name[slug] = m[1].trim();\n",{"type":44,"tag":704,"props":3647,"children":3648},{"class":706,"line":1415},[3649],{"type":44,"tag":704,"props":3650,"children":3651},{"style":739},[3652],{"type":49,"value":855},{"type":44,"tag":704,"props":3654,"children":3655},{"class":706,"line":1445},[3656],{"type":44,"tag":704,"props":3657,"children":3658},{"style":739},[3659],{"type":49,"value":3660},"const want = new Set(Object.values(slug2name).map(s => s.toLowerCase()));\n",{"type":44,"tag":704,"props":3662,"children":3663},{"class":706,"line":1454},[3664],{"type":44,"tag":704,"props":3665,"children":3666},{"style":739},[3667],{"type":49,"value":3668},"const ppl = fs.readFileSync(\"{OUTPUT_DIR}\u002Fpeople.jsonl\",\"utf-8\").split(\"\\n\").filter(Boolean).map(JSON.parse);\n",{"type":44,"tag":704,"props":3670,"children":3671},{"class":706,"line":1475},[3672],{"type":44,"tag":704,"props":3673,"children":3674},{"style":739},[3675],{"type":49,"value":3676},"console.log(ppl.filter(p => p.company && want.has(p.company.toLowerCase())).length);\n",{"type":44,"tag":704,"props":3678,"children":3679},{"class":706,"line":1517},[3680,3684],{"type":44,"tag":704,"props":3681,"children":3682},{"style":727},[3683],{"type":49,"value":757},{"type":44,"tag":704,"props":3685,"children":3686},{"style":727},[3687],{"type":49,"value":777},{"type":44,"tag":704,"props":3689,"children":3690},{"class":706,"line":1538},[3691],{"type":44,"tag":704,"props":3692,"children":3693},{"emptyLinePlaceholder":1227},[3694],{"type":49,"value":1230},{"type":44,"tag":704,"props":3696,"children":3697},{"class":706,"line":1550},[3698],{"type":44,"tag":704,"props":3699,"children":3700},{"style":711},[3701],{"type":49,"value":3702},"# Lanes per person: 2 (deep) or 4 (deeper) — match {DEPTH}\n",{"type":44,"tag":704,"props":3704,"children":3705},{"class":706,"line":1559},[3706,3711,3715,3720],{"type":44,"tag":704,"props":3707,"children":3708},{"style":721},[3709],{"type":49,"value":3710},"LANES",{"type":44,"tag":704,"props":3712,"children":3713},{"style":727},[3714],{"type":49,"value":818},{"type":44,"tag":704,"props":3716,"children":3717},{"style":739},[3718],{"type":49,"value":3719},"2",{"type":44,"tag":704,"props":3721,"children":3722},{"style":711},[3723],{"type":49,"value":3724},"   # or 4 for deeper\n",{"type":44,"tag":704,"props":3726,"children":3727},{"class":706,"line":1568},[3728,3732,3736,3741,3745,3749,3753,3758,3762,3766,3770,3775,3780,3784,3789,3794,3799,3804],{"type":44,"tag":704,"props":3729,"children":3730},{"style":1183},[3731],{"type":49,"value":1186},{"type":44,"tag":704,"props":3733,"children":3734},{"style":727},[3735],{"type":49,"value":762},{"type":44,"tag":704,"props":3737,"children":3738},{"style":739},[3739],{"type":49,"value":3740},"ICP fits: ",{"type":44,"tag":704,"props":3742,"children":3743},{"style":727},[3744],{"type":49,"value":828},{"type":44,"tag":704,"props":3746,"children":3747},{"style":721},[3748],{"type":49,"value":3574},{"type":44,"tag":704,"props":3750,"children":3751},{"style":727},[3752],{"type":49,"value":837},{"type":44,"tag":704,"props":3754,"children":3755},{"style":739},[3756],{"type":49,"value":3757}," speakers × ",{"type":44,"tag":704,"props":3759,"children":3760},{"style":727},[3761],{"type":49,"value":828},{"type":44,"tag":704,"props":3763,"children":3764},{"style":721},[3765],{"type":49,"value":3710},{"type":44,"tag":704,"props":3767,"children":3768},{"style":727},[3769],{"type":49,"value":837},{"type":44,"tag":704,"props":3771,"children":3772},{"style":739},[3773],{"type":49,"value":3774}," = ",{"type":44,"tag":704,"props":3776,"children":3777},{"style":727},[3778],{"type":49,"value":3779},"$((",{"type":44,"tag":704,"props":3781,"children":3782},{"style":733},[3783],{"type":49,"value":3574},{"type":44,"tag":704,"props":3785,"children":3786},{"style":721},[3787],{"type":49,"value":3788}," *",{"type":44,"tag":704,"props":3790,"children":3791},{"style":739},[3792],{"type":49,"value":3793}," LANES",{"type":44,"tag":704,"props":3795,"children":3796},{"style":727},[3797],{"type":49,"value":3798},"))",{"type":44,"tag":704,"props":3800,"children":3801},{"style":739},[3802],{"type":49,"value":3803}," calls",{"type":44,"tag":704,"props":3805,"children":3806},{"style":727},[3807],{"type":49,"value":905},{"type":44,"tag":704,"props":3809,"children":3810},{"class":706,"line":1576},[3811,3815,3819,3824,3828,3832,3836,3840,3844,3848,3852,3856,3860,3864,3868,3872,3876,3880],{"type":44,"tag":704,"props":3812,"children":3813},{"style":1183},[3814],{"type":49,"value":1186},{"type":44,"tag":704,"props":3816,"children":3817},{"style":727},[3818],{"type":49,"value":762},{"type":44,"tag":704,"props":3820,"children":3821},{"style":739},[3822],{"type":49,"value":3823},"All:      ",{"type":44,"tag":704,"props":3825,"children":3826},{"style":727},[3827],{"type":49,"value":828},{"type":44,"tag":704,"props":3829,"children":3830},{"style":721},[3831],{"type":49,"value":3542},{"type":44,"tag":704,"props":3833,"children":3834},{"style":727},[3835],{"type":49,"value":837},{"type":44,"tag":704,"props":3837,"children":3838},{"style":739},[3839],{"type":49,"value":3757},{"type":44,"tag":704,"props":3841,"children":3842},{"style":727},[3843],{"type":49,"value":828},{"type":44,"tag":704,"props":3845,"children":3846},{"style":721},[3847],{"type":49,"value":3710},{"type":44,"tag":704,"props":3849,"children":3850},{"style":727},[3851],{"type":49,"value":837},{"type":44,"tag":704,"props":3853,"children":3854},{"style":739},[3855],{"type":49,"value":3774},{"type":44,"tag":704,"props":3857,"children":3858},{"style":727},[3859],{"type":49,"value":3779},{"type":44,"tag":704,"props":3861,"children":3862},{"style":733},[3863],{"type":49,"value":3542},{"type":44,"tag":704,"props":3865,"children":3866},{"style":721},[3867],{"type":49,"value":3788},{"type":44,"tag":704,"props":3869,"children":3870},{"style":739},[3871],{"type":49,"value":3793},{"type":44,"tag":704,"props":3873,"children":3874},{"style":727},[3875],{"type":49,"value":3798},{"type":44,"tag":704,"props":3877,"children":3878},{"style":739},[3879],{"type":49,"value":3803},{"type":44,"tag":704,"props":3881,"children":3882},{"style":727},[3883],{"type":49,"value":905},{"type":44,"tag":52,"props":3885,"children":3886},{},[3887,3889,3895],{"type":49,"value":3888},"Then ask via ",{"type":44,"tag":69,"props":3890,"children":3892},{"className":3891},[],[3893],{"type":49,"value":3894},"AskUserQuestion",{"type":49,"value":3896}," — clean two-option choice with the quantified cost on each:",{"type":44,"tag":693,"props":3898,"children":3901},{"className":3899,"code":3900,"language":49},[2559],"AskUserQuestion(questions: [\n  {\n    question: \"Enrich which speakers?\",\n    header: \"Enrichment scope\",\n    multiSelect: false,\n    options: [\n      { label: \"ICP fits only\", description: \"${ICP_FITS} speakers, ~$((ICP_FITS * LANES)) calls (recommended)\" },\n      { label: \"All speakers\", description: \"${TOTAL} speakers, ~$((TOTAL * LANES)) calls\" }\n    ]\n  }\n])\n",[3902],{"type":44,"tag":69,"props":3903,"children":3904},{"__ignoreMap":698},[3905],{"type":49,"value":3900},{"type":44,"tag":52,"props":3907,"children":3908},{},[3909,3911,3917,3918,3924,3926,3932],{"type":49,"value":3910},"Save the chosen scope as ",{"type":44,"tag":69,"props":3912,"children":3914},{"className":3913},[],[3915],{"type":49,"value":3916},"ENRICH_SCOPE=icp_fits",{"type":49,"value":134},{"type":44,"tag":69,"props":3919,"children":3921},{"className":3920},[],[3922],{"type":49,"value":3923},"ENRICH_SCOPE=all",{"type":49,"value":3925},". If the user picks \"All speakers\" and ",{"type":44,"tag":69,"props":3927,"children":3929},{"className":3928},[],[3930],{"type":49,"value":3931},"TOTAL × LANES > 600",{"type":49,"value":3933},", print a warning and ask once more — that's a 10+ minute run with hundreds of tool calls.",{"type":44,"tag":3510,"props":3935,"children":3937},{"id":3936},"step-8b-filter-and-batch",[3938],{"type":49,"value":3939},"Step 8b — Filter and batch",{"type":44,"tag":693,"props":3941,"children":3943},{"className":695,"code":3942,"language":697,"meta":698,"style":698},"# Build _people_to_enrich.jsonl based on ENRICH_SCOPE\nif [ \"$ENRICH_SCOPE\" = \"all\" ]; then\n  cp {OUTPUT_DIR}\u002Fpeople.jsonl {OUTPUT_DIR}\u002F_people_to_enrich.jsonl\nelse\n  node -e '\nconst fs = require(\"fs\");\nconst fits = new Set(fs.readFileSync(\"{OUTPUT_DIR}\u002Ficp_fits.txt\", \"utf-8\").split(\"\\n\").filter(Boolean));\nconst slug2name = {};\nfor (const slug of fits) {\n  const md = fs.readFileSync(`{OUTPUT_DIR}\u002Fcompanies\u002F${slug}.md`, \"utf-8\");\n  const m = md.match(\u002F^company_name:\\s*(.+)$\u002Fm);\n  if (m) slug2name[slug] = m[1].trim();\n}\nconst wantNames = new Set(Object.values(slug2name).map(s => s.toLowerCase()));\nconst lines = fs.readFileSync(\"{OUTPUT_DIR}\u002Fpeople.jsonl\", \"utf-8\").split(\"\\n\").filter(Boolean);\nconst keep = lines.filter(l => {\n  const p = JSON.parse(l);\n  return p.company && wantNames.has(p.company.toLowerCase());\n});\nfs.writeFileSync(\"{OUTPUT_DIR}\u002F_people_to_enrich.jsonl\", keep.join(\"\\n\") + \"\\n\");\nconsole.error(`Enriching ${keep.length} of ${lines.length} speakers`);\n'\nfi\n\n# Split into ~5-person batches\nsplit -l 5 {OUTPUT_DIR}\u002F_people_to_enrich.jsonl {OUTPUT_DIR}\u002F_batch_people_\n",[3944],{"type":44,"tag":69,"props":3945,"children":3946},{"__ignoreMap":698},[3947,3955,4005,4022,4030,4046,4053,4060,4067,4074,4081,4088,4095,4102,4110,4118,4126,4134,4142,4149,4157,4165,4172,4179,4186,4195],{"type":44,"tag":704,"props":3948,"children":3949},{"class":706,"line":707},[3950],{"type":44,"tag":704,"props":3951,"children":3952},{"style":711},[3953],{"type":49,"value":3954},"# Build _people_to_enrich.jsonl based on ENRICH_SCOPE\n",{"type":44,"tag":704,"props":3956,"children":3957},{"class":706,"line":717},[3958,3962,3966,3970,3975,3979,3984,3988,3993,3997,4001],{"type":44,"tag":704,"props":3959,"children":3960},{"style":1236},[3961],{"type":49,"value":1239},{"type":44,"tag":704,"props":3963,"children":3964},{"style":727},[3965],{"type":49,"value":1244},{"type":44,"tag":704,"props":3967,"children":3968},{"style":727},[3969],{"type":49,"value":762},{"type":44,"tag":704,"props":3971,"children":3972},{"style":721},[3973],{"type":49,"value":3974},"$ENRICH_SCOPE",{"type":44,"tag":704,"props":3976,"children":3977},{"style":727},[3978],{"type":49,"value":772},{"type":44,"tag":704,"props":3980,"children":3981},{"style":727},[3982],{"type":49,"value":3983}," =",{"type":44,"tag":704,"props":3985,"children":3986},{"style":727},[3987],{"type":49,"value":762},{"type":44,"tag":704,"props":3989,"children":3990},{"style":739},[3991],{"type":49,"value":3992},"all",{"type":44,"tag":704,"props":3994,"children":3995},{"style":727},[3996],{"type":49,"value":772},{"type":44,"tag":704,"props":3998,"children":3999},{"style":727},[4000],{"type":49,"value":1267},{"type":44,"tag":704,"props":4002,"children":4003},{"style":1236},[4004],{"type":49,"value":1272},{"type":44,"tag":704,"props":4006,"children":4007},{"class":706,"line":780},[4008,4013,4017],{"type":44,"tag":704,"props":4009,"children":4010},{"style":733},[4011],{"type":49,"value":4012},"  cp",{"type":44,"tag":704,"props":4014,"children":4015},{"style":739},[4016],{"type":49,"value":1996},{"type":44,"tag":704,"props":4018,"children":4019},{"style":739},[4020],{"type":49,"value":4021}," {OUTPUT_DIR}\u002F_people_to_enrich.jsonl\n",{"type":44,"tag":704,"props":4023,"children":4024},{"class":706,"line":807},[4025],{"type":44,"tag":704,"props":4026,"children":4027},{"style":1236},[4028],{"type":49,"value":4029},"else\n",{"type":44,"tag":704,"props":4031,"children":4032},{"class":706,"line":858},[4033,4038,4042],{"type":44,"tag":704,"props":4034,"children":4035},{"style":733},[4036],{"type":49,"value":4037},"  node",{"type":44,"tag":704,"props":4039,"children":4040},{"style":739},[4041],{"type":49,"value":742},{"type":44,"tag":704,"props":4043,"children":4044},{"style":727},[4045],{"type":49,"value":2252},{"type":44,"tag":704,"props":4047,"children":4048},{"class":706,"line":1319},[4049],{"type":44,"tag":704,"props":4050,"children":4051},{"style":739},[4052],{"type":49,"value":2260},{"type":44,"tag":704,"props":4054,"children":4055},{"class":706,"line":1341},[4056],{"type":44,"tag":704,"props":4057,"children":4058},{"style":739},[4059],{"type":49,"value":3605},{"type":44,"tag":704,"props":4061,"children":4062},{"class":706,"line":1355},[4063],{"type":44,"tag":704,"props":4064,"children":4065},{"style":739},[4066],{"type":49,"value":3613},{"type":44,"tag":704,"props":4068,"children":4069},{"class":706,"line":1397},[4070],{"type":44,"tag":704,"props":4071,"children":4072},{"style":739},[4073],{"type":49,"value":3621},{"type":44,"tag":704,"props":4075,"children":4076},{"class":706,"line":1415},[4077],{"type":44,"tag":704,"props":4078,"children":4079},{"style":739},[4080],{"type":49,"value":3629},{"type":44,"tag":704,"props":4082,"children":4083},{"class":706,"line":1445},[4084],{"type":44,"tag":704,"props":4085,"children":4086},{"style":739},[4087],{"type":49,"value":3637},{"type":44,"tag":704,"props":4089,"children":4090},{"class":706,"line":1454},[4091],{"type":44,"tag":704,"props":4092,"children":4093},{"style":739},[4094],{"type":49,"value":3645},{"type":44,"tag":704,"props":4096,"children":4097},{"class":706,"line":1475},[4098],{"type":44,"tag":704,"props":4099,"children":4100},{"style":739},[4101],{"type":49,"value":855},{"type":44,"tag":704,"props":4103,"children":4104},{"class":706,"line":1517},[4105],{"type":44,"tag":704,"props":4106,"children":4107},{"style":739},[4108],{"type":49,"value":4109},"const wantNames = new Set(Object.values(slug2name).map(s => s.toLowerCase()));\n",{"type":44,"tag":704,"props":4111,"children":4112},{"class":706,"line":1538},[4113],{"type":44,"tag":704,"props":4114,"children":4115},{"style":739},[4116],{"type":49,"value":4117},"const lines = fs.readFileSync(\"{OUTPUT_DIR}\u002Fpeople.jsonl\", \"utf-8\").split(\"\\n\").filter(Boolean);\n",{"type":44,"tag":704,"props":4119,"children":4120},{"class":706,"line":1550},[4121],{"type":44,"tag":704,"props":4122,"children":4123},{"style":739},[4124],{"type":49,"value":4125},"const keep = lines.filter(l => {\n",{"type":44,"tag":704,"props":4127,"children":4128},{"class":706,"line":1559},[4129],{"type":44,"tag":704,"props":4130,"children":4131},{"style":739},[4132],{"type":49,"value":4133},"  const p = JSON.parse(l);\n",{"type":44,"tag":704,"props":4135,"children":4136},{"class":706,"line":1568},[4137],{"type":44,"tag":704,"props":4138,"children":4139},{"style":739},[4140],{"type":49,"value":4141},"  return p.company && wantNames.has(p.company.toLowerCase());\n",{"type":44,"tag":704,"props":4143,"children":4144},{"class":706,"line":1576},[4145],{"type":44,"tag":704,"props":4146,"children":4147},{"style":739},[4148],{"type":49,"value":2316},{"type":44,"tag":704,"props":4150,"children":4151},{"class":706,"line":1620},[4152],{"type":44,"tag":704,"props":4153,"children":4154},{"style":739},[4155],{"type":49,"value":4156},"fs.writeFileSync(\"{OUTPUT_DIR}\u002F_people_to_enrich.jsonl\", keep.join(\"\\n\") + \"\\n\");\n",{"type":44,"tag":704,"props":4158,"children":4159},{"class":706,"line":1658},[4160],{"type":44,"tag":704,"props":4161,"children":4162},{"style":739},[4163],{"type":49,"value":4164},"console.error(`Enriching ${keep.length} of ${lines.length} speakers`);\n",{"type":44,"tag":704,"props":4166,"children":4167},{"class":706,"line":1671},[4168],{"type":44,"tag":704,"props":4169,"children":4170},{"style":727},[4171],{"type":49,"value":1514},{"type":44,"tag":704,"props":4173,"children":4174},{"class":706,"line":1679},[4175],{"type":44,"tag":704,"props":4176,"children":4177},{"style":1236},[4178],{"type":49,"value":1565},{"type":44,"tag":704,"props":4180,"children":4181},{"class":706,"line":2391},[4182],{"type":44,"tag":704,"props":4183,"children":4184},{"emptyLinePlaceholder":1227},[4185],{"type":49,"value":1230},{"type":44,"tag":704,"props":4187,"children":4189},{"class":706,"line":4188},25,[4190],{"type":44,"tag":704,"props":4191,"children":4192},{"style":711},[4193],{"type":49,"value":4194},"# Split into ~5-person batches\n",{"type":44,"tag":704,"props":4196,"children":4198},{"class":706,"line":4197},26,[4199,4203,4207,4211,4216],{"type":44,"tag":704,"props":4200,"children":4201},{"style":733},[4202],{"type":49,"value":2354},{"type":44,"tag":704,"props":4204,"children":4205},{"style":739},[4206],{"type":49,"value":1991},{"type":44,"tag":704,"props":4208,"children":4209},{"style":1305},[4210],{"type":49,"value":3301},{"type":44,"tag":704,"props":4212,"children":4213},{"style":739},[4214],{"type":49,"value":4215}," {OUTPUT_DIR}\u002F_people_to_enrich.jsonl",{"type":44,"tag":704,"props":4217,"children":4218},{"style":739},[4219],{"type":49,"value":4220}," {OUTPUT_DIR}\u002F_batch_people_\n",{"type":44,"tag":52,"props":4222,"children":4223},{},[4224,4226,4231],{"type":49,"value":4225},"Then in a single message, dispatch one Agent call per batch (up to 6 per message) with the prompt from ",{"type":44,"tag":69,"props":4227,"children":4229},{"className":4228},[],[4230],{"type":49,"value":352},{"type":49,"value":4232}," → \"Person Enrichment\". Each subagent's prompt should include:",{"type":44,"tag":220,"props":4234,"children":4235},{},[4236,4274,4294,4315,4347],{"type":44,"tag":224,"props":4237,"children":4238},{},[4239,4244,4245,4250,4251,4257,4259,4265,4267,4273],{"type":44,"tag":69,"props":4240,"children":4242},{"className":4241},[],[4243],{"type":49,"value":148},{"type":49,"value":379},{"type":44,"tag":69,"props":4246,"children":4248},{"className":4247},[],[4249],{"type":49,"value":929},{"type":49,"value":379},{"type":44,"tag":69,"props":4252,"children":4254},{"className":4253},[],[4255],{"type":49,"value":4256},"{DEPTH}",{"type":49,"value":4258}," (",{"type":44,"tag":69,"props":4260,"children":4262},{"className":4261},[],[4263],{"type":49,"value":4264},"deep",{"type":49,"value":4266}," | ",{"type":44,"tag":69,"props":4268,"children":4270},{"className":4269},[],[4271],{"type":49,"value":4272},"deeper",{"type":49,"value":2451},{"type":44,"tag":224,"props":4275,"children":4276},{},[4277,4282,4283,4288,4289],{"type":44,"tag":69,"props":4278,"children":4280},{"className":4279},[],[4281],{"type":49,"value":2470},{"type":49,"value":379},{"type":44,"tag":69,"props":4284,"children":4286},{"className":4285},[],[4287],{"type":49,"value":2477},{"type":49,"value":379},{"type":44,"tag":69,"props":4290,"children":4292},{"className":4291},[],[4293],{"type":49,"value":2484},{"type":44,"tag":224,"props":4295,"children":4296},{},[4297,4302,4303,4308,4309,4314],{"type":44,"tag":69,"props":4298,"children":4300},{"className":4299},[],[4301],{"type":49,"value":2495},{"type":49,"value":3069},{"type":44,"tag":69,"props":4304,"children":4306},{"className":4305},[],[4307],{"type":49,"value":1937},{"type":49,"value":2504},{"type":44,"tag":69,"props":4310,"children":4312},{"className":4311},[],[4313],{"type":49,"value":2510},{"type":49,"value":2451},{"type":44,"tag":224,"props":4316,"children":4317},{},[4318,4324,4325,4330,4332,4338,4340,4346],{"type":44,"tag":69,"props":4319,"children":4321},{"className":4320},[],[4322],{"type":49,"value":4323},"{LANES}",{"type":49,"value":2497},{"type":44,"tag":69,"props":4326,"children":4328},{"className":4327},[],[4329],{"type":49,"value":3719},{"type":49,"value":4331}," for deep mode, ",{"type":44,"tag":69,"props":4333,"children":4335},{"className":4334},[],[4336],{"type":49,"value":4337},"4",{"type":49,"value":4339}," for deeper mode (substituted into ",{"type":44,"tag":69,"props":4341,"children":4343},{"className":4342},[],[4344],{"type":49,"value":4345},"# browse call N\u002F{LANES}",{"type":49,"value":2451},{"type":44,"tag":224,"props":4348,"children":4349},{},[4350,4356,4358,4364,4366,4371],{"type":44,"tag":69,"props":4351,"children":4353},{"className":4352},[],[4354],{"type":49,"value":4355},"{PEOPLE_BATCH}",{"type":49,"value":4357}," → contents of ",{"type":44,"tag":69,"props":4359,"children":4361},{"className":4360},[],[4362],{"type":49,"value":4363},"_batch_people_aa",{"type":49,"value":4365}," (each line a JSON record from ",{"type":44,"tag":69,"props":4367,"children":4369},{"className":4368},[],[4370],{"type":49,"value":561},{"type":49,"value":2451},{"type":44,"tag":52,"props":4373,"children":4374},{},[4375,4379],{"type":44,"tag":61,"props":4376,"children":4377},{},[4378],{"type":49,"value":2554},{"type":49,"value":218},{"type":44,"tag":693,"props":4381,"children":4384},{"className":4382,"code":4383,"language":49},[2559],"Agent(\n  description: \"Person enrichment batch aa\",\n  prompt: \u003CPerson Enrichment prompt from workflow.md with all placeholders substituted; PEOPLE_BATCH = cat _batch_people_aa>,\n  subagent_type: \"general-purpose\"\n)\nAgent(\n  description: \"Person enrichment batch ab\",\n  prompt: \u003Csame template, PEOPLE_BATCH = cat _batch_people_ab>,\n  subagent_type: \"general-purpose\"\n)\n... up to 6 per message\n",[4385],{"type":44,"tag":69,"props":4386,"children":4387},{"__ignoreMap":698},[4388],{"type":49,"value":4383},{"type":44,"tag":52,"props":4390,"children":4391},{},[4392],{"type":49,"value":4393},"After all subagents return, verify the people files exist:",{"type":44,"tag":693,"props":4395,"children":4397},{"className":695,"code":4396,"language":697,"meta":698,"style":698},"ls {OUTPUT_DIR}\u002Fpeople\u002F*.md | wc -l\n# Should equal wc -l _people_to_enrich.jsonl\n",[4398],{"type":44,"tag":69,"props":4399,"children":4400},{"__ignoreMap":698},[4401,4433],{"type":44,"tag":704,"props":4402,"children":4403},{"class":706,"line":707},[4404,4408,4413,4417,4421,4425,4429],{"type":44,"tag":704,"props":4405,"children":4406},{"style":733},[4407],{"type":49,"value":1070},{"type":44,"tag":704,"props":4409,"children":4410},{"style":739},[4411],{"type":49,"value":4412}," {OUTPUT_DIR}\u002Fpeople\u002F",{"type":44,"tag":704,"props":4414,"children":4415},{"style":721},[4416],{"type":49,"value":1080},{"type":44,"tag":704,"props":4418,"children":4419},{"style":739},[4420],{"type":49,"value":2611},{"type":44,"tag":704,"props":4422,"children":4423},{"style":727},[4424],{"type":49,"value":1100},{"type":44,"tag":704,"props":4426,"children":4427},{"style":733},[4428],{"type":49,"value":2414},{"type":44,"tag":704,"props":4430,"children":4431},{"style":739},[4432],{"type":49,"value":2419},{"type":44,"tag":704,"props":4434,"children":4435},{"class":706,"line":717},[4436],{"type":44,"tag":704,"props":4437,"children":4438},{"style":711},[4439],{"type":49,"value":4440},"# Should equal wc -l _people_to_enrich.jsonl\n",{"type":44,"tag":494,"props":4442,"children":4444},{"id":4443},"step-9-compile-report",[4445],{"type":49,"value":4446},"Step 9: Compile Report",{"type":44,"tag":52,"props":4448,"children":4449},{},[4450],{"type":49,"value":4451},"Generate the company-grouped HTML index, alternate views, and CSV in one command:",{"type":44,"tag":693,"props":4453,"children":4455},{"className":695,"code":4454,"language":697,"meta":698,"style":698},"node {SKILL_DIR}\u002Fscripts\u002Fcompile_report.mjs {OUTPUT_DIR} --open\n",[4456],{"type":44,"tag":69,"props":4457,"children":4458},{"__ignoreMap":698},[4459],{"type":44,"tag":704,"props":4460,"children":4461},{"class":706,"line":707},[4462,4466,4471,4475],{"type":44,"tag":704,"props":4463,"children":4464},{"style":733},[4465],{"type":49,"value":736},{"type":44,"tag":704,"props":4467,"children":4468},{"style":739},[4469],{"type":49,"value":4470}," {SKILL_DIR}\u002Fscripts\u002Fcompile_report.mjs",{"type":44,"tag":704,"props":4472,"children":4473},{"style":739},[4474],{"type":49,"value":1916},{"type":44,"tag":704,"props":4476,"children":4477},{"style":739},[4478],{"type":49,"value":4479}," --open\n",{"type":44,"tag":52,"props":4481,"children":4482},{},[4483],{"type":49,"value":4484},"This generates:",{"type":44,"tag":220,"props":4486,"children":4487},{},[4488,4499,4510,4521],{"type":44,"tag":224,"props":4489,"children":4490},{},[4491,4497],{"type":44,"tag":69,"props":4492,"children":4494},{"className":4493},[],[4495],{"type":49,"value":4496},"{OUTPUT_DIR}\u002Findex.html",{"type":49,"value":4498}," — people grouped by company, ranked by company ICP score (opens in browser)",{"type":44,"tag":224,"props":4500,"children":4501},{},[4502,4508],{"type":44,"tag":69,"props":4503,"children":4505},{"className":4504},[],[4506],{"type":49,"value":4507},"{OUTPUT_DIR}\u002Fpeople.html",{"type":49,"value":4509}," — filterable speaker list (alternate view)",{"type":44,"tag":224,"props":4511,"children":4512},{},[4513,4519],{"type":44,"tag":69,"props":4514,"children":4516},{"className":4515},[],[4517],{"type":49,"value":4518},"{OUTPUT_DIR}\u002Fcompanies.html",{"type":49,"value":4520}," — ICP-ranked company table with attendees",{"type":44,"tag":224,"props":4522,"children":4523},{},[4524,4530],{"type":44,"tag":69,"props":4525,"children":4527},{"className":4526},[],[4528],{"type":49,"value":4529},"{OUTPUT_DIR}\u002Fresults.csv",{"type":49,"value":4531}," — cold-outbound-ready spreadsheet",{"type":44,"tag":52,"props":4533,"children":4534},{},[4535],{"type":49,"value":4536},"Then present a summary in chat:",{"type":44,"tag":693,"props":4538,"children":4541},{"className":4539,"code":4540,"language":49},[2559],"## Event Prospecting Complete — {Event Name}\n\n- **Total speakers extracted**: {count}\n- **Unique companies**: {count}\n- **ICP fits (score ≥ {threshold})**: {count}\n- **Speakers enriched**: {count}\n- **Score distribution** (companies):\n  - Strong fit (8-10): {count}\n  - Partial fit (5-7): {count}\n  - Weak fit (1-4): {count}\n- **Report opened in browser**: {OUTPUT_DIR}\u002Findex.html\n",[4542],{"type":44,"tag":69,"props":4543,"children":4544},{"__ignoreMap":698},[4545],{"type":49,"value":4540},{"type":44,"tag":52,"props":4547,"children":4548},{},[4549,4551,4556],{"type":49,"value":4550},"Show the ",{"type":44,"tag":61,"props":4552,"children":4553},{},[4554],{"type":49,"value":4555},"top 5 people cards",{"type":49,"value":4557}," as a markdown table sorted by company ICP score, then offer to:",{"type":44,"tag":220,"props":4559,"children":4560},{},[4561,4573],{"type":44,"tag":224,"props":4562,"children":4563},{},[4564,4566,4571],{"type":49,"value":4565},"Adjust ",{"type":44,"tag":69,"props":4567,"children":4569},{"className":4568},[],[4570],{"type":49,"value":2676},{"type":49,"value":4572}," and re-run Steps 6-9",{"type":44,"tag":224,"props":4574,"children":4575},{},[4576],{"type":49,"value":4577},"Export the CSV to a CRM",{"type":44,"tag":4579,"props":4580,"children":4581},"style",{},[4582],{"type":49,"value":4583},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4585,"total":1559},[4586,4601,4624,4637,4647,4665,4680,4698,4714,4727,4739,4746],{"slug":82,"name":82,"fn":4587,"description":4588,"org":4589,"tags":4590,"stars":4598,"repoUrl":4599,"updatedAt":4600},"run Browserbase browser automation","Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch\u002Fsearch, diagnostics, and Browse.sh skill discovery\u002Finstallation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase resources, call Browserbase Functions, browse or scaffold Browserbase templates, fetch or search web content, diagnose browse setup, find or install a skill for a website task, discover site-specific Browse.sh skills, or install\u002Frefresh this browse skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4591,4594,4595],{"name":4592,"slug":4593,"type":15},"Browser Automation","browser-automation",{"name":9,"slug":8,"type":15},{"name":4596,"slug":4597,"type":15},"CLI","cli",23676,"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand","2026-06-06T07:11:24.95733",{"slug":4602,"name":4602,"fn":4603,"description":4604,"org":4605,"tags":4606,"stars":23,"repoUrl":24,"updatedAt":4623},"agent-experience","audit developer experience with AI agents","Audit the developer experience of a product, SDK, docs site, or SKILL.md by dropping multiple Claude subagents at it with only a tiny task prompt and real tools (WebFetch, Bash, Write). Agents must discover the docs themselves, install deps, ask for credentials if needed, and attempt real execution. The skill captures each agent's trace — tool calls, retries, wall time, errors — and scores on Setup Friction, Speed, Efficiency, Error Recovery, and Doc Quality, then emits an HTML report with an A–F grade and concrete fixes. Use when the user asks to audit agent experience, test a skill, audit docs for agents, check if a SDK is agent-friendly, validate a SKILL.md, measure agent DX, or benchmark how painful onboarding is for an AI agent. Triggers: 'audit agent experience', 'test this skill', 'audit docs for agents', 'is my SDK agent-friendly', 'run a DX audit', 'agent experience test', 'test my docs', 'how do agents do with my product'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4607,4610,4613,4614,4617,4620],{"name":4608,"slug":4609,"type":15},"Agents","agents",{"name":4611,"slug":4612,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":4615,"slug":4616,"type":15},"Engineering","engineering",{"name":4618,"slug":4619,"type":15},"Multi-Agent","multi-agent",{"name":4621,"slug":4622,"type":15},"QA","qa","2026-05-29T06:58:56.259807",{"slug":4625,"name":4625,"fn":4626,"description":4627,"org":4628,"tags":4629,"stars":23,"repoUrl":24,"updatedAt":4636},"autobrowse","run self-improving browser automation","Self-improving browser automation via the auto-research loop. Iteratively runs a browsing task, reads the trace, and improves the navigation skill (strategy.md) until it reliably passes. Supports parallel runs across multiple tasks using sub-agents. Use when you want to build or improve browser automation skills for specific website tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4630,4631,4634,4635],{"name":4608,"slug":4609,"type":15},{"name":4632,"slug":4633,"type":15},"Automation","automation",{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},"2026-04-23T05:00:30.528336",{"slug":4638,"name":4638,"fn":4639,"description":4640,"org":4641,"tags":4642,"stars":23,"repoUrl":24,"updatedAt":4646},"browser","automate browser interactions via CLI","Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications. Supports remote Browserbase sessions with Browserbase Identity, Verified browsers, automatic CAPTCHA solving, and residential proxies — ideal for protected websites and JavaScript-heavy pages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4643,4644,4645],{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4596,"slug":4597,"type":15},"2026-04-06T18:06:22.005051",{"slug":4648,"name":4648,"fn":4649,"description":4650,"org":4651,"tags":4652,"stars":23,"repoUrl":24,"updatedAt":4664},"browser-to-api","generate OpenAPI specs from browser traffic","Turn a website's observable HTTP traffic into a best-effort OpenAPI 3.1 spec by analyzing a `browser-trace` capture. Use when the user wants to discover\u002Fextract API endpoints from a browser session, build an OpenAPI doc from network traffic, or document a third-party site's XHR\u002Ffetch surface for client integration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4653,4656,4657,4658,4661],{"name":4654,"slug":4655,"type":15},"API Development","api-development",{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4659,"slug":4660,"type":15},"HTTP","http",{"name":4662,"slug":4663,"type":15},"OpenAPI","openapi","2026-05-14T06:07:27.298495",{"slug":4666,"name":4666,"fn":4667,"description":4668,"org":4669,"tags":4670,"stars":23,"repoUrl":24,"updatedAt":4679},"browser-trace","capture and debug browser automation traces","Capture a full DevTools-protocol trace of any browser automation — CDP firehose, screenshots, and DOM dumps — then bisect the stream into per-page searchable buckets. Use when the user wants to debug a failed run, audit network\u002Fconsole\u002FDOM activity, attach a trace to an in-progress session, or feed structured per-page summaries back into an agent loop so its next iteration learns from the last one.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4671,4672,4673,4676],{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4674,"slug":4675,"type":15},"Debugging","debugging",{"name":4677,"slug":4678,"type":15},"Observability","observability","2026-04-28T05:41:33.024656",{"slug":4681,"name":4681,"fn":4682,"description":4683,"org":4684,"tags":4685,"stars":23,"repoUrl":24,"updatedAt":4697},"browser-use-to-stagehand","migrate browser-use scripts to Stagehand","Migrate browser-use (Python) browser-automation scripts to Stagehand v3 (TypeScript) on Browserbase. Use when the user wants to convert, port, rewrite, or migrate a browser-use Agent script to Stagehand, map browser-use features\u002FAPIs to Stagehand primitives (act\u002Fextract\u002Fobserve\u002Fagent), or move agentic browser automation onto Browserbase with more determinism. Triggers on \"browser-use\", \"browser_use\", or \"Agent(task=...)\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4686,4687,4688,4691,4694],{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4689,"slug":4690,"type":15},"Migration","migration",{"name":4692,"slug":4693,"type":15},"Python","python",{"name":4695,"slug":4696,"type":15},"TypeScript","typescript","2026-06-26T07:57:47.428249",{"slug":4699,"name":4699,"fn":4700,"description":4701,"org":4702,"tags":4703,"stars":23,"repoUrl":24,"updatedAt":4713},"company-research","conduct deep company and product research","Company discovery and deep research skill. Researches a company's product and ICP,\ndiscovers target companies to sell to using Browserbase Search API, deeply researches\neach using a Plan→Research→Synthesize pattern, and scores ICP fit — compiled into\na scored research report and CSV. Supports depth modes (quick\u002Fdeep\u002Fdeeper) for\nbalancing scale vs intelligence.\nUse when the user wants to: (1) find companies to sell to, (2) research potential\ncustomers, (3) discover companies matching an ICP, (4) build a target company list,\n(5) do market research on prospects. Triggers: \"find companies to sell to\",\n\"company research\", \"find prospects\", \"ICP research\", \"target companies\",\n\"who should we sell to\", \"market research\", \"lead research\", \"prospect list\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4704,4705,4708,4711,4712],{"name":9,"slug":8,"type":15},{"name":4706,"slug":4707,"type":15},"Competitive Intelligence","competitive-intelligence",{"name":4709,"slug":4710,"type":15},"Marketing","marketing",{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},"2026-04-27T05:34:56.172569",{"slug":4715,"name":4715,"fn":4716,"description":4717,"org":4718,"tags":4719,"stars":23,"repoUrl":24,"updatedAt":4726},"competitor-analysis","analyze competitors across features and pricing","Competitor research and intelligence skill. Takes a user's company (with optional\nseed competitor URLs), auto-discovers additional competitors via Browserbase Search API,\ndeeply researches each using a 4-lane pattern (marketing surface, external signal,\npublic benchmarks, strategic diff vs the user's company), and compiles the results\ninto an HTML report with four views: overview, per-competitor deep dive, side-by-side\nfeature\u002Fpricing matrix, and a chronological mentions feed (news, reviews,\nsocial, comparison pages, and public benchmarks).\nUse when the user wants to: (1) analyze competitors, (2) build a competitive matrix,\n(3) extract competitor pricing \u002F features, (4) find comparison pages and online\nmentions of competitors, (5) surface public benchmarks. Triggers: \"competitor analysis\",\n\"analyze competitors\", \"competitive intel\", \"competitor research\", \"competitor pricing\",\n\"feature comparison\", \"price comparison\", \"find comparisons\", \"who's comparing us\",\n\"competitor mentions\", \"competitor benchmarks\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4720,4721,4722,4723,4724],{"name":9,"slug":8,"type":15},{"name":4706,"slug":4707,"type":15},{"name":4709,"slug":4710,"type":15},{"name":13,"slug":14,"type":15},{"name":4725,"slug":1806,"type":15},"Strategy","2026-06-19T09:41:33.392499",{"slug":4728,"name":4728,"fn":4729,"description":4730,"org":4731,"tags":4732,"stars":23,"repoUrl":24,"updatedAt":4738},"cookie-sync","sync Chrome cookies to a Browserbase context","Sync cookies from local Chrome to a Browserbase persistent context so the browse CLI can access authenticated sites. Use when the user wants to browse as themselves, sync cookies, or log into sites via Browserbase.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4733,4736,4737],{"name":4734,"slug":4735,"type":15},"Auth","auth",{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:06:23.3251",{"slug":4,"name":4,"fn":5,"description":6,"org":4740,"tags":4741,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4742,4743,4744,4745],{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"slug":4747,"name":4747,"fn":4748,"description":4749,"org":4750,"tags":4751,"stars":23,"repoUrl":24,"updatedAt":4756},"fetch","fetch URLs without a browser session","Use this skill when the user wants to retrieve a URL without a full browser session: fetch HTML or JSON from static pages, inspect status codes or headers, follow redirects, or get page source for simple scraping. Prefer it over a browser when JavaScript rendering and page interaction are not needed. Supports proxies and redirect control.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4752,4753],{"name":4659,"slug":4660,"type":15},{"name":4754,"slug":4755,"type":15},"Web Scraping","web-scraping","2026-04-06T18:06:19.462477",{"items":4758,"total":1550},[4759,4768,4775,4781,4789,4796,4804],{"slug":4602,"name":4602,"fn":4603,"description":4604,"org":4760,"tags":4761,"stars":23,"repoUrl":24,"updatedAt":4623},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4762,4763,4764,4765,4766,4767],{"name":4608,"slug":4609,"type":15},{"name":4611,"slug":4612,"type":15},{"name":9,"slug":8,"type":15},{"name":4615,"slug":4616,"type":15},{"name":4618,"slug":4619,"type":15},{"name":4621,"slug":4622,"type":15},{"slug":4625,"name":4625,"fn":4626,"description":4627,"org":4769,"tags":4770,"stars":23,"repoUrl":24,"updatedAt":4636},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4771,4772,4773,4774],{"name":4608,"slug":4609,"type":15},{"name":4632,"slug":4633,"type":15},{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"slug":4638,"name":4638,"fn":4639,"description":4640,"org":4776,"tags":4777,"stars":23,"repoUrl":24,"updatedAt":4646},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4778,4779,4780],{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4596,"slug":4597,"type":15},{"slug":4648,"name":4648,"fn":4649,"description":4650,"org":4782,"tags":4783,"stars":23,"repoUrl":24,"updatedAt":4664},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4784,4785,4786,4787,4788],{"name":4654,"slug":4655,"type":15},{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4659,"slug":4660,"type":15},{"name":4662,"slug":4663,"type":15},{"slug":4666,"name":4666,"fn":4667,"description":4668,"org":4790,"tags":4791,"stars":23,"repoUrl":24,"updatedAt":4679},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4792,4793,4794,4795],{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4674,"slug":4675,"type":15},{"name":4677,"slug":4678,"type":15},{"slug":4681,"name":4681,"fn":4682,"description":4683,"org":4797,"tags":4798,"stars":23,"repoUrl":24,"updatedAt":4697},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4799,4800,4801,4802,4803],{"name":4592,"slug":4593,"type":15},{"name":9,"slug":8,"type":15},{"name":4689,"slug":4690,"type":15},{"name":4692,"slug":4693,"type":15},{"name":4695,"slug":4696,"type":15},{"slug":4699,"name":4699,"fn":4700,"description":4701,"org":4805,"tags":4806,"stars":23,"repoUrl":24,"updatedAt":4713},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4807,4808,4809,4810,4811],{"name":9,"slug":8,"type":15},{"name":4706,"slug":4707,"type":15},{"name":4709,"slug":4710,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15}]