Conference Speaker Extractor
Conference speaker scraper

Extract speaker names, titles, companies, and bios from conference websites. Supports direct HTML scraping and Apify web scraper fallback for JS-heavy sites.
--- name: conference-speaker-scraper description: > Extract speaker names, titles, companies, and bios from conference websites. Supports direct HTML scraping and Apify web scraper fallback for JS-heavy sites. Use for pre-event research and outreach targeting. --- # Conference Speaker Scraper Extract speaker names, titles, companies, and bios from conference website /speakers pages. Supports direct HTML scraping with multiple extraction strategies, plus Apify fallback for JS-heavy sites. ## Quick Start No API key needed for direct scraping mode. ```bash # Scrape speakers from a conference page
Overview
Extract speaker names, titles, companies, and bios from conference website /speakers pages. Supports direct HTML scraping with multiple extraction strategies, plus Apify fallback for JS-heavy sites.
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill conference-speaker-scraper -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/lead-generation/capabilities/conference-speaker-scraperNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/b92a799578d00087f360/conference-speaker-scraper.zip" -OutFile "$env:TEMP\conference-speaker-scraper.zip"; Expand-Archive "$env:TEMP\conference-speaker-scraper.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md3.3 KBskill.meta.json282 Bscripts/1 file · 15.5 KB
Read the files here
Show the full text85 lines
Conference Speaker Scraper
Extract speaker names, titles, companies, and bios from conference website /speakers pages. Supports direct HTML scraping with multiple extraction strategies, plus Apify fallback for JS-heavy sites.
Quick Start
No API key needed for direct scraping mode.
# Scrape speakers from a conference page
python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py \
--url "https://example.com/speakers"
# Use Apify for JS-heavy sites
python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py \
--url "https://example.com/speakers" --mode apify
# Custom conference name (otherwise inferred from URL)
python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py \
--url "https://example.com/speakers" --conference "Sage Future 2026"
# Output formats
python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py --url URL --output json # default
python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py --url URL --output csv
python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py --url URL --output summary
How It Works
Direct Mode (default)
Fetches the page HTML and tries multiple extraction strategies in order, using whichever returns the most results:
- Strategy A -- CSS class hints: Looks for speaker cards with class names containing "speaker", "presenter", "faculty", "panelist", "team-member"
- Strategy B -- Heading + paragraph patterns: Looks for repeated
<h2>/<h3>+<p>structures - Strategy C -- JSON-LD structured data: Checks for
<script type="application/ld+json">with speaker data - Strategy D -- Platform embeds: Detects Sched.com/Sessionize patterns used by many conferences
Apify Mode
Uses apify/cheerio-scraper actor with a custom page function that targets common speaker card selectors. Standard POST/poll/GET dataset pattern.
CLI Reference
| Flag | Default | Description |
|---|---|---|
--url |
required | Conference speakers page URL |
--conference |
inferred | Conference name (otherwise inferred from URL domain) |
--mode |
direct | direct (HTML scraping) or apify (Apify cheerio scraper) |
--output |
json | Output format: json, csv, or summary |
--token |
env var | Apify token (only needed for apify mode) |
--timeout |
300 | Max seconds for Apify run |
Output Schema
{
"name": "Jane Smith",
"title": "VP of Finance",
"company": "Acme Corp",
"bio": "Jane leads the finance transformation at...",
"linkedin_url": "https://linkedin.com/in/janesmith",
"image_url": "https://...",
"conference": "Sage Future 2026",
"source_url": "https://sagefuture2026.com/speakers"
}
Cost
- Direct mode: Free (no API, no tokens)
- Apify mode: Uses
apify/cheerio-scraper-- minimal Apify credits
Testing Notes
HTML scraping is inherently fragile across conference sites. The multi-strategy approach maximizes coverage, but JS-heavy sites will require Apify mode. When direct scraping returns 0 results, try --mode apify.
| 1 | |
| 2 | name conference-speaker-scraper |
| 3 | description > |
| 4 | Extract speaker names, titles, companies, and bios from conference websites. |
| 5 | Supports direct HTML scraping and Apify web scraper fallback for JS-heavy sites. |
| 6 | Use for pre-event research and outreach targeting. |
| 7 | |
| 8 | |
| 9 | # Conference Speaker Scraper |
| 10 | |
| 11 | Extract speaker names, titles, companies, and bios from conference website /speakers pages. Supports direct HTML scraping with multiple extraction strategies, plus Apify fallback for JS-heavy sites. |
| 12 | |
| 13 | ## Quick Start |
| 14 | |
| 15 | No API key needed for direct scraping mode. |
| 16 | |
| 17 | |
| 18 | # Scrape speakers from a conference page |
| 19 | python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py \ |
| 20 | --url "https://example.com/speakers" |
| 21 | |
| 22 | # Use Apify for JS-heavy sites |
| 23 | python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py \ |
| 24 | --url "https://example.com/speakers" --mode apify |
| 25 | |
| 26 | # Custom conference name (otherwise inferred from URL) |
| 27 | python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py \ |
| 28 | --url "https://example.com/speakers" --conference "Sage Future 2026" |
| 29 | |
| 30 | # Output formats |
| 31 | python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py --url URL --output json # default |
| 32 | python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py --url URL --output csv |
| 33 | python3 skills/conference-speaker-scraper/scripts/scrape_speakers.py --url URL --output summary |
| 34 | |
| 35 | |
| 36 | ## How It Works |
| 37 | |
| 38 | ### Direct Mode (default) |
| 39 | |
| 40 | Fetches the page HTML and tries multiple extraction strategies in order, using whichever returns the most results: |
| 41 | |
| 42 | **Strategy A -- CSS class hints:** Looks for speaker cards with class names containing "speaker", "presenter", "faculty", "panelist", "team-member" |
| 43 | **Strategy B -- Heading + paragraph patterns:** Looks for repeated `<h2>`/`<h3>` + `<p>` structures |
| 44 | **Strategy C -- JSON-LD structured data:** Checks for `<script type="application/ld+json">` with speaker data |
| 45 | **Strategy D -- Platform embeds:** Detects Sched.com/Sessionize patterns used by many conferences |
| 46 | |
| 47 | ### Apify Mode |
| 48 | |
| 49 | Uses `apify/cheerio-scraper` actor with a custom page function that targets common speaker card selectors. Standard POST/poll/GET dataset pattern. |
| 50 | |
| 51 | ## CLI Reference |
| 52 | |
| 53 | | Flag | Default | Description | |
| 54 | |------|---------|-------------| |
| 55 | | `--url` | *required* | Conference speakers page URL | |
| 56 | | `--conference` | inferred | Conference name (otherwise inferred from URL domain) | |
| 57 | | `--mode` | direct | `direct` (HTML scraping) or `apify` (Apify cheerio scraper) | |
| 58 | | `--output` | json | Output format: `json`, `csv`, or `summary` | |
| 59 | | `--token` | env var | Apify token (only needed for apify mode) | |
| 60 | | `--timeout` | 300 | Max seconds for Apify run | |
| 61 | |
| 62 | ## Output Schema |
| 63 | |
| 64 | |
| 65 | { |
| 66 | "name": "Jane Smith", |
| 67 | "title": "VP of Finance", |
| 68 | "company": "Acme Corp", |
| 69 | "bio": "Jane leads the finance transformation at...", |
| 70 | "linkedin_url": "https://linkedin.com/in/janesmith", |
| 71 | "image_url": "https://...", |
| 72 | "conference": "Sage Future 2026", |
| 73 | "source_url": "https://sagefuture2026.com/speakers" |
| 74 | } |
| 75 | |
| 76 | |
| 77 | ## Cost |
| 78 | |
| 79 | **Direct mode:** Free (no API, no tokens) |
| 80 | **Apify mode:** Uses `apify/cheerio-scraper` -- minimal Apify credits |
| 81 | |
| 82 | ## Testing Notes |
| 83 | |
| 84 | HTML scraping is inherently fragile across conference sites. The multi-strategy approach maximizes coverage, but JS-heavy sites will require Apify mode. When direct scraping returns 0 results, try `--mode apify`. |
| 85 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 205 listings
Similar skills
See all →
SkillCompany Firmographic Research
SkillPeople Search Engine
SkillApollo Lead Discovery
SkillDecision-Maker Finder
SkillCompany Funding Search
SkillCompany Intelligence ReportsMore from gooseworks-ai
SkillAd Angle Miner
SkillAd Campaign Analyzer
SkillLead Quality Analyzer
SkillMessage Match Auditor
SkillAI Search Visibility
SkillAmazon Product Search