Find speakers, hosts, and guest profiles at conferences and events on Luma. Two modes - free direct scrape for hosts, or Apify-powered search for full guest profiles with LinkedIn/Twitter/bio.
npx gooseworks install --claude # Then in your agent: /gooseworks <prompt> --skill luma-event-attendees
Find and extract speakers, hosts, and registered guest profiles from Luma events for outreach prospecting.
Scrapes Luma event pages directly. Gets event metadata + hosts. Guest profiles only if publicly embedded in the page.
python3 scripts/scrape_event.py https://lu.ma/abc123Uses the lexis-solutions/lu-ma-scraper Apify actor to search Luma and return full event data including featured guest profiles (name, bio, LinkedIn, Twitter, Instagram, website).
python3 scripts/scrape_event.py --search "AI San Francisco"Cost: $29/month flat subscription on Apify. Rent: https://console.apify.com/actors/r5gMxLV2rOF3J1fxu
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"
# Or create .env file in skill directorypip3 install requests# Single event
python3 scripts/scrape_event.py https://lu.ma/pwciozw0
# Multiple events
python3 scripts/scrape_event.py https://lu.ma/abc https://lu.ma/def
# Export to CSV
python3 scripts/scrape_event.py https://lu.ma/abc --output hosts.csv# Search for AI events in SF
python3 scripts/scrape_event.py --search "AI San Francisco"
# Just list events (don't extract people)
python3 scripts/scrape_event.py --search "SaaS NYC" --events-only
# Export all guests to CSV
python3 scripts/scrape_event.py --search "AI San Francisco" --output guests.csv
# Export as JSON
python3 scripts/scrape_event.py --search "AI SF" --output guests.json --jsonResults cached for 24 hours by default:
# Force fresh fetch
python3 scripts/scrape_event.py --search "AI SF" --no-cache
# Custom cache duration
python3 scripts/scrape_event.py --search "AI SF" --cache-hours 12Positional:
urls Event URLs to scrape directly (free)
Search:
--search, -s Search Luma via Apify (e.g., 'AI San Francisco')
--events-only Only list events, don't extract people
Output:
--output, -o Output file path (.csv or .json)
--json Output JSON format (default: CSV)
Cache:
--no-cache Skip cache, always fetch fresh
--cache-hours Cache max age in hours (default: 24)| name | event_role | bio | title | company | linkedin_url | twitter_url | instagram_url | website_url | username | event_name | event_date | event_url |
|---|
This skill is designed to be called by an AI agent as part of a prospecting workflow:
"Search Luma for AI and SaaS events in San Francisco"
python3 scripts/scrape_event.py --search "AI San Francisco" --events-only"Get all guest profiles from those events"
python3 scripts/scrape_event.py --search "AI San Francisco" --output guests.csvAsk the agent to filter the CSV:
"From these guests, find founders/VPs at B2B SaaS companies, 20-200 employees"
For qualified leads:
"Draft connection requests for qualified guests. I'll be at [event]. We sell [product] at [price]. Keep it casual."
| Data | Direct Scrape (free) | Apify Search (paid) |
|---|---|---|
| Event metadata | Yes | Yes |
| Hosts/organizers | Yes | Yes |
| Featured guests (public RSVPs) | Sometimes | Yes |
| Full attendee list | No (requires auth) | Partial (public profiles only) |
| Guest LinkedIn/Twitter | Yes (if in page) | Yes |
| Guest bio | Yes (if in page) | Yes |
| Guest email | No | No |
Note: Luma events have a show_guest_list setting. When disabled, guest profiles aren't publicly accessible. The Apify scraper can still get featured_guests for events that have them.
Quick search:
"Find AI events in SF this month and get me guest profiles"
Targeted:
"Search Luma for 'SaaS growth' events. Export all guest profiles to CSV. Then qualify against our ICP: VP+ at B2B SaaS, 50-500 employees."
Full workflow:
"Search Luma for AI and developer events in SF. Get all guest profiles. For each person with a LinkedIn, check if they match our ICP (founders/VPs at B2B SaaS, 20-200 employees, Series A-C). Draft pre-event connection requests for the ones I'll see at [event name]. We sell GTM engineering at $10K/month. Output qualified leads to CSV."
export APIFY_API_TOKEN="your_token_here"Rent the Luma scraper at: https://console.apify.com/actors/r5gMxLV2rOF3J1fxu
show_guest_list disabledpip3 install requestsmetadata:
clawdbot:
emoji: "π€"
requires:
env: ["APIFY_API_TOKEN"]
bins: ["python3"]
packages: ["requests"]Built by Goose - Powered by Apify (lexis-solutions/lu-ma-scraper)
Maintain a brand kit β the canonical brand context an ad or content pipeline reads (positioning, audience, voice, standing instructions, brand-type, value-props, colors), plus manage the product list and attach product photos. Use when someone says "update my brand kit", "set my brand voice/audience", "add a product to my brand", or hands you a folder of product shots to attach. Platform-agnostic: it teaches the field model, partial-update/clear semantics, override behavior, caps and validation, and the hero-image and product-matching rules β independent of any specific backend.
QC gate for a generated static ad image β verify the file opens, matches the requested dimensions, shows the correct product/subject (right shape, colour, label, logo), and has no garbled text or severe artifacts. Records pass/fail/needs-human in verification.md. Used as the final check in the static ad remix flow before shipping.
Recreate a static graphic ad (Pinterest pin, IG/FB feed image, poster) from a reference image, swapping in a new brand's product and new copy while keeping the reference's layout, composition, and visual energy. ALWAYS generated with GPT Image 2 in edit-the-reference mode (fal-ai/gpt-image-1/edit-image, a billed FAL generation); the HTML/goose-graphics overlay is only an optional text-finishing step, never the generator. The static-graphics counterpart to the video remix-ad skill; this is what the app calls when a user picks a reference ad and wants it for their own product.