outreach-composer
The facts
Its description
Writes prospect outreach and follow-up sequences that sound like the owner wrote them, not like an AI did. Learns a voice profile from the owner's own sent mail, grounds every message in something specific about that prospect, builds the follow-up sequence behind it, queues every send for approval, and logs each touch to the CRM. Runs draft-only when no mail connector is available, so the copy can be pasted anywhere. Use this whenever the owner needs to reach out to prospects or customers — including phrasings like "write this cold email," "draft a follow-up," "reach out to these leads," "what do I say to them," "I need a sequence for this list," "nudge the people who didn't reply," or "write it but don't make it sound like a robot." Reach for it whenever outreach copy is the deliverable, even for a single message.
The description the agent reads to decide when to use it.
When it starts
The agent reaches for this skill whenever the deliverable is outreach copy — a cold email, a follow-up, or a multi-touch sequence for a list of prospects or quiet customers — and especially when the owner wants it to sound like they wrote it rather than a machine. It also fires for a single message, not just a full campaign.
Things a person might say (the model's guesses)
- “Write a cold email to these 12 property managers.”
- “Draft a follow-up for the leads who never replied to me.”
- “I need a 4-message sequence for this list, and please don't make it sound like a robot.”
A model's summary of when it is used.
Tools it may use, or may not
allowed-tools: Read, WebFetch
Tools it may use while it runs without asking you first.
Files it mentions
reference/sequence_patterns.md, reference/slop_test.md, reference/output_template.md (first 5 of 7 lines)
Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.
What it leads to
- hands off to crm-autopilot after the sequence is approved and logged line 132
- hands off to lead-finder when the prospect list runs dry line 132
- hands off to proposal-builder when a proposal was promised in the meeting sequence_patterns.md, line 45
- hands off to review-reputation when the quiet customer answers with a complaint sequence_patterns.md, line 59
- hands off to speed-to-lead when replies need catching fast line 132
- hands off to ticket-deflector when the quiet customer answers with a complaint sequence_patterns.md, line 59
- calls build-connector only when the owner wants a tool that isn't connected or listed line 144
Other skills this one hands off to, calls, requires or offers instead, as a model read them.
What leads to it
- call-list hands off to this for leads that need email instead of a call call-list, line 78
- crm-autopilot hands off to this if quiet deals surfaced crm-autopilot, line 148
- lead-finder hands off to this lead-finder, line 107
- lead-triage hands off to this only when it fits as one of up to two extras lead-triage, line 73
- smb-router hands off to this when the owner wants outreach written smb-router, line 61
- speed-to-lead hands off to this only in scheduled chain mode speed-to-lead, line 142
- grow-pipeline calls this grow-pipeline, line 35
- reactivate calls this reactivate, line 41
Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.
Licence
Apache-2.0, from LICENSE
The terms its author shares it under, which let it be shown here.
Other files in this skill (4) Close
The text
Most marks come from matching words in the file, so treat them as pointers.
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.
Raw lines 1 to 23Step 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.
Raw lines 24 to 38Step 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 posted - A 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.
Raw lines 39 to 53Step 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.
Raw lines 54 to 66Step 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.
Raw lines 67 to 79Step 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.
Raw lines 80 to 95Step 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.
Raw lines 96 to 114Step 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.
Raw lines 115 to 120What 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](../../shared/voice-profile.md) — the owner's voice, shared by every skill that writes in their name reference/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
Boilerplate, lines 142 to 144. The same text appears in 38 other files here. Close
From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.