instrument-data-to-all…
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D…
Generate personalized outreach messages using Common Room signals. Triggers on 'draft outreach to [person]', 'write an email to [name]', 'compose a message for [contact]', or any outreach drafting request.
Claude Code
$ npx -y skills add anthropics/knowledge-work-plugins --skill compose-outreach --agent claude-code
Codex
$ npx skills add anthropics/knowledge-work-plugins --skill compose-outreach -a codex -y
Cursor
$ npx skills add anthropics/knowledge-work-plugins --skill compose-outreach -a cursor -y
Gemini CLI
$ npx skills add anthropics/knowledge-work-plugins --skill compose-outreach -a gemini-cli -y
GitHub Copilot
$ npx skills add anthropics/knowledge-work-plugins --skill compose-outreach -a github-copilot -y
OpenCode
$ npx skills add anthropics/knowledge-work-plugins --skill compose-outreach -a opencode -y
Windsurf
$ npx skills add anthropics/knowledge-work-plugins --skill compose-outreach -a windsurf -y
name: compose-outreach description: "Generate personalized outreach messages using Common Room signals. Triggers on 'draft outreach to [person]', 'write an email to [name]', 'compose a message for [contact]', or any outreach drafting request."
Generate three personalized outreach formats — email, call script, and LinkedIn message — grounded in Common Room signals for a specific company or contact.
Use Common Room MCP tools to find and retrieve data for the target (company and/or specific contact). Pull:
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.
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:**
**Prioritize external hooks that are:**
If the user explicitly asks for web search or external hooks, run it regardless of CR signal richness.
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.
From the signal data, identify the 1–3 strongest personalization hooks. Rank by: 1. **Recency** — happened in the last 7–14 days 2. **Specificity** — a concrete action they took, not a general trend 3. **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.
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.
After the three drafts, include a brief note (2–4 sentences) explaining:
## 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]
If Common Room returns minimal data on the target (e.g., just name, title, tags — no activity, no scores, no Spark):
1. **Do not draft outreach from thin air.** Outreach grounded in fabricated signals is worse than no outreach. 2. **Run web search first** — this becomes your primary personalization source. Look for recent news, LinkedIn posts, conference talks, company announcements. 3. **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?
Plugins that turn Claude into a specialist for your role, team, and company. Built for Claude Cowork, also compatible with Claude Code.
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D…
Run nf-core bioinformatics pipelines (rnaseq, sarek, atacseq) on sequencing data. Use when analyzing RNA-seq, WGS/WES, or…
This skill should be used when scientists need help with research problem selection, project ideation, troubleshooting stuck…
Deep learning for single-cell analysis using scvi-tools. This skill should be used when users need (1) data integration and batch…
Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering…
Set up your bio-research environment and explore available tools. Use when first getting oriented with the plugin, checking which…
Turn repeatable outputs of a one-person company into compounding assets. Use when Codex needs to explain asset-compounding…
dontbesilent 商业工具箱的技能调度台,根据当前问题和反馈选择下一步,在对话中直接执行、澄清、组合或对照尝试 Skill。用户不知道从哪里开始、需要调整处理方法、第一次使用…
Help define company values and culture for a minimalist business. Use when someone is setting up their company culture, preparing…