outreach-sequencer
Create and manage multi-step outreach sequences — LinkedIn messages, cold emails, and follow-ups with personalization. Use when asked to "send outreach", "create email sequence", "follow up with leads", "start a drip campaign", "send LinkedIn messages", "personalized outreach", or any automated multi-step communication workflow.
Best use case
outreach-sequencer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create and manage multi-step outreach sequences — LinkedIn messages, cold emails, and follow-ups with personalization. Use when asked to "send outreach", "create email sequence", "follow up with leads", "start a drip campaign", "send LinkedIn messages", "personalized outreach", or any automated multi-step communication workflow.
Teams using outreach-sequencer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ironclaw-outreach-sequencer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How outreach-sequencer Compares
| Feature / Agent | outreach-sequencer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create and manage multi-step outreach sequences — LinkedIn messages, cold emails, and follow-ups with personalization. Use when asked to "send outreach", "create email sequence", "follow up with leads", "start a drip campaign", "send LinkedIn messages", "personalized outreach", or any automated multi-step communication workflow.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agent for Cold Email Generation
Discover AI agent skills for cold email generation, outreach copy, lead personalization, CRM support, and sales-adjacent messaging workflows.
AI Agents for Freelancers
Browse AI agent skills for freelancers handling client research, proposals, outreach, delivery systems, documentation, and repeatable admin work.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# Outreach Sequencer — Multi-Step Personalized Campaigns
Design, schedule, and execute multi-step outreach sequences across LinkedIn and email. Each message is personalized per lead using their profile data from DuckDB.
## Sequence Templates
### Template 1: LinkedIn Connection + Message
```
Day 0: Send LinkedIn connection request (with note)
Day 1: If accepted → Send intro message
Day 3: If no reply → Follow-up message
Day 7: If no reply → Break-up / value-add message
```
### Template 2: Cold Email Sequence
```
Day 0: Initial cold email
Day 3: Follow-up (reply to original thread)
Day 7: Value-add email (case study, resource)
Day 14: Break-up email ("closing the loop")
```
### Template 3: Multi-Channel
```
Day 0: LinkedIn connection request
Day 2: Cold email (if not connected on LinkedIn)
Day 4: LinkedIn message (if connected) OR email follow-up
Day 7: Final touch (whichever channel they engaged on)
```
## Personalization Engine
Each message is generated per-lead using their DuckDB profile data. Use these variables:
| Variable | Source | Example |
|----------|--------|---------|
| `{first_name}` | Name field (split) | "Jane" |
| `{company}` | Company field | "Acme Corp" |
| `{title}` | Title field | "CTO" |
| `{mutual}` | Shared connections/background | "Stanford" |
| `{trigger}` | Why reaching out now | "saw your Series A" |
| `{value_prop}` | What you offer them | "AI-powered analytics" |
| `{pain_point}` | Their likely challenge | "scaling engineering team" |
### Personalization Rules
- **Never use generic openers** like "I hope this finds you well"
- **Reference something specific**: recent post, company news, shared background
- **Keep LinkedIn messages under 300 chars** (connection note limit)
- **Keep cold emails under 150 words** (respect attention)
- **Vary language across leads** — don't send identical messages to people at the same company
- **Match tone to seniority**: C-suite gets concise/strategic, ICs get technical/peer-level
### Message Generation Pattern
```
1. Read lead profile from DuckDB
2. Identify personalization hooks:
- Shared background (school, company, location)
- Recent company news (web search if needed)
- Role-specific pain points
3. Select message template for sequence step
4. Generate personalized message
5. Store message + status in DuckDB
```
## Execution
### LinkedIn Messages (via Browser)
```
browser → open LinkedIn messaging
browser → search for recipient
browser → open conversation
browser → type personalized message
browser → send
→ Update DuckDB status: "Sent"
```
### Email (via gog CLI)
```bash
gog gmail send \
--to "{email}" \
--subject "{subject}" \
--body "{personalized_body}" \
--account patrick@candlefish.ai
```
For follow-ups (reply to thread):
```bash
gog gmail reply \
--thread-id "{thread_id}" \
--body "{follow_up_body}"
```
## Sequence Status Tracking
Track in DuckDB with these status fields:
| Field | Values | Notes |
|-------|--------|-------|
| Outreach Status | Queued, Sent, Replied, Converted, Bounced, Opted Out | Main status |
| Sequence Step | 1, 2, 3, 4 | Current step in sequence |
| Last Outreach | date | When last message was sent |
| Next Outreach | date | When next step is due |
| Outreach Channel | LinkedIn, Email, Both | Active channel |
| Reply Received | boolean | True if they responded |
| Thread ID | text | Gmail thread ID for email chains |
```sql
-- Find leads due for next sequence step
SELECT "Name", "Email", "Outreach Status", "Sequence Step", "Next Outreach"
FROM v_leads
WHERE "Outreach Status" = 'Sent'
AND "Reply Received" = false
AND "Next Outreach" <= CURRENT_DATE
ORDER BY "Next Outreach";
```
## Cron Integration
Set up automated sequence execution:
```
Schedule: Every 2 hours during business hours (9am-5pm Mon-Fri)
Action:
1. Query leads due for next step
2. For each due lead:
a. Generate personalized message for their current step
b. Send via appropriate channel
c. Update status + advance step
d. Set next outreach date
3. Report: "Sent 12 messages (8 LinkedIn, 4 email). 3 replies received."
```
### Cron Job Setup (for OpenClaw)
```json
{
"name": "Outreach Sequencer",
"schedule": { "kind": "cron", "expr": "0 9,11,13,15 * * 1-5", "tz": "America/Denver" },
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "Run outreach sequence check. Query DuckDB for leads with Next Outreach <= today. Send personalized messages for their current sequence step. Update statuses. Report results.",
"timeoutSeconds": 300
}
}
```
## Safety & Compliance
- **Daily send limits**: Max 50 LinkedIn connection requests/day, 100 messages/day
- **Email limits**: Max 100 cold emails/day (avoid spam flags)
- **Opt-out handling**: If someone replies "not interested" / "unsubscribe", immediately set status to "Opted Out" and never contact again
- **Bounce handling**: If email bounces, mark as "Bounced" and try alternate email patterns
- **CAN-SPAM compliance**: Include sender identity, physical address option, and opt-out mechanism in emails
- **LinkedIn ToS**: Keep connection notes professional, don't spam InMails
- **Cool-down**: If a lead hasn't replied after full sequence, wait 90 days before any re-engagement
## Analytics
After each sequence run, track:
```
Active Sequences: 85 leads
├── Step 1 (Initial): 20 leads
├── Step 2 (Follow-up): 35 leads
├── Step 3 (Value-add): 18 leads
├── Step 4 (Break-up): 12 leads
│
Outcomes:
├── Replied: 23 (27% reply rate)
├── Converted: 8 (9.4% conversion)
├── Opted Out: 3 (3.5%)
├── Bounced: 2 (2.4%)
└── No Response (completed): 15 (17.6%)
```Related Skills
doppel-social-outreach
Promote Doppel world builds across social platforms. Use when the agent wants to share builds on Twitter/X, Farcaster, Telegram, or Moltbook to drive observers, grow reputation, and recruit collaborators.
email-outreach-ops
Draft and manage vendor outreach emails for quotes/availability, follow-up cadence, and response summarization into structured decision tables. Use when contacting hotels, transport vendors, or activity providers.
moltflow-outreach
Bulk messaging, scheduled messages, scheduled reports, and custom groups for WhatsApp outreach. Use when: bulk send, broadcast, schedule message, schedule report, cron, custom group, contact list, ban-safe messaging.
outreach-scout
Find and engage warm leads on Reddit, X/Twitter, and forums. Monitors platforms for people asking questions your product solves, drafts helpful replies that naturally mention your offering, and tracks all activity. Use when you need marketing, lead generation, audience building, finding potential customers, or growing product awareness. Works with heartbeats for automated daily scouting.
cold-outreach-pack
Cold email, LinkedIn outreach, and follow-up sequences for sales and networking. Professional templates and best practices.
outreach-sequence-crafter
Build respectful multi-touch outreach sequences with channel mix, follow-up timing, objection handling, and logging templates.
outreach-crm
Track leads locally, manage outreach campaigns, and export as CSV for download.
---
name: article-factory-wechat
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
tavily-search
Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.
baidu-search
Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.