Agent skill

Get Qualified Leads From Luma

by gooseworks-ai in gooseworks-ai/goose-skills

End-to-end lead prospecting from Luma events. An agent skill from gooseworks-ai/goose-skills.

MITAuto-check: notesDocuments & Office

Install Get Qualified Leads From Luma

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill get-qualified-leads-from-luma -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills get-qualified-leads-from-luma --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/lead-generation/composites/get-qualified-leads-from-luma .claude/skills/get-qualified-leads-from-luma && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
get-qualified-leads-from-luma
GitHub stars
1.2k
Used in
1 other repo
Token cost
~2.4k tokens
SKILL.md length
1,030 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

End-to-end lead prospecting from Luma events. An agent skill from gooseworks-ai/goose-skills.

  • Works in 6 steps: Clarify Search Parameters → Search Luma and Extract Attendees → Save Attendee Data to CSV → …
  • Someone wants to find qualified leads from events
  • SKILL.md covers Step 0: Clarify Search…, Step 1: Search Luma and…, Step 2: Save Attendee Data to… and Step 3: Qualify Leads, plus 5 more sections
  • Calls python3 and curl; needs APIFY_API_TOKEN

What it does

Get Qualified Leads From Luma is an agent skill from gooseworks-ai/goose-skills. End-to-end lead prospecting from Luma events. Searches Luma for events by topic and location, extracts all attendees/hosts, qualifies them against a qualification prompt, outputs results to a Google Sheet, and sends a Slack alert with top leads. Use this skill whenever someone wants to find qualified leads from events, prospect event attendees, or run an event-based lead gen workflow. Also triggers for "find people at events and qualify them" or "who's attending X events that matches our ICP."

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).

It sits in Documents & Office, covering Excel spreadsheets, Lead generation and Cold outreach. It works with Google Sheets and Slack. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.

When your agent uses it

  • Someone wants to find qualified leads from events
  • Prospect event attendees
  • Run an event-based lead gen workflow
  • Find people at events and qualify them

Example prompts

  • “find people at events and qualify them”
  • “s attending X events that matches our ICP.”
  • “/get-qualified-leads-from-luma”

Requirements

  • Python 3
  • A credential in APIFY_API_TOKEN

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Clarify Search Parameters
  2. Search Luma and Extract Attendees
  3. Save Attendee Data to CSV
  4. Qualify Leads
  5. Create Google Sheet with Results
  6. Send Slack Alert

What it can do on your machine

Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • hooks.slack.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APIFY_API_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Get Qualified Leads From Luma loads about 2.4k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 1,030 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~132
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:216
    # Or check skills/luma-event-attendees/.env

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,030 words, ~2,442 tokens.

Download SKILL.mdSave it as .claude/skills/get-qualified-leads-from-luma/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
get-qualified-leads-from-luma
description
End-to-end lead prospecting from Luma events. Searches Luma for events by topic and location, extracts all attendees/hosts, qualifies them against a qualification prompt, outputs results to a Google Sheet, and sends a Slack alert with top leads. Use this skill whenever someone wants to find qualified leads from events, prospect event attendees, or run an event-based lead gen workflow. Also triggers for "find people at events and qualify them" or "who's attending X events that matches our ICP."
version
1.0.0
tags
lead-generation

Get Qualified Leads from Luma Events

Search Luma for events by topic and location, extract all attendees and hosts, qualify them against your ICP, export to a Google Sheet, and send a Slack alert with the top leads.

This is a 5-step pipeline that chains together luma-event-attendees, lead-qualification, Google Sheets output, and Slack alerting.

Step 0: Clarify Search Parameters

Before doing anything, make sure you have clear answers to these questions. If the user's prompt already covers them, skip ahead. Otherwise, ask:

  1. Location — Where should events be? (e.g., "San Francisco", "New York", "London")
  2. Topics/Keywords — What event topics? Suggest 3-5 keyword variations to maximize coverage. For example, if the user says "growth marketing", also suggest: "GTM", "demand gen", "startup growth", "growth hacking", "marketing leadership"
  3. Timeframe — How recent should the events be? (e.g., "past 2 weeks", "past month", "this quarter"). Default to past 30 days if the user doesn't specify. Luma search can return events from months or years ago, so always confirm a timeframe to avoid stale results.
  4. Qualification prompt — Does the user have an existing qualification prompt in skills/lead-qualification/qualification-prompts/? If not, what's their ICP at a high level? (Can use lead-qualification intake mode to build one)
  5. Slack channel/webhook — Where should the alert go? A webhook URL or Slack channel name?
  6. How many top leads in the Slack alert? (default: 5)

