event-signals

Extract leads from conferences, meetups, hackathons, and podcasts by analyzing speaker lists, sponsor lists, hackathon entries, and podcast guests. Discovers events via Sessionize, Confs.tech, Meetup, Luma, ListenNotes, and Devpost. Looks back 90 days and forward 180 days.

381 stars

Best use case

event-signals is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Extract leads from conferences, meetups, hackathons, and podcasts by analyzing speaker lists, sponsor lists, hackathon entries, and podcast guests. Discovers events via Sessionize, Confs.tech, Meetup, Luma, ListenNotes, and Devpost. Looks back 90 days and forward 180 days.

Teams using event-signals should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/event-signals/SKILL.md --create-dirs "https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main/skills/packs/lead-gen-devtools/event-signals/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/event-signals/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How event-signals Compares

Feature / Agentevent-signalsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Extract leads from conferences, meetups, hackathons, and podcasts by analyzing speaker lists, sponsor lists, hackathon entries, and podcast guests. Discovers events via Sessionize, Confs.tech, Meetup, Luma, ListenNotes, and Devpost. Looks back 90 days and forward 180 days.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Event Signals

Extract leads from the conference and events ecosystem. Events represent public declarations of priorities — a VP speaking about "scaling our infrastructure" is a stronger signal than a Reddit comment, and a company sponsoring a conference category has committed real budget.

## When to Use

- User wants to find leads from conferences, meetups, or developer events
- User wants speaker lists, sponsor lists, or attendee data from events
- User mentions KubeCon, AWS re:Invent, DevOpsDays, or any industry conference
- User wants to find people who spoke or presented about relevant topics
- User asks about hackathon participants using relevant technologies
- User wants podcast guests who discussed relevant challenges
- User describes prospects who attend industry events or speak at conferences

## Prerequisites

- Python 3.9+ with `requests` and optionally `python-dotenv`
- Apify API token in `.env` (for Meetup and Luma — optional)
- ListenNotes API key in `.env` as `LISTENNOTES_API_KEY` (for podcast search — optional, free tier gives 300 req/mo)
- Working directory: the project root containing this skill

## Phase 1: Collect Context

### Step 1: Gather Product & ICP Information

If not already available from prior skills:

