Extract speaker names, titles, companies
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 · 206 listings
Made with conference-speaker-scraper

Similar skills
See all →
SkillAct as the company research engine for /sales research <urlCompany Research & Firmographic Analysis
SkillEthical people-finding and identity verificationPrivateinvestigator
SkillFree People Search to discover ICP-matching leadsApollo lead finder
SkillFind decision-makers at a specific company using ApolloCompany contact finder
SkillFind company funding history, investorsCompany funding search
SkillFull company intelligence reportCompany Intelligence - Comprehensive Company ReportsMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search