Skip to content
Marketing
Skill

/get-qualified-leads-from-luma

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

From plugin
goose-skills
1.2k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill get-qualified-leads-from-luma --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/get-qualified-leads-from-luma

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

get-qualified-leads-from-luma.SKILL.md
name: get-qualified-leads-from-luma
version: 1.0.0
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."
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:

# 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:

| name | event_role | bio | title | company | linkedin_url | twitter_url | instagram_url | website_url | username | event_name | event_date | event_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.

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
Read more
Ships withgoose-skills

Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.

Get the whole plugin

Other skills on goose-skills.