Help us improve
Share bugs, ideas, or general feedback.
From event-agency-skills
Generates personalized B2B cold outreach for events — buyer, sponsor, and speaker prospecting emails with 4-touch follow-up sequences. Triggers on 'cold email', 'outreach', 'prospecting'.
npx claudepluginhub talkvalue/event-agency-skills --plugin event-agency-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/event-agency-skills:cold-outreachThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Write cold emails that get replies — not by tricking recipients, but by making the event relevant to them specifically.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Breaks plans, specs, or PRDs into thin vertical-slice issues on the project issue tracker using tracer bullets. Useful for converting high-level work into grabbable implementation tickets.
Share bugs, ideas, or general feedback.
Write cold emails that get replies — not by tricking recipients, but by making the event relevant to them specifically.
Event outreach fails when it reads like a mass blast. A wine importer doesn't care about your conference's "world-class programming." They care whether the buyers in the room match their distribution targets. A potential sponsor doesn't care about your attendee count. They care whether those attendees are the decision-makers they're trying to reach.
This skill takes a target list and event context, then produces personalized outreach with role-specific angles and a proven follow-up cadence.
| Input | Required | Default | Notes |
|---|---|---|---|
| Target list | Yes | — | Names, companies, roles. From a spreadsheet, CRM export, or verbal list |
| Event context | Yes | — | Event name, dates, location, audience profile, value proposition |
| Target role | Yes | — | buyer / sponsor / speaker — determines the angle |
| Personalization data | No | — | Past attendance, industry, specific interests, mutual connections |
| Sequence length | No | 4-touch | D1 intro → D3 follow-up → D7 value-add → D14 break-up |
| Target Role | Lead With | CTA |
|---|---|---|
| Buyer | Who else is in the room — attendees, speakers, exhibitors | Register / Schedule 1:1 |
| Sponsor | Audience match — "X% of attendees are [their target]" | Review deck / Schedule call |
| Speaker | Audience alignment — "attendees are [role/industry]" | Confirm interest / Share availability |
| Timing | Purpose | |
|---|---|---|
| 1 — Intro | Day 1 | Full personalized pitch, single CTA |
| 2 — Follow-up | Day 3-5 | One new piece of info, no repeat of pitch |
| 3 — Value-add | Day 7 | Share something useful, light event reference |
| 4 — Break-up | Day 14 | Acknowledge silence, remove pressure, leave door open |
For Buyers:
For Sponsors:
For Speakers:
For each email:
[Their Company/Name] + [Event Connection]For each target, generate a 4-touch sequence:
Email 1 — Day 1 (Intro):
Email 2 — Day 3-5 (Follow-up):
Email 3 — Day 7 (Value-add):
Email 4 — Day 14 (Break-up):
Per target, produce the full 4-email sequence with subject lines and complete bodies:
### [Contact Name] — [Company] ([Role Type])
**Angle:** [One sentence — why this event matters to them]
**Personalization hook:** [Specific detail — recent news, mutual connection, past attendance, industry overlap]
---
**Email 1 (Day 1 — Intro)**
Subject: [Specific, no clickbait. Formula: Their Company/Name + Event Connection]
[Opening line — reference something specific to THEM, never generic]
[One paragraph — the value proposition for THEM at this event]
[Single CTA — one ask, one action]
[Signature — real person, title, contact]
---
**Email 2 (Day 3-5 — Follow-up)**
Subject: Re: [Email 1 subject]
[Short — 2-3 sentences max]
[ONE new piece of information not in Email 1: speaker announcement, deadline, attendee stat]
[Restate CTA or offer a lower-friction alternative]
---
**Email 3 (Day 7 — Value-add)**
Subject: [New subject — tied to the value being shared, not the event pitch]
[Lead with something genuinely useful: industry insight, article, case study]
[Light reference to event — "this is also why we built [session/track] at [Event]"]
[Soft CTA or no CTA — the value IS the message]
---
**Email 4 (Day 14 — Break-up)**
Subject: Re: [Email 1 subject]
[Acknowledge silence respectfully — "I know [Event] may not be the right fit right now"]
[Offer an easy out — remove all pressure]
[Leave the door open — one sentence, warm close]
[No hard CTA — just availability if things change]
Personalization is not "Hi {First Name}." Real personalization means the email could not have been sent to anyone else. Reference their company, their role, their industry, or something specific about why THIS event is relevant to THEM.
One email, one ask. ALWAYS include exactly one CTA per email. Multiple CTAs in a single email result in no action. Pick the one thing you want them to do.
The break-up email is the closer. Email 4 — the one where you say "no worries if not" — consistently gets the highest reply rate. It removes pressure and triggers reciprocity. Never skip it.
Sequence emails must stand alone. The recipient may not have read the previous email. Each message should make sense independently. Never reference "my last email" or "as I mentioned."
Subject lines are promises. A subject that says "Quick question" better contain an actual question. A subject that says "Invitation" better contain an actual invitation. Bait-and-switch subjects destroy trust.
NEVER open with "I hope this finds you well" or "Just following up." These openers signal a mass blast. Start with why you're contacting THIS person.
Leading with your event's credentials instead of their benefit. "We've been running events for 15 years" doesn't help the recipient. "87% of last year's attendees were C-suite in your industry" does.
Repeating phrases across the sequence. The recipient sees the full email thread. If you used "excited to connect" in Email 1, don't use it in Email 3. Vary naturally.
Sending without reviewing the full thread. MUST read all prior sent messages in the thread before drafting Email 2+. Never reuse closing lines, openers, or distinctive phrases from earlier messages.
Generic sponsor pitches. "We'd love to discuss sponsorship opportunities" is not an outreach email. Name a specific activation idea that maps to their brand. "A branded networking lounge targeting the 200 procurement leaders attending" beats "gold sponsorship package" every time.
Opening lines:
Subject lines:
Sponsor pitch:
| Tool | Action | Purpose | Safety Tier |
|---|---|---|---|
| Sheets — read | GOOGLESHEETS_BATCH_GET | Load target list with contact details and personalization data | T1 Read |
| HubSpot — search | HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA | Search CRM for prospect data and prior interactions | T1 Read |
| Gmail — check | GMAIL_FETCH_EMAILS | Check if prior outreach exists before sending | T1 Read |
| Gmail — draft | GMAIL_CREATE_EMAIL_DRAFT | Save emails as drafts for review before sending | T2 Write |
| Gmail — send | GMAIL_SEND_DRAFT | Send approved draft (T3 — requires preview first) | T3 Dangerous |
| Script | Command | Purpose |
|---|---|---|
| prospect_research.py | python skills/cold-outreach/scripts/prospect_research.py --event "..." --date YYYY-MM-DD --prospects list.csv | Research prospects and generate personalized outreach angles |
| sequence_builder.py | python skills/cold-outreach/scripts/sequence_builder.py --profiles profiles.json --event "..." --date YYYY-MM-DD | Build 4-touch sequences with quality checks, optionally create Gmail drafts |
Default to plain text when creating drafts via GMAIL_CREATE_EMAIL_DRAFT. HTML formatting can trigger spam filters on first-contact emails.
Before sending, always check for existing correspondence:
GMAIL_FETCH_EMAILS: query="to:buyer@company.com", max_results=5
Avoid sending a cold email to someone you've already contacted.
If HubSpot is connected, enrich prospect data before drafting:
HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA: query="company.com", limit=10