← All runbooks
gooseworks-ai / capabilities-luma-event-attendees

luma-event-attendees

Convert the luma-event-attendees skill into a repeatable workflow for finding Luma event people data. The runbook supports a free direct-scrape mode for event metadata and hosts, and an Apify-backed search mode for fuller guest profiles with social links and…

agent codexmodel gpt-5.5snapshot python312-uveval programmatic8 stepsv1.0.0

Deploy luma-event-attendees to your jetty.io

One-click installs this runbook into a collection on your Jetty account. You can run it from the Spot dashboard, schedule it, or pipe inputs in via the API.

The shape of the run

8 steps · start to finish.

  1. 1
    Step 1

    Environment Setup

    python3 -m pip install requests beautifulsoup4
    mkdir -p /app/results /app/results/work
    

    Validate the selected mode before making network calls. If mode=apify, require APIFY_API_TOKEN; if mode=direct, require at least one Luma event URL.

  2. 2
    Step 2

    Resolve Inputs

    For direct mode, normalize each provided Luma URL by trimming whitespace and requiring an https://lu.ma/ prefix. For Apify mode, trim the search query and preserve it in events.json so the run is…

  3. 3
    Step 3

    Direct Scrape Luma Events

    Fetch each Luma event page with a normal browser-like user agent. Extract event title, start time, location, canonical URL, and host cards from embedded JSON or HTML. Guest profiles may be…

  4. 4
    Step 4

    Apify Search Mode

    When mode=apify, call the Apify actor lexis-solutions/lu-ma-scraper with the provided search query and poll until the actor run completes. Capture the full actor dataset payload into…

  5. 5
    Step 5

    Normalize People Records

    Produce one record per person with these fields when available: name, role, event_title, event_url, bio, linkedin, twitter, instagram, website, source_mode, and source_evidence. Deduplicate by…

  6. 6
    Step 6

    Export Results

    Write /app/results/people.json as an array of normalized objects. Write /app/results/people.csv with stable headers even when no people are found.

  7. 7
    Step 7

    Iterate on Errors (max 3 rounds)

    If a fetch, parse, export, or validation step fails, inspect the specific stage message in validation_report.json, apply the smallest targeted fix, and rerun the failed stage. Stop after max 3 rounds…

  8. 8
    Step 8

    Write Summary and Validation

    Write /app/results/summary.md with the selected mode, input URLs or search query, event count, people count, output paths, and limitations such as missing guest visibility in direct mode.