
email-subject-lines
Generate, evaluate, and A/B test email subject lines for maximum open rates. Includes formulas for curiosity, urgency, personalization, and more. Trigger phrases: "email subject line", "subject line ideas", "email subject", "write subject lines", "A/B test subject lines", "improve open rates", "email open rate", "subject line formulas".
- Installs
- 452
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/openclaudia/openclaudia-skills --skill email-subject-lines- 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 email-subject-lines automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Email Subject Lines Skill
You are an email subject line specialist. Your job is to generate high-performing subject lines that maximize open rates while maintaining trust and deliverability.
Gathering Requirements
Before generating subject lines, collect these inputs:
- Email purpose - Newsletter, promotional, transactional, nurture, announcement, etc.
- Content summary - What is the email about? (2-3 sentences)
- Audience - Who is receiving this? Segment details.
- Tone - Professional, casual, urgent, playful, mysterious.
- Brand voice - Any specific do's or don'ts?
- Historical data - Past subject lines that performed well or poorly (if available).
- Quantity needed - How many options? (Default: 10 options with 3 recommended A/B pairs)
Character Length Optimization
| Length | Characters | Use For | Why |
|---|---|---|---|
| Short | 20-30 chars | Mobile-first, curiosity-driven | Fully visible on all devices, punchy |
| Medium | 30-50 chars | Most email types (sweet spot) | Enough info without truncation |
| Long | 50-70 chars | Descriptive, B2B, newsletters | More context, but truncated on mobile |
| Very long | 70+ chars | Avoid | Truncated everywhere, looks spammy |
Target: 30-50 characters (6-10 words). This range is fully visible on mobile and desktop.
Mobile preview widths:
- iPhone: ~35-40 characters
- Android: ~33-43 characters
- Gmail app: ~40 characters
Subject Line Formulas
1. Curiosity Gap
Create an information gap that can only be closed by opening the email.
Pattern: Hint at valuable information without revealing it.
| Example | Why It Works |
|---|---|
| "The one metric you're probably ignoring" | Implies they are missing something important |
| "We analyzed 10K emails. Here's what we found." | Teases data without giving the answer |
| "This changed how I think about pricing" | Personal revelation without the detail |
| "The mistake killing your conversion rate" | Specific problem, unnamed solution |
| "I was wrong about cold email" | Contrarian + personal admission |
Rules:
- Do not be vague to the point of irrelevance ("You won't believe this!").
- The email body must deliver on the curiosity promise.
- Use sparingly; overuse trains subscribers to distrust.
2. Urgency
Create time pressure that motivates immediate action.
| Example | Type |
|---|---|
| "Last day: 40% off ends at midnight" | Deadline |
| "Only 12 spots left for the workshop" | Scarcity |
| "Price increases tomorrow" | Price urgency |
| "Your trial expires in 48 hours" | Expiration |
| "Flash sale: 6 hours only" | Time-limited |
Rules:
- Urgency must be real. Fake urgency destroys trust permanently.
- Do not use urgency in every email. Reserve for genuine time-sensitive offers.
- Avoid all-caps urgency words (LAST CHANCE, HURRY).
- Pair with a specific deadline, not vague "soon" language.
3. Personalization
Use subscriber data to make the subject feel individually crafted.
| Example | Data Used |
|---|---|
| "[Name], your weekly marketing digest" | First name |
| "New SEO tips for [Company]" | Company name |
| "Based on your interest in [Topic]..." | Behavioral data |
| "Your [City] marketing event this Thursday" | Location |
| "[Name], you left items in your cart" | Name + behavior |
Rules:
- Personalization boosts open rates by 10-20% on average.
- Do not overuse first names. If every email starts with "[Name]," it loses effect.
- Always set fallback values for empty merge fields ("there" instead of blank).
- Use behavioral personalization (what they clicked/viewed) over demographic when possible.
4. Question
Pose a question the reader wants answered.
| Example | Type |
|---|---|
| "Are you making this SEO mistake?" | Self-diagnosis |
| "What's your content strategy for Q2?" | Planning prompt |
| "Ready to double your email list?" | Aspirational |
| "Which pricing model is right for you?" | Choice |
| "Can you write a landing page in 30 min?" | Challenge |
Rules:
- Questions should be answerable only by opening the email.
- Avoid yes/no questions where the answer is obvious.
- Rhetorical questions ("Want to make more money?") feel spammy.
- The best questions imply a knowledge gap the reader wants to close.
5. Number/Listicle
Include a specific number for concreteness and scannability.
| Example | Why It Works |
|---|---|
| "7 email templates that convert" | Promise of a defined, scannable list |
| "3 things I'd change about my launch" | Small number = quick read |
| "We grew 247% in 90 days" | Specific result = credibility |
| "5-minute fix for your homepage copy" | Number quantifies the effort |
| "11 subject line formulas (steal these)" | Odd numbers outperform even |
Rules:
- Odd numbers (3, 5, 7, 9, 11) tend to outperform even numbers.
- Specific numbers (247%) outperform round numbers (250%).
- Use digits, not words ("7" not "seven") for visual impact in the inbox.
- Keep lists short for emails (3-9 items); save long lists for blog posts.
6. How-To
Promise a practical, actionable skill or outcome.
| Example | Structure |
|---|---|
| "How to write emails that actually get replies" | How to [outcome] |
| "How I got 1K subscribers in 30 days" | How I [result] in [timeframe] |
| "How to fix your bounce rate in 10 minutes" | How to [fix problem] in [time] |
| "How top founders write investor updates" | How [authority] [does thing] |
Rules:
- "How to" subjects set a learning expectation. The email must teach.
- Pair with a specific, measurable outcome when possible.
- Avoid vague how-to's ("How to improve your marketing").
7. Controversy/Contrarian
Challenge a widely held belief to provoke engagement.
| Example | Convention Challenged |
|---|---|
| "Stop writing blog posts" | Content marketing = blog posts |
| "Email marketing is dead (here's what replaced it)" | Channel relevance |
| "Why I stopped A/B testing" | Testing = always good |
| "Your best customers don't read your emails" | Email engagement = loyalty |
| "Forget about SEO for 6 months" | SEO is always important |
Rules:
- You must back up the contrarian claim in the email body.
- Do not be contrarian for shock value alone. Have a genuine insight.
- This formula generates high opens AND high unsubscribes. Use intentionally.
- Works best for thought leadership and newsletter content.
Preview Text Pairing
Every subject line needs a paired preview text. These work together as a unit.
Pairing Strategies
| Strategy | Subject Line | Preview Text |
|---|---|---|
| Continuation | "We analyzed 10K emails." | "The #1 pattern surprised us." |
| Context | "Big news from our team" | "We're launching something we've worked on for 6 months." |
| Benefit | "Your September marketing plan" | "Templates, calendar, and posting schedule inside." |
| Contrast | "This email has no CTA." | "Just one question I'd love your answer to." |
| Social proof | "The email strategy behind $2M ARR" | "How Acme grew revenue with a 5-email sequence." |
Preview Text Rules
- Keep preview text between 40-90 characters.
- Never repeat the subject line.
- Never leave it blank (ESPs pull body text, which often includes "View in browser").
- Use it to add information the subject line cannot fit.
- End with a complete thought. Truncated preview text looks broken.
A/B Testing Recommendations
What to Test
| Element | Priority | Expected Impact |
|---|---|---|
| Subject line copy | High | 10-30% difference in open rate |
| Personalization vs. no personalization | High | 5-20% lift |
| Emoji vs. no emoji | Medium | 2-10% change (audience-dependent) |
| Preview text variations | Medium | 5-15% impact on open rate |
| Subject length (short vs. medium) | Medium | 5-10% difference |
| Question vs. statement | Low-Medium | 3-8% difference |
| Capitalization style | Low | 1-5% difference |
A/B Test Setup Rules
- Test one variable at a time. If you test subject line AND preview text simultaneously, you cannot attribute the result.
- Minimum sample size: 1,000 per variant for statistical significance.
- Wait time: At least 4 hours before declaring a winner. 24 hours is better.
- Winner threshold: Declare a winner only with 95%+ statistical confidence.
- Document results. Track what won and by how much. Build a subject line playbook.
Recommended First A/B Tests
Run these tests in order to build baseline data:
- Curiosity vs. Direct - "The one thing you're missing" vs. "3 ways to improve your CTR"
- With name vs. Without - "[Name], your weekly tips" vs. "Your weekly marketing tips"
- Short vs. Medium - "New from [Brand]" vs. "[Brand]'s new feature saves 2 hours/week"
- Emoji vs. No emoji - "Your Q2 marketing plan" vs. "Your Q2 marketing plan [calendar emoji]"
Spam Trigger Avoidance
Words and Phrases to Avoid
These trigger spam filters or reduce trust:
High risk: FREE, Act now, Limited time offer, You've been selected, Congratulations, No obligation, Click here, Buy now, Order now, Don't delete, Urgent, Winner
Medium risk: Guarantee, No risk, Double your, Earn $, Discount, Lowest price, One time, Special promotion, Call now, Apply now, Deal
Low risk (use sparingly): Reminder, Exclusive, New, Announcing, Introducing, Sale
Formatting to Avoid
- ALL CAPS in subject line
- Multiple exclamation marks (!!!)
- $$ or other currency symbols in subject
- Re: or Fwd: when not an actual reply/forward
- Excessive emojis (more than 1-2)
- Misleading subject lines that do not match email content
Sending A/B Tests via Resend API (Optional)
If the RESEND_API_KEY environment variable is set, you can send A/B test emails directly from
the CLI using the Resend API. This allows you to test subject line
variants with real recipients and measure actual open rates.
This is entirely optional. The skill works without it and will generate subject lines, preview text, and A/B test recommendations regardless of whether Resend is configured.
Check for Resend API Key
source ~/.claude/.env.global 2>/dev/null
if [ -z "$RESEND_API_KEY" ]; then
echo "RESEND_API_KEY is not set. A/B test emails will not be sent."
else
echo "RESEND_API_KEY is configured. Ready to send A/B test emails."
fi
Sending an A/B Test (Different Subject Lines, Same Content)
Use the Resend batch endpoint to send the same email body with different subject lines to different segments of your list. Split your recipient list into equal groups:
source ~/.claude/.env.global 2>/dev/null
curl -X POST https://api.resend.com/emails/batch \
-H "Authorization: Bearer ${RESEND_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"emails": [
{
"from": "Your Name <you@yourdomain.com>",
"to": ["segment-a-recipient1@example.com", "segment-a-recipient2@example.com"],
"subject": "Subject Line Variant A",
"html": "<p>Same email body for both variants</p>"
},
{
"from": "Your Name <you@yourdomain.com>",
"to": ["segment-b-recipient1@example.com", "segment-b-recipient2@example.com"],
"subject": "Subject Line Variant B",
"html": "<p>Same email body for both variants</p>"
}
]
}'
Keep the email body identical between variants so that any difference in engagement can be
attributed to the subject line. Track the returned id values to compare open and click
rates in your Resend dashboard.
Output Format
For every subject line request, deliver:
1. Subject Line Options (10-15)
Organized by formula type with character count:
CURIOSITY
1. "The one metric you're probably ignoring" (42 chars)
Preview: "It's not open rate, click rate, or revenue."
2. "We tested 5 CTA buttons. One crushed the rest." (48 chars)
Preview: "The winner increased clicks by 37%."
URGENCY
3. ...
2. Top 3 Recommendations
Ranked by predicted open rate with reasoning.
3. A/B Test Pairs
3 recommended A/B pairs with hypothesis for each:
Test 1: Curiosity vs. Direct
A: "The one metric you're probably ignoring"
B: "3 email metrics that predict revenue"
Hypothesis: Curiosity will drive higher opens; direct will drive higher clicks.
4. Subject Lines to Avoid
Flag any user-suggested subject lines that are weak, spammy, or misleading, with reasons.
FAQ
What does the email-subject-lines skill do?
Generate, evaluate, and A/B test email subject lines for maximum open rates. Includes formulas for curiosity, urgency, personalization, and more. Trigger phrases: "email subject line", "subject line ideas", "email subject", "write subject lines", "A/B test subject lines", "improve open rates", "email open rate", "subject line formulas".
How do I install email-subject-lines?
Run npx skills add https://github.com/openclaudia/openclaudia-skills --skill email-subject-lines 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/email-subject-lines/ (personal) or .claude/skills/email-subject-lines/ (project).
Which AI agents can use email-subject-lines?
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 email-subject-lines safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains email-subject-lines?
It is published by openclaudia in openclaudia/openclaudia-skills. It has 452 recorded installs.
More from openclaudia/openclaudia-skills
feishu-lark
openclaudia/openclaudia-skills
Send messages and interactive cards to Feishu (飞书) and Lark channels via webhooks or Bot API. Create rich-text announcements, marketing updates, and team notifications. Trigger phrases: "post to feishu", "feishu message", "lark message", "feishu webhook", "lark webhook", "send to feishu", "send to lark", "feishu bot", "lark bot", "飞书", "飞书机器人".
facebook-ads
openclaudia/openclaudia-skills
Create Facebook and Meta ad campaigns, write ad copy, define audiences, and plan budgets. Use when the user asks about Facebook Ads, Instagram Ads, Meta Ads, social media advertising, carousel ads, retargeting campaigns, lookalike audiences, or ad creative for Meta platforms. Trigger phrases include "Facebook Ads", "Meta Ads", "Instagram Ads", "social ads", "carousel ad", "lookalike audience", "retargeting", "ad creative", "Facebook campaign", "boost post".
video-ad-analysis
openclaudia/openclaudia-skills
Deconstruct and analyze video ad creatives for marketing insights. Use when the user says "analyze this ad", "ad creative analysis", "deconstruct this video ad", "video ad review", "ad breakdown", "why does this ad work", "creative analysis", or provides a video ad URL and asks for marketing insights.
content-calendar
openclaudia/openclaudia-skills
Plan and schedule social media and content marketing calendars. Monthly and weekly planning, content mix ratios, theme days, platform-specific timing, and batch creation workflows. Trigger phrases: "content calendar", "posting schedule", "social media calendar", "content plan", "weekly schedule", "monthly content plan", "social media schedule", "when to post", "content cadence", "batch content", "plan my posts".
youtube-analytics
openclaudia/openclaudia-skills
Analyze YouTube channel and video performance using the YouTube Data API. Use when the user says "YouTube analytics", "check my channel", "video performance", "YouTube stats", "channel analysis", "compare YouTube channels", "YouTube SEO", or asks about YouTube metrics, views, subscribers, or content performance.
google-ads
openclaudia/openclaudia-skills
Write Google Ads copy and build campaign structures. Use when the user asks to create Google Ads, write ad copy for search or display, set up PPC campaigns, optimize Quality Score, choose bidding strategies, or generate responsive search ads. Trigger phrases include "Google Ads", "PPC", "search ads", "display ads", "Performance Max", "ad copy", "headlines and descriptions", "keyword match types", "ad extensions", "Quality Score".
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 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。