Skills로 돌아가기
mbfinotti/sales-skills검사 통과

SKILL DETAIL

sales-outbound-sequence

mbfinotti/sales-skills/sales-outbound-sequence

Plans a touch-by-touch outbound cadence - which channel on which day, touch count, spacing, channel mix, multi-threading, exit and stop rules, recycle and re-entry, and the capacity math behind it, with pre-committed metric thresholds. Use whenever the user mentions a sequence, cadence, follow-up timing, Outreach or Salesloft steps, a drip, "how many touches", inbound-lead or event follow-up, closed-lost re-engagement, or B2C lifecycle and SMS flows, even without the word cadence. Do NOT use for message copy, subject lines (mbfinotti/sales-skills@cold-email-subject-line-tester), call scripts (mbfinotti/sales-skills@cold-call-opener), or inbox placement (mbfinotti/sales-skills@cold-email-deliverability).

설치 수 · 185출처 보기

Installation

npx skills add https://github.com/mbfinotti/sales-skills --skill sales-outbound-sequence

스킬 파일

SKILL.md

최근 동기화 · 2026. 9. 15.

evals/evals.json
{
  "skill_name": "sales-outbound-sequence",
  "evals": [
    {
      "id": 1,
      "prompt": "I'm the founder of Hoverline, a $49/month scheduling tool for HVAC contractors. I bought a scored list of 900 office managers at 5-50 person contracting firms and I'm doing the outbound myself - no SDRs, no one else. I've got one mailbox on a domain we've used for two years. Personalization is going to be segment-level at best, I'm not researching 900 people. I read everywhere that the standard is 12-15 touches over a month, so let's build that: emails, calls, LinkedIn, the whole thing. I want it live by the end of the month. Can you lay out the sequence?",
      "expected_output": "A short email-only cadence of roughly 3-5 touches over 1-2 weeks, with the decision-rule factors recorded, manual channels removed because the founder has no call block, a full touch table with exit checks, capacity math against the single mailbox, committed metric thresholds, and copy work routed away.",
      "files": [],
      "expectations": [
        "Applies a length decision rule and records which factors decided it, naming the SMB segment, the large scored list, the templated or light personalization, the email-only staffing, and the low deal size",
        "Recommends a short pattern of roughly 3-5 emails over about 1-2 weeks instead of the 12-15 touches over a month the user proposed",
        "States that a founder doing their own outbound has no daily call block, so manual call and social channels are removed from the plan rather than merely ranked lower",
        "Gives every touch in the table a day, a channel, a step type marked automated or manual, a one-line purpose, and the exit check that precedes it",
        "Includes an in-thread bump as one of the touches",
        "Spaces early touches 1-3 working days apart and widens the gaps toward the tail of the sequence",
        "Lists all five immediate-exit conditions: any reply, meeting booked or conversion, opt-out or unsubscribe, hard bounce, and a hostile response",
        "States that exits fire mid-sequence rather than at the next scheduled touch",
        "Writes a pre-enrollment suppression checklist that includes current customers, accounts with an open opportunity, and prospects already active in another sequence",
        "Shows the automated-send load per mailbox per day and keeps cold sends well under 100 per mailbox per day",
        "Commits a numeric reply-rate threshold plus opt-out and spam-complaint guardrail ceilings and a review date, all in writing before launch",
        "Routes subject lines and email body copy to a sibling skill instead of writing the messages in the plan"
      ]
    },
    {
      "id": 2,
      "prompt": "Verrick Systems sells grid-monitoring software to regional utilities, average deal about $240k, sales cycle around nine months. We have a named list of 28 utilities and that list is basically our whole market for the year. Three AEs and two SDRs, the SDRs already run a daily call block and both are active on LinkedIn, and we do real research on each account before touching it. My plan: blanket each utility with 7-9 contacts so somebody bites, and end every account with a hard breakup email so we know who's dead and can clear the pipeline. Build the cadence.",
      "expected_output": "A long multi-channel cadence with the decision-rule factors scored, multi-threading cut to 2-3 contacts per account with staggered entry and account-level pause, a quiet stop instead of the breakup because the 28-account list cannot be burned, the call block promoted, and a trigger-gated recycle window.",
      "files": [],
      "expectations": [
        "Scores the decision-rule factors and records that enterprise segment, small named-account list, deep per-account personalization, three staffed channels, and high deal size all push long",
        "Recommends roughly 9-15 touches over about 3-4 weeks across 3 channels",
        "Caps multi-threading at 2-3 contacts per account and rejects the proposed 7-9 contacts",
        "States that reply rates fall sharply past a handful of contacts per company and labels that figure as vendor-published",
        "Staggers the second contact's entry by a few days rather than enrolling all contacts at an account on the same day",
        "Pauses the whole account when any one contact replies",
        "Recommends a quiet stop rather than the breakup email, on the grounds that this 28-account list cannot be afforded to burn",
        "States that a sent breakup is a promise that binds the team to suppress the account until a genuine new trigger appears",
        "Promotes the call plus voicemail block because callers are genuinely staffed, the list is small enough for a daily block, and the deal size pays for it",
        "Caps voicemails at two per prospect and has the voicemail point back at the email rather than asking for a callback",
        "Reuses the personalization from the first touch across the later touches and channels instead of researching each step separately",
        "Defines a recycle cooldown in the 30-90 day range with re-entry gated on a fresh trigger and capped at two cycles"
      ]
    },
    {
      "id": 3,
      "prompt": "Brambel does API monitoring. We get about 40 demo requests a week off our docs and blog, and right now marketing dumps them straight into the same 11-touch cold sequence our SDRs use for outbound - 4 emails, 4 calls, 3 LinkedIn touches over 22 days. Conversion from demo request to booked call is under 20% and everyone's blaming the list. Design the right follow-up for these inbound leads. Also pull me the stat on how much response speed improves conversion, I need a hard number to get the team to change their habits.",
      "expected_output": "A speed-first inbound plan with the first touch inside the same working hour, a 3-4 touch sprint replacing the cold pattern, the speed-to-lead multipliers treated as unverified folklore, full exit and suppression rules, and committed metrics with a post-cohort review date.",
      "files": [],
      "expectations": [
        "Places the first touch within the same working hour of the inbound demo request",
        "Replaces the 11-touch cold pattern with a short sprint of roughly 3-4 touches",
        "States explicitly that a full cold pattern must not be run on someone who asked to hear from you",
        "Treats the speed-to-lead research as credible in direction but not independently verified, and calls the specific multipliers folklore",
        "Does not present any specific speed-to-lead multiplier such as 21x, 100x, or 9x as an established figure",
        "Lists all five immediate-exit conditions and states that exits fire mid-sequence",
        "Suppresses current customers and accounts with an open opportunity before enrollment",
        "Schedules sends in recipient-local business hours and skips the recipient geography's holidays",
        "Commits a numeric decision metric and a written review date before launch",
        "Sets the review date after a full cohort completes the sequence rather than mid-flight on touch-1 data",
        "Routes the email copy for these touches to a sibling skill instead of drafting the messages"
      ]
    },
    {
      "id": 4,
      "prompt": "Tandrel has two SDRs and we enroll 900 active prospects per launch. The cadence we drafted is 9 touches over 18 working days: 5 automated emails and 4 manual steps (two calls with voicemail, two LinkedIn touches). We send from two mailboxes, both registered about three weeks ago on a fresh domain we bought for outbound. Leadership wants this live Monday. Does this hold up, and if it doesn't, what do we change?",
      "expected_output": "Explicit capacity arithmetic showing roughly 100 manual touches per rep per day and roughly 125 sends per mailbox per day, both over the limits, the warm-up problem on the three-week-old domain flagged, and the fix bought in the ranked order starting with staggered cohort entry.",
      "files": [],
      "expectations": [
        "Computes manual-touch load as active prospects times manual touches divided by sequence length in working days, then divided across the two reps, landing near 100 manual touches per rep per day",
        "States that roughly 100 manual touches per rep per day is far beyond a realistic daily call block, citing practitioner ranges of roughly 10-30 dials plus social touches",
        "Computes automated sends as active prospects times automated touches divided by working days divided by mailboxes, landing near 125 sends per mailbox per day",
        "Flags that this exceeds the practitioner ceiling of well under 100 cold sends per mailbox per day",
        "Flags that both mailboxes are about three weeks old and still need a warm-up ramp measured in weeks before full volume",
        "Recommends staggering cohort entry into daily batches as the first fix, ahead of every other option",
        "Ranks cutting the active cohort above dropping a manual touch, because cutting the cohort keeps the design comparable to the previous cohort while dropping a touch forfeits that comparison",
        "Ranks adding mailboxes or reps last and names its cost as a quarter to hire or weeks of warm-up ramp",
        "Refuses to short-circuit the warm-up ramp by pushing the new domain to full volume for the Monday deadline",
        "Warns that manual steps silently skipped by overloaded reps corrupt the measurement, because the sequence run is no longer the sequence designed",
        "Hands the domain authentication, warm-up execution, and placement audit to the deliverability sibling skill rather than performing it inline",
        "States the spam-complaint ceiling as below 0.3% with below 0.1% recommended, and identifies it as mailbox-provider platform policy rather than a vendor benchmark"
      ]
    },
    {
      "id": 5,
      "prompt": "Nuvela is a DTC skincare brand, about 14,000 sessions a month and a 68% cart abandonment rate. Here's the flow I want built: SMS at 1 hour, email at 2 hours with 15% off, second SMS at 6 hours, email at 24 hours bumping to 20% off, then a final SMS at 48 hours. We capture everyone's mobile number at checkout so we have all the numbers already. These people are also on our weekly newsletter list, which I assume is fine since it's a different channel. Build it out.",
      "expected_output": "A rebuilt abandonment flow gated on express SMS opt-in, capped at one SMS inside quiet hours, with no discount on touch 1, the incentive moved to +24-48h, cross-flow suppression from the newsletter, a global frequency cap, and immediate exits.",
      "files": [],
      "expectations": [
        "Refuses SMS to mobile numbers captured at checkout without express marketing opt-in, and frames it as a consent basis question rather than a design tradeoff",
        "Caps the flow at a single SMS, and only for subscribers with express opt-in",
        "Requires the SMS to land inside the jurisdiction's quiet hours and says to confirm the jurisdiction's rules rather than assume a window",
        "Places touch 1 a few hours after abandonment with no discount",
        "States that discounting touch 1 trains abandonment",
        "Places the incentive on the second touch at roughly plus 24 to 48 hours",
        "Ends the flow after the final touch rather than continuing indefinitely",
        "Requires one active flow at a time per person",
        "Suppresses subscribers who are in this flow from the weekly batch newsletter",
        "States a global frequency cap across all marketing sends per subscriber",
        "Makes exits on purchase, reply, or opt-out immediate, the same as B2B reply exits",
        "States the consent basis per channel before designing the flow"
      ]
    },
    {
      "id": 6,
      "prompt": "Kessline is six weeks into a 7-touch outbound sequence for our 400-prospect list. Open rate is 61%, which the team is thrilled about. But sequence completion rate is only 22% - most prospects never reach touch 7 - so I want to set an 80% completion target for the quarter and hold reps to it. Separately, touch 1 came back with 1.1% replies after four days and I'm ready to kill the whole thing and rebuild. Our CRM doesn't write meetings back to sequences so we can't see meetings per sequence, but the sequencer reports replies fine. What should I do?",
      "expected_output": "Open rate rejected as inflated and non-decisive, completion rate refused as a target and reframed as diagnostic, the touch-1 kill decision refused, reply rate committed as the decision metric with a numeric threshold and a post-cohort review date, and one variable per revision.",
      "files": [],
      "expectations": [
        "States that open rate is not a decision metric because mail-privacy proxies register phantom opens, and calls the 61% figure inflated",
        "Refuses sequence completion rate as a team target and calls it diagnostic only",
        "Explains that completion rate is a function of the sequence's own length and exit rules, so it means nothing against a borrowed or imposed threshold",
        "Notes that a low completion rate partly reflects prospects exiting on reply, which is the sequence working rather than failing",
        "Refuses to judge or kill the sequence on touch-1 data",
        "States that most replies arrive after the first touch and labels that as vendor-published",
        "Commits reply rate as the decision metric because meetings per 100 prospects is not measurable with this CRM setup",
        "Names the measurement order: reply rate, then positive-reply rate, then meetings per 100 prospects, then connect rate, then completion rate",
        "Places opt-out rate and spam-complaint rate outside that ranking as guardrails rather than goals",
        "Gives a numeric cumulative reply-rate threshold and labels borrowed calibration figures as vendor-published",
        "Evaluates at sequence level after a full cohort completes rather than mid-flight",
        "Changes exactly one variable in the revision rather than rebuilding length, copy, and list at once"
      ]
    },
    {
      "id": 7,
      "prompt": "Orrowind has 1,840 closed-lost opportunities from the last 18 months sitting in the CRM. Our VP wants a Q4 win-back blast to all 1,840 - four emails over two weeks - and then wants to re-run the same blast every quarter so the list stays warm. Two wrinkles I noticed: about 340 of those contacts currently have an open opportunity with a different rep, and roughly 90 of them got our breakup email during the original sequence. Put the plan together.",
      "expected_output": "A trigger-gated re-engagement plan replacing the quarterly calendar blast, scoped to the small fraction of the list with a fresh trigger, with the 340 open-opp and 90 breakup contacts suppressed, a two-cycle re-entry cap, and an explicit nurture-or-sunset decision.",
      "files": [],
      "expectations": [
        "Gates re-entry on a fresh trigger such as a job change, funding, or tech-stack change, never on the calendar alone",
        "Rejects re-enrolling the whole 1,840-record list",
        "States that only a small fraction of a stale list develops a fresh trigger in any given quarter, and targets that fraction",
        "Defines stale as roughly 90-180 days without engagement and labels that a practitioner range",
        "Recommends a short 2-3 touch sequence that leads with the trigger rather than the proposed four-email blast",
        "Suppresses the 340 contacts with an open opportunity before enrollment",
        "Suppresses the roughly 90 contacts who already received a breakup email until a genuine new trigger appears for them",
        "Caps re-entries at two cycles",
        "After two cycles, forces a single explicit choice between long-term nurture and sunset rather than defaulting to nurture",
        "Conditions long-term nurture on the account still fitting the ICP and on a named owner maintaining the list",
        "Warns that defaulting to nurture on a list nobody maintains parks a dead cohort against the sending domain",
        "Requires verifying each re-entry trigger before re-enrolling, or asking the user to confirm it"
      ]
    },
    {
      "id": 8,
      "prompt": "Halterway sells warehouse labor-scheduling software to mid-market 3PLs. Each of our two SDRs works about 180 accounts and both already run a daily call block. Our sending domain is two years old with a clean record. Here's the channel plan we drafted: every prospect gets a personalized LinkedIn connection note referencing their most recent post - we budget 6 minutes per prospect for that - plus a Loom video on day 2, a text message on day 5 since we have mobile numbers from our data provider, and three emails spread across the rest. What order should we build these in, and is anything missing?",
      "expected_output": "The channel efficiency order stated outright, personalized connection notes and unconsented SMS deleted rather than demoted, video pushed to last and restricted, an in-thread bump added, and the call block promoted with what the ranking starves named.",
      "files": [],
      "expectations": [
        "States the channel order explicitly as in-thread bump, then blank connection request, then extra email angle, then call plus voicemail, then social DM, then video message",
        "Deletes personalized connection-request notes rather than ranking them lower, and states that blank requests connect as well as or better with identical downstream reply rates",
        "Reclaims the 6 minutes per prospect that the personalized note was costing",
        "Deletes SMS to prospects who have not given express opt-in, on the grounds that there is no consent basis, rather than ranking it as a weaker option",
        "Ranks the video message last and names it the heaviest per touch and the one that never templates",
        "Restricts video to a named-account list small enough for an SDR to hold in their head",
        "Adds an in-thread bump and identifies it as near-zero cost on every axis",
        "States that email carries the ask and every other channel exists to lift email replies",
        "Notes that the warm two-year-old domain gives email headroom and therefore promotes email touches rather than forcing the call block",
        "Keeps the call block in the plan given the two staffed SDRs, and names that a pure efficiency ranking starves the human-voice channels",
        "Restricts social DMs to after the connection is accepted, at most two, with no pitch, phased out mid-sequence",
        "Says out loud which channels were dropped and why when presenting the plan",
        "Labels the channel ordering as practitioner guidance rather than law"
      ]
    },
    {
      "id": 9,
      "prompt": "Quennard just exhibited at a logistics trade show and we came home with 212 badge scans. Sales wants to hit them hard while it's fresh: day 1 gets an email plus a call plus a voicemail plus a LinkedIn DM plus a connection request, day 2 gets another email plus a call, day 3 gets an email plus a DM, then a daily email for the following week. They also want the day-1 emails to fire at 6am local so we're sitting at the top of the inbox when people open their phones. Our scans are split roughly half US, a quarter Germany, a quarter Japan. Write the plan.",
      "expected_output": "The pile-up rejected and rebuilt as a 3-4 touch event follow-up over 7-10 days with the first touch inside 48 hours, at most one labeled cluster day, widening gaps, recipient-local business-hour sends across the three geographies with holidays skipped, and the cost of the proposed plan named.",
      "files": [],
      "expectations": [
        "Rejects the proposed day-1, day-2, day-3 stacking as a same-day multi-channel pile-up",
        "Allows at most one intentional, explicitly labeled multi-channel cluster day in the plan",
        "Keeps every other day to no more than two channels",
        "Widens gaps toward the tail instead of sending a daily email for the following week",
        "Recommends an event follow-up shape of roughly 3-4 touches over 7-10 days",
        "Places the first touch within 48 hours of the event while memory is fresh",
        "States that the event follow-up shape is a convention across comparable playbooks rather than measured data",
        "Rejects the 6am send and schedules touches inside recipient-local business hours",
        "Skips holidays for each of the US, German, and Japanese segments rather than using one calendar",
        "Warns that the proposed plan spends the whole channel budget before any reply data arrives and leaves nothing for week 2",
        "Names opt-outs and spam complaints damaging the sending domain for every other sequence as a cost of the pile-up",
        "Lists the immediate-exit conditions and a pre-enrollment suppression step for the scanned list"
      ]
    }
  ],
  "trigger_queries": [
    { "query": "design a 5-touch outbound cadence for our SMB prospect list", "should_trigger": true },
    { "query": "how many touches should a cold email sequence have", "should_trigger": true },
    { "query": "what's the right spacing between follow-up emails", "should_trigger": true },
    { "query": "build me an Outreach sequence for our mid-market AEs", "should_trigger": true },
    { "query": "our Salesloft cadence has 14 steps, is that too many", "should_trigger": true },
    { "query": "when should I stop following up with a prospect who never replies", "should_trigger": true },
    { "query": "we scanned 212 badges at a conference, what happens next", "should_trigger": true },
    { "query": "how fast do we need to respond to an inbound demo request", "should_trigger": true },
    { "query": "i want to go back to closed lost deals from last year", "should_trigger": true },
    { "query": "should we end with a breakup email or just stop", "should_trigger": true },
    { "query": "how many people at the same company should we be contacting", "should_trigger": true },
    { "query": "our reps keep skipping the call steps, the plan is too wide", "should_trigger": true },
    { "query": "plan the flow for people who abandon their cart", "should_trigger": true },
    { "query": "win-back for customers who haven't ordered in six months", "should_trigger": true },
    { "query": "what day should each email go out across a 9 step plan", "should_trigger": true },
    { "query": "map the follow-up rhythm after our trade show booth", "should_trigger": true },
    { "query": "how long before we can approach someone again", "should_trigger": true },
    { "query": "we only send 3 emails, should we add calls and LinkedIn", "should_trigger": true },
    { "query": "we have 900 prospects and 2 SDRs, does this plan fit", "should_trigger": true },
    { "query": "give our outbound some structure, right now it's random", "should_trigger": true },
    { "query": "when do we pull someone out mid-sequence", "should_trigger": true },
    { "query": "how many sends per mailbox per day can our plan handle", "should_trigger": true },
    { "query": "help me plan the follow-ups for leads that went quiet", "should_trigger": true },
    { "query": "what should days 1 through 21 look like for enterprise accounts", "should_trigger": true },
    { "query": "our new domain is 3 weeks old, how does that change the plan", "should_trigger": true },
    { "query": "touch-by-touch plan for 30 named accounts", "should_trigger": true },
    { "query": "should the gaps between touches get wider or stay even", "should_trigger": true },
    { "query": "plan the channel mix for our SDR team", "should_trigger": true },
    { "query": "how do we stop two reps from hitting the same person", "should_trigger": true },
    { "query": "we want to email prospects every day for two weeks, thoughts", "should_trigger": true },
    { "query": "what number do we commit to before we launch this", "should_trigger": true },
    { "query": "lifecycle flow for browse abandonment", "should_trigger": true },
    { "query": "our LinkedIn step and email step land the same day, problem?", "should_trigger": true },
    { "query": "how many voicemails should a rep leave per prospect", "should_trigger": true },
    { "query": "we run the same 11 steps for inbound and cold, is that fine", "should_trigger": true },
    { "query": "prospects are in Tokyo and Berlin, when should touches fire", "should_trigger": true },
    { "query": "i'm a founder doing my own prospecting, what should my week look like", "should_trigger": true },
    { "query": "short sprint or long cadence for this list?", "should_trigger": true },
    { "query": "how do I stagger enrollment so my reps aren't buried", "should_trigger": true },
    { "query": "we only have open rates, can we still judge this", "should_trigger": true },
    { "query": "my team wants to blanket every account with 8 contacts", "should_trigger": true },
    { "query": "set up the SMS and email flow after signup for our app", "should_trigger": true },
    { "query": "we're launching outbound next month, what's the shape of it", "should_trigger": true },
    { "query": "how often should I follow up on LinkedIn with a cold prospect", "should_trigger": true },
    { "query": "what's the exit rule when someone books a meeting", "should_trigger": true },
    { "query": "our cadence hasn't worked, what do I change first", "should_trigger": true },
    { "query": "how many emails before it turns into harassment", "should_trigger": true },
    { "query": "the VP wants a quarterly blast to every closed lost account", "should_trigger": true },
    { "query": "which prospects should never get enrolled in the first place", "should_trigger": true },
    { "query": "put a follow-up schedule together for these 180 accounts per rep", "should_trigger": true },
    { "query": "write 5 subject lines for our cold email to VPs of finance", "should_trigger": false },
    { "query": "our open rates fell off a cliff, help me test new subject lines", "should_trigger": false },
    { "query": "is 'quick question' a spam trigger word in a subject line", "should_trigger": false },
    { "query": "what do I say in the first 10 seconds when a prospect picks up", "should_trigger": false },
    { "query": "write a cold call script for talking to hospital CFOs", "should_trigger": false },
    { "query": "give me a talk track for our dialer", "should_trigger": false },
    { "query": "our emails are landing in the spam folder", "should_trigger": false },
    { "query": "set up SPF, DKIM and DMARC for our sending domain", "should_trigger": false },
    { "query": "walk me through warming up a brand new sending domain", "should_trigger": false },
    { "query": "check whether our domain is on a blacklist", "should_trigger": false },
    { "query": "should we use plain text or HTML for cold email", "should_trigger": false },
    { "query": "they just raised a Series B, what hook should I lead with", "should_trigger": false },
    { "query": "which trigger event is the strongest signal for this account", "should_trigger": false },
    { "query": "how many minutes of research per prospect is worth it", "should_trigger": false },
    { "query": "the prospect says we're too expensive, what do I say back", "should_trigger": false },
    { "query": "handle the 'we already use a competitor' objection", "should_trigger": false },
    { "query": "write the recap email after today's discovery call", "should_trigger": false },
    { "query": "what questions should I ask on a discovery call with a CTO", "should_trigger": false },
    { "query": "how often should tier 1 accounts get a QBR", "should_trigger": false },
    { "query": "where should the cutoffs sit between tier 1 and tier 2 accounts", "should_trigger": false },
    { "query": "define our ideal customer profile from closed-won data", "should_trigger": false },
    { "query": "build a weighted fit score for accounts", "should_trigger": false },
    { "query": "score this deal against MEDDPICC", "should_trigger": false },
    { "query": "who is the champion in this opportunity", "should_trigger": false },
    { "query": "review this call transcript and score the rep", "should_trigger": false },
    { "query": "what red flags are in these deal notes", "should_trigger": false },
    { "query": "what can I trade instead of discounting in this negotiation", "should_trigger": false },
    { "query": "design the SDR commission plan for next year", "should_trigger": false },
    { "query": "how much pipeline coverage do we need for a $4M quota", "should_trigger": false },
    { "query": "set quotas for the AE team with ramp adjustments", "should_trigger": false },
    { "query": "estimate the TAM for warehouse scheduling software", "should_trigger": false },
    { "query": "should we go product-led or sales-led", "should_trigger": false },
    { "query": "pods or assembly line for our sales team", "should_trigger": false },
    { "query": "design the interview loop for an SDR hire", "should_trigger": false },
    { "query": "how do I get promoted from SDR to AE", "should_trigger": false },
    { "query": "best sales podcasts and newsletters to follow", "should_trigger": false },
    { "query": "write the copy for touch 3 of our sequence", "should_trigger": false },
    { "query": "write my breakup email", "should_trigger": false },
    { "query": "draft the outreach message to this prospect", "should_trigger": false },
    { "query": "compose an outreach note to a podcast host", "should_trigger": false },
    { "query": "help me write investor outreach emails for our seed round", "should_trigger": false },
    { "query": "build our welcome email series for new signups", "should_trigger": false },
    { "query": "onboarding email series for trial users", "should_trigger": false },
    { "query": "plan our blog content calendar for Q4", "should_trigger": false },
    { "query": "set up a CRM workflow to move deals between stages", "should_trigger": false },
    { "query": "clean up duplicate contacts in our CRM", "should_trigger": false },
    { "query": "how do I improve my LinkedIn profile headline", "should_trigger": false },
    { "query": "what should our pricing page say", "should_trigger": false },
    { "query": "write a case study about our biggest customer", "should_trigger": false },
    { "query": "how do I route inbound leads to the right rep", "should_trigger": false }
  ]
}
references/cadence-patterns.md
# Cadence Patterns and the Length Decision

