
cold-email-subject-line-tester
Generates, scores, and split-tests email subject lines, producing angle-distinct variants, a numeric scorecard, and a test plan with sample size and decision metric. Covers B2B cold outbound and B2C lifecycle/promotional email, and flags spam-trigger words inside the subject line only. Use whenever the user mentions a subject line, open rates, email A/B test, preview text, or "nobody opens my emails", even if they don't say "subject line" explicitly. Do NOT use for body copy or inbox-placement audits (mbfinotti/sales-skills@cold-email-deliverability), personalization angles (mbfinotti/sales-skills@sales-outreach-personalization), or cadence design (mbfinotti/sales-skills@sales-outbound-sequence).
- Installs
- 26.5K
- Last 24h
- +914
- Trending rank
- #397
- Security
- Pass
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/mbfinotti/sales-skills --skill cold-email-subject-line-tester- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cold-email-subject-line-tester automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
Subject Line Tester
Generate subject line variants from an already-chosen personalization angle, score them against a numeric rubric, and design a statistically honest split test to pick the winner.
Two facts frame everything here:
- No named, cross-source framework exists for subject lines the way MEDDIC exists for qualification - only single-vendor branded methods and one unbranded convergence (keep B2B cold subjects short; avoid numbers and question marks in them).
- Nearly every published subject-line statistic comes from companies selling email tooling, none of it independently audited: trust the direction, never the magnitude.
Where sources flatly contradict each other (notably lowercase vs. title case), treat the question as a test candidate, never a rule.
Scope: the subject line (plus preheader for B2C) is the whole deliverable.
Never:
- Write body copy.
- Audit deliverability, headers, domains, or authentication.
- Research prospect signals.
- Plan touch-by-touch cadence.
Flag spam-trigger vocabulary inside the subject itself as a scoring check, then hand the full inbox-placement review to mbfinotti/sales-skills@cold-email-deliverability.
Interview
Ask one question per message. Offer multiple-choice options. Skip anything already answered by context. If your harness has persistent memory and a prior run stored this user's answers, confirm them instead of re-asking.
- Regime: B2B cold outbound, or B2C lifecycle/promotional? Ask this first - the two follow different rules.
- Recipient persona, role, and seniority? Executive inboxes decide in seconds; the pattern set narrows sharply for them.
- Which personalization angle is already chosen - pain point, competitor, company initiative, executive priority, shared context, trigger event? If none, stop and route to
mbfinotti/sales-skills@sales-outreach-personalizationfirst. Ranking these is step 4's job, not this question's. - What does the email body actually promise or deliver? The subject must never outrun it.
- Can your sending platform (sequencer or ESP) split-test? At what volume (list size or sends per day)?
- Which decision metric can you trust in your setup: replies or meetings, clicks or conversions, or only opens?
- By what date must the result land? A deadline inside the week promotes the near-zero-research angles and cuts the parked-question tests entirely; a date far enough out to collect 200+ sends per variant keeps a test in scope.
- One-off win on this campaign, or a compounding asset? Compounding promotes the reusable angles (internal-style noun, persona pain, executive anchor) and the casing test; one-off promotes whichever angle today's list already supports.
- Effort ceiling: how many research minutes per prospect are affordable, and how many sends per day are available? Near-zero minutes deletes the trigger-event, competitor and initiative angles outright; a quota too small to reach the per-variant floor deletes the test queue.
- B2C only: do you control the preheader text, and is emoji acceptable to the brand?
Re-rank the angle catalog against the answers to 7-9 before drafting, and tell the user which answer moved which angle.
Workflow
- Run the Interview. Confirm regime, persona, angle, body promise, test capacity, metric, deadline, payoff horizon, and effort ceiling before drafting.
- Read the matching regime section of references/pattern-library.md. Never apply B2B cold rules to B2C lifecycle or vice versa.
- Write a falsifiable hypothesis before drafting: "Because [observation], we believe [change] will [effect] for [audience]. We'll know when [metric]." Reject vague forms like "let's test a new subject line."
- Draft 3-5 candidate variants, working down the catalog's efficiency order - for B2B cold,
internal-style noun > specific pain question > executive-world anchor > competitor == company initiative > trigger event, ranked by replies bought per research minute. Delete any angle the interview ruled out instead of ranking it last, and say which angle was deleted and why. Each variant must express a distinct angle, never a synonym swap of another. For B2C, draft a preheader with every variant - subject plus preheader is the tested unit. - Score every variant with references/scoring-rubric.md: hard-fail checks first, then the 10-point scorecard.
- Regenerate any variant below the pass threshold, then re-score. Repeat until the full set clears the quality gate.
- Run the surviving set through your preferred humanizer skill, then re-score. Raw first-draft model output is never shipped - templated AI phrasing is exactly the smell that gets an email deleted unread.
- If you can browse the web, verify any volatile fact a variant leans on (trigger event, competitor claim, initiative name). Otherwise, ask the user to confirm it before shipping.
- Design the test with references/test-design.md: one variable, pre-committed sample size, minimum duration, decision metric, guardrail metrics.
- Deliver the output package (shape below). If your harness has persistent memory, record persona, chosen angle, hypothesis, and shipped variants so later runs skip the interview and build on results.
- When results come back, log winner, loser, or inconclusive against the hypothesis, then take the next single-variable test from the ranked queue in references/pattern-library.md - or say plainly that the volume supports no further test.
Invocation examples and expected output
Typical requests this skill handles:
- "Test my subject line for this cold email to a VP of Operations."
- "Write 5 subject line variants for our cart-abandonment campaign."
- "A/B test subject lines for next week's product launch email."
- "Why is my open rate low?" Diagnose the subject line only; route domain, authentication, and inbox-placement causes to
mbfinotti/sales-skills@cold-email-deliverability.
Expected output package, in order:
- Hypothesis statement in the falsifiable form above.
- Variant scorecard table: variant, angle, word/character count, rubric score, notes (plus preheader column for B2C).
- Test plan: split, sample per variant, duration, decision metric, guardrails.
- Flagged risks: unverified facts, spam-trigger words found, angles deleted by the interview and why, and the parked questions in queue order with the send cost of resolving them.
Filled examples of the table and test plan live in references/scoring-rubric.md and references/test-design.md.
Quality gate
- Score every variant on the 10-point scorecard in references/scoring-rubric.md.
- Pass threshold: every shipped variant scores at least 8/10 with zero hard fails.
- Hard fails (any one disqualifies the variant outright):
- Fake "Re:"/"Fwd:" or other deceptive framing.
- Subject promising what the body does not deliver.
- Spam-trigger vocabulary.
- Exceeding the regime's truncation budget.
- Duplicate angle within the set.
- Prospect first name in a B2B cold subject.
- Iterate: regenerate and re-score failing variants until the whole shipped set clears 8/10. Never ship a sub-threshold variant to "fill out" the test.
KPIs and measurement
- B2B cold decision metric: reply rate, positive reply rate, or meetings booked - never opens alone. Mail-privacy proxies have pre-fetched tracking pixels since 2021, registering phantom opens; open rate is directional only.
- B2B calibration (vendor-published, not independently audited):
- Average open ~27.7%, good 40-45%.
- Average reply 4-5.8%, good 5-10%.
- Falling year over year.
- B2C lifecycle: open rate is usable but must be paired with a downstream guardrail - click, conversion, unsubscribe under 0.5%, complaints under 0.1%.
- Success for this skill = the test reaches its pre-committed sample and produces a decision (winner, loser, or honest inconclusive) without any guardrail degrading.
Failure modes
- Variant set is synonym swaps of one idea. Fix: force each variant onto a different angle from the pattern library.
- Capitalization enforced as a rule. Sources directly contradict each other (title case vs. lowercase, both vendor claims); hold it constant and park it in the ranked test queue.
- Efficiency order treated as law, or a ruled-out angle parked at the bottom of the set. The order is a default that shifts with list size, recipient seniority, and who executes it; an angle the interview ruled out gets deleted from the set and named, never demoted.
- Prospect first name in a B2B cold subject. It signals mail-merge and correlates with fewer replies; use a contextual token instead.
- Winner called on open rate in B2B cold. Phantom opens from privacy proxies manufacture false winners; decide on replies or meetings.
- Peeking and stopping early. Pre-commit to sample size and duration; an early "winner" is usually noise.
- Generic question subjects. Vendor data conflicts on questions overall; a specific pain question can work, a generic one fails. Default to statements.
- Subject outruns the body's promise. Opens rise, replies and trust collapse; the body-promise match is a scored criterion for this reason.
- B2B rules applied to B2C or vice versa. Numbers measure as a negative in B2B cold subjects yet perform fine in B2C lifecycle.
- Shipping raw model output. Always run the humanizer pass and re-score afterward.
FAQ
What does the cold-email-subject-line-tester skill do?
Generates, scores, and split-tests email subject lines, producing angle-distinct variants, a numeric scorecard, and a test plan with sample size and decision metric. Covers B2B cold outbound and B2C lifecycle/promotional email, and flags spam-trigger words inside the subject line only. Use whenever the user mentions a subject line, open rates, email A/B test, preview text, or "nobody opens my emails", even if they don't say "subject line" explicitly. Do NOT use for body copy or inbox-placement audits (mbfinotti/sales-skills@cold-email-deliverability), personalization angles (mbfinotti/sales-skills@sales-outreach-personalization), or cadence design (mbfinotti/sales-skills@sales-outbound-sequence).
How do I install cold-email-subject-line-tester?
Run npx skills add https://github.com/mbfinotti/sales-skills --skill cold-email-subject-line-tester in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cold-email-subject-line-tester/ (personal) or .claude/skills/cold-email-subject-line-tester/ (project).
Which AI agents can use cold-email-subject-line-tester?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cold-email-subject-line-tester safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains cold-email-subject-line-tester?
It is published by mbfinotti in mbfinotti/sales-skills. It has 26,470 recorded installs.
More from mbfinotti/sales-skills
sales-icp-definition
mbfinotti/sales-skills
Defines the company's ideal customer profile (ICP) at sales-leadership altitude - the firmographic, technographic, behavioral and intent criteria, a weighted scoring rubric with explicit disqualifiers, and the refresh cadence that targeting keys off. Works from closed-won/lost deal data, or from founder-led discovery when deal data is thin. Covers B2B account ICPs and the equivalent B2C demographic/psychographic profile. Use whenever the user mentions the ideal or target customer, buyer profile, "who should we sell to", or targeting that is too broad, even without the letters ICP. Do NOT use for TAM/SAM/SOM sizing (mbfinotti/sales-skills@sales-market-sizing) or account fit scoring (mbfinotti/sales-skills@sales-account-segmentation).
sales-pipeline-coverage-modeling
mbfinotti/sales-skills
Models how much pipeline a team needs relative to quota - coverage ratios derived from win rates (raw multiplier, stage-weighted, conversion-inversion), segment-level coverage targets, in-quarter timing and the point of no return, seasonality indexing, and pipeline-gap math that turns a ratio into new-pipeline-required. A macro modeling exercise for sales leadership and RevOps, covering B2B and high-velocity/B2C motions. Use whenever the user mentions pipeline coverage, 3x pipeline, a pipeline gap, forecast shortfall, or "we missed quota with 4x coverage", even without the word coverage. Do NOT use for deriving the quota itself (mbfinotti/sales-skills@sales-quota-setting) or inspecting one deal (mbfinotti/sales-skills@deal-red-flags).
sales-account-tiering
mbfinotti/sales-skills
Designs the tier layer downstream of an existing account fit score - where the cutoffs sit, tier names, rep-to-account capacity caps, the coverage model per tier (touch cadence, channel mix, QBR frequency, executive involvement), coverage-ratio health metrics, and the recalibration cadence. Covers B2B account tiering and B2C key-account tiering through retail/distribution channels. Use whenever the user mentions tiers, strategic/key/growth/long-tail accounts, accounts-per-rep ratios, 1:1 or 1:few or 1:many ABM coverage, or "everything drifted into Tier 1", even without the word tiering. Takes the fit score as input. Do NOT use for building that score (mbfinotti/sales-skills@sales-account-segmentation).
sales-market-sizing
mbfinotti/sales-skills
Estimates TAM, SAM, and SOM for a market or sub-segment to ground sales capacity, territory, and quota planning - top-down, bottom-up on named accounts or population math, value theory, triangulation, a capacity-based SOM ceiling, and a per-layer refresh cadence. A macro planning exercise for sales leadership and RevOps, covering B2B and B2C. Use whenever the user mentions TAM, SAM, SOM, market size, addressable market, "how big is this market", or the number behind next year's quota, even without those acronyms. Sizes for planning, not pitching. Do NOT use for defining the ICP (mbfinotti/sales-skills@sales-icp-definition) or turning SOM into quotas (mbfinotti/sales-skills@sales-quota-setting).
sales-hiring
mbfinotti/sales-skills
Employer-side hiring workflow for SDR/BDR and AE roles, producing an outcome-based scorecard, a structured interview loop with question bank, a scored mock-call work sample, and a 30-60-90 ramp plan with certification gates. Recommends SDR vs AE vs full-cycle from ACV, cycle length and inbound volume, and rests on selection-validity evidence - structured interviews, independent scoring, no brainteasers. Use whenever the user mentions hiring a rep, sales interview questions, a hiring scorecard, a mock call interview, rep onboarding, or a ramp plan, even without the word hiring. Do NOT use for candidate-side prep (mbfinotti/sales-skills@sales-career) or comp plan design (mbfinotti/sales-skills@sales-comp-design).
sales-kickoff
mbfinotti/sales-skills
Before starting any sales project, and before answering a sales request that spans more than one sales topic or names no skill at all, run this router first. It routes the task to exactly one skill in the sales-skills collection, or says plainly that none fits, and bootstraps or resumes the project's shared sales-context.md artifact, producing a short-list plus an ordered skill chain. Fires on the state of the conversation rather than the subject matter, at a sales project start, at a periodic sales check-in or recurring sales review, on a mid-project re-route, or on any broad or ambiguous sales request such as "which sales skill do I need" or "where do I start with sales". Covers both altitudes, CRO-altitude planning (motion, ICP, market sizing, segmentation, tiering, org structure, quota, coverage, comp) and execution (outbound, cold calling, discovery, objections, MEDDPICC, recaps, call review, hiring, career). Run it even when sibling skills are already in daily use elsewhere.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。