Outreach Composer
AnthropicOfficialPublished by Anthropic
- Skill
- Content generator
- Business and productivity
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Outreach Composer generates prospect outreach and follow-up sequences designed to mimic the owner's authentic writing style rather than generic AI output. By learning from the owner's sent emails and grounding each message in specific, verifiable details about the prospect, it creates high-fidelity communication. The skill manages the entire lifecycle, from drafting and self-checking against quality standards to presenting for approval, logging in the CRM, and queuing for delivery.
What it does
- Learns the owner's unique voice profile from sent emails or provided examples.
- Grounds messages in specific prospect details to avoid generic templates.
- Generates multi-touch follow-up sequences tailored to specific scenarios.
- Validates all drafts against a rigorous quality checklist to ensure human-like tone.
- Presents sequences for approval before queuing or saving to CRM/marketing tools.
- Logs all outreach activity to the CRM to prevent duplicate contact.
When to use it
- When you need to send cold outreach or follow-up emails to prospects.
- When you want to ensure your outreach sounds like you, not an AI.
- When you need a structured follow-up sequence for a specific lead list.
- When you need to re-engage quiet customers with a fresh, relevant angle.
Advantages
- High voice fidelity prevents the 'robotic' tone common in AI-generated copy.
- Strict approval gates ensure the owner maintains full control over sent communications.
- Reduces manual effort by automating the drafting and logging process.
- Prevents common outreach mistakes like generic flattery or 'just checking in' follow-ups.
Usage examples
- “Write a cold email sequence for these 5 leads from the construction industry.”
- The agent analyzes the owner's voice, identifies specific hooks for each lead, and drafts a 4-part sequence for each, presented in a visual card format for approval.
- “Nudge the people who didn't reply to my last email.”
- The agent reviews the CRM logs, identifies the non-responders, and drafts a follow-up message that adds a new, relevant piece of information to re-engage them.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/anthropics/outreach-composer/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip outreach-composer.zip -d .agents/skills
Documentation by Anthropic
Outreach Composer
Write outreach the owner would actually send under their own name.
The single most repeated condition owners set is some version of "without sounding like a bot." Owners will not send copy that embarrasses them, so a message that reads as generated is worth nothing regardless of how well structured it is. Voice fidelity is the product here, not a finishing touch.
Step 1 — Learn the voice before writing anything
Read the shared voice profile first. If a profile already exists there, use it and skip to Step 2 — rebuilding it every time wastes the owner's patience and produces drift.
If there is no profile, build one from evidence:
Gmail or Microsoft 365 — pull 15 to 30 of the owner's own sent messages to customers and prospects. This is the best source by a wide margin. Confirm the mailbox is the owner's first (
../../shared/tenant-scope.md); another tenant's sent mail would teach the wrong voice.HubSpot — logged emails and notes
Their website and any published writing — weaker, but real
Pasted examples — ask for three emails they were happy with
Then extract the specific, imitable traits: sentence length, greeting and sign-off habits, contractions, whether they use exclamation marks, how direct the ask is, what they call their own product, regionalisms, and the things they never do. Save the profile so every later run inherits it.
Without any sample, say so and ask for three. Writing in a guessed voice produces exactly the generic copy the owner is trying to avoid.
Step 2 — Ground each message in something real
A personalized email is not one with the company name merged into a template. It is one that could only have been sent to that person.
For each prospect, find the specific hook. In order of strength:
The buying signal from
lead-finder— a permit filed, a location opened, a role postedA shared connection or customer
Something specific about their business the owner can genuinely speak to
A relevant result the owner produced for a similar customer
If no hook exists beyond category fit, write a shorter, plainly cold message and say it is cold. A fake-warm opener is worse than an honest cold one, because it reads as a mail merge and destroys credibility in the first line.
Apollo or Clay, when connected, can fill in the contact and company detail that makes a thin hook usable — role, tenure, company size, tech stack — the kind of specific that keeps a message from reading as generic. Enrichment data, not a hook on its own.
Step 3 — Write the sequence
Read reference/sequence_patterns.md for structure by scenario. Defaults:
Cold outreach — 4 messages over 3 weeks
Warm or referral — 3 messages over 2 weeks
Post-meeting follow-up — 2 messages over 10 days
Re-engagement of a quiet customer — 3 messages over 4 weeks
Each message in a sequence must add something new. A follow-up whose entire content is "just bumping this" trains people to ignore the sender. Give every touch a fresh reason to exist: a different angle, a relevant result, a genuinely useful piece of information, or a clean close-out.
Length rule: first message under 120 words. Owners in this segment sell to people who read on their phone between jobs.
Step 4 — Self-check against the slop test
Before showing anything, run every draft against reference/slop_test.md. It catches the specific patterns that make copy read as machine-written.
The fastest checks:
Would the owner say this sentence out loud? If not, rewrite it.
Could this message be sent to any other company with two words changed? If yes, it is not personalized.
Does it open with a compliment about the prospect's business? Delete it — everyone does this and everyone recognizes it.
Is there a phrase here the owner has never used in their life? Cut it.
This step is not optional and it is not a formality. It is the difference between copy that gets sent and copy that gets rewritten by hand, which is the outcome the skill exists to prevent.
Step 5 — Present for approval
Show the full sequence before anything queues. Follow reference/output_template.md.
Present message one in full, then the rest of the sequence with subject lines and the angle each takes. Owners want to read the first one closely and skim the shape of the rest.
Deliver per the owner's stored output preference — never default to a markdown file. Check the ## Business context block's Output preference (shared style guide rule, ../../shared/artifact-style.md):
Visual artifact (the default): an HTML page in the house style — one card per prospect or sequence, each message as a copy block so any single message can be copied and sent by hand.
docx / md / notion / canva preference: deliver the same content in that form — a DOCX or markdown file, a Notion page created via the connector (named destination, never overwriting), or a Canva Doc created via the Canva connector (a new design each run, named with the date; tables become lists); fall back to the visual artifact if Notion or Canva is not connected — and say that is why.
Best for skill: use the visual artifact — the copy blocks are the point.
Chat keeps the recap and the approval question in every case.
Then ask what to change. Expect edits — the first pass is a proposal, not a delivery. Fold every edit back into the voice profile, because a correction made once should not have to be made again.
Step 6 — Queue sends, with approval, one gate at a time
Sending email under the owner's name is the highest-consequence action in this skill.
Never send without an explicit yes for that specific batch
State exactly what will happen before asking: how many messages, to whom, on what schedule, from which account
Never send to a contact marked "inferred" without flagging it separately. Bounces at volume damage the owner's sending domain for months, and that damage reaches their real customer mail
Approval for message one is not approval for the sequence. Confirm the follow-ups separately, or set them to draft and let the owner release each
Mailchimp is a drafting destination, not a send route. When it is connected, an approved sequence can be saved into Mailchimp as campaign content for the owner to schedule there. Three things govern that:
It cannot send. Nothing this skill puts into Mailchimp goes out on its own. The owner presses send in Mailchimp.
Its planner refuses single campaigns. Mailchimp's campaign planner only produces multi-channel plans — email plus SMS plus social. A one-off email is written here, in the owner's voice, and saved as content. Do not route a single message through the planner and do not report a refusal as a failure.
Do not assume you can read the audience list. Treat the contact list as unavailable unless a call actually returns it. Build the recipient list from the CRM or the owner's own file, as today.
Without a mail connector, run draft-only. Produce the copy formatted to paste anywhere. This is a complete outcome, not a degraded one — plenty of owners prefer to send from their own client anyway.
Step 7 — Log it
Log every touch to HubSpot when connected: what was sent, when, to whom, and where it sits in the sequence. Without a CRM, keep the record in a file so the next run knows who has already been contacted.
Contacting someone twice with the same opener is a visible, avoidable mistake.
What not to do
Do not write before learning the voice. Everything downstream depends on it.
Do not open with flattery about their business. It is the single clearest tell.
Do not send a follow-up that says only "checking in." Every touch earns its place.
Do not merge a company name into a template and call it personalized.
Do not send anything without an explicit approval for that batch.
Do not claim results the owner has not actually produced. Invented case studies in outreach are a serious problem, not an exaggeration.
After the send
The sequence is approved, queued or drafted, and every touch is logged. The natural next step is "update the CRM" — crm-autopilot keeps the next-step queue current as replies come in. Also nearby: "leads are going cold" (speed-to-lead) to catch the responses fast, and "find me customers" (lead-finder) when this list runs dry. Offer at most three, and skip any offer the owner already declined this session.
Reference files
../../shared/voice-profile.md— the owner's voice, shared by every skill that writes in their namereference/sequence_patterns.md— structure and cadence by scenarioreference/slop_test.md— the checklist that catches machine-written copyreference/output_template.md— how sequences are presented for approvalreference/gotchas.md— the failure modes that get owners to stop using this
Using a tool that isn't listed
The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer build-connector — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.
Files
- ATTRIBUTION.mdAdded by AutoGineer915 B
- LICENSELicence file added by AutoGineer11.3 KiB
- SKILL.md10.2 KiB
- reference/gotchas.md5.7 KiB
- reference/output_template.md4.0 KiB
- reference/sequence_patterns.md4.3 KiB
- reference/slop_test.md5.4 KiB
reference/slop_test.md
The Slop Test
Run every draft through this before showing it to the owner. These are the specific patterns that make copy read as machine-written, and owners recognize all of them instantly because their own inboxes are full of them.
The four fast checks
1. Would the owner say this sentence out loud?
Read it aloud in their voice. If it sounds like a brochure, rewrite it. Business email that nobody would ever say is the most common tell there is.
2. Could this go to a different company with two words changed?
If yes, it is a template with a merge field, not personalization. The prospect has received forty of these this month.
3. Does it open with a compliment about their business?
Delete it. "I've been following your work and I'm impressed by what you're building" is the single most recognizable opener in cold email. Everyone uses it, so it signals mass send.
4. Is there a phrase here the owner has never used?
Check against the never-uses list in the shared voice profile. One foreign phrase undoes an otherwise good message.
Banned openers
These read as generated regardless of what follows.
"I hope this email finds you well"
"I hope you're doing well"
"I wanted to reach out"
"I came across your company and"
"I've been following your work"
"Quick question for you"
"I'll keep this brief"
"I know you're busy, so"
What to open with instead: the specific reason you are writing. The permit filing. The mutual customer. The thing that happened.
Bad: I hope this finds you well. I wanted to reach out because I came across
Ridgeline and was impressed by your portfolio.
Good: Saw you filed for the Kellogg Street building. Congratulations.Banned filler
Phrases that occupy space without carrying meaning.
| Cut | Because |
|---|---|
| "reach out" / "circle back" / "touch base" | Corporate register almost no owner actually uses |
| "leverage" / "utilize" / "solutions" | Nobody says these out loud |
| "at your earliest convenience" | Say "when you get a chance" |
| "I'd love to" | Usually means "I want to" — say that |
| "excited to" | Manufactured enthusiasm reads as fake |
| "synergy" / "align" / "unlock" | Instantly recognizable as generated |
| "just following up" / "just bumping this" | Says the follow-up has no content |
| "let me know if you have any questions" | Filler closer; use a real ask |
Structural tells
Three neat parallel bullets. Real people write one thing, or a messy list. Perfectly balanced trios are a generation artifact.
A sentence that restates the previous one. Generated copy pads. Owners do not.
Every paragraph the same length. Real writing is lumpy.
Em dashes everywhere. Owners use commas and periods. A message with three em dashes was not written by a contractor between jobs.
A closing that summarizes what was just said. In a 90-word email, this is filler by definition.
The ask
Every message needs exactly one, and it should be small.
Bad: Let me know if you'd like to explore how we might be able to help
with your facilities needs.
Good: Worth a 10-minute call Thursday?A vague ask gets a vague non-response. A specific small ask gets a yes or a no, and both are useful.
Length
| Message | Ceiling |
|---|---|
| Cold, first touch | 120 words |
| Follow-up | 60 words |
| Warm or referral | 150 words |
| Post-meeting | 100 words |
Over the ceiling, cut rather than tighten. The parts that go first are the opener, the credentials paragraph, and the closing summary — none of them earn their space.
Worked rewrite
Before — 118 words, fails every check:
Hi Dana,
I hope this email finds you well! I wanted to reach out because I came across
Ridgeline Property Group and was really impressed by the portfolio you've built
in the commercial space.
At Okonkwo Mechanical, we specialize in providing comprehensive HVAC solutions
tailored to the unique needs of multi-building property managers. We'd love to
explore how we might be able to leverage our expertise to help optimize your
facilities operations.
Would you be open to a brief call to discuss how we can add value to your
portfolio? Let me know if you have any questions!
Best regards,
Ray OkonkwoAfter — 54 words, in Ray's actual voice:
Hi Dana,
Saw you filed for the Kellogg Street building. Congratulations.
Straight answer on why I'm writing: we cover six other property managers in
the area on single service plans across all their buildings. Usually works out
cheaper than per-building contracts.
Worth 10 minutes Thursday?
Thanks, RayWhat changed: the opener became a real fact. The credentials became a specific claim about comparable customers. The ask became answerable. Every banned phrase is gone. And it sounds like Ray, because it uses his greeting, his sign-off, his "straight answer," and his sentence length.
When a draft cannot pass
Sometimes there is genuinely no hook — no signal, no connection, nothing specific.
Do not manufacture one. Write a shorter, honestly cold message and tell the owner it is cold:
No specific trigger on this one, so it's a straight cold intro. Shorter on
purpose — there's nothing to reference and pretending otherwise is worse.An honest cold email at 40 words outperforms a fake-warm one at 120, and it does not cost the owner credibility if the prospect ever compares notes.
Requirements and compatibility
Written for: Claude Code, Claude apps
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Anthropic
- Publisher
- Anthropic (Official)
- Source
- anthropics/knowledge-work-plugins · small-business/skills/outreach-composer · commit e050c2e
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Anthropic.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download outreach-composer.zip