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 }
]
}
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.7"
---
# 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).