Best for
- "Write me a cold email sequence for these contacts".
- "Draft 3-email outreach for {audience}".
- Phase 4 of either LinkedIn pipeline.
gethouston/houston/store/agents/outbound/.agents/skills/cold-email-sequence/SKILL.md
Co-write a 3-email cold outreach sequence with you, one email at a time, using the James Shields framework: personalized subject (not body), 3 sentences plus PS, irresistible offer, low-friction reply CTA. I lock each email with you before moving to the next so voice, social proof, and offer all stay tight. Phase 4 of both pipelines, also runnable standalone if you have a verified contact list and want fresh copy.
Decision brief
Co-write a 3-email cold outreach sequence one email at a time. The sequence follows the James Shields framework: trigger-based subject, three-sentence body, irresistible no-strings offer, one-word reply CTA. I present each draft, refine with you, and lock it before moving to the…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/gethouston/houston --skill "store/agents/outbound/.agents/skills/cold-email-sequence"Inspect the Agent Skill "cold-email-sequence" from https://github.com/gethouston/houston/blob/10d9551da3a639803421a9004117f9e5633ce3a1/store/agents/outbound/.agents/skills/cold-email-sequence/SKILL.md at commit 10d9551da3a639803421a9004117f9e5633ce3a1. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Ask once, capture in the run notes. If anything's already in config/context-ledger.json (sender, voice, social proof bank), use it without re-asking. Confirm the trigger and the offer, since those change per campaign.
Present to user. Refine until approved. Do NOT proceed until locked.
Shorter than Email 1 (no PS). NEW social proof - never repeat from Email 1.
4 sentences max. "I won't email again" creates urgency. No new pitch.
Write to sequences/{runId}-sequence.md if called from an orchestrator (the orchestrator passes runId); otherwise sequences/{YYYY-MM-DD}-{campaign-slug}-sequence.md.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
`outputs.json` row: `{type: "sequence", title: "{Campaign name} sequence", summary: "3-email locked sequence ready for Instantly load.", path: "sequences/{file}", status: "locked", domain: "sequence"}`.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 84/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 91 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Co-write a 3-email cold outreach sequence one email at a time. The sequence follows the James Shields framework: trigger-based subject, three-sentence body, irresistible no-strings offer, one-word reply CTA. I present each draft, refine with you, and lock it before moving to the next - voice, social proof, and offer all stay tight that way.
James Shields framework - a widely-used outbound playbook that rejects the "book a demo" CTA in favor of trigger-based subjects, three-sentence bodies, free no-strings offers, and one-word reply CTAs. Optimized for reply rate, not impression count.
write-my-outreach with stage=followup.instantly-campaign (the next phase).I gather the inputs in step 1 below. The minimum:
If any of trigger / product / social proof / offer is missing I ask for it inline before drafting.
{{firstName}} only.{{company}} {{title}} etc. in the body - reply rates drop when the merge fields feel obvious.Ask once, capture in the run notes. If anything's already in config/context-ledger.json (sender, voice, social proof bank), use it without re-asking. Confirm the trigger and the offer, since those change per campaign.
Draft to this template:
Subject: <personalized to trigger, lowercase, casual, 2-4 words>
Hey {{firstName}},
<1 sentence: I saw your <trigger>. Brief validation.>
<1-2 sentences: What I built. Concrete.>
<1-2 sentences: Social proof. Specific numbers.>
<1 sentence: The offer. Free, no strings.>
Reply "<cta>" and I'll <action>.
<sender first name>
PS <Soft opt-out, e.g. "If this is not your problem right now, just reply 'not now' and I'll go away.">
Present to user. Refine until approved. Do NOT proceed until locked.
Draft to this template:
Subject: (same thread, blank)
Hey {{firstName}},
<1 sentence: Follow up. Acknowledge inbox noise.>
<2 sentences: NEW social proof. Different client, different numbers from Email 1.>
<1 sentence: Restate offer.>
Reply "<cta>" and I'll <action>.
<sender first name>
Shorter than Email 1 (no PS). NEW social proof - never repeat from Email 1.
Present to user. Refine until approved. Do NOT proceed until locked.
Draft to this template:
Subject: (same thread, blank)
Hey {{firstName}},
Last one from me on this.
<1 sentence: Tool is live. Others using it.>
<1 sentence: Final CTA - if you want yours, reply "<cta>" today.>
I won't email again after this.
<sender first name>
4 sentences max. "I won't email again" creates urgency. No new pitch.
Present to user. Refine until approved.
Write to sequences/{runId}-sequence.md if called from an orchestrator (the orchestrator passes runId); otherwise sequences/{YYYY-MM-DD}-{campaign-slug}-sequence.md.
File format:
# {Campaign name}
Locked on {ISO date}. Sender: {first name}. Target audience: {short description}.
## Email 1 (Day 0)
Subject: <subject>
<body>
## Email 2 (Day 3)
Subject: (same thread)
<body>
## Email 3 (Day 7)
Subject: (same thread)
<body>
## Sending notes
- Schedule: Mon-Fri, 8-5 in {timezone from context, default America/Vancouver}.
- Sending accounts: {from context, default "all connected"}.
- Lead count target: {from contacts file, e.g. "92 verified leads"}.
outputs.json row: {type: "sequence", title: "{Campaign name} sequence", summary: "3-email locked sequence ready for Instantly load.", path: "sequences/{file}", status: "locked", domain: "sequence"}.
One line: "Sequence locked at {path}. Ready to load into Instantly when you are."
sequences/{runId}-sequence.md - locked 3-email sequence ready for instantly-campaign.outputs.json - one row, type: "sequence", status: "locked", domain: "sequence".| Day | Length | Subject | Goal | |
|---|---|---|---|---|
| 1 Opener | 0 | 3 sentences + PS | Personalized to trigger, lowercase | Hook + offer + proof |
| 2 Follow-up | 3 | 3-4 sentences | Blank (same thread) | NEW social proof, restate offer |
| 3 Breakup | 7 | 4 sentences MAX | Blank (same thread) | Urgency, "won't email again" |
| Mistake | Why it kills the sequence | Fix |
|---|---|---|
| Long subject lines (6+ words, title case) | Looks like marketing, not a person | Lowercase, 2-4 words, references the trigger |
| Multiple CTAs in one email | Splits attention, lowers reply rate | One CTA per email, always the same reply word |
| Repeating social proof across emails | Wastes the second touch | Email 2 must use a NEW client and NEW numbers |
| "Just checking in" / "bumping this" | Reads as desperate filler | Acknowledge inbox noise once, then deliver new value |
| Booking links in Email 1 | Friction kills cold replies | Reply CTA only - links come after they say "I'm in" |
| Breaking the 3-sentence rule | Long emails get skimmed and trashed | Cut until each sentence is load-bearing |
| Em dashes, exclamation points, bullets | Looks AI-generated or markety | Plain text, periods only, write like a text message |
Alternatives
coreyhaines31/marketingskills
When the user wants to figure out which marketing actually drives conversions and revenue, choose or interpret an attribution model, or reconcile conflicting numbers across tools. Also use when the user mentions "attribution," "attribution model," "first-touch vs last-touch," "multi-touch," "which channel drives revenue," "what's my real CAC," "my dashboards disagree," "Google/Meta says X but GA says Y," "media mix model," "MMM," "incrementality," "geo lift," "holdout test," "how did you hear ab
coreyhaines31/marketingskills
When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold out
alirezarezvani/claude-skills
When the user wants to write, improve, or build a sequence of B2B cold outreach emails to prospects who haven't asked to hear from them. Use when the user mentions 'cold email,' 'cold outreach,' 'prospecting emails,' 'SDR emails,' 'sales emails,' 'first touch email,' 'follow-up sequence,' or 'email prospecting.' Also use when they share an email draft that sounds too sales-y and needs to be humanized. Distinct from email-sequence (lifecycle/nurture to opted-in subscribers) — this is unsolicited
aaron-he-zhu/aaron-marketing-skills
Use when the user asks to "analyze my target audience", "build an audience profile for influencer targeting", "research a niche community", or "deep-dive a subculture before partnering with creators"; in audience mode produces demographic/psychographic profiles, a platform-priority matrix, named personas, and an influencer-selection criteria set, and in niche mode produces a community map, culture decode (language/norms/taboos), key-voice tiers, a Brand Fit Score, and a phased entry strategy. No