Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Cold Email Sequence

ASecurity

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.

113 stars
0 votes
0 copies
0 views
Added 9/19/2026
content-marketinggo

Works with

cli

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add gethouston/houston --skill cold-email-sequence --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cold Email Sequence?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Cold Email Sequence
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gethouston-cold-email-sequence/badge)](https://www.skillsdirectory.com/skills/gethouston-cold-email-sequence)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: cold-email-sequence
description: "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."
version: 1
category: Outbound
featured: yes
image: pencil
integrations: []
x_houston:
  created_by: houston
  skill_schema: 1
---


# Cold Email Sequence

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.

## When to use

- "Write me a cold email sequence for these contacts".
- "Draft 3-email outreach for {audience}".
- Phase 4 of either LinkedIn pipeline.
- You have a verified contact list (from Apollo, Clay, Hunter, or anywhere else) and want fresh copy.
- You want to refresh tired cold email copy with a proven framework.

## When NOT to use

- **Warm leads** who already know you  -  use a direct one-off email, not a 3-step cold sequence.
- **Lifecycle / onboarding / nurture** for existing users  -  that's a different motion (and lives in the Marketing agent).
- **Transactional** emails (receipts, password resets, notifications).
- **Post-call follow-ups**  -  use the Sales agent's `write-my-outreach` with `stage=followup`.
- **Newsletters or content emails**  -  use the Marketing agent's content skills.

## Connections I need

- **None.** This skill writes locally and produces a sequence file. Connections come back into play in `instantly-campaign` (the next phase).

## Information I need

I gather the inputs in step 1 below. The minimum:

- **Trigger / source** - what connects you to these leads (the LinkedIn post, the event, the news item).
- **Product** - one-line description of what you sell.
- **Social proof** - at least one case study with **real numbers** (no "10x improvement" without naming who and how). Preferably 3+ so each email gets fresh proof.
- **Offer** - the free / low-friction thing you're giving away (teardown, audit, free trial, free seat).
- **Reply CTA** - the one-word reply you want (defaults to "I'm in").
- **Sender** - your first name only.
- **Existing draft** - optional, any copy you want me to start from.

If any of trigger / product / social proof / offer is missing I ask for it inline before drafting.

## The framework

### Rule 1: Personalize the subject, not the body
- Subject references the trigger (post, event, comment).
- Body uses `{{firstName}}` only.
- Avoid `{{company}}` `{{title}}` etc. in the body  -  reply rates drop when the merge fields feel obvious.

### Rule 2: Three sentences plus PS (Email 1 only)
- S1: context / trigger (why you are emailing).
- S2: what you built / the offer.
- S3: social proof (specific numbers).
- PS: soft opt-out so they can disengage without ignoring.

### Rule 3: Irresistible offer
- Free access, no strings.
- "I just want honest feedback".
- No demo, no call, no commitment in the cold step.

### Rule 4: Low-friction CTA
- Reply with one word: "I'm in".
- NOT "book a call" or "schedule a demo".

### Rule 5: No fluff
- No em dashes (use periods).
- No "I hope this finds you well".
- No bullet points or formatting in the body.
- Lowercase subject lines.
- Write like you're texting a colleague.

## Steps
<!-- houston-workflow:v1 -->

### Step 1: Gather inputs

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.

### Step 2: Email 1 - the opener (Day 0)

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.**

### Step 3: Email 2 - the follow-up (Day 3)

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.**

### Step 4: Email 3 - the breakup (Day 7)

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.**

### Step 5: Save the locked sequence

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:

```markdown
# {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"}.
```

### Step 6: Append to outputs

`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"}`.

### Step 7: Final summary to user

One line: "Sequence locked at {path}. Ready to load into Instantly when you are."

## Outputs

- `sequences/{runId}-sequence.md`  -  locked 3-email sequence ready for `instantly-campaign`.
- `outputs.json`  -  one row, `type: "sequence"`, `status: "locked"`, `domain: "sequence"`.

## Quick reference

| Email | 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" |

## Common mistakes

| 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 |

## What I never do

- **Write all 3 emails before showing you any.** Each email is locked with you before I draft the next. Catches voice drift early.
- **Reuse social proof across emails.** Email 2 must use a different client + different numbers from Email 1. If you only gave me one social proof point, I stop and ask for another before drafting Email 2.
- **Use em dashes, exclamation points, or AI-tell formatting in the body.** The instantly-campaign skill also strips ampersands at upload time (Instantly bug), but the body should not contain those characters from me in the first place.
- **Add tracking pixels or link shorteners to the body.** Cold deliverability is fragile; the sender platform handles tracking, the body stays plain.
- **Write a Subject for Email 2 or 3.** Keeping the thread (blank subject) is intentional and is what tells the recipient's inbox to thread them.

Attribution

gethoustongethouston
View sourceMore from gethouston →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Postiz

Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest, Dribbble, Discord, Slack, Kick, Twitch, Mastodon, Bluesky, Lemmy, Farcaster, Telegram, Nostr, VK, Medium, Dev.to, Hashnode, WordPress, ListMonk

21281 votes

Serp Analysis

SERP analysis techniques for intent classification, feature identification, and competitive intelligence. Use when analyzing search results for content strategy.

2831 votes

On Page Seo Auditor

This skill performs detailed on-page SEO audits to identify issues and optimization opportunities. It analyzes all on-page elements that affect search rankings and provides actionable recommendations.

1821 votes

Brand

Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.

1240080 votes

Release Announcement

Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.

798220 votes
View all in content-marketing →