Present these as a numbered list. The user can answer in one shot.

Step 1: Search Luma and Extract Attendees

Use the luma-event-attendees skill with multiple keyword variations to maximize coverage.

Run parallel searches

Generate 3-5 keyword variations combining the user's topic with their location. Run them all in parallel:

bash
# Run each search variation in parallel
python3 skills/luma-event-attendees/scripts/scrape_event.py --search "AI San Francisco" --output /tmp/luma_search_1.csv
python3 skills/luma-event-attendees/scripts/scrape_event.py --search "Growth Marketing San Francisco" --output /tmp/luma_search_2.csv
python3 skills/luma-event-attendees/scripts/scrape_event.py --search "GTM San Francisco" --output /tmp/luma_search_3.csv
Filter by timeframe

After collecting results, filter out events outside the user's specified timeframe using the event_date column. Luma search returns events from all time periods, so this step is essential to avoid stale leads. If no timeframe was specified, default to the past 30 days.

Deduplicate

Merge and deduplicate by name (case-insensitive). Handle None names gracefully — skip entries with no name.

Save the deduplicated result as a CSV:

/tmp/luma_all_attendees.csv

Report to the user:

  • How many total results before dedup
  • How many unique people after dedup
  • How many have LinkedIn profiles
  • How many events were covered

Step 2: Save Attendee Data to CSV

Work with CSVs throughout the pipeline — Google Sheets creation happens only at the end (Step 4) because writing large datasets to Sheets mid-process is slow and error-prone.

The CSV from Step 1 (/tmp/luma_all_attendees.csv) is your working file. Columns should include:

nameevent_rolebiotitlecompanylinkedin_urltwitter_urlinstagram_urlwebsite_urlusernameevent_nameevent_dateevent_url

Step 3: Qualify Leads

Use the lead-qualification skill (Mode 2: reuse prompt) to qualify all attendees.

Prepare batches
  1. Read the qualification prompt from the file the user specified (e.g., skills/lead-qualification/qualification-prompts/ai-event-attendees-gtm.md)
  2. Split attendees into batches of ~15-20 leads each
  3. For each lead, include: id (row number), name, event_role, bio, title, company, linkedin_url, event_name
Run parallel qualification

Launch all batches simultaneously using the Task tool with sonnet model subagents:

Task: "Qualify leads batch 1/N"
  - Include the full qualification prompt text
  - Include the batch of leads as JSON
  - Ask for output as JSON array: [{id, name, qualified, confidence, reasoning}]

Task: "Qualify leads batch 2/N"
  ... (launch ALL at once)
Merge results
  1. Collect all batch results
  2. Merge into a single JSON array, preserving original IDs
  3. Sort qualified leads by confidence (High first, then Medium, then Low)
  4. Save results:
    • /tmp/all_qual_results.json — all 195 results
    • /tmp/qualified_leads.json — only qualified leads, sorted by confidence

Report to the user:

  • Total leads processed
  • Qualified count and percentage
  • Breakdown by confidence level (High / Medium / Low)
  • Top disqualification reasons

Step 4: Create Google Sheet with Results

Now create the Google Sheet with all data — both raw attendees and qualification results.

Show full SKILL.md (444 more words)Show less
Use Rube MCP for Google Sheets
  1. Use RUBE_SEARCH_TOOLS to find Google Sheets tools (search for "google sheet create")
  2. Create a new sheet named: Luma Leads - [Topic] - [Date]
  3. Sheet 1 ("All Attendees"): Write all attendee rows with original columns PLUS:
    • Qualified — Yes / No
    • Confidence — High / Medium / Low
    • Reasoning — 2-3 sentence explanation
  4. Sheet 2 ("Qualified Leads"): Only qualified leads, sorted by confidence
Writing strategy for large datasets

The Google Sheets API can be slow for large datasets. Use this approach:

  • Write the header row first
  • Write data in chunks of 50 rows using batch update operations
  • If a chunk fails, retry once before moving on