> "To find the right event-based leads, I need:
> 1. **What does your product do?** (one-liner)
> 2. **What industry/vertical are you in?** (this determines which conferences matter)
> 3. **What technologies or keywords are in your space?**
> 4. **Who is your ideal buyer?** (their role, what conferences they'd attend)
> 5. **Any specific conferences or events you know about?** (names, URLs)
> 6. **Are you registered on Luma or Meetup for any events?** (if yes, we may be able to access attendee lists)"

## Phase 2: Discover Relevant Events

This is the most agent-driven phase. The agent must actively research to find the right events.

### Step 2: Discover Conferences

Use multiple approaches in parallel:

**2a. Confs.tech (automated):**
The tool can query confs.tech for conferences by topic. Common topics available: `devops`, `javascript`, `ruby`, `python`, `golang`, `rust`, `java`, `php`, `css`, `data`, `security`, `ux`, `android`, `ios`, `general`, `dotnet`, `elixir`, `networking`, `cloud`, `ai`.

**2b. Web search (agent-driven):**
Search for conferences in the user's space. Queries to try:
- "[industry/technology] conferences 2026"
- "[technology] developer conference"
- "[vertical] summit 2026"
- "best [topic] conferences for engineers"
- "[competitor name] conference" (competitors often host their own events)

**2c. Check for Sessionize events:**
Many tech conferences use Sessionize for their schedule. When you find a conference:
1. Check if their schedule page links to Sessionize
2. Look for URLs like `sessionize.com/api/v2/EVENTID` in the page source
3. If Sessionize is used, note the event ID — we can extract all speakers programmatically

**2d. Check for upcoming events (forward-looking 180 days):**
Search for events happening in the next 6 months. The user wants to reach prospects BEFORE the event.
- Search: "[conference name] 2026 dates"
- Check conference websites for published schedules and speaker announcements
- CFP (Call for Papers) deadlines indicate upcoming conferences

**2e. Check for recent events (backward-looking 90 days):**
Recent event speakers/sponsors still have the same priorities. Search for:
- "[conference name] 2025 2026 speakers"
- "[conference name] recap" or "what I learned at [conference]"

### Step 3: Discover Meetups and Local Events

**3a. Meetup.com (automated):**
Generate search queries based on the user's space:
- Technology-specific: "Kubernetes meetup", "WebRTC meetup"
- Industry-specific: "DevOps meetup", "cloud native meetup"
- Location-specific (if user has a target geography)

**3b. Luma (automated):**
Search Luma for events in the user's space. Luma is popular for:
- AI/ML community events
- Startup demo days
- Developer community gatherings
- Tech talks and fireside chats

**3c. Ask the user about their registrations:**
> "Are you registered for any events on Luma or Meetup? If you're registered for a Luma event, the attendee list is often publicly visible — I can extract it. For some Meetup events, RSVP lists are public too."

### Step 4: Discover Podcasts

**4a. Identify relevant podcasts:**
Do a web search to find podcasts in the user's space:
- "[technology/industry] podcast"
- "best podcasts for [role/topic]"
- "[competitor name] podcast" (competitors often appear as guests)

**4b. Search for specific episodes:**
Use ListenNotes to search for episodes by keyword:
- "[competitor] review" or "[competitor] experience"
- "[problem space] challenges"
- "[technology] at scale"
- "building [thing the product does]"

### Step 5: Discover Hackathons

**5a. Devpost:**
Search Devpost for hackathons with projects using relevant technologies:
- Go to devpost.com and search for hackathon names in the user's space
- Note the hackathon slug (URL path) for the tool to scrape

**5b. Other hackathon platforms:**
- MLH season events (mlh.io/seasons)
- Company-hosted hackathons (many companies run their own)
- University hackathons (if targeting younger engineers)

### Step 6: Present Discovery Results

Present all discovered events to the user in a table:

```
CONFERENCES (Sessionize available):
  Event                    | Date         | Location      | Sessionize ID
  KubeCon NA 2026          | Oct 13-16    | Salt Lake City| abc123
  DevOpsDays NYC           | Jun 5-6      | New York      | def456

CONFERENCES (need website scraping):
  Event                    | Date         | URL
  AWS re:Invent            | Nov 30-Dec 4 | reinvent.awsevents.com

MEETUP QUERIES: "kubernetes meetup", "cloud native meetup"
LUMA QUERIES: "devops event", "infrastructure meetup"
PODCAST QUERIES: "kubernetes scaling", "infrastructure challenges"
DEVPOST HACKATHONS: "cloud-native-hack-2026", "kubernetes-challenge"
```

Ask the user to review and approve. Also ask if they want to add or remove any events.

### Step 7: Scrape Conference Websites (Agent-Driven)

For conferences NOT on Sessionize, the agent should manually extract:

**Speaker lists:**
- Navigate to the conference website's "Speakers" or "Schedule" page
- Extract: speaker name, company, title, talk title, bio
- Use Chrome DevTools MCP or web fetching tools

**Sponsor lists:**
- Navigate to the "Sponsors" or "Partners" page
- Extract: company name, sponsorship tier (platinum/gold/silver/bronze)
- Higher tiers = more invested in the space

**Save scraped data** to `${CLAUDE_SKILL_DIR}/../.tmp/manual_event_signals.json` in this format:
```json
[
    {
        "person_name": "Jane Smith",
        "company": "Acme Corp",
        "signal_type": "conference_speaker",
        "signal_label": "Conference Speaker",
        "event_name": "KubeCon NA 2026",
        "event_type": "Conference",
        "talk_or_role": "Scaling Kubernetes to 10,000 Nodes",
        "bio": "VP of Infrastructure at Acme Corp",
        "url": "https://kubecon.io/speakers/jane-smith",
        "linkedin": "",
        "twitter": "@janesmith",
        "website": "",
        "date": "2026-10-14",
        "source": "Manual"
    }
]
```

## Phase 3: Execute Scan

### Step 8: Save Config File

```bash
cat > ${CLAUDE_SKILL_DIR}/../.tmp/event_signals_config.json << 'CONFIGEOF'
{
    "keywords": ["kubernetes", "cloud native", "infrastructure"],
    "sessionize_event_ids": ["abc123", "def456"],
    "confstech_topics": ["devops", "cloud"],
    "meetup_queries": ["kubernetes meetup", "cloud native meetup"],
    "meetup_location": "",
    "luma_queries": ["devops event", "infrastructure meetup"],
    "podcast_queries": ["kubernetes scaling", "infrastructure challenges"],
    "devpost_slugs": ["cloud-native-hack-2026"],
    "manual_signals_file": "${CLAUDE_SKILL_DIR}/../.tmp/manual_event_signals.json",
    "skip": []
}
CONFIGEOF
```

### Step 9: Run the Tool

```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/event_signals.py \
    --config ${CLAUDE_SKILL_DIR}/../.tmp/event_signals_config.json \
    --output ${CLAUDE_SKILL_DIR}/../.tmp/event_signals.csv
```

The tool handles structured sources. The agent handles conference website scraping in Step 7 (before running the tool), saving results to the manual signals file.

**To skip specific sources:**
Add to the config's `skip` array: `"sessionize"`, `"confstech"`, `"meetup"`, `"luma"`, `"podcast"`, `"devpost"`

## Phase 4: Analyze & Recommend

### Step 11: Analyze Results

**11a. Overall Stats**
- Total signals by type (speakers, sponsors, meetup organizers, hackathon entries, podcast guests)
- Total unique people and companies
- Signal source breakdown

**11b. Speaker Analysis**
- Who is speaking about topics relevant to the user's product?
- What companies are they from? (company clustering)
- What are the most common talk themes?
- Any speakers who appear at multiple events? (repeat speakers = thought leaders with influence)

**11c. Sponsor Analysis**
- Which companies are sponsoring events in this space? (they have budget committed)
- Tier analysis — platinum/gold sponsors are the most invested
- Companies sponsoring multiple events = deeply committed to the space

**11d. Hackathon & Community Analysis**
- What technologies are hackathon teams using?
- Which teams built projects most relevant to the user's product?

**11e. Podcast Analysis**
- What topics are being discussed most?
- Which podcast guests talked about problems the user's product solves?

**11f. Time-Based Urgency**
- Upcoming events (next 30 days) = outreach should happen NOW, before the event
- Recent events (last 30 days) = speakers still have the topic top-of-mind
- Events 30-90 days out = time to prepare personalized outreach

### Step 12: Recommend Next Steps

1. **For conference speakers:**
   - Highest-value leads. They publicly declared their priorities.
   - Outreach angle: "I saw your talk on [topic] at [event] — we solve exactly that problem"
   - Recommend enriching via SixtyFour to get contact info
   - If the event is upcoming: "I'll be at [event] too — would love to chat about [topic]"

2. **For sponsors:**
   - These are companies, not individuals. Use SixtyFour `/enrich-company` first, then find the right person.
   - Outreach angle: "I noticed [company] sponsored [event] — you're clearly investing in [space]"

3. **For meetup organizers/attendees:**
   - Community influencers. Good for partnerships, not just sales.
   - Consider having the user attend these meetups for warm intros.

4. **For hackathon participants:**
   - Active builders using relevant tech. Often at startups or building side projects that become companies.
   - Outreach angle: Reference their project specifically.

5. **For podcast guests:**
   - Similar to conference speakers — public thought leaders.
   - Outreach angle: "Listened to your episode on [podcast] about [topic]"

6. **Cross-signal validation:**
   - If a person appeared as both a conference speaker AND was found in GitHub signals or community signals, that's a very high-confidence lead.
   - Check if any companies from event signals also appeared in job signals (hiring + sponsoring = maximum budget commitment).

### Step 13: Ask for Go-Ahead

> "Would you like me to:
> 1. Enrich the top speakers/companies via SixtyFour
> 2. Cross-reference with GitHub/community/job signals data
> 3. Scrape more conference websites for additional speakers/sponsors
> 4. Set up monitoring for upcoming events (recurring scan)
> 5. Export for manual review first"

## Output Schema (Single Sheet)

| Column | Description |
|--------|-------------|
| person_name | Speaker name, organizer, podcast guest, or team member |
| company | Company/organization |
| signal_type | Internal signal type code |
| signal_label | Human-readable signal label |
| event_name | Conference/meetup/hackathon/podcast name |
| event_type | Conference, Meetup, Hackathon, Podcast, Luma Event |
| talk_or_role | Talk title, sponsorship tier, project name, episode title |
| bio | Speaker bio or event/project description |
| linkedin | LinkedIn URL (if available from Sessionize) |
| twitter | Twitter/X handle (if available) |
| website | Personal/company website (if available) |
| date | Event date or episode date |
| signal_score | Weight based on signal type |
| source | Sessionize, Meetup, Luma, ListenNotes, Devpost, Manual |
| url | Link to the event/talk/episode/project |

## Signal Scoring

| Signal Type | Score | Rationale |
|---|---|---|
| Conference Speaker | 9 | Company-approved public statement of priorities |
| Workshop Host | 9 | Deep expertise + company investment in teaching |
| Podcast Guest | 8 | Public discussion of challenges and stack |
| Panel Participant | 8 | Industry voice, often reveals pain points |
| Conference Sponsor | 8 | Committed budget to the space |
| Meetup Organizer | 7 | Community leader and influencer |
| Hackathon Entry | 7 | Active builder using relevant tech |
| Podcast Host | 6 | Creates content in the space — influencer |
| Meetup Attendee | 5 | Interest signal but lower commitment |
| Event Attendee | 5 | Interest signal |

## Event Type Guidelines for the Agent

When discovering events, consider ALL of these event types based on the user's ICP:

**Major Developer Conferences:**
KubeCon, AWS re:Invent, Google Cloud Next, Microsoft Build, QCon, DevOpsDays, GopherCon, PyCon, RustConf, JSConf, ReactConf, DockerCon, HashiConf, Datadog DASH, GitLab Commit, GitHub Universe, Vercel Ship

**Industry/Vertical Conferences:**
SaaStr (SaaS), MWC (mobile), CES (consumer tech), RSA (security), Black Hat (security), Gartner summits, Forrester events

**Startup Events:**
YC Demo Day, TechCrunch Disrupt, Web Summit, Collision, SXSW Interactive, Product Hunt launches

**Meetup Platforms:**
Meetup.com, Luma, Eventbrite, Bevy (community-led events)

**Hackathon Platforms:**
Devpost, MLH events, Devfolio, company-hosted hackathons

**Podcast Networks:**
Changelog, Software Engineering Daily, The New Stack, InfoQ podcasts, a16z podcast, industry-specific pods

The agent should adapt this list based on the user's specific vertical.

## Cost Estimates

| Source | Cost | Notes |
|--------|------|-------|
| Sessionize | Free | Public API, no auth |
| Confs.tech | Free | JSON on GitHub |
| Meetup (Apify) | ~$0.05-0.10/search | Pay-per-event |
| Luma (Apify) | $29/mo + usage or pay-per-event | Depends on actor |
| ListenNotes | Free (300 req/mo) | Free tier sufficient for most |
| Devpost | Free | Custom scraping |
| Manual scraping | Free | Agent uses web tools |
| **Typical run** | **$1-5 total** | Most sources are free |

## Time Window

- **Backward:** 90 days (recent events — speakers still have topic top-of-mind)
- **Forward:** 180 days (upcoming events — reach prospects before the event for maximum impact)

Related Skills

event-prospecting-pipeline

381
from gooseworks-ai/goose-skills

Find attendees at conferences/events, research their companies, qualify against ICP, and launch outreach

github-repo-signals

381
from gooseworks-ai/goose-skills

Extract and score leads from GitHub repositories by analyzing stars, forks, issues, PRs, comments, and contributions. Produces unified multi-repo CSV with deduplicated user profiles. No paid API credits required.

competitor-signals

381
from gooseworks-ai/goose-skills

Extract leads from competitor product activity — Product Hunt commenters/upvoters, HN posts about competitors, case studies, testimonials, tech press, and switching signals. Detects people actively switching from competitors as highest-priority leads.

community-signals

381
from gooseworks-ai/goose-skills

Extract leads from developer forums (Hacker News, Reddit) by detecting intent signals — alternative seeking, competitor pain, scaling challenges, DIY solutions, and migration intent. Scores users by intent strength and cross-platform presence.

luma-event-attendees

381
from gooseworks-ai/goose-skills

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.

signal-detection-pipeline

381
from gooseworks-ai/goose-skills

Detect buying signals from multiple sources, qualify leads, and generate outreach context

seo-content-engine

381
from gooseworks-ai/goose-skills

Build and run an SEO content engine: audit current state, identify gaps, build keyword architecture, generate content calendar, draft content.

outbound-prospecting-engine

381
from gooseworks-ai/goose-skills

End-to-end outbound prospecting: detect intent signals, research companies, find decision-maker contacts, personalize messaging, launch campaign.

competitor-monitoring-system

381
from gooseworks-ai/goose-skills

Set up and run ongoing competitive intelligence monitoring for a client. Tracks competitor content, ads, reviews, social, and product moves.

client-packet-engine

381
from gooseworks-ai/goose-skills

Batch client packet generator. Takes company names/URLs, runs intelligence + strategy generation, presents strategies for human selection, executes selected strategies in pitch-packet mode (no live campaigns or paid enrichment), and packages into local delivery packets.

client-package-notion

381
from gooseworks-ai/goose-skills

Package all work done for a client into a shareable Notion page with subpages and Google Sheets. Reads the client's folder (strategies, campaigns, content, leads, notes) and builds a structured Notion workspace the client can browse. Lead list CSVs are uploaded to Google Sheets and linked from the Notion pages. Use when you want to deliver work to a client in a polished, navigable format.

client-package-local

381
from gooseworks-ai/goose-skills

Package all work done for a client into a local filesystem delivery package with .md files and Google Sheets. Reads the client's folder (strategies, campaigns, content, leads, notes) and builds a structured directory with dated deliverables. Lead lists are uploaded to Google Sheets and linked from the markdown files. Use when you want to deliver work to a client in a polished, navigable format without requiring Notion.