karlraf/gtm-starter-kit/signal-to-sequence
Claude Code and agent skill by karlraf/gtm-starter-kit
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install karlraf/gtm-starter-kit/signal-to-sequenceSKILL.md
Skill: Signal to Sequence
Duration: 2–4 hours per campaign Output: outputs/campaigns/[date]-[campaign-name]/
Quick Start
For a complete example of what this produces, see: examples/sample-company/outputs/campaigns/2024-03-01-series-b-revops-tier2/
Purpose
Turn a signal — or a set of accounts sharing a signal — into a live outreach campaign. This skill connects the signal library to actual sequences. It answers the question: "We know who to target and why. Now what do we actually say?"
The output of this skill is not a rough draft. It is a sequence ready to load into your outbound tool.
When to Run This Skill
- A new signal fires across multiple accounts simultaneously (e.g., batch of Series B announcements)
- You're launching a new campaign segment
- An existing campaign is underperforming and needs a full rebuild
- A new ICP tier needs to be activated for the first time
Inputs
- Target signal(s) from
context/signal-library.md - ICP tier for this campaign from
context/icp-definition.md - Persona(s) being targeted from
context/personas/ - Competitive context from
context/competitor-radar.md(if relevant) - Company profile from
context/profile.md
Step 1: Define the Trigger Logic (20 min)
Before writing a word, be precise about what fires this campaign.
Single-signal trigger: One signal alone justifies outreach.
- Which signal? [From signal library]
- Minimum score threshold to activate?
- Recency window: signal must have fired in last [X] days?
Multi-signal trigger: Two or more signals in combination.
- Signal A + Signal B = activate
- What does the combination tell you that neither signal alone tells you?
Suppression conditions: Accounts that match the signal but should NOT receive this campaign.
- Active opportunity in CRM
- Existing customer
- Contacted in last [X] days
- [Any other suppression rules from signal library]
Document the trigger logic in plain language before moving to Step 2. Ambiguous triggers produce wasted outreach.
Step 2: Segment the Target List (20 min)
Pull all accounts matching the trigger logic. Segment by:
- ICP tier (Tier 1 vs. Tier 2 vs. Tier 3 gets different sequence intensity)
- Persona (different message for each role)
- Account status (cold prospect vs. previously contacted vs. dark opportunity)
Output: a clean list per segment with contact information and signal data attached.
Step 3: Design the Sequence (45 min)
Build the sequence structure before writing copy. Define:
| Touch | Day | Channel | Goal | Personalization level | |
|---|---|---|---|---|---|
| 1 | 0 | First impression + signal hook | High — signal-specific | ||
| 2 | 3 | Connect + brief context | Medium | ||
| 3 | 6 | Value prop + proof | Medium | ||
| 4 | 10 | Different angle or asset | Low | ||
| 5 | 14 | Phone/VM | Direct ask | Medium | |
| 6 | 21 | Break-up + pivot | Low |
Tier guidance:
- Tier 1: 6–8 touches, all channels, manual personalization on touches 1–3
- Tier 2: 5–7 touches, email + LinkedIn, semi-automated
- Tier 3: 4–5 touches, email-first, templated with signal variable
Step 4: Write the Copy (60–90 min)
Write each touch. Apply the PVP standard to Tier 1 and Tier 2 email 1.
The PVP Standard (Permissionless Value Prop)
A message passes PVP if the prospect would find it valuable even if they never buy from you. It delivers market intelligence, not a sales pitch.
Test: Remove your CTA. If the message still has value, it passes. If it's pointless without the CTA, it's a pitch — rewrite it.
Four questions every Tier 1 first touch must answer yes to:
- Does this contain an insight the prospect doesn't already have?
- Would they forward this to a colleague?
- Would they find this useful even if they never buy?
- Is this market intelligence, not just personalization?
Touch 1 — Email (Signal Hook)
Subject line options (write 3, A/B test 2):
- [Option A — curiosity-based]
- [Option B — direct/insight-based]
- [Option C — question-based]
Body structure:
Example:
Touch 2 — LinkedIn Connection Request
The connection note should be 1–2 sentences max. Reference something specific: the email you already sent, a recent post they published, or their new role. "Following your work" and "building something adjacent" read as spray-and-pray. LinkedIn accepts correlate with personalization quality — use the signal context you already have.
Touch 3 — Email (Value Prop + Proof)
Shift the angle. Don't repeat touch 1. Lead with a different dimension of value or a proof point.
Touch 4 — Email (Asset or Different Angle)
Offer something concrete: a framework, a benchmark, a piece of content, a question worth thinking about.
Touch 5 — Phone / Voicemail
Touch 6 — Break-up Email
Step 5: Measurement Plan (15 min)
Define success before launch. Set targets by tier:
| Metric | Tier 1 target | Tier 2 target | Tier 3 target | |
|---|---|---|---|---|
| Reply rate | ≥ 8% | ≥ 4% | ≥ 2% | |
| Meeting rate | ≥ 5% | ≥ 2% | ≥ 1% | |
| Pipeline per 100 accounts | $[X] | $[Y] | $[Z] |
What to track:
- Reply rate by touch number (where are people responding?)
- Meeting rate by signal type (which signals convert best?)
- Signal-triggered vs. generic performance lift
Review cadence: First review at 2 weeks (enough volume to see patterns). Full review at 6 weeks.
Step 6: Variant Tracking (10 min)
If you're testing different versions of any element (subject line, body copy, CTA, send time), document the variants before launch. Without structured tracking, you'll know something worked better but not why.
Variant Tracking Table
Add this to brief.md for every campaign that runs variants:
Rules for variant testing:
- Test one element at a time. Testing subject line AND body copy simultaneously means you can't attribute the difference.
- Minimum sample size per variant: 50 sends before declaring a winner. Below 50, the result is noise.
- "Winner" means >=30% relative improvement with at least 50 sends per arm. A 10% difference at n=40 is not a winner; it's a signal to keep testing.
- Document the decision: keep winner, keep testing, or retire both and try something new.
- After declaring a winner, update the sequence to use only the winning version. Don't let both run indefinitely.
Output Structure
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/signal-to-sequence/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/karlraf/gtm-starter-kit/signal-to-sequence)