Fallback

If Rube/Sheets is unavailable, save as CSV:

/tmp/luma_qualified_leads_[date].csv

Present the Google Sheet link (or CSV path) to the user.

Step 5: Send Slack Alert

Send a formatted Slack message with the top N qualified leads (default: 5, or whatever the user specified).

If the user provided a webhook URL

Use Python with urllib.request to POST to the webhook:

python
import json
import urllib.request

message = {
    "blocks": [
        {"type": "header", "text": {"type": "plain_text", "text": "Top N Qualified Leads from [Topic] Events"}},
        {"type": "section", "text": {"type": "mrkdwn", "text": "_From X attendees across Y events, Z qualified (P%). Here are the top N:_"}},
        # For each lead:
        {"type": "section", "text": {"type": "mrkdwn", "text": "*1. Name* [Confidence]\n   LinkedIn: url\n   Bio: ...\n   Why: reasoning"}},
        {"type": "divider"},
        # Link to spreadsheet at the bottom
        {"type": "section", "text": {"type": "mrkdwn", "text": "<sheet_url|View full spreadsheet> (X attendees, Y qualified)"}}
    ]
}

req = urllib.request.Request(webhook_url, data=json.dumps(message).encode(), headers={"Content-Type": "application/json"})
urllib.request.urlopen(req)
If the user wants Slack via Rube MCP

Use RUBE_SEARCH_TOOLS to find Slack tools, then send via SLACK_SEND_MESSAGE or similar.

Message format

The Slack alert should include for each top lead:

  • Name and confidence level
  • LinkedIn URL (clickable)
  • Bio — one-line summary
  • Why — the qualification reasoning (truncated to ~150 chars if needed)

End with a link to the full Google Sheet.

Cost Estimate

ComponentCost
Luma scraper (Apify)$29/mo flat subscription
LinkedIn enrichment (optional)~$0.03 per 100 leads
Google SheetsFree (via Rube/Composio)
LLM qualification~$0.10-0.30 per run (depends on batch size)
Slack webhookFree

Typical run: ~200 attendees across 3-5 search variations costs essentially just the Apify subscription + a few cents in LLM tokens.

Example Prompts

Quick run with existing prompt:

"Find qualified leads from AI and growth events in SF. Use the ai-event-attendees-gtm qualification prompt. Send top 5 to Slack webhook: https://hooks.slack.com/..."

Full specification:

"Search Luma for startup, SaaS, and AI events in New York. Extract all attendees. Qualify them against our Series A founders ICP. Put everything in a Google Sheet and Slack me the top 10."

Minimal (triggers clarifying questions):

"Find me leads from SF tech events"

Troubleshooting

Apify token not set
bash
export APIFY_API_TOKEN="your_token"
# Or check skills/luma-event-attendees/.env
No guests found

Some Luma events have show_guest_list disabled. The Apify scraper can still get featured guests, but full attendee lists may not be available for all events.

Google Sheets writing is slow

This is normal for large datasets. The skill writes in 50-row chunks. If it's too slow or fails, results are always available as CSV in /tmp/.

Slack webhook returns error

Verify the webhook URL is correct and the Slack app is still installed in the workspace. Test with a simple curl:

bash
curl -X POST -H 'Content-Type: application/json' -d '{"text":"test"}' YOUR_WEBHOOK_URL

© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/lead-generation/composites/get-qualified-leads-from-luma of gooseworks-ai/goose-skills.

  • SKILL.md
  • skill.meta.json

Open the folder on GitHubat commit c650c6d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Get Qualified Leads From Luma next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Get Qualified Leads From Luma compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Get Qualified Leads From Luma this skillgooseworks-ai/goose-skills1.2k1 repos~2.4kAutomated safety check: NotesMIT
Managing Google Workspacetaylorwilsdon/google_workspace_mcp3.3k—~2.9kAutomated safety check: PassMIT
Gdoc To Markdowniurykrieger/claude-bedrock1051 repos~3.8kAutomated safety check: NotesMIT
XLSXzzhonglei/GeoCode-Release189—~3.1kAutomated safety check: PassMIT
List Buildergrowthenginenowoslawski/coldoutboundskills753—~4.7kAutomated safety check: NotesMIT
Gws Sheets Appendgoogleworkspace/cli31k1 repos~389Automated safety check: PassApache-2.0