How to size and shape a cadence. Every number below is vendor-published or practitioner-reported unless labeled platform policy - treat magnitudes as calibration, not truth.

## Table of Contents

- [The length disagreement, stated honestly](#the-length-disagreement-stated-honestly)
- [Decision rule](#decision-rule)
- [Channel roles, ranked by replies per rep-minute](#channel-roles-ranked-by-replies-per-rep-minute)
- [Spacing](#spacing)
- [Motion-specific shapes](#motion-specific-shapes)
- [B2C lifecycle shapes](#b2c-lifecycle-shapes)
- [Breakup or just stop](#breakup-or-just-stop)

## The length disagreement, stated honestly

**Long camp** - sales-training practitioners and sales-engagement vendors:

- A prominent practitioner playbook teaches 10-14 touches over ~30 days (elsewhere 12-15 touches over 14-28 days), organized as weekly clusters of roughly 2 calls + 2 emails + 1 social touch, phasing social out mid-sequence and calls out late. It blends one email vendor's large dataset with the practitioners' own client work.
- A sales-engagement vendor's benchmark page recommends 8-12 touches over 17-21 days, with a channel mix of email 40-50%, phone 20-30%, social 15-25%, video 5-10% (vendor-published; it cites analyst research for "3+ channels, 15+ touches" at the enterprise end).
- The oldest named framework here, Cold Calling 2.0 (from the book _Predictable Revenue_), runs 5 emails on days 1 / 3 / 7 / 14 / 30 - breakup at day 14, trigger-gated re-engagement at day 30 - and reports the day-14 breakup often drawing the highest per-touch response.

**Short camp** - email-quality vendors and outbound agencies:

- A well-known email-coaching practitioner caps cadences at 5 emails - 3-4 if multi-channel - calls the industry's 15-25-touch defaults a symptom of low relevance, and cites a 4-email / 12-day cadence hitting a 10%+ meeting rate. His exit rule: no ceremonial breakup, just stop, and return when there is a new reason.
- An outbound agency's 2026 study of its own sends puts the sweet spot at 3-5 steps, finds step 3 books more meetings than steps 1 and 2 combined, and finds steps 2-5 produce the majority of email pipeline (vendor-published).
- Aggregated cold-email statistics report response dropping ~55% and spam complaints tripling past the fourth follow-up (vendor-published aggregation).

**Where the camps converge** (rare enough to trust more than any single number):

- Replies accumulate well past touch 1 - independently reported as ~70% of replies after email 1, and as steps 2-6 carrying ~59% of replies. Never judge a sequence on its first touch.
- Multi-channel touches raise email replies rather than winning on their own channel.
- Exit immediately on reply, everywhere.

## Decision rule

**short > mid > long** on replies bought per rep-hour and per point of domain risk - that is the starting order, and the table below is what overrides it. Score each factor from the Interview. Three or more marks in a column picks that pattern; a tie defaults short.

| Factor                     | Push long (9-15 touches, 3-4 weeks, 3 channels) | Push short (3-5 emails, 1-2 weeks) |
| -------------------------- | ----------------------------------------------- | ---------------------------------- |
| Segment                    | Enterprise ABM                                  | SMB high-velocity                  |
| List per rep               | Small, named accounts                           | Large, scored list                 |
| Personalization depth      | Deep per-account research                       | Templated or light                 |
| Channels genuinely staffed | 3+ (reps actually make the calls)               | Email only                         |
| Deal size                  | High ACV, long cycle                            | Low ACV, fast cycle                |

Mid-market or mixed signals: 6-9 touches over 2-3 weeks on 2 channels.

Ties default short because the downside is asymmetric: an over-long cadence on a low-relevance list multiplies complaints (vendor-published: complaints triple past follow-up 4) and damages the sending domain. A too-short one merely under-touches, and can be extended at the next recycle with data in hand.

What that default starves is the long multi-channel pattern on high-ACV named accounts, where the touches the short rule cuts are the ones that reach a buyer who ignores email entirely. Three factors promote it anyway:

- A list small enough that a rep knows each account.
- Channels genuinely staffed rather than nominally available.
- A deal size that pays for a quarter of persistence.

B2C: the trigger decides length, not this rubric - see the B2C shapes below.

## Channel roles, ranked by replies per rep-minute

Buy channels in this order, and stop where the capacity math stops you:

**in-thread bump > blank connection request > extra email angle > call + voicemail > social DM > video message**

The bump leads because it is the only touch that costs near-zero on every axis and still out-replies the email it follows. The axes disagree, so read them apart:

- value (replies added per prospect): call + voicemail > extra email angle > in-thread bump > blank connection request == social DM > video message
- effort (rep minutes per touch, heaviest first): video message > call + voicemail > social DM > blank connection request == in-thread bump == extra email angle
- deliverability risk (least reversible first): extra email angle > in-thread bump > call + voicemail == social DM == blank connection request == video message
- compliance cost (review the touch triggers before launch): call + voicemail > social DM == blank connection request > email touches > video message

- The three near-zero-effort touches tie because each is one templated step the sequencer fires unattended; the connection request joins them only because personalising it is deleted below, not because a click equals writing.
- The four non-email channels tie at zero deliverability risk because none of them touch the sending domain - their own irreversibility lands on the compliance line instead.

| Touch                    | What it buys                                                                                                                                                                                         | Rep minutes                                                                          | Least-reversible cost                                                                   |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| In-thread bump           | One practitioner source reports the bump out-replying the first email                                                                                                                                | Near-zero - templated, two lines                                                     | Adds send volume against the domain                                                     |
| Blank connection request | Opens the social channel; a practitioner claim and a separate vendor's large dataset agree blank requests connect as well as or better than personalised ones, with identical downstream reply rates | Near-zero                                                                            | Platform automation limits; a banned account is rebuilt, not restored                   |
| Extra email angle        | The channel that carries the ask - every other channel exists to get this one answered                                                                                                               | An hour, once, for the whole cohort                                                  | Complaints accrue against the sending domain, the one asset a cadence cannot un-burn    |
| Call + voicemail         | Multiplies email reply rates; voicemails almost never produce a callback, so the script points back at the email. Cap at two per prospect                                                            | A standing job - a daily call block, and it is the number the capacity math consumes | Do-not-call screening and jurisdictional call-time rules; a violation is not reversible |
| Social DM                | Modest lift once connected; at most two, no pitch, phase out mid-sequence                                                                                                                            | Minutes per prospect, manual                                                         | Platform ToS review; same account exposure as above                                     |
| Video message            | No independent evidence recovered - one vendor benchmark allots it 5-10% of the mix                                                                                                                  | Heaviest per touch, and it never templates                                           | Near-zero beyond a hosting/tracking privacy notice                                      |

Default rung: email sequence plus the in-thread bump plus the blank connection request. Promotion conditions:

- Call + voicemail: when callers are genuinely staffed, the list is small enough that a daily block covers it, and ACV justifies the block.
- Social DM: only after the connection is accepted.
- Video: only on a named-account list an SDR can hold in their head.

What this order starves: the human-voice channels. Call + voicemail sits top on value and top on effort, so a ratio ranking demotes it every round - and a collection that only ever computes efficiency ends up all-email against buyers who never answer email. Promote it anyway when the domain is the binding constraint rather than rep time: a new or warm-up-limited domain cannot buy more email touches at any price, which makes the call block the only remaining channel.

Deleted, not demoted:

- Personalised connection-request notes: the data says they buy nothing over blank ones, so the minutes are pure waste.
- SMS or messaging to any prospect without express opt-in: no consent basis, so it is not an option to rank.

Say which you dropped and why when presenting the plan.

Re-rank against what you already know about this user before presenting it:

- Domain state: a warmed domain with headroom promotes email touches; a new one promotes the call block.
- Team composition: a founder doing their own outbound has no daily call block, which pushes every manual channel down; an SDR team has one standing already, which pulls calls up.
- List size: a list of thirty named accounts inverts the whole order - per-account effort is affordable there and volume is not the constraint.

Two open questions the ranking does not settle:

- One theme at a time, or a new angle per email? Genuinely contested - one vendor hosts both philosophies and reports the multi-angle style outperforming in some campaigns. Treat it as a test candidate; default to a new angle per email since more sources lean that way.
- Phone connect rates conflict across vendors (roughly 5% pickup and declining, versus an agency reporting ~18.6% connection). Measure your own; commit no threshold borrowed from either.

Reuse the first touch's personalization across later touches and channels instead of re-researching each step - do the research once (route the angle choice itself to `mbfinotti/sales-skills@sales-outreach-personalization`, which ranks personalization tiers by minutes against replies booked).

## Spacing

- Front-load, then widen: 1-3 working-day gaps between early touches, stretching to 4-7 days toward the tail. Identical principle for B2B and B2C win-back.
- Trigger-anchored B2C flows are the exception and compress to hours (below).
- One intentional multi-channel cluster day is a legitimate named practitioner move (email + call + voicemail + social on day 1). Label it in the plan; never let clustering happen by accident.
- Send in recipient-local business windows and skip the recipient geography's holidays - identical for B2B and B2C. B2C adds legally loaded quiet hours for SMS and calls: confirm the jurisdiction's rules rather than assuming a window; messaging vendors treat quiet-hours violations as a litigation risk, not just etiquette.

## Motion-specific shapes

- **Cold outbound**: full pattern from the decision rule above.
- **Inbound-lead follow-up**: speed beats touch count.
  - First touch within the same working hour - the widely cited minutes-matter research is real but paywalled and not independently re-verified here; treat the direction as credible, the multipliers as folklore.
  - Then a short 3-4 touch sprint. Do not run a full cold pattern on someone who asked to hear from you.
  - Identical urgency logic for B2C signups and demo requests.
- **Event follow-up**: 3-4 touches over 7-10 days, first within 48 hours while memory is fresh. This shape is a convention across comparable playbooks, not measured data - say so.
- **Closed-lost / dormant re-engagement**: trigger-gated, not scheduled. Define stale (90-180 days without engagement, practitioner range), watch for job change, funding, or tech-stack change, then run a short 2-3 touch sequence that leads with the trigger. Only a small fraction of a stale list develops a fresh trigger in a given quarter - re-engage those, not the whole list.

## B2C lifecycle shapes

- **Cart / browse abandonment** (vendor-published structure): touch 1 a few hours after abandonment, touch 2 at +24-48h (incentive only here, not on touch 1 - discounting touch 1 trains abandonment), then stop. Add an SMS only with express opt-in, only inside quiet hours, and at most one SMS in the flow.
- **Win-back**: 2-3 touches starting 60-90 days after last purchase, then a sunset/re-permission message ("stay or go") and removal on silence.
- **Cross-flow rules**:
  - One flow at a time per person.
  - A global frequency cap across all marketing sends (vendor guidance clusters around a handful per week).
  - Suppress active-flow customers from batch campaigns.
  - Exits on purchase, reply, or opt-out are immediate, identical to B2B.
- Welcome and onboarding series are lifecycle marketing, out of this skill's scope beyond the spacing principle above.

## Breakup or just stop

**breakup touch > quiet stop** - on a long B2B cadence, and only there. Both cost one templated send or less, so the ranking is decided almost entirely on the value side.

- value (replies bought at the tail): breakup > quiet stop.
  - A practitioner playbook reports breakup emails raising reply rates sharply when framed as an explicit yes/no ("give them a reason to say no").
  - A CRM vendor reports 10-15% response on breakups.
  - The Cold Calling 2.0 framework places it as the highest-responding touch.
  - All vendor-published or practitioner-reported.
  - A quiet stop buys no reply now and keeps nothing but the option to return.
- effort: breakup > quiet stop. One extra templated send against zero; both round to near-zero.
- reversibility (what it spends): breakup > quiet stop. A sent breakup is a promise, so it spends the account's re-entry option until a genuine new trigger appears. The quiet stop spends nothing and can re-approach inside the cooldown.

Default: a breakup earns its slot at the end of a long B2B cadence; a short sprint just ends, and its last email may simply say so. What that order starves is the small named-account list, where the option to re-approach next quarter is worth more than one reply this month - on a list you cannot afford to burn, take the quiet stop even on a long cadence.

Not a menu for B2C: the sunset/re-permission message is a consent obligation, not a tactical choice, so there is nothing to rank against it. Send it, and remove on silence.

A sent breakup is a promise: suppress until a genuine new trigger.
references/capacity-and-measurement.md
# Capacity Math and Measurement

The arithmetic that keeps a cadence executable, and the metrics committed before launch. Benchmarks here are vendor-published unless labeled platform policy.

## Capacity math

A cadence's width is capped by three things:

- Rep time for manual touches.
- Per-mailbox sending limits for automated ones.
- The complaint tolerance of mailbox providers.

Run the arithmetic before launch, and shrink the cadence or the cohort until it fits.

**Manual-touch load per rep per day:**

> active prospects × manual touches per sequence ÷ sequence length in working days

Worked example on Example A (4 manual touches over 18 days): 300 active prospects × 4 ÷ 18 ≈ 67 manual touches/day - beyond a realistic call-block for one rep (practitioner ranges cluster around 10-30 dials plus social touches per day). Skipped manual steps do not just lose touches - they corrupt the measurement, because the sequence being run is no longer the sequence being tested.

**When the plan does not fit, buy the fix in this order:**

**stagger cohort entry > cut the active cohort > drop the heaviest manual touch > add mailboxes or reps**

- value (pipeline preserved): add mailboxes or reps > stagger cohort entry > cut the active cohort > drop the heaviest manual touch
- effort (heaviest first): add mailboxes or reps > drop the heaviest manual touch > cut the active cohort > stagger cohort entry

On the worked example that means staggering entry until the steady-state load fits one call block, and only then cutting the active cohort to ~120-150. Staggering leads because it is a sequencer setting that costs near-zero and changes nothing about the sequence under test. Dropping a touch ranks below cutting the cohort even though both take about an hour: cutting the cohort keeps the design comparable to the last cohort, while dropping a touch forfeits that comparison for a cycle.

What this order starves: adding mailboxes or reps. It is the only fix that keeps the whole design and the whole list, and it loses every round on effort - a quarter to hire, weeks of warm-up ramp for a new domain.

- Promote it when the list is a fixed commitment that cannot be cut and the date is fixed too.
- Never let it short-circuit the warm-up ramp; a new domain pushed to volume is the fastest route to a blocked one.

**Automated-send load per mailbox per day:**

> active prospects × automated touches per sequence ÷ sequence length in working days ÷ mailboxes

Constraints on that number:

- Keep cold sends per mailbox well under 100/day (practitioner ceiling, widely repeated, not a law).
- New mailboxes and domains need a warm-up ramp measured in weeks before full volume (practitioner guidance).
- Platform policy (the hard numbers): major mailbox providers apply bulk-sender rules from 5,000 messages/day to their users, and require spam-complaint rates below 0.3% with below 0.1% recommended. Breaching these blocks the domain wholesale, regardless of legal compliance.
- Everything deeper - authentication, domain setup, warm-up execution, placement testing - goes to `mbfinotti/sales-skills@cold-email-deliverability`. This skill only sizes the plan to fit.

**Cohort staggering:** enroll in daily batches rather than one launch. It smooths manual-task load, spreads sends under mailbox caps, and limits the blast radius of a bad list segment.

**B2C:** capacity is consent- and fatigue-bound, not rep-bound. Enforce per subscriber:

- A frequency cap across all flows (vendor guidance clusters around a handful of marketing sends per week).
- One SMS per flow.
- Quiet hours per jurisdiction.
- One active flow per person at a time.

## KPI definitions, ranked by decisions bought per unit of instrumentation

Instrument in this order, and commit the first one that is actually measurable:

**reply rate > positive-reply rate > meetings per 100 prospects > connect rate > completion rate**

- value (settles the next revision): meetings per 100 prospects > positive-reply rate > reply rate > connect rate > completion rate
- effort (instrumentation plus wait before it reads, heaviest first): meetings per 100 prospects > connect rate > positive-reply rate > reply rate == completion rate

Reply rate and completion rate tie on effort because the sequencer emits both from the same report with no extra plumbing - what separates them is value, not cost.

- **Reply rate** - unique prospects replying ÷ prospects who received ≥1 touch. The primary B2B decision metric and the default pass threshold.
- **Positive-reply rate** - replies expressing interest or a referral ÷ prospects touched. Costs minutes of manual tagging per reply, and it is what separates a working sequence from a complaint generator: roughly half of replies are positive in vendor-published data, and a high reply rate full of "unsubscribe" is a failing sequence.
- **Meetings per 100 prospects sequenced** - the cleanest cross-channel outcome metric. (A per-100-touches variant exists; prefer per-prospect, since touch counts differ by design across patterns.)
- **Connect rate** - calls reaching a human ÷ dials. Worth instrumenting only where calls are actually staffed. Vendor numbers conflict badly (~5% to ~18%); establish your own baseline before setting a threshold.
- **Sequence completion rate** - prospects reaching the final touch without exiting. Diagnostic, never a target: completion rate is a function of your own sequence length and exit rules, so it only means anything against your own baseline, never against a borrowed threshold.
- **Opt-out rate** and **spam-complaint rate** - guardrails, not goals, and outside this ranking. Ceilings below.

What the order starves: meetings per 100 prospects, top on value and top on effort, so an efficiency ranking defers it forever. Promote it the moment the cadence is compared against another channel's investment - reply rate does not compare across channels, and that comparison is usually what the budget conversation turns on.

Deleted, not ranked: open rate. Mail-privacy proxies register phantom opens, so it is not a decision metric wherever any downstream number exists - and it exists here. Use it only when literally nothing else is measurable, and say the number is inflated when you do.

Judge at sequence/flow level: exit metrics count as success, and a touch-3 reply is the sequence working.

## Calibration (vendor-published; direction, not magnitude)

| Metric                                      | Reported average                      | Reported good                                          |
| ------------------------------------------- | ------------------------------------- | ------------------------------------------------------ |
| B2B cold reply rate                         | 4-5.8% - and declining year over year | 5-10%                                                  |
| Positive replies as share of replies        | ~48%                                  | 55%+                                                   |
| Meetings booked (per 100 emailed prospects) | 0.5-1                                 | 1-2                                                    |
| Bounce rate                                 | -                                     | under 3%; hard bounces removed immediately             |
| Opt-out / unsubscribe                       | -                                     | under 0.5%                                             |
| Spam complaints                             | -                                     | under 0.1% target, 0.3% hard ceiling (platform policy) |

Cold Calling 2.0-style referral sequences report 9-15% cumulative response - a different motion (referral ask above the buyer), not comparable to direct cold-email rates.

## Pre-commitment template

Complete every line before launch and store it with the plan:

- **Decision metric:** e.g. reply rate (B2B) or conversion rate (B2C) - the one the Interview confirmed is measurable.
- **Pass threshold:** e.g. "cumulative reply rate ≥ 4% at sequence level" - anchored to the user's own baseline when one exists, to the calibration table (labeled vendor-published) when not.
- **Guardrail ceilings:** opt-out < 0.5%, spam complaints < 0.1%, bounces < 3%. A sequence that hits its reply threshold while breaching a guardrail fails.
- **Secondary reads:** positive-reply share, connect rate, completion rate.
- **Review date:** after the first full cohort completes the sequence - never mid-flight on touch-1 data.
- **Planned response:** if below threshold, the single variable to revise first (length, spacing, channel mix, targeting, or personalization depth - pick one in advance).

One variable per revision. A cadence where length, copy, and list all changed at once teaches nothing.
references/example-cadences.md
# Example Cadences and Output Package

Filled examples to copy in shape, never in content - the real plan must come out of the Interview and the decision rule. Day numbers are working days.

## Example A - B2B mid-market, cold outbound, long pattern

Decision-rule record: mid-market segment, ~150 accounts/rep, light-plus personalization, 3 staffed channels, mid ACV → 9 touches / 18 working days / 3 channels.

| #   | Day | Channel    | Type      | Purpose                                                  | Exit check before sending                   |
| --- | --- | ---------- | --------- | -------------------------------------------------------- | ------------------------------------------- |
| 1   | 1   | Social     | Manual    | Connection request, blank                                | Suppression list, active-sequence dedupe    |
| 2   | 1   | Email      | Automated | Problem email - the personalization budget is spent here | Reply/opt-out/bounce                        |
| 3   | 3   | Email      | Automated | In-thread bump, 1-2 lines                                | Reply/opt-out/bounce                        |
| 4   | 5   | Phone + VM | Manual    | Call; voicemail points back to the email                 | Replied or connected → exit to conversation |
| 5   | 8   | Email      | Automated | New angle + proof point                                  | Reply/opt-out/bounce                        |
| 6   | 10  | Phone + VM | Manual    | Second call; second and final voicemail                  | Connected → conversation                    |
| 7   | 12  | Social     | Manual    | Short DM, no pitch, references the email                 | Reply anywhere → exit                       |
| 8   | 15  | Email      | Automated | Third angle or a concrete offer                          | Reply/opt-out/bounce                        |
| 9   | 18  | Email      | Automated | Breakup with explicit yes/no ask                         | Then suppress; recycle window opens day 60  |

Multi-threading: second contact at the account enters the same table offset by 3 days; a reply from either pauses the other pending rep review. Personalization from touch 2 is reused in touches 4, 6, and 7.

## Example B - SMB high-velocity, short sprint

Decision-rule record: SMB, 600-prospect scored list, templated personalization, email only → 4 emails / 12 working days.

| #   | Day | Channel | Type      | Purpose                                                 |
| --- | --- | ------- | --------- | ------------------------------------------------------- |
| 1   | 1   | Email   | Automated | Problem email, segment-level personalization            |
| 2   | 4   | Email   | Automated | In-thread bump                                          |
| 3   | 8   | Email   | Automated | New angle + proof                                       |
| 4   | 12  | Email   | Automated | Final note - states it is the last, no breakup ceremony |

Same exit checks as Example A before every send. Cohort enters in daily batches of 120, not one launch. Recycle at day 90, trigger-gated.

## Example C - B2C cart abandonment (trigger-anchored)

Consent recorded at signup for email; SMS included only for express double opt-in subscribers.

| #   | Time after abandonment | Channel | Purpose                              | Conditions                                                   |
| --- | ---------------------- | ------- | ------------------------------------ | ------------------------------------------------------------ |
| 1   | +2-4 h                 | Email   | Reminder, cart contents, no discount | Not purchased; not in another flow                           |
| 2   | +24 h                  | Email   | Incentive if margin allows           | Not purchased                                                |
| 3   | +26 h                  | SMS     | One-line nudge                       | Express opt-in only; inside quiet hours; the flow's only SMS |
| 4   | +48 h                  | Email   | Final reminder, then flow ends       | Not purchased                                                |

Exits: purchase, opt-out - immediate, identical to B2B reply exits. Cross-flow frequency cap applies; suppressed from batch promotions while in-flow.

## Negative example - the pile-up

| Day | Touches                                            |
| --- | -------------------------------------------------- |
| 1   | Email + call + voicemail + DM + connection request |
| 2   | Email + call + SMS                                 |
| 3   | Email + DM                                         |

Why it fails: three channels a day with no labeled cluster:

- Reads as harassment.
- Spends the whole channel budget before any reply data arrives.
- Triggers opt-outs and complaints that damage the domain for every other sequence.
- Leaves nothing for week 2.

One intentional cluster day maximum; spread the rest.

## Output package sample

Deliver every plan in this shape, in order:

1. **Cadence table** - as in the examples: touch, day, channel, type, purpose, exit check.
2. **Decision-rule record** - the factor scores and the pattern they picked.
3. **Multi-threading plan** (B2B) - contacts per account, stagger, account-level pause rule.
4. **Exit, suppression, and recycle block** - immediate exits, pre-enrollment suppression checklist, cooldown length, re-entry trigger and cap, breakup-or-stop choice with one line of rationale.
5. **Capacity check** - the arithmetic from the capacity reference, showing the plan fits.
6. **Pre-committed metrics** - thresholds, ceilings, review date (template in the capacity reference).
7. **Copy handoffs** - the list of touches needing copy, each routed to its sibling skill.
references/sequencer-vocabulary.md
# Sequencer Vocabulary Mapping

Optional integration note - the only place vendor names appear in this skill. The plan itself is written in the generic terms of the left column; translate when loading it into a specific tool.

| Generic term in the plan | Concept                              | Verified vendor terms                                                                                                                                                  |
| ------------------------ | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sequence / cadence       | The whole multi-touch program        | HubSpot "sequence"; lemlist "campaign"                                                                                                                                 |
| Step / touch             | One scheduled action                 | HubSpot "step" (automated email, manual email task, call task, general task, social task); lemlist "step"                                                              |
| Wait / delay             | Gap between steps                    | HubSpot: delays set in business days, up to 90                                                                                                                         |
| Exit / unenroll          | Removal on reply, meeting, opt-out   | HubSpot "unenroll" - with an option to unenroll the contact alone or all contacts at the company (the account-level pause this skill's multi-threading rule relies on) |
| Suppression              | Never-enroll lists                   | Generally a settings-level exclusion list; name varies by tool                                                                                                         |
| Skip / snooze            | Pausing one step or one prospect     | lemlist per-lead step skip                                                                                                                                             |
| Sender rotation          | Later steps from a different mailbox | lemlist supports same-thread sender rotation                                                                                                                           |

Only the HubSpot and lemlist terms above were verified against vendor documentation while researching this skill. Other sequencers - Outreach, Salesloft, Apollo, Salesforce Sales Engagement, Reply.io, Smartlead, Instantly, and B2C flow builders like Klaviyo or Customer.io - implement the same concepts under their own names (e.g. "cadence", "flow", "journey"). Check the tool's own documentation rather than assuming the mapping.

Two practical checks before loading any plan into a tool:

- Confirm whether delays count calendar days or business days (a "day 3" touch can land on a Sunday otherwise).
- Confirm the tool's exit triggers cover all five immediate exits - many auto-exit on reply but not on a reply from a colleague at the same account.
SKILL.md
---
name: sales-outbound-sequence
description: Plans a touch-by-touch outbound cadence - which channel on which day, touch count, spacing, channel mix, multi-threading, exit and stop rules, recycle and re-entry, and the capacity math behind it, with pre-committed metric thresholds. Use whenever the user mentions a sequence, cadence, follow-up timing, Outreach or Salesloft steps, a drip, "how many touches", inbound-lead or event follow-up, closed-lost re-engagement, or B2C lifecycle and SMS flows, even without the word cadence. Do NOT use for message copy, subject lines (mbfinotti/sales-skills@cold-email-subject-line-tester), call scripts (mbfinotti/sales-skills@cold-call-opener), or inbox placement (mbfinotti/sales-skills@cold-email-deliverability).
license: MIT
metadata:
  author: Maya-Beth Finotti
  version: "1.3.6"
---

# Outbound Sequence

Design the skeleton of an outbound cadence - the touch-by-touch plan of channels, days, spacing, exits, and recycling - sized to the user's segment, list, and rep capacity, with metric thresholds committed before launch.

Two facts frame everything here:

- **Cadence length is contested.** Sales-training practitioners and sales-engagement vendors teach roughly 10-15 touches over 14-30 days. Email-quality vendors and outbound agencies cap it at 3-5 emails, fewer when multi-channel, and call long sequences a symptom of low relevance. Neither is law: this skill applies a decision rule instead of picking a side, see [references/cadence-patterns.md](references/cadence-patterns.md).
- **Most figures are vendor-published.** Nearly every statistic in the references comes from companies selling outreach tooling - trust the direction, never the magnitude, and label it as vendor-published when quoting it to the user. The only hard numbers are mailbox-provider policies (spam-complaint ceilings), flagged as platform policy where they appear.

Scope: the cadence plan is the whole deliverable. Never write message copy in depth, route it to the sibling skill for that copy type:

- Subject lines: `mbfinotti/sales-skills@cold-email-subject-line-tester`
- Call openers: `mbfinotti/sales-skills@cold-call-opener`
- Personalization-angle selection: `mbfinotti/sales-skills@sales-outreach-personalization`
- Rebuttals: `mbfinotti/sales-skills@sales-objection-handling`
- Post-meeting follow-up: `mbfinotti/sales-skills@sales-meeting-recap`

Never audit deliverability, domains, or authentication - plan within the sending constraints, then hand the audit to `mbfinotti/sales-skills@cold-email-deliverability`.

## Interview

- Ask one question per message.
- Offer multiple-choice options.
- Skip anything context already answers.

If your harness has persistent memory and a prior run stored this user's answers, confirm them instead of re-asking.

1. Regime: B2B outbound to businesses, or B2C to consumers? Ask first - consent, speed, and volume rules diverge.
2. By what date must this land results? A hard near date promotes the short pattern, the near-zero channels, and reply rate as the committed metric. A soft date lets the long multi-channel pattern and meetings-per-100 back in.
3. A one-off win, or a compounding asset? One-off promotes a single sprint on the best-scored cohort. Compounding promotes staggered cohort entry, a recycle window, and the trigger-watching that makes re-entry work - all of which cost more now and pay from cohort two onward.
4. Effort ceiling: rep hours per day, headcount, and how much sender risk is acceptable? A founder doing their own outbound has no daily call block, which deletes the manual channels rather than demoting them. A new or warm-up-limited domain caps email touches at any budget and promotes the call block instead.
5. Motion: cold outbound, inbound-lead follow-up, event follow-up, or closed-lost/dormant re-engagement? For B2C: which lifecycle trigger - signup, cart or browse abandonment, win-back?
6. B2B segment: SMB high-velocity, mid-market, or enterprise ABM? This drives the length decision rule.
7. Persona, seniority, and account size? Senior buyers tolerate fewer, better touches.
8. Which channels are actually available and staffed - email, phone, social, SMS, video - and what is the consent basis for each? SMS or messaging without express opt-in is off the table, not a design choice. Calling lists must be screened against do-not-call registries.
9. List size per launch, and how many reps with how much daily manual-touch capacity?
10. Personalization depth planned: deep per-account research, light segment-level, or templated? Also drives the length rule.
11. What can the sequencer automate versus surface as manual tasks? Does it auto-exit on reply? Are per-mailbox daily send caps known?
12. Which metric can you actually measure reliably: replies, meetings, call connects, conversions - or only opens?

Every ranking in this skill is a default, not a law. Re-rank against the answers before proposing anything, and say out loud which answer moved which option - the order shifts with the deadline, with the domain's state, and with who executes it.

## Workflow

1. Run the Interview. Confirm regime, motion, segment, channels-with-consent, volume, capacity, and metric before drafting.
2. Read [references/cadence-patterns.md](references/cadence-patterns.md). Apply the length decision rule and record which factors pushed the choice - never default to a template silently.
3. Draft the touch table: for every touch, a day, a channel, a step type (automated or manual), a one-line purpose, and the exit check that precedes it. Model the shape on the filled examples in [references/example-cadences.md](references/example-cadences.md) - match the structure, not the content.
4. Assign channel roles. Buy channels in efficiency order and stop where step 7's capacity math stops you:

   **in-thread bump > blank connection request > extra email angle > call + voicemail > social DM > video message**

   - Email carries the ask; every other channel exists to lift email replies.
   - Rep minutes per touch and how reversible the damage is decide the order: a domain burned by complaints is the one thing a cadence cannot undo, and a call block is a standing daily job.
   - Full axes, per-channel costs, the two deletions, and the re-ranking conditions are in [references/cadence-patterns.md](references/cadence-patterns.md).
   - Practitioner guidance, not law - say so.

5. B2B: add a multi-threading plan - 2-3 contacts per account, staggered entry, account-level pause when any one of them replies. Vendor-published data reports reply rates falling sharply past a handful of contacts per company; spraying a whole org is a failure mode, not thoroughness.
6. Define exits, suppression, recycle window, and trigger-gated re-entry (rules below; elaboration in the patterns reference).
7. Run the capacity math in [references/capacity-and-measurement.md](references/capacity-and-measurement.md). When the plan does not fit, buy the fix in this order:

   **stagger cohort entry > cut the active cohort > drop the heaviest manual touch > add mailboxes or reps**

   - Staggering costs a sequencer setting and changes nothing about the sequence under test.
   - Dropping a touch forfeits comparability with the last cohort.
   - Never plan touches nobody will execute.
   - Hand the actual mailbox/domain audit to `mbfinotti/sales-skills@cold-email-deliverability`.

8. Pre-commit the metrics: numeric thresholds, floors and ceilings, and a review date, using the template in the capacity reference. Commit the highest-ranked metric that is actually measurable (order in KPIs below).
9. Score the plan against the Quality gate below. Iterate until every item passes.
10. Deliver the output package (shape in [references/example-cadences.md](references/example-cadences.md)). If your harness has persistent memory, store the segment, chosen pattern, committed thresholds, and eventual results; otherwise include a compact log block the user can paste into a future session.
11. Route all copy work to the sibling skills listed in Scope. Any outline-level copy this plan does carry (touch themes, a voicemail one-liner) stays at outline level; anything shipped as actual copy goes through your preferred humanizer skill first.
12. At the committed review date, compare results against thresholds and change exactly one variable per revision. If you can browse the web, verify any re-entry trigger (funding, job change, product launch) before re-enrolling a prospect; otherwise ask the user to confirm it.

## Exit, stop, and recycle rules

Apply these exit rules:

- Exit immediately - mid-sequence, not at the next scheduled touch - on: any reply, meeting booked or conversion, opt-out or unsubscribe, hard bounce, or a hostile response. An opt-out processed "at the next step" is the fastest route to a complaint.
- Suppress before enrollment, not after:
  - Opt-outs and do-not-contact lists.
  - Hard bounces.
  - Current customers.
  - Accounts with an open opportunity.
  - Prospects active in another sequence.
  - Prospects inside a cooldown from a previous sequence.
  - Any channel lacking a consent basis (B2C especially).
- Breakup versus just stopping: **breakup touch > quiet stop**, on a long B2B cadence only.
  - Both cost one templated send or less, so value decides. One camp reports breakup emails drawing among the highest reply rates in the sequence when framed as an explicit yes/no; the other argues to skip the theater and return only with a new reason.
  - What the breakup spends is the account's re-entry option, since a sent breakup binds you to suppress until a genuine new trigger.
  - Default: breakup at the end of a long B2B cadence, quiet stop on a short sprint and on a named-account list you cannot afford to burn.
  - B2C is not a choice - the sunset/re-permission message is a consent obligation.
  - If a breakup is sent, honor it.
  - Evidence and axes in [references/cadence-patterns.md](references/cadence-patterns.md).
- Recycle: cooldown of 30-90 days (practitioner range), then re-entry gated on a fresh trigger - job change, funding, tech change, a new signal - never on the calendar alone.
  - Cap re-entries at two cycles, then choose once: long-term nurture where the account still fits the ICP and someone owns the list, sunset everywhere else.
  - Nurture is a standing job, so defaulting to it on a list nobody maintains just parks a dead cohort against your domain.
  - If your harness can run scheduled checks, watch the stale list for triggers on a recurring basis; otherwise instruct the user to review it manually at a fixed weekly slot.

## Quality gate

The plan ships only when every item passes. Iterate until it does.

1. Every touch has a day, channel, step type (automated/manual), purpose, and preceding exit check.
2. Touch count and duration follow the decision rule, with the deciding factors recorded in the plan.
3. No accidental same-day pile-up: at most one intentional, labeled multi-channel cluster day; no day mixes more than two channels otherwise.
4. Gaps widen toward the tail of the sequence (trigger-anchored B2C flows, which compress to hours, exempt).
5. All five immediate-exit conditions are listed with the mid-sequence stop rule.
6. The suppression checklist is written into the plan as a pre-enrollment step.
7. Recycle cooldown, re-entry trigger, and re-entry cap are defined.
8. Capacity math is shown and the plan fits within rep and per-mailbox limits.
9. B2C: consent basis, quiet hours, and a cross-flow frequency cap are stated per channel.
10. Metric thresholds and a review date are committed in writing before launch.
11. Sends are scheduled in recipient-local time and skip the recipient geography's holidays.
12. No in-depth message copy in the plan - copy tasks are routed to the sibling skills.

## KPIs and measurement

Full definitions, calibration numbers, and the pre-commitment template live in [references/capacity-and-measurement.md](references/capacity-and-measurement.md).

- Instrument in efficiency order, and commit the first one the user can actually measure:

  **reply rate > positive-reply rate > meetings per 100 prospects > connect rate > completion rate**

  - Reply rate leads because the sequencer emits it for free and it settles most cadence questions.
  - Meetings per 100 is worth more but costs CRM plumbing and a full cohort cycle before it reads. Promote it anyway when the cadence has to be compared against another channel's investment.
  - Opt-out and spam-complaint rates sit outside the ranking - they are guardrails, not goals.

- Open rate is deleted, not ranked: mail-privacy proxies register phantom opens, so it never decides a cadence question while any downstream metric exists. Use it only when literally nothing else is measurable, and say the number is inflated.
- Judge the sequence as a whole, never on touch 1 - multiple vendor-published datasets independently report that most replies arrive after the first touch.
- Success for this skill = the plan clears the Quality gate before launch, and at the review date the sequence has met its committed reply/meeting thresholds without breaching the opt-out or spam-complaint ceilings. If a threshold is missed, revise one variable and re-commit.

## Failure modes

- Same-day multi-channel pile-up. Five touches landing in one afternoon reads as harassment. Fix: one labeled cluster day at most; spread the rest.
- Colliding prospects - two reps or two sequences hitting the same person or account. Fix: pre-enrollment dedupe against active sequences and open opportunities; account-level pause on reply.
- Sequence judged on touch 1 and killed early. Fix: pre-commit the review date; evaluate cumulative reply rate at sequence level.
- Automation replacing relevance. A 14-touch templated blast is not persistence, and the short-cadence camp's core argument is that length often substitutes for relevance. Fix: rerun the decision rule - low personalization depth points to fewer, better touches.
- Time-zone and holiday sends. 3 a.m. touches and Thanksgiving-week calls burn goodwill silently. Fix: recipient-local send windows; holiday calendar per geography.
- Breakup sent, then contact resumes two weeks later. Fix: breakup implies suppression until a genuine new trigger.
- B2B cadence copied onto B2C without a consent check. SMS without express opt-in or quiet-hours handling is a legal exposure, not a tuning problem. Fix: gate every B2C channel on its consent basis first.
- Cadence wider than capacity. Manual call and social steps silently skipped by overloaded reps corrupt the experiment - the sequence tested is not the sequence designed. Fix: capacity math before launch; stagger cohort entry.

## References

- [references/cadence-patterns.md](references/cadence-patterns.md) - length decision rule, channel-role logic, motion-specific and B2C shapes, breakup evidence, and the vendor-published or practitioner-reported label on every figure.
- [references/example-cadences.md](references/example-cadences.md) - filled cadence tables (B2B long, B2B sprint, B2C flow), a negative example, and the output package sample.
- [references/capacity-and-measurement.md](references/capacity-and-measurement.md) - capacity formulas and worked example, sender constraints, KPI definitions, calibration table, pre-commitment template.
- [references/sequencer-vocabulary.md](references/sequencer-vocabulary.md) - mapping generic cadence terms to sequencer products (the only place vendor names appear).