---
id: daily-compose-outreach
name: "compose-outreach"
url: https://skills.yangsir.net/skill/daily-compose-outreach
author: anthropics
domain: sales
tags: ["sales-outreach", "personalization", "lead-generation", "sales-enablement", "b2b-sales"]
install_count: 1300
rating: 4.30 (42 reviews)
github: https://github.com/anthropics/knowledge-work-plugins
---

# compose-outreach

> 基于Common Room信号生成个性化邮件、电话脚本和LinkedIn消息，提升外联转化率

**Stats**: 1,300 installs · 4.3/5 (42 reviews)

## Before / After 对比

### 外联效果对比

**Before**:

手动撰写群发模板邮件，缺乏个性化，打开率不足5%，大量邮件被忽略，电话脚本千篇一律无法引起客户兴趣，LinkedIn消息石沉大海无人回复

**After**:

基于Common Room信号自动生成个性化邮件、电话脚本和LinkedIn消息，精准切入客户痛点，打开率提升至25%以上，多渠道协同触达显著提高回复率

| Metric | Before | After | Change |
|---|---|---|---|
| 回复率 | 5% | 25% | +400% |

## Readme

# compose-outreach

# Compose Outreach

Generate three personalized outreach formats — email, call script, and LinkedIn message — grounded in Common Room signals for a specific company or contact.

## Outreach Process

### Step 1: Look Up the Target

Use Common Room MCP tools to find and retrieve data for the target (company and/or specific contact). Pull:

- Recent product activity and engagement signals

- Community activity (posts, questions, reactions)

- 3rd-party intent signals (job postings, news, funding)

- Relationship history (prior contact, meetings, email opens)

If the user specified a person, run contact-level research. If only a company was given, identify the best contact to target based on title, engagement, and role.

### Step 2: Web Search for External Hooks (If CR Signals Are Thin)

If CR returned strong signals (recent activity, engagement, product usage), those should drive personalization — skip web search. If CR signals are thin or the prospect has little CR activity, run a web search for external hooks:

**What to search:**

- `"[company name]" funding OR acquisition OR launch OR announcement` — last 30 days

- `"[contact full name]" "[company name]"` — look for recent articles, interviews, LinkedIn posts, or conference talks

**Prioritize external hooks that are:**

- Very recent (< 2 weeks) — the prospect is likely still thinking about it

- Publicly visible — they know you could have seen it

- Change-signaling — growth, new role, new product, new market

If the user explicitly asks for web search or external hooks, run it regardless of CR signal richness.

### Step 3: Spark Enrichment (If Available)

If Spark is available, run enrichment on the target contact to get persona classification, background, and influence signals. Use this to calibrate tone and message angle.

### Step 4: Identify the Best Hooks

From the signal data, identify the 1–3 strongest personalization hooks. Rank by:

- **Recency** — happened in the last 7–14 days

- **Specificity** — a concrete action they took, not a general trend

- **Relevance** — connects directly to a value your product delivers

Good hooks: posted a question in the community about X, just hired 5 engineers, recently started using [feature], company just raised Series B, trial nearing expiration, champion just changed jobs.

Bad hooks: "I noticed you're a customer" or generic industry trends.

### Step 5: Generate All Three Formats

Use the strongest hooks to write all three formats. Each format has different constraints and conventions — follow the format-specific guidelines in `references/outreach-formats-guide.md`.

Always produce all three, clearly labeled.

When the user's company context is available (see `references/my-company-context.md`), ground the value bridge and pitch in the user's specific product and positioning.

### Step 6: Annotate Your Choices

After the three drafts, include a brief note (2–4 sentences) explaining:

- Which signals were used and why they were chosen

- Any assumptions made (e.g., inferred call objective)

- Alternative angles if the primary hook doesn't land

## Output Format

```
## Outreach for [Name / Company]

### 📧 Email

**Subject:** [Subject line]

[Email body — 3–5 sentences]

---

### 📞 Call Script

**Opening:**
[Opening line — conversational, 1–2 sentences]

**Value Bridge:**
[Why you're calling and why now — 2–3 sentences tied to a signal]

**Ask:**
[Single, low-friction ask — e.g., 15-minute call, specific question]

---

### 💼 LinkedIn Message

[Under 300 characters. Warm, personal, no pitch.]

---

### Signal Notes
[2–4 sentences: which signals were used, why, and any alternative angles]

```

## When Signal Data Is Sparse

If Common Room returns minimal data on the target (e.g., just name, title, tags — no activity, no scores, no Spark):

- **Do not draft outreach from thin air.** Outreach grounded in fabricated signals is worse than no outreach.

- **Run web search first** — this becomes your primary personalization source. Look for recent news, LinkedIn posts, conference talks, company announcements.

- **If web search also returns little**, present what you have honestly and ask the user for context:

```
## Outreach for [Name / Company] — Limited Data

**What I found:**
[Only the real data from CR and web search]

**I don't have enough signal to draft personalized outreach yet.** To write something strong, I'd need:
- Recent activity or engagement signals
- Context you have from prior conversations
- A specific reason for reaching out now

Can you share any of the above?

```

## Quality Standards

- Every message must reference something specific — generic outreach is not acceptable output

- Match tone to context: warm and conversational for inbound/community signals; more formal for cold/executive outreach

- The LinkedIn message must be under 300 characters — no exceptions

- The call script must be speakable naturally — read it aloud mentally to check rhythm

- **Never fabricate signals** — only reference data retrieved from Common Room or web search

## Reference Files

- **`references/outreach-formats-guide.md`** — detailed format rules, examples, and tone guidelines for each channel

Weekly Installs208Repository[anthropics/know…-plugins](https://github.com/anthropics/knowledge-work-plugins)GitHub Stars9.9KFirst SeenFeb 24, 2026Security Audits[Gen Agent Trust HubPass](/anthropics/knowledge-work-plugins/compose-outreach/security/agent-trust-hub)[SocketPass](/anthropics/knowledge-work-plugins/compose-outreach/security/socket)[SnykWarn](/anthropics/knowledge-work-plugins/compose-outreach/security/snyk)Installed oncodex194cursor193gemini-cli193opencode193github-copilot192amp192

---
*Source: https://skills.yangsir.net/skill/daily-compose-outreach*
*Markdown mirror: https://skills.yangsir.net/api/skill/daily-compose-outreach/markdown*