Research a prospect then draft personalized outreach. Uses web research by default, supercharged with enrichment and CRM. Trigger with "draft outreach to [person/company]", "write cold email to [prospect]", "reach out to [name]".
Researches prospects and drafts personalized outreach emails or LinkedIn messages based on web, enrichment, and CRM data.
/plugin marketplace add fergupa/claude_plugins/plugin install sales@knowledge-work-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Research first, then draft. This skill never sends generic outreach - it always researches the prospect first to personalize the message. Works standalone with web search, supercharged when you connect your tools.
| Connector | What It Adds |
|---|---|
| Enrichment | Verified email, phone, background details |
| CRM | Prior relationship context, existing contacts |
| Create draft directly in your inbox |
No connectors? Web research works great. I'll output the email text for you to copy.
+------------------------------------------------------------------+
| DRAFT OUTREACH |
| |
| Step 1: RESEARCH (always happens first) |
| - Web search (default) |
| - + Enrichment (if enrichment tools connected) |
| - + CRM (if CRM connected) |
| |
| Step 2: DRAFT (based on research) |
| - Personalized opening (from research) |
| - Relevant hook (their priorities) |
| - Clear CTA |
| |
| Step 3: DELIVER (based on connectors) |
| - Email draft (if email connected) |
| - Copy for LinkedIn (always) |
| - Output to user (always) |
+------------------------------------------------------------------+
# Outreach Draft: [Person] @ [Company]
**Generated:** [Date] | **Research Sources:** [Web, Enrichment, CRM]
---
## Research Summary
**Target:** [Name], [Title] at [Company]
**Hook:** [Why reaching out now - the personalized angle]
**Goal:** [What you want from this outreach]
---
## Email Draft
**To:** [email if known, or "find email" note]
**Subject:** [Personalized subject line]
---
[Email body]
---
**Subject Line Alternatives:**
1. [Option 2]
2. [Option 3]
---
## LinkedIn Message (if no email)
**Connection Request (< 300 chars):**
[Short, no-pitch connection request]
**Follow-up Message (after connected):**
[Value-first message]
---
## Why This Approach
| Element | Based On |
|---------|----------|
| Opening | [Research finding that makes it personal] |
| Hook | [Their priority/pain point] |
| Proof | [Relevant customer story] |
| CTA | [Low-friction ask] |
---
## Email Draft Status
[Draft created - check ~~email]
[Email not connected - copy email above]
[No email found - use LinkedIn approach]
---
## Follow-up Sequence (Optional)
**Day 3 - Follow-up 1:**
[Short, new angle]
**Day 7 - Follow-up 2:**
[Different value prop]
**Day 14 - Break-up:**
[Final attempt]
Input patterns:
- "draft outreach to John Smith at Acme" → Person + company
- "write cold email to Acme's CTO" → Role + company
- "reach out to sarah@acme.com" → Email provided
- "LinkedIn message to [LinkedIn URL]" → Profile provided
Use research-prospect skill internally:
1. Web search for company + person
2. If Enrichment connected: Get verified contact info, background
3. If CRM connected: Check for prior relationship
Must find before drafting:
Priority order for hooks:
1. Trigger event (funding, hiring, news) → Most timely
2. Mutual connection → Social proof
3. Their content (post, article, talk) → Shows you did research
4. Company initiative → Relevant to their priorities
5. Role-based pain point → Least personal but still relevant
Email Structure (AIDA):
SUBJECT: [Personalized, <50 chars, no spam words]
[Opening: Personal hook - shows you researched them]
[Interest: Their problem/opportunity in 1-2 sentences]
[Desire: Brief proof point - similar company result]
[Action: Clear, low-friction CTA]
[Signature]
LinkedIn Connection Request (<300 chars):
Hi [Name], [Mutual connection/shared interest/genuine compliment].
Would love to connect. [No pitch]
LinkedIn Follow-up Message:
Thanks for connecting! [Value-first: insight, article, observation]
[Soft transition to why you reached out]
[Question, not pitch]
If email connector available:
1. Create draft with to, subject, body
2. Return draft link
3. Note: "Draft created - review and send"
If not available:
1. Output email text
2. Note: "Copy to your email client"
| Capability | Web Only | + Enrichment | + CRM | |
|---|---|---|---|---|
| Personalized opening | Basic | Deep | With history | Same |
| Verified email | No | Yes | Yes | Yes |
| Background details | Public only | Full | Full | Full |
| Prior relationship | No | No | Yes | Yes |
| Auto-create draft | No | No | No | Yes |
Subject: [Their initiative] + [your angle]
Hi [Name],
[Personal hook based on research - news, content, mutual connection].
[1 sentence on their likely challenge based on role/company].
[Brief proof: "We helped [Similar Company] achieve [Result]".]
Worth a 15-min call to see if relevant?
[Signature]
Subject: Following up from [context]
Hi [Name],
[Reference to how you know them / who connected you].
[Why reaching out now - their trigger].
[Specific value you can offer].
[CTA]
Subject: [Short, curiosity-driven]
Hi [Name],
[Acknowledge time passed without being guilt-trippy].
[New reason to reconnect - their news or your news].
[Simple question to re-open dialogue].
[Signature]
Subject: Great meeting you at [Event]
Hi [Name],
[Specific memory from conversation].
[Value-add: article, intro, resource related to what you discussed].
[Soft CTA for next conversation].
Good:
Here's what I can share:
- Case study from a similar company
- 15-min intro call this week
- Quick demo if helpful
Bad:
**What I Can Offer:**
- **Case study** from a similar company
- **Intro call** this week
Generic openers:
Feature dumps:
Fake personalization:
Markdown in emails:
Instead:
IF verified email available:
→ Email preferred (higher response rate)
→ Also provide LinkedIn backup
IF no email:
→ LinkedIn connection request
→ Follow-up message template for after connection
IF warm intro possible:
→ Suggest mutual connection outreach first
## Outreach Settings
- My name: [Your Name]
- My title: [Your Title]
- My company: [Company Name]
- Value prop: [One sentence - what you help with]
## Signature
[Your preferred email signature]
## Proof Points
- [Customer 1]: [Result]
- [Customer 2]: [Result]
- [Customer 3]: [Result]
## CTA Options
- Default: "Worth a 15-min call?"
- Softer: "Open to learning more?"
- Specific: "Can I send over a quick demo?"
## Tone
- [Professional / Casual / Direct]
- Industry-specific language: [Yes/No]
Input: "draft outreach to the Head of Engineering at Notion"
Research finds:
Output:
# Outreach Draft: David Tibbitts @ Notion
## Research Summary
**Target:** David Tibbitts, Head of Engineering at Notion
**Hook:** They're scaling AI features and hiring ML talent
**Goal:** Intro call about AI infrastructure
---
## Email Draft
**To:** david@notion.so
**Subject:** Notion's AI scaling + a thought
---
Hi David,
Saw Notion's AI rollout is gaining serious traction - congrats.
With 5 ML roles open, seems like you're scaling fast.
Curious how you're thinking about inference infrastructure
as usage grows. We helped [Similar Company] cut their AI
serving costs 40% while improving latency.
Worth a 15-min call to see if relevant to your roadmap?
Best,
[Name]
---
**Subject Alternatives:**
1. Notion AI + scaling question
2. Quick thought on Notion's ML hiring
---
## Email Draft Status
Draft created - check ~~email
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.