Similar skills

  • Managing Google Workspace

    taylorwilsdon/google_workspace_mcp

    Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).

    3.3k GitHub stars~2.9k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • Gdoc To Markdown

    iurykrieger/claude-bedrock

    Internal fetcher module for Google Docs and Sheets. An agent skill from iurykrieger/claude-bedrock.

    105 GitHub starsUsed in 1 repo~3.8k tokens
    Documents & OfficeAuto-check: notes
  • XLSX

    zzhonglei/GeoCode-Release

    Create, edit, analyze, or convert Excel spreadsheets (.xlsx, .xlsm) where the workbook file is the primary deliverable.

    189 GitHub stars~3.1k tokensUpdated 7 days ago
    Documents & OfficeAuto-check passed
  • List Builder

    growthenginenowoslawski/coldoutboundskills

    META skill — build the largest possible qualified lead list for any request, end to end.

    753 GitHub stars~4.7k tokensUpdated 5 days ago
    Documents & OfficeAuto-check: notes
  • Gws Sheets Append

    googleworkspace/cli

    Google Sheets: Append a row to a spreadsheet. An agent skill from googleworkspace/cli.

    31k GitHub starsUsed in 1 repo~389 tokens
    Documents & OfficeAuto-check passed
  • Gws Sheets Read

    googleworkspace/cli

    Google Sheets: Read values from a spreadsheet. An agent skill from googleworkspace/cli.

    31k GitHub starsUsed in 1 repo~279 tokens
    Documents & OfficeAuto-check passed

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    gooseworks-ai/goose-skills

    Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.

    1.2k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Render Hook Replacement

    gooseworks-ai/goose-skills

    Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Questions about Get Qualified Leads From Luma

What does Get Qualified Leads From Luma do?

End-to-end lead prospecting from Luma events. An agent skill from gooseworks-ai/goose-skills. Get Qualified Leads From Luma is an agent skill from gooseworks-ai/goose-skills. End-to-end lead prospecting from Luma events.

When should I use Get Qualified Leads From Luma?

Get Qualified Leads From Luma fits situations like: someone wants to find qualified leads from events; prospect event attendees; run an event-based lead gen workflow; find people at events and qualify them.

How do I install Get Qualified Leads From Luma in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill get-qualified-leads-from-luma -a claude-code`. Or copy the skill folder (skills/lead-generation/composites/get-qualified-leads-from-luma in gooseworks-ai/goose-skills) into .claude/skills/get-qualified-leads-from-luma in your project. Claude Code loads it when a task matches its description.

How do I install Get Qualified Leads From Luma in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill get-qualified-leads-from-luma -a codex`. Or copy the skill folder (skills/lead-generation/composites/get-qualified-leads-from-luma in gooseworks-ai/goose-skills) into .agents/skills/get-qualified-leads-from-luma in your project. Codex loads it when a task matches its description.

Can I use Get Qualified Leads From Luma in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill get-qualified-leads-from-luma -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/get-qualified-leads-from-luma, .gemini/skills/get-qualified-leads-from-luma, .github/skills/get-qualified-leads-from-luma and .opencode/skills/get-qualified-leads-from-luma in your project.

What does Get Qualified Leads From Luma need to run?

Going by SKILL.md and its folder, Get Qualified Leads From Luma needs the command-line tools its instructions call (python3 and curl) and credentials named APIFY_API_TOKEN. Our summary lists: Python 3; A credential in APIFY_API_TOKEN.

Does Get Qualified Leads From Luma access the network?

SKILL.md names 1 domain. As links in the text: hooks.slack.com. This is read from the text; nothing was executed.

Is Get Qualified Leads From Luma safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Get Qualified Leads From Luma use?

Get Qualified Leads From Luma is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Get Qualified Leads From Luma use?

About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Get Qualified Leads From Luma?

Skills that share tags, products or a category with Get Qualified Leads From Luma: Managing Google Workspace (taylorwilsdon/google_workspace_mcp, 3.3k stars), Gdoc To Markdown (iurykrieger/claude-bedrock, 105 stars), XLSX (zzhonglei/GeoCode-Release, 189 stars) and List Builder (growthenginenowoslawski/coldoutboundskills, 753 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Get Qualified Leads From Luma?

gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.

Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.