/outreach-sequence-builder
Takes a buying signal and generates a personalized multi-channel outreach sequence across email, LinkedIn, and phone. Outputs 4-6 ready-to-send touchpoints over 10-14 days. Optionally drafts email touchpoints via Composio Gmail. Use when asked to write an outreach sequence,
$ npx -y skills add Varnan-Tech/opendirectory --skill outreach-sequence-builder --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/outreach-sequence-builder
Context preview
The summary Claude sees to decide when to auto-load this skill.
Takes a buying signal and generates a personalized multi-channel outreach sequence across email, LinkedIn, and phone. Outputs 4-6 ready-to-send touchpoints over 10-14 days. Optionally drafts email touchpoints via Composio Gmail. Use when asked to write an outreach sequence,
SKILL.md
outreach-sequence-builder.SKILL.mdname: outreach-sequence-builder
description: Takes a buying signal and generates a personalized multi-channel outreach sequence across email, LinkedIn, and phone. Outputs 4-6 ready-to-send touchpoints over 10-14 days. Optionally drafts email touchpoints via Composio Gmail. Use when asked to write an outreach sequence, build a sales cadence, create a follow-up sequence, personalize outreach for a signal, or generate cold outreach messages. Trigger when a user says "build an outreach sequence for", "write a sales cadence for", "create outreach based on this signal", "they just raised a round write me a sequence", or "generate personalized outreach for".
compatibility: [claude-code, gemini-cli, github-copilot]
author: OpenDirectory
version: 1.0.0
Outreach Sequence Builder
Take a buying signal. Generate a personalized multi-channel outreach sequence. Output ready-to-send messages across email, LinkedIn, and phone.
---
**Critical rule:** Every message must be filled in completely from the context you load. Only `{{first_name}}` is allowed as a variable. No `[Company Name]` brackets, no `[INSERT PAIN POINT]` placeholders. If you do not have the information to fill something in, ask before writing. Never send a message with an unfilled placeholder.
---
Step 1: Setup Check
Confirm required env vars:
echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
echo "COMPOSIO_API_KEY: ${COMPOSIO_API_KEY:-not set, Gmail drafting will be skipped}"**If GEMINI_API_KEY is missing:** Stop. Tell the user: "GEMINI_API_KEY is required. Get it at aistudio.google.com. Add it to your .env file."
**If COMPOSIO_API_KEY is missing:** Continue. Sequences will be output as formatted text for copy-paste. Gmail draft creation is skipped.
---
Step 2: Load Context
Check for an existing ICP file and account files:
ls docs/icp.md 2>/dev/null && echo "icp found" || echo "icp missing"
ls docs/accounts/ 2>/dev/null && echo "accounts found" || echo "accounts missing"
**If docs/icp.md exists:** Read it. Extract:
- Target personas (job titles, seniority, department)
- Company profile (size, industry, funding stage)
- Core pain points (use the buyer's exact language)
- Key differentiators (why your product over alternatives)
**If docs/accounts/{company}.md exists:** Read the relevant file. Extract:
- Company name, size, recent context
- Known tech stack or pain points
- Any existing relationship or prior contact
**If neither exists:** Ask the user these 4 questions. Do not proceed until all 4 are answered: 1. What does your product do? (one or two sentences) 2. Who are you targeting? (job title, company size, industry) 3. What is the main problem you solve? (from the buyer's perspective, not yours) 4. What is your key differentiator? (why you over the alternative they use today)
---
Step 3: Identify the Signal
Determine which of the 7 signal types applies. Read `references/signal-playbook.md` for the full Insight, Bridge, Opener, and Ask for each signal type.
**7 signal types:**
| Signal | Definition | |--------|-----------| | Post-Fundraise | Company raised a funding round in the last 30 days | | Hiring Signal | Company posted 5 or more roles in a function you serve | | Competitor Displacement | Contact is using a competitor and showing frustration | | Product Launch | Company launched a new product or major feature | | Content Engagement | Contact liked, commented, or shared your content | | Event Follow-up | You met or were in the same session at a conference or webinar | | Job Change | Contact moved to a new company in the last 60 days |
**If the user provided a signal in their prompt:** Confirm the type and extract the specific details (round size, role titles, product name, event name, etc.).
**If no signal is clear:** Ask: "What triggered this outreach? (e.g. they raised a round, they're hiring engineers, you met at an event)"
State the detected signal type and the specific detail before proceeding.
---
Step 4: Develop the Angle
Using the signal type and context loaded in Steps 2-3, define the four angle elements. Read `references/signal-playbook.md` for the formula for this signal type.
Write out explicitly before generating any messages:
Signal: [specific signal + concrete detail]
Insight: [what this signal reveals about their situation]
Bridge: [how your product connects to what the signal reveals]
Opener: [one sentence referencing the specific signal detail]
Ask: [minimum viable CTA, under 10 words]
The opener must name the specific trigger. Vague openers are rejected.
Good: "Congrats on the $18M Series B — scaling the sales team fast usually creates an onboarding gap." Bad: "I saw your company recently raised funding."
---
Step 5: Plan the Channel Sequence
Design 4-6 touchpoints across email, LinkedIn, and phone. Rules:
- Total duration: 10-14 days
- Minimum gap: 2 days between any two touches
- Never use the same channel twice in a row
- Each follow-up must add new value (new resource, new angle, new proof point). Never "just following up".
- The final touchpoint is a short breakup message
Default cadence for most signals:
Day 1: Email (first touch, signal-led opener)
Day 3: LinkedIn (connection note or short DM)
Day 7: Email (new angle or case study)
Day 9: Phone (talk track + voicemail script)
Day 12: Email (different framing or objection addressed)
Day 14: Email (short breakup message)
Adjust for signal type:
- Post-Fundraise: move faster (Day 1, 2, 4, 7, 10). Act within 48 hours of announcement.
- Event Follow-up: start with LinkedIn, not email (warmer channel first)
- Content Engagement: start with LinkedIn reply or comment before email
State the planned day and channel for each touchpoint before writing messages.
---
Step 6: Generate the Sequence
Read `references/sequence-format.md` in full. Read `references/output-template.md` and select the template for this signal type.
Write the Gemini request to a temp
Read more
name: outreach-sequence-builder description: Takes a buying signal and generates a personalized multi-channel outreach sequence across email, LinkedIn, and phone. Outputs 4-6 ready-to-send touchpoints over 10-14 days. Optionally drafts email touchpoints via Composio Gmail. Use when asked to write an outreach sequence, build a sales cadence, create a follow-up sequence, personalize outreach for a signal, or generate cold outreach messages. Trigger when a user says "build an outreach sequence for", "write a sales cadence for", "create outreach based on this signal", "they just raised a round write me a sequence", or "generate personalized outreach for". compatibility: [claude-code, gemini-cli, github-copilot] author: OpenDirectory version: 1.0.0
Outreach Sequence Builder
Take a buying signal. Generate a personalized multi-channel outreach sequence. Output ready-to-send messages across email, LinkedIn, and phone.
---
**Critical rule:** Every message must be filled in completely from the context you load. Only `{{first_name}}` is allowed as a variable. No `[Company Name]` brackets, no `[INSERT PAIN POINT]` placeholders. If you do not have the information to fill something in, ask before writing. Never send a message with an unfilled placeholder.
---
Step 1: Setup Check
Confirm required env vars:
echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
echo "COMPOSIO_API_KEY: ${COMPOSIO_API_KEY:-not set, Gmail drafting will be skipped}"**If GEMINI_API_KEY is missing:** Stop. Tell the user: "GEMINI_API_KEY is required. Get it at aistudio.google.com. Add it to your .env file."
**If COMPOSIO_API_KEY is missing:** Continue. Sequences will be output as formatted text for copy-paste. Gmail draft creation is skipped.
---
Step 2: Load Context
Check for an existing ICP file and account files:
ls docs/icp.md 2>/dev/null && echo "icp found" || echo "icp missing" ls docs/accounts/ 2>/dev/null && echo "accounts found" || echo "accounts missing"
**If docs/icp.md exists:** Read it. Extract:
- Target personas (job titles, seniority, department)
- Company profile (size, industry, funding stage)
- Core pain points (use the buyer's exact language)
- Key differentiators (why your product over alternatives)
**If docs/accounts/{company}.md exists:** Read the relevant file. Extract:
- Company name, size, recent context
- Known tech stack or pain points
- Any existing relationship or prior contact
**If neither exists:** Ask the user these 4 questions. Do not proceed until all 4 are answered: 1. What does your product do? (one or two sentences) 2. Who are you targeting? (job title, company size, industry) 3. What is the main problem you solve? (from the buyer's perspective, not yours) 4. What is your key differentiator? (why you over the alternative they use today)
---
Step 3: Identify the Signal
Determine which of the 7 signal types applies. Read `references/signal-playbook.md` for the full Insight, Bridge, Opener, and Ask for each signal type.
**7 signal types:**
| Signal | Definition | |--------|-----------| | Post-Fundraise | Company raised a funding round in the last 30 days | | Hiring Signal | Company posted 5 or more roles in a function you serve | | Competitor Displacement | Contact is using a competitor and showing frustration | | Product Launch | Company launched a new product or major feature | | Content Engagement | Contact liked, commented, or shared your content | | Event Follow-up | You met or were in the same session at a conference or webinar | | Job Change | Contact moved to a new company in the last 60 days |
**If the user provided a signal in their prompt:** Confirm the type and extract the specific details (round size, role titles, product name, event name, etc.).
**If no signal is clear:** Ask: "What triggered this outreach? (e.g. they raised a round, they're hiring engineers, you met at an event)"
State the detected signal type and the specific detail before proceeding.
---
Step 4: Develop the Angle
Using the signal type and context loaded in Steps 2-3, define the four angle elements. Read `references/signal-playbook.md` for the formula for this signal type.
Write out explicitly before generating any messages:
Signal: [specific signal + concrete detail] Insight: [what this signal reveals about their situation] Bridge: [how your product connects to what the signal reveals] Opener: [one sentence referencing the specific signal detail] Ask: [minimum viable CTA, under 10 words]
The opener must name the specific trigger. Vague openers are rejected.
Good: "Congrats on the $18M Series B — scaling the sales team fast usually creates an onboarding gap." Bad: "I saw your company recently raised funding."
---
Step 5: Plan the Channel Sequence
Design 4-6 touchpoints across email, LinkedIn, and phone. Rules:
- Total duration: 10-14 days
- Minimum gap: 2 days between any two touches
- Never use the same channel twice in a row
- Each follow-up must add new value (new resource, new angle, new proof point). Never "just following up".
- The final touchpoint is a short breakup message
Default cadence for most signals:
Day 1: Email (first touch, signal-led opener) Day 3: LinkedIn (connection note or short DM) Day 7: Email (new angle or case study) Day 9: Phone (talk track + voicemail script) Day 12: Email (different framing or objection addressed) Day 14: Email (short breakup message)
Adjust for signal type:
- Post-Fundraise: move faster (Day 1, 2, 4, 7, 10). Act within 48 hours of announcement.
- Event Follow-up: start with LinkedIn, not email (warmer channel first)
- Content Engagement: start with LinkedIn reply or comment before email
State the planned day and channel for each touchpoint before writing messages.
---
Step 6: Generate the Sequence
Read `references/sequence-format.md` in full. Read `references/output-template.md` and select the template for this signal type.
Write the Gemini request to a temp
AI Agent Skills built for Founders who hate Marketing
Repo: Varnan-Tech/opendirectory
Other skills on opendirectory-gtm-skills.
- /app-store-review-arbitrage
Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.
Open skill - /blog-cover-image-cli
Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.
Open skill - /brand-alchemy
World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.
Open skill - /claude-md-generator
Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.
Open skill - /cold-email-verifier
Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.
Open skill - /company-radar
Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
Open skill

