Compare commits
230 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ea06638493 | |||
| 2977963067 | |||
| 64136709b6 | |||
| affc3aab49 | |||
| 0cdc990715 | |||
| 6b068a2c92 | |||
| 17923c78a9 | |||
| 194afa2f09 | |||
| 11e3b0ff69 | |||
| e18a04403b | |||
| 34501dd36c | |||
| 20443e1361 | |||
| 9698318a30 | |||
| c8e2d11556 | |||
| a45a348b08 | |||
| 5d48b351be | |||
| cafdd38e58 | |||
| c38fd75ec5 | |||
| dfe912224e | |||
| 2ea0f0c2c7 | |||
| f23b665461 | |||
| 880386085e | |||
| dffa2fd3cb | |||
| db34fa2a21 | |||
| 0d586e4952 | |||
| 9125d8216e | |||
| 50e72e0a2d | |||
| 978051caf1 | |||
| e8623ad57d | |||
| e659c764dd | |||
| 58a9947df4 | |||
| ea4704a905 | |||
| 883f9b6380 | |||
| 743f718a7c | |||
| 4eaf647eef | |||
| 5616e31192 | |||
| 138dc3a9be | |||
| 2b4cccbfcf | |||
| a04b00d810 | |||
| 2570f6ad4e | |||
| eb4256891a | |||
| 3448f557de | |||
| 9f9c2d6f59 | |||
| 7df49f2be8 | |||
| 2c7c108bd5 | |||
| fe670959f7 | |||
| 4874fe8979 | |||
| d88009d1a4 | |||
| 78da95de86 | |||
| 7c2e29c526 | |||
| 49f520f4eb | |||
| ef8e08ffd2 | |||
| e10c33406c | |||
| c31adfe89e | |||
| 1f295fa5c8 | |||
| af9fe5fb09 | |||
| bb54a76215 | |||
| 884cf5e108 | |||
| 295f1eef37 | |||
| 5c90bb8075 | |||
| 2fe1310881 | |||
| 6020ef6943 | |||
| 42ac956cb7 | |||
| d10c161c04 | |||
| 76d1f89df9 | |||
| 85b93be6d6 | |||
| d97425f15b | |||
| dba8570870 | |||
| 28e8684fdd | |||
| 07a893efd0 | |||
| fdb1202f12 | |||
| 314230b6db | |||
| 330d220aca | |||
| c4cb25cb6c | |||
| 4ceaf88e96 | |||
| 7d85256e19 | |||
| 7c13fccdd9 | |||
| b902ed2d79 | |||
| 47db68aaba | |||
| fcac7f27b0 | |||
| fd98062849 | |||
| 40f20b2736 | |||
| 7c8c087486 | |||
| fcf4b4e784 | |||
| cc1a9c106b | |||
| cb4451c9a1 | |||
| 9d4d29a795 | |||
| b0fbcabc5f | |||
| 6d08784211 | |||
| b5a9bb57a9 | |||
| 6e47b53faf | |||
| b970e9d8e4 | |||
| 869321e949 | |||
| 1c32ad3dbf | |||
| 51146da746 | |||
| 8657fd4f78 | |||
| 2f5db8d95c | |||
| 3a8d01283d | |||
| 68f5eaf64e | |||
| 51e29954fb | |||
| a3ab09378b | |||
| 926c624d07 | |||
| 8c8090ed92 | |||
| b325e41c91 | |||
| b0a3a23699 | |||
| 7e7e7a09d8 | |||
| 11e9ea811f | |||
| 831dbe9616 | |||
| 6b1da2158e | |||
| e4283c6616 | |||
| 633f9c642d | |||
| 89fd57a8b0 | |||
| a2e646c2e6 | |||
| 9a2bb97784 | |||
| 4ff486a702 | |||
| a3516be13d | |||
| edd613d33f | |||
| 90a7e84d0e | |||
| cac82f3a40 | |||
| 3a13e58808 | |||
| e47e3a3073 | |||
| 8ea7487545 | |||
| 1622c8e398 | |||
| ee28bc4359 | |||
| f5badfe416 | |||
| bc3253d30d | |||
| 12c34eb714 | |||
| c4bc2fcc49 | |||
| 0c24410a0b | |||
| 066c420416 | |||
| 08c100bc7b | |||
| 8618c5bad2 | |||
| 488d09cda5 | |||
| ea8df8290a | |||
| 4f803988e8 | |||
| 4fef22901e | |||
| 16a2f788d4 | |||
| 8f8ae292ea | |||
| 6914c62688 | |||
| 5436b34b98 | |||
| ce8dd3b41a | |||
| 10a708747d | |||
| abb6e87c04 | |||
| ce37279f12 | |||
| d4e6ef796c | |||
| f2a755f750 | |||
| 256eec8709 | |||
| 6744cfcd91 | |||
| bd00de7288 | |||
| 2497b090dc | |||
| a857eb683a | |||
| 6aa03c3217 | |||
| 8eaff5e29f | |||
| 51bdf2f6b3 | |||
| c1be574c8b | |||
| 47b4571ca2 | |||
| 2d0e7bc34c | |||
| a4e7890eb1 | |||
| f39dfd0210 | |||
| a71f31c51e | |||
| c4b698f996 | |||
| 2349865acb | |||
| ebdf1dd2f1 | |||
| aad399682c | |||
| f123804827 | |||
| 8ce007c983 | |||
| 2c26f8497b | |||
| 3a85964305 | |||
| 8dba2d53de | |||
| 98bd9ede62 | |||
| b260631f47 | |||
| 170af13f24 | |||
| 357e663767 | |||
| 7aa119cd85 | |||
| 3a56b53ecd | |||
| 1865cd29be | |||
| d8df68677f | |||
| 90b253d5ca | |||
| aa58db4bf8 | |||
| a04cb61a57 | |||
| 0bc1b2bba0 | |||
| ed86096730 | |||
| c166041dea | |||
| d89da05c32 | |||
| 1999e8f8b3 | |||
| 59596ef704 | |||
| d1580aa3b4 | |||
| 71f7e48a6b | |||
| 0e9d69889f | |||
| edcc34aa6d | |||
| 1477781b17 | |||
| 72f7f5dfd3 | |||
| e73773f003 | |||
| 33c0130ba3 | |||
| 962dee3250 | |||
| 0906dd07ff | |||
| 492097485f | |||
| e9555417c4 | |||
| 4c389d0939 | |||
| 07744d9d37 | |||
| f98eded89c | |||
| 8b59184a5e | |||
| c541f68aae | |||
| 5d760773a9 | |||
| 91d2e6d5f9 | |||
| f0ec19bb14 | |||
| 9766734ca6 | |||
| 98e74b79d7 | |||
| c29ee7e6db | |||
| cbbf6852bb | |||
| becdd54cf9 | |||
| ce02e31251 | |||
| 72f692862e | |||
| 159fc80908 | |||
| 5dc1e7b97b | |||
| 94f0c12348 | |||
| 241462dda3 | |||
| a83ca6953b | |||
| f58dba09c8 | |||
| e63e4f7e4b | |||
| 42ff0d6e54 | |||
| f75a379afd | |||
| 48a398ee3a | |||
| 6406f9e89b | |||
| 8a1dcc657e | |||
| 21f0ce7f6e | |||
| 042be94db1 | |||
| 96897a5964 | |||
| 96fa94e8b7 | |||
| 559b158650 |
@@ -5,41 +5,15 @@
|
||||
"url": "https://corey.co"
|
||||
},
|
||||
"metadata": {
|
||||
"description": "Marketing skills for Claude Code — conversion optimization, copywriting, SEO, paid ads, and growth",
|
||||
"version": "1.0.0",
|
||||
"description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, and growth",
|
||||
"version": "1.8.0",
|
||||
"repository": "https://github.com/coreyhaines31/marketingskills"
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "marketing-skills",
|
||||
"description": "23 marketing skills for technical marketers and founders: CRO, copywriting, SEO, paid ads, pricing strategy, referral programs, and more",
|
||||
"source": "./",
|
||||
"strict": false,
|
||||
"skills": [
|
||||
"./skills/ab-test-setup",
|
||||
"./skills/analytics-tracking",
|
||||
"./skills/competitor-alternatives",
|
||||
"./skills/copy-editing",
|
||||
"./skills/copywriting",
|
||||
"./skills/email-sequence",
|
||||
"./skills/form-cro",
|
||||
"./skills/free-tool-strategy",
|
||||
"./skills/launch-strategy",
|
||||
"./skills/marketing-ideas",
|
||||
"./skills/marketing-psychology",
|
||||
"./skills/onboarding-cro",
|
||||
"./skills/page-cro",
|
||||
"./skills/paid-ads",
|
||||
"./skills/paywall-upgrade-cro",
|
||||
"./skills/popup-cro",
|
||||
"./skills/pricing-strategy",
|
||||
"./skills/programmatic-seo",
|
||||
"./skills/referral-program",
|
||||
"./skills/schema-markup",
|
||||
"./skills/seo-audit",
|
||||
"./skills/signup-flow-cro",
|
||||
"./skills/social-content"
|
||||
]
|
||||
"description": "40 marketing skills for technical marketers and founders: ASO, CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, video production, image generation, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more",
|
||||
"source": "./"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "marketing-skills",
|
||||
"description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth",
|
||||
"version": "1.8.0",
|
||||
"author": {
|
||||
"name": "Corey Haines"
|
||||
},
|
||||
"homepage": "https://github.com/coreyhaines31/marketingskills",
|
||||
"repository": "https://github.com/coreyhaines31/marketingskills",
|
||||
"license": "MIT",
|
||||
"skills": "./skills"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: coreyhaines31
|
||||
buy_me_a_coffee: coreyhaines
|
||||
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Agent Skills Specification
|
||||
url: https://agentskills.io/specification.md
|
||||
about: Learn the skill format before creating or requesting a skill
|
||||
- name: Contributing Guide
|
||||
url: https://github.com/coreyhaines31/marketingskills/blob/main/CONTRIBUTING.md
|
||||
about: How to contribute a new skill to this repository
|
||||
@@ -0,0 +1,74 @@
|
||||
name: Skill Request
|
||||
description: Request a new marketing skill
|
||||
title: "Skill Request: [skill-name]"
|
||||
labels: ["enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for suggesting a new skill! Please fill out the details below.
|
||||
|
||||
- type: input
|
||||
id: skill-name
|
||||
attributes:
|
||||
label: Suggested skill name
|
||||
description: Lowercase, hyphens only (e.g., "landing-page-audit")
|
||||
placeholder: "my-skill-name"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: What should this skill do?
|
||||
description: Describe the skill's purpose and capabilities
|
||||
placeholder: "This skill should help with..."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: triggers
|
||||
attributes:
|
||||
label: When should it be used?
|
||||
description: What trigger phrases or scenarios should activate this skill?
|
||||
placeholder: |
|
||||
- When the user says "..."
|
||||
- When working on...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: examples
|
||||
attributes:
|
||||
label: Example use cases
|
||||
description: Provide 1-3 specific examples of how you'd use this skill
|
||||
placeholder: |
|
||||
1. I want to...
|
||||
2. Help me...
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: dropdown
|
||||
id: category
|
||||
attributes:
|
||||
label: Category
|
||||
description: Which category does this skill fit into?
|
||||
options:
|
||||
- CRO (Conversion Rate Optimization)
|
||||
- Copywriting
|
||||
- SEO
|
||||
- Paid Ads
|
||||
- Growth / Strategy
|
||||
- Analytics
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: related-skills
|
||||
attributes:
|
||||
label: Related existing skills
|
||||
description: Are there existing skills this relates to or differs from?
|
||||
placeholder: "Similar to page-cro but focused on..."
|
||||
validations:
|
||||
required: false
|
||||
@@ -0,0 +1,15 @@
|
||||
## Documentation
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- What documentation changes are you making? -->
|
||||
|
||||
## Files changed
|
||||
|
||||
<!-- List the files you're updating -->
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Links are valid
|
||||
- [ ] Formatting is consistent with existing docs
|
||||
- [ ] No sensitive data or credentials
|
||||
@@ -0,0 +1,16 @@
|
||||
## New Skill
|
||||
|
||||
**Skill name:** `skills/SKILL-NAME`
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- What does this skill do and when should it be used? -->
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] `name` matches directory name exactly
|
||||
- [ ] `name` follows naming rules (lowercase, hyphens, no `--`)
|
||||
- [ ] `description` is 1-1024 chars with trigger phrases
|
||||
- [ ] `SKILL.md` is under 500 lines
|
||||
- [ ] No sensitive data or credentials
|
||||
- [ ] Tested locally with AI agent
|
||||
@@ -0,0 +1,21 @@
|
||||
## Skill Update
|
||||
|
||||
**Skill:** `skills/SKILL-NAME`
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- What changes are you making and why? -->
|
||||
|
||||
## Type of update
|
||||
|
||||
- [ ] Bug fix
|
||||
- [ ] Improved instructions
|
||||
- [ ] Added references/scripts
|
||||
- [ ] Other
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Changes are focused and minimal
|
||||
- [ ] `SKILL.md` is still under 500 lines
|
||||
- [ ] No sensitive data or credentials
|
||||
- [ ] Tested locally with AI agent
|
||||
@@ -0,0 +1,184 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Sync marketplace.json and README.md with skills directory.
|
||||
*
|
||||
* Scans the skills/ directory for valid skills (directories containing SKILL.md)
|
||||
* and updates marketplace.json and the README skills table to match.
|
||||
*/
|
||||
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const SKILLS_DIR = "skills";
|
||||
const MARKETPLACE_FILE = ".claude-plugin/marketplace.json";
|
||||
const README_FILE = "README.md";
|
||||
|
||||
/**
|
||||
* Parse YAML frontmatter from a SKILL.md file
|
||||
*/
|
||||
function parseFrontmatter(content) {
|
||||
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
||||
if (!match) return {};
|
||||
|
||||
const frontmatter = {};
|
||||
const lines = match[1].split("\n");
|
||||
|
||||
for (const line of lines) {
|
||||
const colonIndex = line.indexOf(":");
|
||||
if (colonIndex === -1) continue;
|
||||
|
||||
const key = line.slice(0, colonIndex).trim();
|
||||
let value = line.slice(colonIndex + 1).trim();
|
||||
|
||||
// Remove quotes if present
|
||||
if ((value.startsWith('"') && value.endsWith('"')) ||
|
||||
(value.startsWith("'") && value.endsWith("'"))) {
|
||||
value = value.slice(1, -1);
|
||||
}
|
||||
|
||||
frontmatter[key] = value;
|
||||
}
|
||||
|
||||
return frontmatter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all skills with their metadata
|
||||
*/
|
||||
function getSkillsWithMetadata() {
|
||||
if (!fs.existsSync(SKILLS_DIR)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return fs
|
||||
.readdirSync(SKILLS_DIR, { withFileTypes: true })
|
||||
.filter((entry) => {
|
||||
if (!entry.isDirectory()) return false;
|
||||
const skillFile = path.join(SKILLS_DIR, entry.name, "SKILL.md");
|
||||
return fs.existsSync(skillFile);
|
||||
})
|
||||
.map((entry) => {
|
||||
const skillFile = path.join(SKILLS_DIR, entry.name, "SKILL.md");
|
||||
const content = fs.readFileSync(skillFile, "utf8");
|
||||
const frontmatter = parseFrontmatter(content);
|
||||
|
||||
return {
|
||||
dir: entry.name,
|
||||
path: `./${SKILLS_DIR}/${entry.name}`,
|
||||
name: frontmatter.name || entry.name,
|
||||
description: frontmatter.description || "",
|
||||
};
|
||||
})
|
||||
.sort((a, b) => a.name.localeCompare(b.name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update skill count in description
|
||||
*/
|
||||
function updateSkillCount(description, count) {
|
||||
return description.replace(/\d+ marketing skills/, `${count} marketing skills`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Truncate description to a maximum length
|
||||
*/
|
||||
function truncateDescription(description, maxLength = 120) {
|
||||
if (description.length <= maxLength) return description;
|
||||
|
||||
// Find last space before maxLength to avoid cutting words
|
||||
const truncated = description.slice(0, maxLength);
|
||||
const lastSpace = truncated.lastIndexOf(" ");
|
||||
|
||||
return truncated.slice(0, lastSpace) + "...";
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the skills table for README
|
||||
*/
|
||||
function generateSkillsTable(skills) {
|
||||
const header = "| Skill | Description |\n|-------|-------------|";
|
||||
const rows = skills.map((skill) => {
|
||||
const link = `[${skill.name}](skills/${skill.dir}/)`;
|
||||
const description = truncateDescription(skill.description);
|
||||
return `| ${link} | ${description} |`;
|
||||
});
|
||||
|
||||
return [header, ...rows].join("\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Update README.md with new skills table
|
||||
*/
|
||||
function updateReadme(skills) {
|
||||
const content = fs.readFileSync(README_FILE, "utf8");
|
||||
|
||||
// Match content between skill list markers
|
||||
const tableRegex = /(<!-- SKILLS:START -->\n)[\s\S]*?(\n<!-- SKILLS:END -->)/;
|
||||
const newTable = generateSkillsTable(skills);
|
||||
|
||||
if (!tableRegex.test(content)) {
|
||||
console.log("WARNING: Could not find skill markers in README.md");
|
||||
return false;
|
||||
}
|
||||
|
||||
const newContent = content.replace(tableRegex, `$1${newTable}$2`);
|
||||
|
||||
if (newContent === content) {
|
||||
return false;
|
||||
}
|
||||
|
||||
fs.writeFileSync(README_FILE, newContent);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update marketplace.json with skills list
|
||||
*/
|
||||
function updateMarketplace(skills) {
|
||||
const marketplace = JSON.parse(fs.readFileSync(MARKETPLACE_FILE, "utf8"));
|
||||
const plugin = marketplace.plugins[0];
|
||||
const existingSkills = plugin.skills || [];
|
||||
const currentSkills = skills.map((s) => s.path);
|
||||
|
||||
if (JSON.stringify(currentSkills) === JSON.stringify(existingSkills)) {
|
||||
return { updated: false };
|
||||
}
|
||||
|
||||
plugin.skills = currentSkills;
|
||||
plugin.description = updateSkillCount(plugin.description, currentSkills.length);
|
||||
|
||||
fs.writeFileSync(MARKETPLACE_FILE, JSON.stringify(marketplace, null, 2) + "\n");
|
||||
|
||||
const added = currentSkills.filter((s) => !existingSkills.includes(s));
|
||||
const removed = existingSkills.filter((s) => !currentSkills.includes(s));
|
||||
|
||||
return { updated: true, added, removed };
|
||||
}
|
||||
|
||||
function main() {
|
||||
const skills = getSkillsWithMetadata();
|
||||
|
||||
const marketplaceResult = updateMarketplace(skills);
|
||||
const readmeUpdated = updateReadme(skills);
|
||||
|
||||
if (!marketplaceResult.updated && !readmeUpdated) {
|
||||
console.log("Everything is already in sync");
|
||||
return;
|
||||
}
|
||||
|
||||
if (marketplaceResult.updated) {
|
||||
if (marketplaceResult.added.length) {
|
||||
console.log(`Added: ${marketplaceResult.added.join(", ")}`);
|
||||
}
|
||||
if (marketplaceResult.removed.length) {
|
||||
console.log(`Removed: ${marketplaceResult.removed.join(", ")}`);
|
||||
}
|
||||
console.log(`Updated marketplace.json (${skills.length} skills)`);
|
||||
}
|
||||
|
||||
if (readmeUpdated) {
|
||||
console.log("Updated README.md skills table");
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -0,0 +1,30 @@
|
||||
name: Sync Skills
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'skills/**'
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-slim
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: true
|
||||
|
||||
- name: Sync skills
|
||||
run: node .github/scripts/sync-skills.js
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v7
|
||||
with:
|
||||
commit_user_name: Coreybot
|
||||
commit_user_email: coreybot+github-actions[bot]@users.noreply.github.com
|
||||
commit_message: "chore: sync skills with marketplace.json and README"
|
||||
file_pattern: ".claude-plugin/marketplace.json README.md"
|
||||
@@ -0,0 +1,65 @@
|
||||
name: Validate Agent Skill
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "**/SKILL.md"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "**/SKILL.md"
|
||||
|
||||
concurrency:
|
||||
group: validate-skill-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
detect-changes:
|
||||
runs-on: ubuntu-slim
|
||||
if: github.event.pull_request.draft != true && github.actor != 'dependabot[bot]'
|
||||
outputs:
|
||||
skills: ${{ steps.changed-skills.outputs.skills }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get changed skills
|
||||
id: changed-skills
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
||||
BASE=${{ github.event.pull_request.base.sha }}
|
||||
HEAD=${{ github.event.pull_request.head.sha }}
|
||||
else
|
||||
BASE=${{ github.event.before }}
|
||||
HEAD=${{ github.event.after }}
|
||||
fi
|
||||
|
||||
# Find changed SKILL.md files and extract skill directories
|
||||
SKILLS=$(git diff --name-only $BASE $HEAD | \
|
||||
grep 'SKILL.md$' | \
|
||||
xargs -I {} dirname {} | \
|
||||
sort -u | \
|
||||
jq -R -s -c 'split("\n") | map(select(length > 0))')
|
||||
|
||||
echo "skills=$SKILLS" >> $GITHUB_OUTPUT
|
||||
echo "Changed skills: $SKILLS"
|
||||
|
||||
validate:
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.skills != '[]'
|
||||
runs-on: ubuntu-slim
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
skill: ${{ fromJson(needs.detect-changes.outputs.skills) }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Validate ${{ matrix.skill }}
|
||||
uses: Flash-Brew-Digital/validate-skill@v1
|
||||
with:
|
||||
path: ${{ matrix.skill }}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
# Dependencies
|
||||
node_modules/
|
||||
|
||||
# Environment variables / secrets
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
**/.DS_Store
|
||||
|
||||
# macOS / iCloud duplicate files
|
||||
* 2.*
|
||||
* 2/
|
||||
|
||||
# Remotion video project (root only, not skills/video/)
|
||||
/video/
|
||||
|
||||
# Editor
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
.idea/
|
||||
.vscode/
|
||||
@@ -0,0 +1,254 @@
|
||||
# AGENTS.md
|
||||
|
||||
Guidelines for AI agents working in this repository.
|
||||
|
||||
## Repository Overview
|
||||
|
||||
This repository contains **Agent Skills** for AI agents following the [Agent Skills specification](https://agentskills.io/specification.md). Skills install to `.agents/skills/` (the cross-agent standard). This repo also serves as a **Claude Code plugin marketplace** via `.claude-plugin/marketplace.json`.
|
||||
|
||||
- **Name**: Marketing Skills
|
||||
- **GitHub**: [coreyhaines31/marketingskills](https://github.com/coreyhaines31/marketingskills)
|
||||
- **Creator**: Corey Haines
|
||||
- **License**: MIT
|
||||
|
||||
## Repository Structure
|
||||
|
||||
```
|
||||
marketingskills/
|
||||
├── .claude-plugin/
|
||||
│ └── marketplace.json # Claude Code plugin marketplace manifest
|
||||
├── skills/ # Agent Skills
|
||||
│ └── skill-name/
|
||||
│ └── SKILL.md # Required skill file
|
||||
├── tools/
|
||||
│ ├── clis/ # Zero-dependency Node.js CLI tools (51 tools)
|
||||
│ ├── composio/ # Composio integration layer (quick start + toolkit mapping)
|
||||
│ ├── integrations/ # API integration guides per tool
|
||||
│ └── REGISTRY.md # Tool index with capabilities
|
||||
├── CONTRIBUTING.md
|
||||
├── LICENSE
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Build / Lint / Test Commands
|
||||
|
||||
**Skills** are content-only (no build step). Verify manually:
|
||||
- YAML frontmatter is valid
|
||||
- `name` field matches directory name exactly
|
||||
- `name` is 1-64 chars, lowercase alphanumeric and hyphens only
|
||||
- `description` is 1-1024 characters
|
||||
|
||||
**CLI tools** (`tools/clis/*.js`) are zero-dependency Node.js scripts (Node 18+). Verify with:
|
||||
```bash
|
||||
node --check tools/clis/<name>.js # Syntax check
|
||||
node tools/clis/<name>.js # Show usage (no args = help)
|
||||
node tools/clis/<name>.js <cmd> --dry-run # Preview request without sending
|
||||
```
|
||||
|
||||
## Agent Skills Specification
|
||||
|
||||
Skills follow the [Agent Skills spec](https://agentskills.io/specification.md).
|
||||
|
||||
### Required Frontmatter
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: skill-name
|
||||
description: What this skill does and when to use it. Include trigger phrases.
|
||||
---
|
||||
```
|
||||
|
||||
### Frontmatter Field Constraints
|
||||
|
||||
| Field | Required | Constraints |
|
||||
|---------------|----------|------------------------------------------------------------------|
|
||||
| `name` | Yes | 1-64 chars, lowercase `a-z`, numbers, hyphens. Must match dir. |
|
||||
| `description` | Yes | 1-1024 chars. Describe what it does and when to use it. |
|
||||
| `license` | No | License name (default: MIT) |
|
||||
| `metadata` | No | Key-value pairs (author, version, etc.) |
|
||||
|
||||
### Name Field Rules
|
||||
|
||||
- Lowercase letters, numbers, and hyphens only
|
||||
- Cannot start or end with hyphen
|
||||
- No consecutive hyphens (`--`)
|
||||
- Must match parent directory name exactly
|
||||
|
||||
**Valid**: `page-cro`, `email-sequence`, `ab-test-setup`
|
||||
**Invalid**: `Page-CRO`, `-page`, `page--cro`
|
||||
|
||||
### Optional Skill Directories
|
||||
|
||||
```
|
||||
skills/skill-name/
|
||||
├── SKILL.md # Required - main instructions (<500 lines)
|
||||
├── references/ # Optional - detailed docs loaded on demand
|
||||
├── scripts/ # Optional - executable code
|
||||
└── assets/ # Optional - templates, data files
|
||||
```
|
||||
|
||||
## Writing Style Guidelines
|
||||
|
||||
### Structure
|
||||
|
||||
- Keep `SKILL.md` under 500 lines (move details to `references/`)
|
||||
- Use H2 (`##`) for main sections, H3 (`###`) for subsections
|
||||
- Use bullet points and numbered lists liberally
|
||||
- Short paragraphs (2-4 sentences max)
|
||||
|
||||
### Tone
|
||||
|
||||
- Direct and instructional
|
||||
- Second person ("You are a conversion rate optimization expert")
|
||||
- Professional but approachable
|
||||
|
||||
### Formatting
|
||||
|
||||
- Bold (`**text**`) for key terms
|
||||
- Code blocks for examples and templates
|
||||
- Tables for reference data
|
||||
- No excessive emojis
|
||||
|
||||
### Clarity Principles
|
||||
|
||||
- Clarity over cleverness
|
||||
- Specific over vague
|
||||
- Active voice over passive
|
||||
- One idea per section
|
||||
|
||||
### Description Field Best Practices
|
||||
|
||||
The `description` is critical for skill discovery. Include:
|
||||
1. What the skill does
|
||||
2. When to use it (trigger phrases)
|
||||
3. Related skills for scope boundaries
|
||||
|
||||
```yaml
|
||||
description: When the user wants to optimize conversions on any marketing page. Use when the user says "CRO," "conversion rate optimization," "this page isn't converting." For signup flows, see signup-flow-cro.
|
||||
```
|
||||
|
||||
## Claude Code Plugin
|
||||
|
||||
This repo also serves as a plugin marketplace. The manifest at `.claude-plugin/marketplace.json` lists all skills for installation via:
|
||||
|
||||
```bash
|
||||
/plugin marketplace add coreyhaines31/marketingskills
|
||||
/plugin install marketing-skills
|
||||
```
|
||||
|
||||
See [Claude Code plugins documentation](https://code.claude.com/docs/en/plugins.md) for details.
|
||||
|
||||
## Git Workflow
|
||||
|
||||
### Branch Naming
|
||||
|
||||
- New skills: `feature/skill-name`
|
||||
- Improvements: `fix/skill-name-description`
|
||||
- Documentation: `docs/description`
|
||||
|
||||
### Commit Messages
|
||||
|
||||
Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:
|
||||
|
||||
- `feat: add skill-name skill`
|
||||
- `fix: improve clarity in page-cro`
|
||||
- `docs: update README`
|
||||
|
||||
### Pull Request Checklist
|
||||
|
||||
- [ ] `name` matches directory name exactly
|
||||
- [ ] `name` follows naming rules (lowercase, hyphens, no `--`)
|
||||
- [ ] `description` is 1-1024 chars with trigger phrases
|
||||
- [ ] `SKILL.md` is under 500 lines
|
||||
- [ ] No sensitive data or credentials
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
This repository includes a tools registry for agent-compatible marketing tools.
|
||||
|
||||
- **Tool discovery**: Read `tools/REGISTRY.md` to see available tools and their capabilities
|
||||
- **Integration details**: See `tools/integrations/{tool}.md` for API endpoints, auth, and common operations
|
||||
- **MCP-enabled tools**: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam, introw, composio
|
||||
- **Composio** (integration layer): Adds MCP access to OAuth-heavy tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, etc.). See `tools/integrations/composio.md`
|
||||
|
||||
### Registry Structure
|
||||
|
||||
```
|
||||
tools/
|
||||
├── REGISTRY.md # Index of all tools with capabilities
|
||||
└── integrations/ # Detailed integration guides
|
||||
├── ga4.md
|
||||
├── stripe.md
|
||||
├── rewardful.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
### When to Use Tools
|
||||
|
||||
Skills reference relevant tools for implementation. For example:
|
||||
- `referral-program` skill → rewardful, tolt, dub-co, mention-me guides
|
||||
- `analytics-tracking` skill → ga4, mixpanel, segment guides
|
||||
- `email-sequence` skill → customer-io, mailchimp, resend guides
|
||||
- `paid-ads` skill → google-ads, meta-ads, linkedin-ads guides
|
||||
|
||||
For tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion), Composio provides MCP access via a single server. See `tools/integrations/composio.md` for setup and `tools/composio/marketing-tools.md` for the full toolkit mapping.
|
||||
|
||||
## Checking for Updates
|
||||
|
||||
When using any skill from this repository:
|
||||
|
||||
1. **Once per session**, on first skill use, check for updates:
|
||||
- Fetch `VERSIONS.md` from GitHub: https://raw.githubusercontent.com/coreyhaines31/marketingskills/main/VERSIONS.md
|
||||
- Compare versions against local skill files
|
||||
|
||||
2. **Only prompt if meaningful**:
|
||||
- 2 or more skills have updates, OR
|
||||
- Any skill has a major version bump (e.g., 1.x to 2.x)
|
||||
|
||||
3. **Non-blocking notification** at end of response:
|
||||
```
|
||||
---
|
||||
Skills update available: X marketing skills have updates.
|
||||
Say "update skills" to update automatically, or run `git pull` in your marketingskills folder.
|
||||
```
|
||||
|
||||
4. **If user says "update skills"**:
|
||||
- Run `git pull` in the marketingskills directory
|
||||
- Confirm what was updated
|
||||
|
||||
## Skill Categories
|
||||
|
||||
See `README.md` for the current list of skills organized by category. When adding new skills, follow the naming patterns of existing skills in that category.
|
||||
|
||||
## Claude Code-Specific Enhancements
|
||||
|
||||
These patterns are **Claude Code only** and must not be added to `SKILL.md` files directly, as skills are designed to be cross-agent compatible (Codex, Cursor, Windsurf, etc.). Apply them locally in your own project's `.claude/skills/` overrides instead.
|
||||
|
||||
### Dynamic content injection with `!`command``
|
||||
|
||||
Claude Code supports embedding shell commands in SKILL.md using `` !`command` `` syntax. When the skill is invoked, Claude Code runs the command and injects the output inline — the model sees the result, not the instruction.
|
||||
|
||||
**Most useful application: auto-inject the product marketing context file**
|
||||
|
||||
Instead of every skill telling the agent "go check if `.agents/product-marketing-context.md` exists and read it," you can inject it automatically:
|
||||
|
||||
```markdown
|
||||
Product context: !`cat .agents/product-marketing-context.md 2>/dev/null || echo "No product context file found — ask the user about their product before proceeding."`
|
||||
```
|
||||
|
||||
Place this at the top of a skill's body (after frontmatter) to make context available immediately without any file-reading step.
|
||||
|
||||
**Other useful injections:**
|
||||
|
||||
```markdown
|
||||
# Inject today's date for recency-sensitive skills
|
||||
Today's date: !`date +%Y-%m-%d`
|
||||
|
||||
# Inject current git branch (useful for workflow skills)
|
||||
Current branch: !`git branch --show-current 2>/dev/null`
|
||||
|
||||
# Inject recent commits for context
|
||||
Recent commits: !`git log --oneline -5 2>/dev/null`
|
||||
```
|
||||
|
||||
**Why this is Claude Code-only**: Other agents that load skills will see the literal `` !`command` `` string rather than executing it, which would appear as garbled instructions. Keep cross-agent skill files free of this syntax.
|
||||
@@ -0,0 +1,89 @@
|
||||
# Contributing
|
||||
|
||||
Thanks for your interest in contributing to Marketing Skills! This guide will help you add new skills or improve existing ones.
|
||||
|
||||
## Requesting a Skill
|
||||
|
||||
You can also suggest new skills by [opening a skill request](https://github.com/coreyhaines31/marketingskills/issues/new?template=skill-request.yml).
|
||||
|
||||
## Adding a New Skill
|
||||
|
||||
### 1. Create the skill directory
|
||||
|
||||
```bash
|
||||
mkdir -p skills/your-skill-name
|
||||
```
|
||||
|
||||
### 2. Create the SKILL.md file
|
||||
|
||||
Every skill needs a `SKILL.md` file with YAML frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: your-skill-name
|
||||
description: When to use this skill. Include trigger phrases and keywords that help agents identify relevant tasks.
|
||||
---
|
||||
|
||||
# Your Skill Name
|
||||
|
||||
Instructions for the agent go here...
|
||||
```
|
||||
|
||||
Optional frontmatter fields: `license` (default: MIT), `metadata` (author, version, etc.)
|
||||
|
||||
### 3. Follow the naming conventions
|
||||
|
||||
- **Directory name**: lowercase, hyphens only (e.g., `email-sequence`)
|
||||
- **Name field**: must match directory name exactly
|
||||
- **Description**: 1-1024 characters, include trigger phrases
|
||||
|
||||
### 4. Structure your skill
|
||||
|
||||
```
|
||||
skills/your-skill-name/
|
||||
├── SKILL.md # Required - main instructions
|
||||
├── references/ # Optional - additional documentation
|
||||
│ └── guide.md
|
||||
├── scripts/ # Optional - executable code
|
||||
│ └── helper.py
|
||||
└── assets/ # Optional - templates, images, data
|
||||
└── template.json
|
||||
```
|
||||
|
||||
### 5. Write effective instructions
|
||||
|
||||
- Keep `SKILL.md` under 500 lines
|
||||
- Move detailed reference material to `references/`
|
||||
- Include step-by-step instructions
|
||||
- Add examples of inputs and outputs
|
||||
- Cover common edge cases
|
||||
|
||||
## Improving Existing Skills
|
||||
|
||||
1. Read the existing skill thoroughly
|
||||
2. Test your changes locally
|
||||
3. Keep changes focused and minimal
|
||||
4. Update the version in metadata if making significant changes
|
||||
|
||||
## Submitting Your Contribution
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch (`git checkout -b feature/new-skill-name`)
|
||||
3. Make your changes
|
||||
4. Test locally with an AI agent
|
||||
5. Submit a pull request using the appropriate template:
|
||||
- [New Skill](?template=new-skill.md)
|
||||
- [Skill Update](?template=skill-update.md)
|
||||
- [Documentation](?template=documentation.md)
|
||||
|
||||
## Skill Quality Checklist
|
||||
|
||||
- [ ] `name` matches directory name
|
||||
- [ ] `description` clearly explains when to use the skill
|
||||
- [ ] Instructions are clear and actionable
|
||||
- [ ] No sensitive data or credentials
|
||||
- [ ] Follows existing skill patterns in the repo
|
||||
|
||||
## Questions?
|
||||
|
||||
Open an issue if you have questions or need help with your contribution.
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 Corey Haines
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,61 +1,120 @@
|
||||
# Marketing Skills for Claude Code
|
||||
# Marketing Skills for AI Agents
|
||||
|
||||
A collection of AI agent skills focused on marketing tasks. Built for technical marketers and founders who want Claude Code (or similar AI coding assistants) to help with conversion optimization, copywriting, SEO, analytics, and growth engineering.
|
||||
A collection of AI agent skills focused on marketing tasks. Built for technical marketers and founders who want AI coding agents to help with conversion optimization, copywriting, SEO, analytics, and growth engineering. Works with Claude Code, OpenAI Codex, Cursor, Windsurf, and any agent that supports the [Agent Skills spec](https://agentskills.io).
|
||||
|
||||
Built by [Corey Haines](https://corey.co). Need hands-on help? Check out [Conversion Factory](https://conversionfactory.co) — Corey's agency for conversion optimization, landing pages, and growth strategy.
|
||||
Built by [Corey Haines](https://corey.co?ref=marketingskills). Need hands-on help? Check out [Conversion Factory](https://conversionfactory.co?ref=marketingskills) — Corey's agency for conversion optimization, landing pages, and growth strategy. Want to learn more about marketing? Subscribe to [Swipe Files](https://swipefiles.com?ref=marketingskills). Want an autonomous AI agent that uses these skills to be your CMO? Try [Magister](https://magistermarketing.com?ref=marketingskills).
|
||||
|
||||
New to the terminal and coding agents? Check out the companion guide [Coding for Marketers](https://codingformarketers.com?ref=marketingskills).
|
||||
|
||||
**Contributions welcome!** Found a way to improve a skill or have a new one to add? [Open a PR](#contributing).
|
||||
|
||||
Run into a problem or have a question? [Open an issue](https://github.com/coreyhaines31/marketingskills/issues) — we're happy to help.
|
||||
|
||||
## What are Skills?
|
||||
|
||||
Skills are markdown files that give AI agents specialized knowledge and workflows for specific tasks. When you add these to your project, Claude Code can recognize when you're working on a marketing task and apply the right frameworks and best practices.
|
||||
Skills are markdown files that give AI agents specialized knowledge and workflows for specific tasks. When you add these to your project, your agent can recognize when you're working on a marketing task and apply the right frameworks and best practices.
|
||||
|
||||
## How Skills Work Together
|
||||
|
||||
Skills reference each other and build on shared context. The `product-marketing-context` skill is the foundation — every other skill checks it first to understand your product, audience, and positioning before doing anything.
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────┐
|
||||
│ product-marketing-context │
|
||||
│ (read by all other skills first) │
|
||||
└──────────────────┬───────────────────┘
|
||||
│
|
||||
┌──────────────┬─────────────┬─────────────┼─────────────┬──────────────┬──────────────┐
|
||||
▼ ▼ ▼ ▼ ▼ ▼ ▼
|
||||
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ ┌──────────┐ ┌─────────────┐ ┌───────────┐
|
||||
│ SEO & │ │ CRO │ │Content & │ │ Paid & │ │ Growth & │ │ Sales & │ │ Strategy │
|
||||
│ Content │ │ │ │ Copy │ │Measurement │ │Retention │ │ GTM │ │ │
|
||||
├──────────┤ ├──────────┤ ├──────────┤ ├────────────┤ ├──────────┤ ├─────────────┤ ├───────────┤
|
||||
│seo-audit │ │page-cro │ │copywritng│ │paid-ads │ │referral │ │revops │ │mktg-ideas │
|
||||
│ai-seo │ │signup-cro│ │copy-edit │ │ad-creative │ │free-tool │ │sales-enable │ │mktg-psych │
|
||||
│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │customer- │
|
||||
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │ research │
|
||||
│schema │ │popup-cro │ │social │ │ │ │community │ │comp-alts │ │ │
|
||||
│content │ │paywall │ │video │ │ │ │lead-magnt│ │comp-profile │ │ │
|
||||
│aso-audit │ │ │ │image │ │ │ │ │ │directory │ │ │
|
||||
└────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ └────┬─────┘ └──────┬──────┘ └─────┬─────┘
|
||||
│ │ │ │ │ │ │
|
||||
└────────────┴─────┬──────┴──────────────┴─────────────┴──────────────┴──────────────┘
|
||||
│
|
||||
Skills cross-reference each other:
|
||||
copywriting ↔ page-cro ↔ ab-test-setup
|
||||
revops ↔ sales-enablement ↔ cold-email
|
||||
seo-audit ↔ schema-markup ↔ ai-seo
|
||||
customer-research → copywriting, page-cro, competitor-alternatives
|
||||
```
|
||||
|
||||
See each skill's **Related Skills** section for the full dependency map.
|
||||
|
||||
## Available Skills
|
||||
|
||||
| Skill | Description | Triggers |
|
||||
|-------|-------------|----------|
|
||||
| [ab-test-setup](skills/ab-test-setup/) | Plan and implement A/B tests | "A/B test," "split test," "experiment" |
|
||||
| [analytics-tracking](skills/analytics-tracking/) | Set up tracking and measurement | "tracking," "GA4," "GTM," "events" |
|
||||
| [competitor-alternatives](skills/competitor-alternatives/) | Competitor comparison and alternative pages | "vs page," "alternative page," "[X] vs [Y]" |
|
||||
| [copy-editing](skills/copy-editing/) | Edit and polish existing copy | "edit this copy," "review my copy," "copy sweep" |
|
||||
| [copywriting](skills/copywriting/) | Write or improve marketing copy | "write copy," "rewrite," "headlines," "CTA copy" |
|
||||
| [email-sequence](skills/email-sequence/) | Build email sequences and drip campaigns | "email sequence," "drip campaign," "nurture" |
|
||||
| [form-cro](skills/form-cro/) | Optimize lead capture and contact forms | "form optimization," "lead form," "contact form" |
|
||||
| [free-tool-strategy](skills/free-tool-strategy/) | Plan engineering-as-marketing tools | "free tool," "calculator," "lead gen tool" |
|
||||
| [launch-strategy](skills/launch-strategy/) | Product launches and feature announcements | "launch," "Product Hunt," "feature release" |
|
||||
| [marketing-ideas](skills/marketing-ideas/) | 140 SaaS marketing ideas and strategies | "marketing ideas," "growth ideas," "how to market" |
|
||||
| [marketing-psychology](skills/marketing-psychology/) | 70+ mental models for marketing | "psychology," "mental models," "cognitive bias" |
|
||||
| [onboarding-cro](skills/onboarding-cro/) | Improve user activation and onboarding | "onboarding," "activation," "first-run experience" |
|
||||
| [page-cro](skills/page-cro/) | Conversion optimization for any marketing page | "optimize [page]," "CRO," "page isn't converting" |
|
||||
| [paid-ads](skills/paid-ads/) | Create and optimize paid ad campaigns | "PPC," "Google Ads," "Meta ads," "paid media" |
|
||||
| [paywall-upgrade-cro](skills/paywall-upgrade-cro/) | In-app paywalls and upgrade screens | "paywall," "upgrade screen," "feature gate" |
|
||||
| [popup-cro](skills/popup-cro/) | Create/optimize popups and modals | "popup," "modal," "exit intent" |
|
||||
| [pricing-strategy](skills/pricing-strategy/) | Design pricing, packaging, and monetization | "pricing," "tiers," "freemium," "willingness to pay" |
|
||||
| [programmatic-seo](skills/programmatic-seo/) | Build SEO pages at scale | "programmatic SEO," "template pages," "pages at scale" |
|
||||
| [referral-program](skills/referral-program/) | Design referral and affiliate programs | "referral," "affiliate," "word of mouth," "viral" |
|
||||
| [schema-markup](skills/schema-markup/) | Add structured data and rich snippets | "schema," "JSON-LD," "structured data" |
|
||||
| [seo-audit](skills/seo-audit/) | Audit technical and on-page SEO | "SEO audit," "technical SEO," "not ranking" |
|
||||
| [signup-flow-cro](skills/signup-flow-cro/) | Optimize signup and registration flows | "signup optimization," "registration form" |
|
||||
| [social-content](skills/social-content/) | Create and schedule social media content | "LinkedIn post," "Twitter thread," "social media" |
|
||||
<!-- SKILLS:START -->
|
||||
| Skill | Description |
|
||||
|-------|-------------|
|
||||
| [ab-test-setup](skills/ab-test-setup/) | When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.... |
|
||||
| [ad-creative](skills/ad-creative/) | When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad... |
|
||||
| [ai-seo](skills/ai-seo/) | When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers.... |
|
||||
| [analytics-tracking](skills/analytics-tracking/) | When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions... |
|
||||
| [aso-audit](skills/aso-audit/) | When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO... |
|
||||
| [churn-prevention](skills/churn-prevention/) | When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or... |
|
||||
| [cold-email](skills/cold-email/) | Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails,... |
|
||||
| [community-marketing](skills/community-marketing/) | Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a... |
|
||||
| [competitor-alternatives](skills/competitor-alternatives/) | When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when... |
|
||||
| [competitor-profiling](skills/competitor-profiling/) | When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,'... |
|
||||
| [content-strategy](skills/content-strategy/) | When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also... |
|
||||
| [copy-editing](skills/copy-editing/) | When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the... |
|
||||
| [copywriting](skills/copywriting/) | When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages,... |
|
||||
| [customer-research](skills/customer-research/) | When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer... |
|
||||
| [directory-submissions](skills/directory-submissions/) | When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery. Covers Product Hunt prep, Reviews playbook, GEO, and destination pages strategy. |
|
||||
| [email-sequence](skills/email-sequence/) | When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email... |
|
||||
| [form-cro](skills/form-cro/) | When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms,... |
|
||||
| [free-tool-strategy](skills/free-tool-strategy/) | When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or... |
|
||||
| [image](skills/image/) | When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets... |
|
||||
| [launch-strategy](skills/launch-strategy/) | When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user... |
|
||||
| [lead-magnets](skills/lead-magnets/) | When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the... |
|
||||
| [marketing-ideas](skills/marketing-ideas/) | When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the... |
|
||||
| [marketing-psychology](skills/marketing-psychology/) | When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when... |
|
||||
| [onboarding-cro](skills/onboarding-cro/) | When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also... |
|
||||
| [page-cro](skills/page-cro/) | When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing... |
|
||||
| [paid-ads](skills/paid-ads/) | When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X,... |
|
||||
| [paywall-upgrade-cro](skills/paywall-upgrade-cro/) | When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use... |
|
||||
| [popup-cro](skills/popup-cro/) | When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also... |
|
||||
| [pricing-strategy](skills/pricing-strategy/) | When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions... |
|
||||
| [product-marketing-context](skills/product-marketing-context/) | When the user wants to create or update their product marketing context document. Also use when the user mentions... |
|
||||
| [programmatic-seo](skills/programmatic-seo/) | When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions... |
|
||||
| [referral-program](skills/referral-program/) | When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.... |
|
||||
| [revops](skills/revops/) | When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes.... |
|
||||
| [sales-enablement](skills/sales-enablement/) | When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also... |
|
||||
| [schema-markup](skills/schema-markup/) | When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user... |
|
||||
| [seo-audit](skills/seo-audit/) | When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO... |
|
||||
| [signup-flow-cro](skills/signup-flow-cro/) | When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the... |
|
||||
| [site-architecture](skills/site-architecture/) | When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal... |
|
||||
| [social-content](skills/social-content/) | When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram,... |
|
||||
| [video](skills/video/) | When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Covers Remotion, Hyperframes, HeyGen, Veo, Runway, Kling... |
|
||||
<!-- SKILLS:END -->
|
||||
|
||||
## Installation
|
||||
|
||||
### Option 1: CLI Install (Recommended)
|
||||
|
||||
Use [add-skill](https://github.com/vercel-labs/add-skill) to install skills directly:
|
||||
Use [npx skills](https://github.com/vercel-labs/skills) to install skills directly:
|
||||
|
||||
```bash
|
||||
# Install all skills
|
||||
npx add-skill coreyhaines31/marketingskills
|
||||
npx skills add coreyhaines31/marketingskills
|
||||
|
||||
# Install specific skills
|
||||
npx add-skill coreyhaines31/marketingskills --skill page-cro copywriting
|
||||
npx skills add coreyhaines31/marketingskills --skill page-cro copywriting
|
||||
|
||||
# List available skills
|
||||
npx add-skill coreyhaines31/marketingskills --list
|
||||
npx skills add coreyhaines31/marketingskills --list
|
||||
```
|
||||
|
||||
This automatically installs to your `.claude/skills/` directory.
|
||||
This automatically installs to your `.agents/skills/` directory (and symlinks into `.claude/skills/` for Claude Code compatibility).
|
||||
|
||||
### Option 2: Claude Code Plugin
|
||||
|
||||
@@ -75,7 +134,7 @@ Clone the entire repo and copy the skills folder:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/coreyhaines31/marketingskills.git
|
||||
cp -r marketingskills/skills/* .claude/skills/
|
||||
cp -r marketingskills/skills/* .agents/skills/
|
||||
```
|
||||
|
||||
### Option 4: Git Submodule
|
||||
@@ -83,10 +142,10 @@ cp -r marketingskills/skills/* .claude/skills/
|
||||
Add as a submodule for easy updates:
|
||||
|
||||
```bash
|
||||
git submodule add https://github.com/coreyhaines31/marketingskills.git .claude/marketingskills
|
||||
git submodule add https://github.com/coreyhaines31/marketingskills.git .agents/marketingskills
|
||||
```
|
||||
|
||||
Then reference skills from `.claude/marketingskills/skills/`.
|
||||
Then reference skills from `.agents/marketingskills/skills/`.
|
||||
|
||||
### Option 5: Fork and Customize
|
||||
|
||||
@@ -94,9 +153,35 @@ Then reference skills from `.claude/marketingskills/skills/`.
|
||||
2. Customize skills for your specific needs
|
||||
3. Clone your fork into your projects
|
||||
|
||||
### Option 6: SkillKit (Multi-Agent)
|
||||
|
||||
Use [SkillKit](https://github.com/rohitg00/skillkit) to install skills across multiple AI agents (Claude Code, Cursor, Copilot, etc.):
|
||||
|
||||
```bash
|
||||
# Install all skills
|
||||
npx skillkit install coreyhaines31/marketingskills
|
||||
|
||||
# Install specific skills
|
||||
npx skillkit install coreyhaines31/marketingskills --skill page-cro copywriting
|
||||
|
||||
# List available skills
|
||||
npx skillkit install coreyhaines31/marketingskills --list
|
||||
```
|
||||
|
||||
## Upgrading from v1.0
|
||||
|
||||
Skills now use `.agents/` instead of `.claude/` for the product marketing context file. Move your existing context file:
|
||||
|
||||
```bash
|
||||
mkdir -p .agents
|
||||
mv .claude/product-marketing-context.md .agents/product-marketing-context.md
|
||||
```
|
||||
|
||||
Skills will still check `.claude/` as a fallback, so nothing breaks if you don't.
|
||||
|
||||
## Usage
|
||||
|
||||
Once installed, just ask Claude Code to help with marketing tasks:
|
||||
Once installed, just ask your agent to help with marketing tasks:
|
||||
|
||||
```
|
||||
"Help me optimize this landing page for conversions"
|
||||
@@ -133,23 +218,31 @@ You can also invoke skills directly:
|
||||
### Content & Copy
|
||||
- `copywriting` - Marketing page copy
|
||||
- `copy-editing` - Edit and polish existing copy
|
||||
- `cold-email` - B2B cold outreach emails and sequences
|
||||
- `email-sequence` - Automated email flows
|
||||
- `social-content` - Social media content
|
||||
- `image` - AI image generation, design tools, and optimization
|
||||
|
||||
### SEO & Discovery
|
||||
- `seo-audit` - Technical and on-page SEO
|
||||
- `ai-seo` - AI search optimization (AEO, GEO, LLMO)
|
||||
- `programmatic-seo` - Scaled page generation
|
||||
- `site-architecture` - Page hierarchy, navigation, URL structure
|
||||
- `competitor-alternatives` - Comparison and alternative pages
|
||||
- `schema-markup` - Structured data
|
||||
|
||||
### Paid & Distribution
|
||||
- `paid-ads` - Google, Meta, LinkedIn ad campaigns
|
||||
- `ad-creative` - Bulk ad creative generation and iteration
|
||||
- `social-content` - Social media scheduling and strategy
|
||||
|
||||
### Measurement & Testing
|
||||
- `analytics-tracking` - Event tracking setup
|
||||
- `ab-test-setup` - Experiment design
|
||||
|
||||
### Retention
|
||||
- `churn-prevention` - Cancel flows, save offers, dunning, payment recovery
|
||||
|
||||
### Growth Engineering
|
||||
- `free-tool-strategy` - Marketing tools and calculators
|
||||
- `referral-program` - Referral and affiliate programs
|
||||
@@ -160,45 +253,16 @@ You can also invoke skills directly:
|
||||
- `launch-strategy` - Product launches and announcements
|
||||
- `pricing-strategy` - Pricing, packaging, and monetization
|
||||
|
||||
### Sales & RevOps
|
||||
- `revops` - Lead lifecycle, scoring, routing, pipeline management
|
||||
- `sales-enablement` - Sales decks, one-pagers, objection docs, demo scripts
|
||||
|
||||
## Contributing
|
||||
|
||||
Found a way to improve a skill? Have a new skill to suggest? PRs and issues welcome!
|
||||
|
||||
**Ideas for contributions:**
|
||||
- Improve existing skill instructions or frameworks
|
||||
- Add new experiment ideas or best practices
|
||||
- Fix typos or clarify confusing sections
|
||||
- Suggest new skills (open an issue first to discuss)
|
||||
- Add examples or case studies
|
||||
|
||||
**How to contribute:**
|
||||
1. Fork the repo
|
||||
2. Edit the skill file(s)
|
||||
3. Submit a PR with a clear description of what you improved
|
||||
|
||||
### Skill File Structure
|
||||
|
||||
Each skill is a directory containing a `SKILL.md` file:
|
||||
|
||||
```
|
||||
skills/
|
||||
skill-name/
|
||||
SKILL.md
|
||||
```
|
||||
|
||||
The `SKILL.md` file follows this format:
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: skill-name
|
||||
description: One-line description for skill selection
|
||||
---
|
||||
|
||||
# Skill Name
|
||||
|
||||
[Full instructions for the AI agent]
|
||||
```
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on adding or improving skills.
|
||||
|
||||
## License
|
||||
|
||||
MIT - Use these however you want.
|
||||
[MIT](LICENSE) - Use these however you want.
|
||||
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
# Marketing Skills Versions
|
||||
|
||||
Current versions of all skills. Agents can compare against local versions to check for updates.
|
||||
|
||||
| Skill | Version | Last Updated |
|
||||
|-------|---------|--------------|
|
||||
| ab-test-setup | 1.2.0 | 2026-03-14 |
|
||||
| ad-creative | 1.2.0 | 2026-03-14 |
|
||||
| ai-seo | 1.2.0 | 2026-03-14 |
|
||||
| analytics-tracking | 1.2.0 | 2026-03-14 |
|
||||
| aso-audit | 1.0.0 | 2026-04-21 |
|
||||
| churn-prevention | 1.2.0 | 2026-03-14 |
|
||||
| cold-email | 1.2.0 | 2026-03-14 |
|
||||
| competitor-alternatives | 1.2.0 | 2026-03-14 |
|
||||
| community-marketing | 1.0.0 | 2026-04-21 |
|
||||
| competitor-profiling | 1.0.0 | 2026-04-07 |
|
||||
| content-strategy | 1.2.0 | 2026-03-14 |
|
||||
| copy-editing | 1.2.0 | 2026-03-14 |
|
||||
| copywriting | 1.2.0 | 2026-03-14 |
|
||||
| customer-research | 1.0.0 | 2026-04-21 |
|
||||
| directory-submissions | 1.0.0 | 2026-04-21 |
|
||||
| email-sequence | 1.2.0 | 2026-03-14 |
|
||||
| form-cro | 1.2.0 | 2026-03-14 |
|
||||
| free-tool-strategy | 1.2.0 | 2026-03-14 |
|
||||
| launch-strategy | 1.2.0 | 2026-03-14 |
|
||||
| lead-magnets | 1.0.0 | 2026-03-14 |
|
||||
| marketing-ideas | 1.2.0 | 2026-03-14 |
|
||||
| marketing-psychology | 1.2.0 | 2026-03-14 |
|
||||
| onboarding-cro | 1.2.0 | 2026-03-14 |
|
||||
| page-cro | 1.2.0 | 2026-03-14 |
|
||||
| paid-ads | 1.2.0 | 2026-03-14 |
|
||||
| paywall-upgrade-cro | 1.2.0 | 2026-03-14 |
|
||||
| popup-cro | 1.2.0 | 2026-03-14 |
|
||||
| pricing-strategy | 1.2.0 | 2026-03-14 |
|
||||
| product-marketing-context | 1.2.0 | 2026-03-14 |
|
||||
| programmatic-seo | 1.2.0 | 2026-03-14 |
|
||||
| referral-program | 1.2.0 | 2026-03-14 |
|
||||
| revops | 1.2.0 | 2026-03-14 |
|
||||
| sales-enablement | 1.2.0 | 2026-03-14 |
|
||||
| schema-markup | 1.2.0 | 2026-03-14 |
|
||||
| seo-audit | 1.2.0 | 2026-03-14 |
|
||||
| signup-flow-cro | 1.2.0 | 2026-03-14 |
|
||||
| site-architecture | 1.2.0 | 2026-03-14 |
|
||||
| social-content | 1.2.0 | 2026-03-14 |
|
||||
| video | 1.0.0 | 2026-04-21 |
|
||||
|
||||
## Recent Changes
|
||||
|
||||
### 2026-04-21
|
||||
- Added `directory-submissions` skill for Product Hunt, G2, AI directories, and backlink strategy
|
||||
- Added `competitor-profiling` skill for competitive intelligence research
|
||||
- Added international SEO & localization section to `seo-audit` (1.2.0)
|
||||
- Added conversion tracking reference to `paid-ads` (cross-platform pixel setup)
|
||||
- Added Zapier SDK integration for 8,000+ app access
|
||||
- Fixed plugin loading: removed `./` prefix from marketplace.json skill paths (#243)
|
||||
- Hardened CLI tools: Supermetrics API key moved to header, ZoomInfo JWT masked by default
|
||||
- Fixed community-marketing YAML frontmatter (#240)
|
||||
- Fixed Zapier webhook URL validation (#247)
|
||||
- Added missing skills to VERSIONS.md (aso-audit, community-marketing, customer-research — shipped in prior releases)
|
||||
- Total skills: 38
|
||||
|
||||
### 2026-03-14
|
||||
- Added `lead-magnets` skill for lead magnet strategy, format selection, and conversion optimization
|
||||
- Added Composio integration layer for MCP access to OAuth-heavy tools (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion, etc.)
|
||||
- Added headless CMS integration guides (Sanity, Contentful, Strapi) with headless-cms reference
|
||||
- Added 197 evals across all 33 skills for automated quality testing
|
||||
- Optimized all 32 skill descriptions for better trigger phrase matching
|
||||
- Replaced rigid imperatives with reasoning-based guidance across all skills
|
||||
- Added 10 new CLI tools (airops, clay, close, coupler, crossbeam, outreach, pendo, similarweb, supermetrics, zoominfo)
|
||||
- Added 13 new integration guides
|
||||
- Bumped all 32 existing skills from 1.1.0 → 1.2.0
|
||||
|
||||
### 2026-02-27
|
||||
- Migrated context path from `.claude/` to `.agents/` for agent-agnostic compatibility
|
||||
- All skills now check `.agents/product-marketing-context.md` first, with `.claude/` fallback for older setups
|
||||
- Updated install paths in README to reference `.agents/skills/`
|
||||
- Bumped all 32 skills from 1.0.0 → 1.1.0
|
||||
|
||||
### 2026-02-22
|
||||
- Added `revops` skill for revenue operations, lead lifecycle, scoring, routing, pipeline management, and CRM automation
|
||||
- Added `sales-enablement` skill for sales decks, one-pagers, objection handling, demo scripts, and sales playbooks
|
||||
|
||||
### 2026-02-21
|
||||
- Added `site-architecture` skill for website structure planning, page hierarchy, navigation design, URL structure, and internal linking strategy
|
||||
|
||||
### 2026-02-18
|
||||
- Added `ai-seo` skill for AI search optimization (AEO, GEO, LLMO, AI Overviews)
|
||||
- Moved AEO/GEO content patterns from `seo-audit` references to `ai-seo` skill
|
||||
- Added `churn-prevention` skill for cancel flows, save offers, dunning, and payment recovery
|
||||
|
||||
### 2026-02-17
|
||||
- Added `ad-creative` skill for bulk ad creative generation and performance-based iteration
|
||||
- Added 51 zero-dependency CLI tools for marketing platforms (`tools/clis/`)
|
||||
- Added 31 new integration guides (`tools/integrations/`)
|
||||
- Added 4 email outreach CLIs: hunter, snov, lemlist, instantly
|
||||
- Security hardening: header auth for meta-ads, URL encoding, input validation
|
||||
- All CLIs reviewed via independent codex audit (auth, security, error handling, consistency)
|
||||
|
||||
### 2026-01-27
|
||||
- Initial version tracking added
|
||||
- Added tools registry with 29 integration guides
|
||||
+150
-305
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: ab-test-setup
|
||||
description: When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," or "hypothesis." For tracking implementation, see analytics-tracking.
|
||||
description: When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.
|
||||
metadata:
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# A/B Test Setup
|
||||
@@ -9,22 +11,14 @@ You are an expert in experimentation and A/B testing. Your goal is to help desig
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Before designing a test, understand:
|
||||
|
||||
1. **Test Context**
|
||||
- What are you trying to improve?
|
||||
- What change are you considering?
|
||||
- What made you want to test this?
|
||||
|
||||
2. **Current State**
|
||||
- Baseline conversion rate?
|
||||
- Current traffic volume?
|
||||
- Any historical test data?
|
||||
|
||||
3. **Constraints**
|
||||
- Technical implementation complexity?
|
||||
- Timeline requirements?
|
||||
- Tools available?
|
||||
1. **Test Context** - What are you trying to improve? What change are you considering?
|
||||
2. **Current State** - Baseline conversion rate? Current traffic volume?
|
||||
3. **Constraints** - Technical complexity? Timeline? Tools available?
|
||||
|
||||
---
|
||||
|
||||
@@ -38,7 +32,6 @@ Before designing a test, understand:
|
||||
### 2. Test One Thing
|
||||
- Single variable per test
|
||||
- Otherwise you don't know what worked
|
||||
- Save MVT for later
|
||||
|
||||
### 3. Statistical Rigor
|
||||
- Pre-determine sample size
|
||||
@@ -64,81 +57,41 @@ for [audience].
|
||||
We'll know this is true when [metrics].
|
||||
```
|
||||
|
||||
### Examples
|
||||
### Example
|
||||
|
||||
**Weak hypothesis:**
|
||||
"Changing the button color might increase clicks."
|
||||
**Weak**: "Changing the button color might increase clicks."
|
||||
|
||||
**Strong hypothesis:**
|
||||
"Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start."
|
||||
|
||||
### Good Hypotheses Include
|
||||
|
||||
- **Observation**: What prompted this idea
|
||||
- **Change**: Specific modification
|
||||
- **Effect**: Expected outcome and direction
|
||||
- **Audience**: Who this applies to
|
||||
- **Metric**: How you'll measure success
|
||||
**Strong**: "Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start."
|
||||
|
||||
---
|
||||
|
||||
## Test Types
|
||||
|
||||
### A/B Test (Split Test)
|
||||
- Two versions: Control (A) vs. Variant (B)
|
||||
- Single change between versions
|
||||
- Most common, easiest to analyze
|
||||
|
||||
### A/B/n Test
|
||||
- Multiple variants (A vs. B vs. C...)
|
||||
- Requires more traffic
|
||||
- Good for testing several options
|
||||
|
||||
### Multivariate Test (MVT)
|
||||
- Multiple changes in combinations
|
||||
- Tests interactions between changes
|
||||
- Requires significantly more traffic
|
||||
- Complex analysis
|
||||
|
||||
### Split URL Test
|
||||
- Different URLs for variants
|
||||
- Good for major page changes
|
||||
- Easier implementation sometimes
|
||||
| Type | Description | Traffic Needed |
|
||||
|------|-------------|----------------|
|
||||
| A/B | Two versions, single change | Moderate |
|
||||
| A/B/n | Multiple variants | Higher |
|
||||
| MVT | Multiple changes in combinations | Very high |
|
||||
| Split URL | Different URLs for variants | Moderate |
|
||||
|
||||
---
|
||||
|
||||
## Sample Size Calculation
|
||||
|
||||
### Inputs Needed
|
||||
|
||||
1. **Baseline conversion rate**: Your current rate
|
||||
2. **Minimum detectable effect (MDE)**: Smallest change worth detecting
|
||||
3. **Statistical significance level**: Usually 95%
|
||||
4. **Statistical power**: Usually 80%
|
||||
## Sample Size
|
||||
|
||||
### Quick Reference
|
||||
|
||||
| Baseline Rate | 10% Lift | 20% Lift | 50% Lift |
|
||||
|---------------|----------|----------|----------|
|
||||
| Baseline | 10% Lift | 20% Lift | 50% Lift |
|
||||
|----------|----------|----------|----------|
|
||||
| 1% | 150k/variant | 39k/variant | 6k/variant |
|
||||
| 3% | 47k/variant | 12k/variant | 2k/variant |
|
||||
| 5% | 27k/variant | 7k/variant | 1.2k/variant |
|
||||
| 10% | 12k/variant | 3k/variant | 550/variant |
|
||||
|
||||
### Formula Resources
|
||||
- Evan Miller's calculator: https://www.evanmiller.org/ab-testing/sample-size.html
|
||||
- Optimizely's calculator: https://www.optimizely.com/sample-size-calculator/
|
||||
**Calculators:**
|
||||
- [Evan Miller's](https://www.evanmiller.org/ab-testing/sample-size.html)
|
||||
- [Optimizely's](https://www.optimizely.com/sample-size-calculator/)
|
||||
|
||||
### Test Duration
|
||||
|
||||
```
|
||||
Duration = Sample size needed per variant × Number of variants
|
||||
───────────────────────────────────────────────────
|
||||
Daily traffic to test page × Conversion rate
|
||||
```
|
||||
|
||||
Minimum: 1-2 business cycles (usually 1-2 weeks)
|
||||
Maximum: Avoid running too long (novelty effects, external factors)
|
||||
**For detailed sample size tables and duration calculations**: See [references/sample-size-guide.md](references/sample-size-guide.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -152,228 +105,106 @@ Maximum: Avoid running too long (novelty effects, external factors)
|
||||
### Secondary Metrics
|
||||
- Support primary metric interpretation
|
||||
- Explain why/how the change worked
|
||||
- Help understand user behavior
|
||||
|
||||
### Guardrail Metrics
|
||||
- Things that shouldn't get worse
|
||||
- Revenue, retention, satisfaction
|
||||
- Stop test if significantly negative
|
||||
|
||||
### Metric Examples by Test Type
|
||||
|
||||
**Homepage CTA test:**
|
||||
- Primary: CTA click-through rate
|
||||
- Secondary: Time to click, scroll depth
|
||||
- Guardrail: Bounce rate, downstream conversion
|
||||
|
||||
**Pricing page test:**
|
||||
- Primary: Plan selection rate
|
||||
- Secondary: Time on page, plan distribution
|
||||
- Guardrail: Support tickets, refund rate
|
||||
|
||||
**Signup flow test:**
|
||||
- Primary: Signup completion rate
|
||||
- Secondary: Field-level completion, time to complete
|
||||
- Guardrail: User activation rate (post-signup quality)
|
||||
### Example: Pricing Page Test
|
||||
- **Primary**: Plan selection rate
|
||||
- **Secondary**: Time on page, plan distribution
|
||||
- **Guardrail**: Support tickets, refund rate
|
||||
|
||||
---
|
||||
|
||||
## Designing Variants
|
||||
|
||||
### Control (A)
|
||||
- Current experience, unchanged
|
||||
- Don't modify during test
|
||||
### What to Vary
|
||||
|
||||
### Variant (B+)
|
||||
| Category | Examples |
|
||||
|----------|----------|
|
||||
| Headlines/Copy | Message angle, value prop, specificity, tone |
|
||||
| Visual Design | Layout, color, images, hierarchy |
|
||||
| CTA | Button copy, size, placement, number |
|
||||
| Content | Information included, order, amount, social proof |
|
||||
|
||||
**Best practices:**
|
||||
### Best Practices
|
||||
- Single, meaningful change
|
||||
- Bold enough to make a difference
|
||||
- True to the hypothesis
|
||||
|
||||
**What to vary:**
|
||||
|
||||
Headlines/Copy:
|
||||
- Message angle
|
||||
- Value proposition
|
||||
- Specificity level
|
||||
- Tone/voice
|
||||
|
||||
Visual Design:
|
||||
- Layout structure
|
||||
- Color and contrast
|
||||
- Image selection
|
||||
- Visual hierarchy
|
||||
|
||||
CTA:
|
||||
- Button copy
|
||||
- Size/prominence
|
||||
- Placement
|
||||
- Number of CTAs
|
||||
|
||||
Content:
|
||||
- Information included
|
||||
- Order of information
|
||||
- Amount of content
|
||||
- Social proof type
|
||||
|
||||
### Documenting Variants
|
||||
|
||||
```
|
||||
Control (A):
|
||||
- Screenshot
|
||||
- Description of current state
|
||||
|
||||
Variant (B):
|
||||
- Screenshot or mockup
|
||||
- Specific changes made
|
||||
- Hypothesis for why this will win
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Traffic Allocation
|
||||
|
||||
### Standard Split
|
||||
- 50/50 for A/B test
|
||||
- Equal split for multiple variants
|
||||
| Approach | Split | When to Use |
|
||||
|----------|-------|-------------|
|
||||
| Standard | 50/50 | Default for A/B |
|
||||
| Conservative | 90/10, 80/20 | Limit risk of bad variant |
|
||||
| Ramping | Start small, increase | Technical risk mitigation |
|
||||
|
||||
### Conservative Rollout
|
||||
- 90/10 or 80/20 initially
|
||||
- Limits risk of bad variant
|
||||
- Longer to reach significance
|
||||
|
||||
### Ramping
|
||||
- Start small, increase over time
|
||||
- Good for technical risk mitigation
|
||||
- Most tools support this
|
||||
|
||||
### Considerations
|
||||
**Considerations:**
|
||||
- Consistency: Users see same variant on return
|
||||
- Segment sizes: Ensure segments are large enough
|
||||
- Time of day/week: Balanced exposure
|
||||
- Balanced exposure across time of day/week
|
||||
|
||||
---
|
||||
|
||||
## Implementation Approaches
|
||||
## Implementation
|
||||
|
||||
### Client-Side Testing
|
||||
|
||||
**Tools**: PostHog, Optimizely, VWO, custom
|
||||
|
||||
**How it works**:
|
||||
### Client-Side
|
||||
- JavaScript modifies page after load
|
||||
- Quick to implement
|
||||
- Can cause flicker
|
||||
- Quick to implement, can cause flicker
|
||||
- Tools: PostHog, Optimizely, VWO
|
||||
|
||||
**Best for**:
|
||||
- Marketing pages
|
||||
- Copy/visual changes
|
||||
- Quick iteration
|
||||
|
||||
### Server-Side Testing
|
||||
|
||||
**Tools**: PostHog, LaunchDarkly, Split, custom
|
||||
|
||||
**How it works**:
|
||||
- Variant determined before page renders
|
||||
- No flicker
|
||||
- Requires development work
|
||||
|
||||
**Best for**:
|
||||
- Product features
|
||||
- Complex changes
|
||||
- Performance-sensitive pages
|
||||
|
||||
### Feature Flags
|
||||
|
||||
- Binary on/off (not true A/B)
|
||||
- Good for rollouts
|
||||
- Can convert to A/B with percentage split
|
||||
### Server-Side
|
||||
- Variant determined before render
|
||||
- No flicker, requires dev work
|
||||
- Tools: PostHog, LaunchDarkly, Split
|
||||
|
||||
---
|
||||
|
||||
## Running the Test
|
||||
|
||||
### Pre-Launch Checklist
|
||||
|
||||
- [ ] Hypothesis documented
|
||||
- [ ] Primary metric defined
|
||||
- [ ] Sample size calculated
|
||||
- [ ] Test duration estimated
|
||||
- [ ] Variants implemented correctly
|
||||
- [ ] Tracking verified
|
||||
- [ ] QA completed on all variants
|
||||
- [ ] Stakeholders informed
|
||||
|
||||
### During the Test
|
||||
|
||||
**DO:**
|
||||
- Monitor for technical issues
|
||||
- Check segment quality
|
||||
- Document any external factors
|
||||
- Document external factors
|
||||
|
||||
**DON'T:**
|
||||
**Avoid:**
|
||||
- Peek at results and stop early
|
||||
- Make changes to variants
|
||||
- Add traffic from new sources
|
||||
- End early because you "know" the answer
|
||||
|
||||
### Peeking Problem
|
||||
|
||||
Looking at results before reaching sample size and stopping when you see significance leads to:
|
||||
- False positives
|
||||
- Inflated effect sizes
|
||||
- Wrong decisions
|
||||
|
||||
**Solutions:**
|
||||
- Pre-commit to sample size and stick to it
|
||||
- Use sequential testing if you must peek
|
||||
- Trust the process
|
||||
### The Peeking Problem
|
||||
Looking at results before reaching sample size and stopping early leads to false positives and wrong decisions. Pre-commit to sample size and trust the process.
|
||||
|
||||
---
|
||||
|
||||
## Analyzing Results
|
||||
|
||||
### Statistical Significance
|
||||
|
||||
- 95% confidence = p-value < 0.05
|
||||
- Means: <5% chance result is random
|
||||
- Means <5% chance result is random
|
||||
- Not a guarantee—just a threshold
|
||||
|
||||
### Practical Significance
|
||||
### Analysis Checklist
|
||||
|
||||
Statistical ≠ Practical
|
||||
|
||||
- Is the effect size meaningful for business?
|
||||
- Is it worth the implementation cost?
|
||||
- Is it sustainable over time?
|
||||
|
||||
### What to Look At
|
||||
|
||||
1. **Did you reach sample size?**
|
||||
- If not, result is preliminary
|
||||
|
||||
2. **Is it statistically significant?**
|
||||
- Check confidence intervals
|
||||
- Check p-value
|
||||
|
||||
3. **Is the effect size meaningful?**
|
||||
- Compare to your MDE
|
||||
- Project business impact
|
||||
|
||||
4. **Are secondary metrics consistent?**
|
||||
- Do they support the primary?
|
||||
- Any unexpected effects?
|
||||
|
||||
5. **Any guardrail concerns?**
|
||||
- Did anything get worse?
|
||||
- Long-term risks?
|
||||
|
||||
6. **Segment differences?**
|
||||
- Mobile vs. desktop?
|
||||
- New vs. returning?
|
||||
- Traffic source?
|
||||
1. **Reach sample size?** If not, result is preliminary
|
||||
2. **Statistically significant?** Check confidence intervals
|
||||
3. **Effect size meaningful?** Compare to MDE, project impact
|
||||
4. **Secondary metrics consistent?** Support the primary?
|
||||
5. **Guardrail concerns?** Anything get worse?
|
||||
6. **Segment differences?** Mobile vs. desktop? New vs. returning?
|
||||
|
||||
### Interpreting Results
|
||||
|
||||
@@ -386,84 +217,102 @@ Statistical ≠ Practical
|
||||
|
||||
---
|
||||
|
||||
## Documenting and Learning
|
||||
## Documentation
|
||||
|
||||
### Test Documentation
|
||||
Document every test with:
|
||||
- Hypothesis
|
||||
- Variants (with screenshots)
|
||||
- Results (sample, metrics, significance)
|
||||
- Decision and learnings
|
||||
|
||||
```
|
||||
Test Name: [Name]
|
||||
Test ID: [ID in testing tool]
|
||||
Dates: [Start] - [End]
|
||||
Owner: [Name]
|
||||
|
||||
Hypothesis:
|
||||
[Full hypothesis statement]
|
||||
|
||||
Variants:
|
||||
- Control: [Description + screenshot]
|
||||
- Variant: [Description + screenshot]
|
||||
|
||||
Results:
|
||||
- Sample size: [achieved vs. target]
|
||||
- Primary metric: [control] vs. [variant] ([% change], [confidence])
|
||||
- Secondary metrics: [summary]
|
||||
- Segment insights: [notable differences]
|
||||
|
||||
Decision: [Winner/Loser/Inconclusive]
|
||||
Action: [What we're doing]
|
||||
|
||||
Learnings:
|
||||
[What we learned, what to test next]
|
||||
```
|
||||
|
||||
### Building a Learning Repository
|
||||
|
||||
- Central location for all tests
|
||||
- Searchable by page, element, outcome
|
||||
- Prevents re-running failed tests
|
||||
- Builds institutional knowledge
|
||||
**For templates**: See [references/test-templates.md](references/test-templates.md)
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
## Growth Experimentation Program
|
||||
|
||||
### Test Plan Document
|
||||
Individual tests are valuable. A continuous experimentation program is a compounding asset. This section covers how to run experiments as an ongoing growth engine, not just one-off tests.
|
||||
|
||||
### The Experiment Loop
|
||||
|
||||
```
|
||||
# A/B Test: [Name]
|
||||
|
||||
## Hypothesis
|
||||
[Full hypothesis using framework]
|
||||
|
||||
## Test Design
|
||||
- Type: A/B / A/B/n / MVT
|
||||
- Duration: X weeks
|
||||
- Sample size: X per variant
|
||||
- Traffic allocation: 50/50
|
||||
|
||||
## Variants
|
||||
[Control and variant descriptions with visuals]
|
||||
|
||||
## Metrics
|
||||
- Primary: [metric and definition]
|
||||
- Secondary: [list]
|
||||
- Guardrails: [list]
|
||||
|
||||
## Implementation
|
||||
- Method: Client-side / Server-side
|
||||
- Tool: [Tool name]
|
||||
- Dev requirements: [If any]
|
||||
|
||||
## Analysis Plan
|
||||
- Success criteria: [What constitutes a win]
|
||||
- Segment analysis: [Planned segments]
|
||||
1. Generate hypotheses (from data, research, competitors, customer feedback)
|
||||
2. Prioritize with ICE scoring
|
||||
3. Design and run the test
|
||||
4. Analyze results with statistical rigor
|
||||
5. Promote winners to a playbook
|
||||
6. Generate new hypotheses from learnings
|
||||
→ Repeat
|
||||
```
|
||||
|
||||
### Results Summary
|
||||
When test is complete
|
||||
### Hypothesis Generation
|
||||
|
||||
### Recommendations
|
||||
Next steps based on results
|
||||
Feed your experiment backlog from multiple sources:
|
||||
|
||||
| Source | What to Look For |
|
||||
|--------|-----------------|
|
||||
| Analytics | Drop-off points, low-converting pages, underperforming segments |
|
||||
| Customer research | Pain points, confusion, unmet expectations |
|
||||
| Competitor analysis | Features, messaging, or UX patterns they use that you don't |
|
||||
| Support tickets | Recurring questions or complaints about conversion flows |
|
||||
| Heatmaps/recordings | Where users hesitate, rage-click, or abandon |
|
||||
| Past experiments | "Significant loser" tests often reveal new angles to try |
|
||||
|
||||
### ICE Prioritization
|
||||
|
||||
Score each hypothesis 1-10 on three dimensions:
|
||||
|
||||
| Dimension | Question |
|
||||
|-----------|----------|
|
||||
| **Impact** | If this works, how much will it move the primary metric? |
|
||||
| **Confidence** | How sure are we this will work? (Based on data, not gut.) |
|
||||
| **Ease** | How fast and cheap can we ship and measure this? |
|
||||
|
||||
**ICE Score** = (Impact + Confidence + Ease) / 3
|
||||
|
||||
Run highest-scoring experiments first. Re-score monthly as context changes.
|
||||
|
||||
### Experiment Velocity
|
||||
|
||||
Track your experimentation rate as a leading indicator of growth:
|
||||
|
||||
| Metric | Target |
|
||||
|--------|--------|
|
||||
| Experiments launched per month | 4-8 for most teams |
|
||||
| Win rate | 20-30% is common for mature programs (sustained higher rates may indicate conservative hypotheses) |
|
||||
| Average test duration | 2-4 weeks |
|
||||
| Backlog depth | 20+ hypotheses queued |
|
||||
| Cumulative lift | Compound gains from all winners |
|
||||
|
||||
### The Experiment Playbook
|
||||
|
||||
When a test wins, don't just implement it — document the pattern:
|
||||
|
||||
```
|
||||
## [Experiment Name]
|
||||
**Date**: [date]
|
||||
**Hypothesis**: [the hypothesis]
|
||||
**Sample size**: [n per variant]
|
||||
**Result**: [winner/loser/inconclusive] — [primary metric] changed by [X%] (95% CI: [range], p=[value])
|
||||
**Guardrails**: [any guardrail metrics and their outcomes]
|
||||
**Segment deltas**: [notable differences by device, segment, or cohort]
|
||||
**Why it worked/failed**: [analysis]
|
||||
**Pattern**: [the reusable insight — e.g., "social proof near pricing CTAs increases plan selection"]
|
||||
**Apply to**: [other pages/flows where this pattern might work]
|
||||
**Status**: [implemented / parked / needs follow-up test]
|
||||
```
|
||||
|
||||
Over time, your playbook becomes a library of proven growth patterns specific to your product and audience.
|
||||
|
||||
### Experiment Cadence
|
||||
|
||||
**Weekly (30 min)**: Review running experiments for technical issues and guardrail metrics. Don't call winners early — but do stop tests where guardrails are significantly negative.
|
||||
|
||||
**Bi-weekly**: Conclude completed experiments. Analyze results, update playbook, launch next experiment from backlog.
|
||||
|
||||
**Monthly (1 hour)**: Review experiment velocity, win rate, cumulative lift. Replenish hypothesis backlog. Re-prioritize with ICE.
|
||||
|
||||
**Quarterly**: Audit the playbook. Which patterns have been applied broadly? Which winning patterns haven't been scaled yet? What areas of the funnel are under-tested?
|
||||
|
||||
---
|
||||
|
||||
@@ -473,25 +322,21 @@ Next steps based on results
|
||||
- Testing too small a change (undetectable)
|
||||
- Testing too many things (can't isolate)
|
||||
- No clear hypothesis
|
||||
- Wrong audience
|
||||
|
||||
### Execution
|
||||
- Stopping early
|
||||
- Changing things mid-test
|
||||
- Not checking implementation
|
||||
- Uneven traffic allocation
|
||||
|
||||
### Analysis
|
||||
- Ignoring confidence intervals
|
||||
- Cherry-picking segments
|
||||
- Over-interpreting inconclusive results
|
||||
- Not considering practical significance
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What's your current conversion rate?
|
||||
2. How much traffic does this page get?
|
||||
3. What change are you considering and why?
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"skill_name": "ab-test-setup",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "I want to A/B test our homepage headline. We currently say 'The All-in-One Project Management Tool' and want to test something benefit-focused. We get about 15,000 visitors/month and our current signup rate is 3.2%.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should build a proper hypothesis using the framework: 'Because [observation], we believe [change] will cause [outcome], which we'll measure by [metric].' Should identify this as an A/B test (two variants). Should calculate or reference sample size needs based on 15,000 monthly visitors and 3.2% baseline. Should define primary metric (signup rate), secondary metrics, and guardrail metrics. Should warn about the peeking problem and recommend a fixed test duration. Should provide the test plan in the structured output format.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Uses the hypothesis framework with observation, belief, outcome, and metric",
|
||||
"Identifies as A/B test type",
|
||||
"Addresses sample size calculation based on traffic and baseline rate",
|
||||
"Defines primary metric (signup rate)",
|
||||
"Defines secondary and guardrail metrics",
|
||||
"Warns about the peeking problem",
|
||||
"Provides structured test plan output"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "we want to test like 4 different CTA button colors on our pricing page. is that a good idea?",
|
||||
"expected_output": "Should trigger on casual phrasing. Should identify this as an A/B/n test (multiple variants). Should caution that testing 4 variants requires significantly more traffic than a simple A/B test. Should reference the sample size quick reference showing traffic multipliers for multiple variants. Should question whether button color alone is likely to produce meaningful lift vs testing CTA copy, placement, or surrounding context. Should recommend either reducing to 2 variants or ensuring sufficient traffic. Should still provide hypothesis framework and test setup if proceeding.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Identifies as A/B/n test (multiple variants)",
|
||||
"Cautions about increased traffic needs for 4 variants",
|
||||
"References sample size requirements",
|
||||
"Questions whether button color alone is high-impact",
|
||||
"Suggests alternative higher-impact elements to test",
|
||||
"Provides hypothesis framework"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "Our test has been running for 3 days and Variant B is winning with 95% confidence. Should we call it?",
|
||||
"expected_output": "Should immediately address the peeking problem. Should explain that checking results early inflates false positive rates. Should recommend running for the full pre-calculated duration regardless of early results. Should explain why early significance can be misleading (regression to the mean, day-of-week effects, audience mix shifts). Should provide guidance on when it IS appropriate to stop early (sequential testing methods). Should recommend the pre-test commitment to duration.",
|
||||
"assertions": [
|
||||
"Addresses the peeking problem directly",
|
||||
"Explains why early significance is misleading",
|
||||
"Recommends running for full pre-calculated duration",
|
||||
"Mentions day-of-week effects or audience mix shifts",
|
||||
"Explains false positive rate inflation from peeking",
|
||||
"Mentions sequential testing as alternative approach"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Help me set up a multivariate test on our landing page. I want to test the headline, hero image, and CTA button simultaneously.",
|
||||
"expected_output": "Should identify this as a Multivariate Test (MVT). Should explain that MVT tests combinations of elements and requires much more traffic than A/B tests. Should calculate or reference traffic needs (combinations multiply: e.g., 2 headlines × 2 images × 2 CTAs = 8 combinations). Should recommend MVT only if traffic supports it, otherwise suggest sequential A/B tests. Should build hypotheses for each element being tested. Should define interaction effects to watch for. Should provide structured test plan.",
|
||||
"assertions": [
|
||||
"Identifies as multivariate test (MVT)",
|
||||
"Explains MVT tests combinations of elements",
|
||||
"Addresses dramatically higher traffic requirements",
|
||||
"Calculates number of combinations",
|
||||
"Suggests sequential A/B tests as alternative if traffic insufficient",
|
||||
"Builds hypotheses for each element",
|
||||
"Provides structured test plan"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "What metrics should I track for an A/B test on our trial signup page? We're testing a longer form (adds company size and role fields) against the current short form.",
|
||||
"expected_output": "Should apply the metrics selection framework with three tiers: primary, secondary, and guardrail metrics. Primary: form completion rate (the direct conversion metric). Secondary: lead quality metrics (SQL conversion rate, activation rate post-signup). Guardrail: overall signup volume (ensure longer form doesn't tank total signups below acceptable threshold). Should explain the tradeoff between conversion quantity and lead quality. Should note that this test needs longer observation window to measure downstream metrics.",
|
||||
"assertions": [
|
||||
"Applies three-tier metric framework (primary, secondary, guardrail)",
|
||||
"Identifies form completion rate as primary metric",
|
||||
"Identifies lead quality as secondary metric",
|
||||
"Defines guardrail metrics to protect against negative outcomes",
|
||||
"Explains quantity vs quality tradeoff",
|
||||
"Notes need for longer observation window for downstream metrics"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Can you help me write copy for our new landing page? We want to test it against the current version.",
|
||||
"expected_output": "Should recognize this is primarily a copywriting task, not a test setup task. Should defer to or cross-reference the copywriting skill for writing the actual copy. May help frame the test hypothesis and setup, but should make clear that copywriting is the right skill for creating the page copy itself.",
|
||||
"assertions": [
|
||||
"Recognizes this as primarily a copywriting task",
|
||||
"References or defers to copywriting skill",
|
||||
"Does not attempt to write full page copy using test setup patterns",
|
||||
"May offer to help with test hypothesis and setup"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"prompt": "We ran an A/B test on our pricing page for 4 weeks. Control: 2.1% conversion. Variant: 2.4% conversion. 12,000 visitors per variant. Is this statistically significant? Should we ship it?",
|
||||
"expected_output": "Should evaluate the results against statistical significance criteria. Should calculate or estimate whether the sample size is sufficient to detect a 0.3 percentage point lift from a 2.1% baseline (this is a ~14% relative lift). Should reference the 95% confidence threshold. Should discuss practical significance vs statistical significance. Should recommend whether to ship, continue testing, or iterate. Should consider segment analysis if results are borderline.",
|
||||
"assertions": [
|
||||
"Evaluates against statistical significance criteria",
|
||||
"Addresses whether sample size is sufficient for this effect size",
|
||||
"References 95% confidence threshold",
|
||||
"Distinguishes statistical significance from practical significance",
|
||||
"Provides clear recommendation on shipping",
|
||||
"Suggests segment analysis or follow-up if borderline"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
# Sample Size Guide
|
||||
|
||||
Reference for calculating sample sizes and test duration.
|
||||
|
||||
## Contents
|
||||
- Sample Size Fundamentals (required inputs, what these mean)
|
||||
- Sample Size Quick Reference Tables
|
||||
- Duration Calculator (formula, examples, minimum duration rules, maximum duration guidelines)
|
||||
- Online Calculators
|
||||
- Adjusting for Multiple Variants
|
||||
- Common Sample Size Mistakes
|
||||
- When Sample Size Requirements Are Too High
|
||||
- Sequential Testing
|
||||
- Quick Decision Framework
|
||||
|
||||
## Sample Size Fundamentals
|
||||
|
||||
### Required Inputs
|
||||
|
||||
1. **Baseline conversion rate**: Your current rate
|
||||
2. **Minimum detectable effect (MDE)**: Smallest change worth detecting
|
||||
3. **Statistical significance level**: Usually 95% (α = 0.05)
|
||||
4. **Statistical power**: Usually 80% (β = 0.20)
|
||||
|
||||
### What These Mean
|
||||
|
||||
**Baseline conversion rate**: If your page converts at 5%, that's your baseline.
|
||||
|
||||
**MDE (Minimum Detectable Effect)**: The smallest improvement you care about detecting. Set this based on:
|
||||
- Business impact (is a 5% lift meaningful?)
|
||||
- Implementation cost (worth the effort?)
|
||||
- Realistic expectations (what have past tests shown?)
|
||||
|
||||
**Statistical significance (95%)**: Means there's less than 5% chance the observed difference is due to random chance.
|
||||
|
||||
**Statistical power (80%)**: Means if there's a real effect of size MDE, you have 80% chance of detecting it.
|
||||
|
||||
---
|
||||
|
||||
## Sample Size Quick Reference Tables
|
||||
|
||||
### Conversion Rate: 1%
|
||||
|
||||
| Lift to Detect | Sample per Variant | Total Sample |
|
||||
|----------------|-------------------|--------------|
|
||||
| 5% (1% → 1.05%) | 1,500,000 | 3,000,000 |
|
||||
| 10% (1% → 1.1%) | 380,000 | 760,000 |
|
||||
| 20% (1% → 1.2%) | 97,000 | 194,000 |
|
||||
| 50% (1% → 1.5%) | 16,000 | 32,000 |
|
||||
| 100% (1% → 2%) | 4,200 | 8,400 |
|
||||
|
||||
### Conversion Rate: 3%
|
||||
|
||||
| Lift to Detect | Sample per Variant | Total Sample |
|
||||
|----------------|-------------------|--------------|
|
||||
| 5% (3% → 3.15%) | 480,000 | 960,000 |
|
||||
| 10% (3% → 3.3%) | 120,000 | 240,000 |
|
||||
| 20% (3% → 3.6%) | 31,000 | 62,000 |
|
||||
| 50% (3% → 4.5%) | 5,200 | 10,400 |
|
||||
| 100% (3% → 6%) | 1,400 | 2,800 |
|
||||
|
||||
### Conversion Rate: 5%
|
||||
|
||||
| Lift to Detect | Sample per Variant | Total Sample |
|
||||
|----------------|-------------------|--------------|
|
||||
| 5% (5% → 5.25%) | 280,000 | 560,000 |
|
||||
| 10% (5% → 5.5%) | 72,000 | 144,000 |
|
||||
| 20% (5% → 6%) | 18,000 | 36,000 |
|
||||
| 50% (5% → 7.5%) | 3,100 | 6,200 |
|
||||
| 100% (5% → 10%) | 810 | 1,620 |
|
||||
|
||||
### Conversion Rate: 10%
|
||||
|
||||
| Lift to Detect | Sample per Variant | Total Sample |
|
||||
|----------------|-------------------|--------------|
|
||||
| 5% (10% → 10.5%) | 130,000 | 260,000 |
|
||||
| 10% (10% → 11%) | 34,000 | 68,000 |
|
||||
| 20% (10% → 12%) | 8,700 | 17,400 |
|
||||
| 50% (10% → 15%) | 1,500 | 3,000 |
|
||||
| 100% (10% → 20%) | 400 | 800 |
|
||||
|
||||
### Conversion Rate: 20%
|
||||
|
||||
| Lift to Detect | Sample per Variant | Total Sample |
|
||||
|----------------|-------------------|--------------|
|
||||
| 5% (20% → 21%) | 60,000 | 120,000 |
|
||||
| 10% (20% → 22%) | 16,000 | 32,000 |
|
||||
| 20% (20% → 24%) | 4,000 | 8,000 |
|
||||
| 50% (20% → 30%) | 700 | 1,400 |
|
||||
| 100% (20% → 40%) | 200 | 400 |
|
||||
|
||||
---
|
||||
|
||||
## Duration Calculator
|
||||
|
||||
### Formula
|
||||
|
||||
```
|
||||
Duration (days) = (Sample per variant × Number of variants) / (Daily traffic × % exposed)
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
**Scenario 1: High-traffic page**
|
||||
- Need: 10,000 per variant (2 variants = 20,000 total)
|
||||
- Daily traffic: 5,000 visitors
|
||||
- 100% exposed to test
|
||||
- Duration: 20,000 / 5,000 = **4 days**
|
||||
|
||||
**Scenario 2: Medium-traffic page**
|
||||
- Need: 30,000 per variant (60,000 total)
|
||||
- Daily traffic: 2,000 visitors
|
||||
- 100% exposed
|
||||
- Duration: 60,000 / 2,000 = **30 days**
|
||||
|
||||
**Scenario 3: Low-traffic with partial exposure**
|
||||
- Need: 15,000 per variant (30,000 total)
|
||||
- Daily traffic: 500 visitors
|
||||
- 50% exposed to test
|
||||
- Effective daily: 250
|
||||
- Duration: 30,000 / 250 = **120 days** (too long!)
|
||||
|
||||
### Minimum Duration Rules
|
||||
|
||||
Even with sufficient sample size, run tests for at least:
|
||||
- **1 full week**: To capture day-of-week variation
|
||||
- **2 business cycles**: If B2B (weekday vs. weekend patterns)
|
||||
- **Through paydays**: If e-commerce (beginning/end of month)
|
||||
|
||||
### Maximum Duration Guidelines
|
||||
|
||||
Avoid running tests longer than 4-8 weeks:
|
||||
- Novelty effects wear off
|
||||
- External factors intervene
|
||||
- Opportunity cost of other tests
|
||||
|
||||
---
|
||||
|
||||
## Online Calculators
|
||||
|
||||
### Recommended Tools
|
||||
|
||||
**Evan Miller's Calculator**
|
||||
https://www.evanmiller.org/ab-testing/sample-size.html
|
||||
- Simple interface
|
||||
- Bookmark-worthy
|
||||
|
||||
**Optimizely's Calculator**
|
||||
https://www.optimizely.com/sample-size-calculator/
|
||||
- Business-friendly language
|
||||
- Duration estimates
|
||||
|
||||
**AB Test Guide Calculator**
|
||||
https://www.abtestguide.com/calc/
|
||||
- Includes Bayesian option
|
||||
- Multiple test types
|
||||
|
||||
**VWO Duration Calculator**
|
||||
https://vwo.com/tools/ab-test-duration-calculator/
|
||||
- Duration-focused
|
||||
- Good for planning
|
||||
|
||||
---
|
||||
|
||||
## Adjusting for Multiple Variants
|
||||
|
||||
With more than 2 variants (A/B/n tests), you need more sample:
|
||||
|
||||
| Variants | Multiplier |
|
||||
|----------|------------|
|
||||
| 2 (A/B) | 1x |
|
||||
| 3 (A/B/C) | ~1.5x |
|
||||
| 4 (A/B/C/D) | ~2x |
|
||||
| 5+ | Consider reducing variants |
|
||||
|
||||
**Why?** More comparisons increase chance of false positives. You're comparing:
|
||||
- A vs B
|
||||
- A vs C
|
||||
- B vs C (sometimes)
|
||||
|
||||
Apply Bonferroni correction or use tools that handle this automatically.
|
||||
|
||||
---
|
||||
|
||||
## Common Sample Size Mistakes
|
||||
|
||||
### 1. Underpowered tests
|
||||
**Problem**: Not enough sample to detect realistic effects
|
||||
**Fix**: Be realistic about MDE, get more traffic, or don't test
|
||||
|
||||
### 2. Overpowered tests
|
||||
**Problem**: Waiting for sample size when you already have significance
|
||||
**Fix**: This is actually fine—you committed to sample size, honor it
|
||||
|
||||
### 3. Wrong baseline rate
|
||||
**Problem**: Using wrong conversion rate for calculation
|
||||
**Fix**: Use the specific metric and page, not site-wide averages
|
||||
|
||||
### 4. Ignoring segments
|
||||
**Problem**: Calculating for full traffic, then analyzing segments
|
||||
**Fix**: If you plan segment analysis, calculate sample for smallest segment
|
||||
|
||||
### 5. Testing too many things
|
||||
**Problem**: Dividing traffic too many ways
|
||||
**Fix**: Prioritize ruthlessly, run fewer concurrent tests
|
||||
|
||||
---
|
||||
|
||||
## When Sample Size Requirements Are Too High
|
||||
|
||||
Options when you can't get enough traffic:
|
||||
|
||||
1. **Increase MDE**: Accept only detecting larger effects (20%+ lift)
|
||||
2. **Lower confidence**: Use 90% instead of 95% (risky, document it)
|
||||
3. **Reduce variants**: Test only the most promising variant
|
||||
4. **Combine traffic**: Test across multiple similar pages
|
||||
5. **Test upstream**: Test earlier in funnel where traffic is higher
|
||||
6. **Don't test**: Make decision based on qualitative data instead
|
||||
7. **Longer test**: Accept longer duration (weeks/months)
|
||||
|
||||
---
|
||||
|
||||
## Sequential Testing
|
||||
|
||||
If you must check results before reaching sample size:
|
||||
|
||||
### What is it?
|
||||
Statistical method that adjusts for multiple looks at data.
|
||||
|
||||
### When to use
|
||||
- High-risk changes
|
||||
- Need to stop bad variants early
|
||||
- Time-sensitive decisions
|
||||
|
||||
### Tools that support it
|
||||
- Optimizely (Stats Accelerator)
|
||||
- VWO (SmartStats)
|
||||
- PostHog (Bayesian approach)
|
||||
|
||||
### Tradeoff
|
||||
- More flexibility to stop early
|
||||
- Slightly larger sample size requirement
|
||||
- More complex analysis
|
||||
|
||||
---
|
||||
|
||||
## Quick Decision Framework
|
||||
|
||||
### Can I run this test?
|
||||
|
||||
```
|
||||
Daily traffic to page: _____
|
||||
Baseline conversion rate: _____
|
||||
MDE I care about: _____
|
||||
|
||||
Sample needed per variant: _____ (from tables above)
|
||||
Days to run: Sample / Daily traffic = _____
|
||||
|
||||
If days > 60: Consider alternatives
|
||||
If days > 30: Acceptable for high-impact tests
|
||||
If days < 14: Likely feasible
|
||||
If days < 7: Easy to run, consider running longer anyway
|
||||
```
|
||||
@@ -0,0 +1,277 @@
|
||||
# A/B Test Templates Reference
|
||||
|
||||
Templates for planning, documenting, and analyzing experiments.
|
||||
|
||||
## Contents
|
||||
- Test Plan Template
|
||||
- Results Documentation Template
|
||||
- Test Repository Entry Template
|
||||
- Quick Test Brief Template
|
||||
- Stakeholder Update Template
|
||||
- Experiment Prioritization Scorecard
|
||||
- Hypothesis Bank Template
|
||||
|
||||
## Test Plan Template
|
||||
|
||||
```markdown
|
||||
# A/B Test: [Name]
|
||||
|
||||
## Overview
|
||||
- **Owner**: [Name]
|
||||
- **Test ID**: [ID in testing tool]
|
||||
- **Page/Feature**: [What's being tested]
|
||||
- **Planned dates**: [Start] - [End]
|
||||
|
||||
## Hypothesis
|
||||
|
||||
Because [observation/data],
|
||||
we believe [change]
|
||||
will cause [expected outcome]
|
||||
for [audience].
|
||||
We'll know this is true when [metrics].
|
||||
|
||||
## Test Design
|
||||
|
||||
| Element | Details |
|
||||
|---------|---------|
|
||||
| Test type | A/B / A/B/n / MVT |
|
||||
| Duration | X weeks |
|
||||
| Sample size | X per variant |
|
||||
| Traffic allocation | 50/50 |
|
||||
| Tool | [Tool name] |
|
||||
| Implementation | Client-side / Server-side |
|
||||
|
||||
## Variants
|
||||
|
||||
### Control (A)
|
||||
[Screenshot]
|
||||
- Current experience
|
||||
- [Key details about current state]
|
||||
|
||||
### Variant (B)
|
||||
[Screenshot or mockup]
|
||||
- [Specific change #1]
|
||||
- [Specific change #2]
|
||||
- Rationale: [Why we think this will win]
|
||||
|
||||
## Metrics
|
||||
|
||||
### Primary
|
||||
- **Metric**: [metric name]
|
||||
- **Definition**: [how it's calculated]
|
||||
- **Current baseline**: [X%]
|
||||
- **Minimum detectable effect**: [X%]
|
||||
|
||||
### Secondary
|
||||
- [Metric 1]: [what it tells us]
|
||||
- [Metric 2]: [what it tells us]
|
||||
- [Metric 3]: [what it tells us]
|
||||
|
||||
### Guardrails
|
||||
- [Metric that shouldn't get worse]
|
||||
- [Another safety metric]
|
||||
|
||||
## Segment Analysis Plan
|
||||
- Mobile vs. desktop
|
||||
- New vs. returning visitors
|
||||
- Traffic source
|
||||
- [Other relevant segments]
|
||||
|
||||
## Success Criteria
|
||||
- Winner: [Primary metric improves by X% with 95% confidence]
|
||||
- Loser: [Primary metric decreases significantly]
|
||||
- Inconclusive: [What we'll do if no significant result]
|
||||
|
||||
## Pre-Launch Checklist
|
||||
- [ ] Hypothesis documented and reviewed
|
||||
- [ ] Primary metric defined and trackable
|
||||
- [ ] Sample size calculated
|
||||
- [ ] Test duration estimated
|
||||
- [ ] Variants implemented correctly
|
||||
- [ ] Tracking verified in all variants
|
||||
- [ ] QA completed on all variants
|
||||
- [ ] Stakeholders informed
|
||||
- [ ] Calendar hold for analysis date
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Results Documentation Template
|
||||
|
||||
```markdown
|
||||
# A/B Test Results: [Name]
|
||||
|
||||
## Summary
|
||||
| Element | Value |
|
||||
|---------|-------|
|
||||
| Test ID | [ID] |
|
||||
| Dates | [Start] - [End] |
|
||||
| Duration | X days |
|
||||
| Result | Winner / Loser / Inconclusive |
|
||||
| Decision | [What we're doing] |
|
||||
|
||||
## Hypothesis (Reminder)
|
||||
[Copy from test plan]
|
||||
|
||||
## Results
|
||||
|
||||
### Sample Size
|
||||
| Variant | Target | Actual | % of target |
|
||||
|---------|--------|--------|-------------|
|
||||
| Control | X | Y | Z% |
|
||||
| Variant | X | Y | Z% |
|
||||
|
||||
### Primary Metric: [Metric Name]
|
||||
| Variant | Value | 95% CI | vs. Control |
|
||||
|---------|-------|--------|-------------|
|
||||
| Control | X% | [X%, Y%] | — |
|
||||
| Variant | X% | [X%, Y%] | +X% |
|
||||
|
||||
**Statistical significance**: p = X.XX (95% = sig / not sig)
|
||||
**Practical significance**: [Is this lift meaningful for the business?]
|
||||
|
||||
### Secondary Metrics
|
||||
|
||||
| Metric | Control | Variant | Change | Significant? |
|
||||
|--------|---------|---------|--------|--------------|
|
||||
| [Metric 1] | X | Y | +Z% | Yes/No |
|
||||
| [Metric 2] | X | Y | +Z% | Yes/No |
|
||||
|
||||
### Guardrail Metrics
|
||||
|
||||
| Metric | Control | Variant | Change | Concern? |
|
||||
|--------|---------|---------|--------|----------|
|
||||
| [Metric 1] | X | Y | +Z% | Yes/No |
|
||||
|
||||
### Segment Analysis
|
||||
|
||||
**Mobile vs. Desktop**
|
||||
| Segment | Control | Variant | Lift |
|
||||
|---------|---------|---------|------|
|
||||
| Mobile | X% | Y% | +Z% |
|
||||
| Desktop | X% | Y% | +Z% |
|
||||
|
||||
**New vs. Returning**
|
||||
| Segment | Control | Variant | Lift |
|
||||
|---------|---------|---------|------|
|
||||
| New | X% | Y% | +Z% |
|
||||
| Returning | X% | Y% | +Z% |
|
||||
|
||||
## Interpretation
|
||||
|
||||
### What happened?
|
||||
[Explanation of results in plain language]
|
||||
|
||||
### Why do we think this happened?
|
||||
[Analysis and reasoning]
|
||||
|
||||
### Caveats
|
||||
[Any limitations, external factors, or concerns]
|
||||
|
||||
## Decision
|
||||
|
||||
**Winner**: [Control / Variant]
|
||||
|
||||
**Action**: [Implement variant / Keep control / Re-test]
|
||||
|
||||
**Timeline**: [When changes will be implemented]
|
||||
|
||||
## Learnings
|
||||
|
||||
### What we learned
|
||||
- [Key insight 1]
|
||||
- [Key insight 2]
|
||||
|
||||
### What to test next
|
||||
- [Follow-up test idea 1]
|
||||
- [Follow-up test idea 2]
|
||||
|
||||
### Impact
|
||||
- **Projected lift**: [X% improvement in Y metric]
|
||||
- **Business impact**: [Revenue, conversions, etc.]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test Repository Entry Template
|
||||
|
||||
For tracking all tests in a central location:
|
||||
|
||||
```markdown
|
||||
| Test ID | Name | Page | Dates | Primary Metric | Result | Lift | Link |
|
||||
|---------|------|------|-------|----------------|--------|------|------|
|
||||
| 001 | Hero headline test | Homepage | 1/1-1/15 | CTR | Winner | +12% | [Link] |
|
||||
| 002 | Pricing table layout | Pricing | 1/10-1/31 | Plan selection | Loser | -5% | [Link] |
|
||||
| 003 | Signup form fields | Signup | 2/1-2/14 | Completion | Inconclusive | +2% | [Link] |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Test Brief Template
|
||||
|
||||
For simple tests that don't need full documentation:
|
||||
|
||||
```markdown
|
||||
## [Test Name]
|
||||
|
||||
**What**: [One sentence description]
|
||||
**Why**: [One sentence hypothesis]
|
||||
**Metric**: [Primary metric]
|
||||
**Duration**: [X weeks]
|
||||
**Result**: [TBD / Winner / Loser / Inconclusive]
|
||||
**Learnings**: [Key takeaway]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Stakeholder Update Template
|
||||
|
||||
```markdown
|
||||
## A/B Test Update: [Name]
|
||||
|
||||
**Status**: Running / Complete
|
||||
**Days remaining**: X (or complete)
|
||||
**Current sample**: X% of target
|
||||
|
||||
### Preliminary observations
|
||||
[What we're seeing - without making decisions yet]
|
||||
|
||||
### Next steps
|
||||
[What happens next]
|
||||
|
||||
### Timeline
|
||||
- [Date]: Analysis complete
|
||||
- [Date]: Decision and recommendation
|
||||
- [Date]: Implementation (if winner)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Experiment Prioritization Scorecard
|
||||
|
||||
For deciding which tests to run:
|
||||
|
||||
| Factor | Weight | Test A | Test B | Test C |
|
||||
|--------|--------|--------|--------|--------|
|
||||
| Potential impact | 30% | | | |
|
||||
| Confidence in hypothesis | 25% | | | |
|
||||
| Ease of implementation | 20% | | | |
|
||||
| Risk if wrong | 15% | | | |
|
||||
| Strategic alignment | 10% | | | |
|
||||
| **Total** | | | | |
|
||||
|
||||
Scoring: 1-5 (5 = best)
|
||||
|
||||
---
|
||||
|
||||
## Hypothesis Bank Template
|
||||
|
||||
For collecting test ideas:
|
||||
|
||||
```markdown
|
||||
| ID | Page/Area | Observation | Hypothesis | Potential Impact | Status |
|
||||
|----|-----------|-------------|------------|------------------|--------|
|
||||
| H1 | Homepage | Low scroll depth | Shorter hero will increase scroll | High | Testing |
|
||||
| H2 | Pricing | Users compare plans | Comparison table will help | Medium | Backlog |
|
||||
| H3 | Signup | Drop-off at email | Social login will increase completion | Medium | Backlog |
|
||||
```
|
||||
@@ -0,0 +1,362 @@
|
||||
---
|
||||
name: ad-creative
|
||||
description: "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Ad Creative
|
||||
|
||||
You are an expert performance creative strategist. Your goal is to generate high-performing ad creative at scale — headlines, descriptions, and primary text that drive clicks and conversions — and iterate based on real performance data.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Platform & Format
|
||||
- What platform? (Google Ads, Meta, LinkedIn, TikTok, Twitter/X)
|
||||
- What ad format? (Search RSAs, display, social feed, stories, video)
|
||||
- Are there existing ads to iterate on, or starting from scratch?
|
||||
|
||||
### 2. Product & Offer
|
||||
- What are you promoting? (Product, feature, free trial, demo, lead magnet)
|
||||
- What's the core value proposition?
|
||||
- What makes this different from competitors?
|
||||
|
||||
### 3. Audience & Intent
|
||||
- Who is the target audience?
|
||||
- What stage of awareness? (Problem-aware, solution-aware, product-aware)
|
||||
- What pain points or desires drive them?
|
||||
|
||||
### 4. Performance Data (if iterating)
|
||||
- What creative is currently running?
|
||||
- Which headlines/descriptions are performing best? (CTR, conversion rate, ROAS)
|
||||
- Which are underperforming?
|
||||
- What angles or themes have been tested?
|
||||
|
||||
### 5. Constraints
|
||||
- Brand voice guidelines or words to avoid?
|
||||
- Compliance requirements? (Industry regulations, platform policies)
|
||||
- Any mandatory elements? (Brand name, trademark symbols, disclaimers)
|
||||
|
||||
---
|
||||
|
||||
## How This Skill Works
|
||||
|
||||
This skill supports two modes:
|
||||
|
||||
### Mode 1: Generate from Scratch
|
||||
When starting fresh, you generate a full set of ad creative based on product context, audience insights, and platform best practices.
|
||||
|
||||
### Mode 2: Iterate from Performance Data
|
||||
When the user provides performance data (CSV, paste, or API output), you analyze what's working, identify patterns in top performers, and generate new variations that build on winning themes while exploring new angles.
|
||||
|
||||
The core loop:
|
||||
|
||||
```
|
||||
Pull performance data → Identify winning patterns → Generate new variations → Validate specs → Deliver
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Platform Specs
|
||||
|
||||
Platforms reject or truncate creative that exceeds these limits, so verify every piece of copy fits before delivering.
|
||||
|
||||
### Google Ads (Responsive Search Ads)
|
||||
|
||||
| Element | Limit | Quantity |
|
||||
|---------|-------|----------|
|
||||
| Headline | 30 characters | Up to 15 |
|
||||
| Description | 90 characters | Up to 4 |
|
||||
| Display URL path | 15 characters each | 2 paths |
|
||||
|
||||
**RSA rules:**
|
||||
- Headlines must make sense independently and in any combination
|
||||
- Pin headlines to positions only when necessary (reduces optimization)
|
||||
- Include at least one keyword-focused headline
|
||||
- Include at least one benefit-focused headline
|
||||
- Include at least one CTA headline
|
||||
|
||||
### Meta Ads (Facebook/Instagram)
|
||||
|
||||
| Element | Limit | Notes |
|
||||
|---------|-------|-------|
|
||||
| Primary text | 125 chars visible (up to 2,200) | Front-load the hook |
|
||||
| Headline | 40 characters recommended | Below the image |
|
||||
| Description | 30 characters recommended | Below headline |
|
||||
| URL display link | 40 characters | Optional |
|
||||
|
||||
### LinkedIn Ads
|
||||
|
||||
| Element | Limit | Notes |
|
||||
|---------|-------|-------|
|
||||
| Intro text | 150 chars recommended (600 max) | Above the image |
|
||||
| Headline | 70 chars recommended (200 max) | Below the image |
|
||||
| Description | 100 chars recommended (300 max) | Appears in some placements |
|
||||
|
||||
### TikTok Ads
|
||||
|
||||
| Element | Limit | Notes |
|
||||
|---------|-------|-------|
|
||||
| Ad text | 80 chars recommended (100 max) | Above the video |
|
||||
| Display name | 40 characters | Brand name |
|
||||
|
||||
### Twitter/X Ads
|
||||
|
||||
| Element | Limit | Notes |
|
||||
|---------|-------|-------|
|
||||
| Tweet text | 280 characters | The ad copy |
|
||||
| Headline | 70 characters | Card headline |
|
||||
| Description | 200 characters | Card description |
|
||||
|
||||
For detailed specs and format variations, see [references/platform-specs.md](references/platform-specs.md).
|
||||
|
||||
---
|
||||
|
||||
## Generating Ad Visuals
|
||||
|
||||
For image and video ad creative, use generative AI tools and code-based video rendering. See [references/generative-tools.md](references/generative-tools.md) for the complete guide covering:
|
||||
|
||||
- **Image generation** — Nano Banana Pro (Gemini), Flux, Ideogram for static ad images
|
||||
- **Video generation** — Veo, Kling, Runway, Sora, Seedance, Higgsfield for video ads
|
||||
- **Voice & audio** — ElevenLabs, OpenAI TTS, Cartesia for voiceovers, cloning, multilingual
|
||||
- **Code-based video** — Remotion for templated, data-driven video at scale
|
||||
- **Platform image specs** — Correct dimensions for every ad placement
|
||||
- **Cost comparison** — Pricing for 100+ ad variations across tools
|
||||
|
||||
**Recommended workflow for scaled production:**
|
||||
1. Generate hero creative with AI tools (exploratory, high-quality)
|
||||
2. Build Remotion templates based on winning patterns
|
||||
3. Batch produce variations with Remotion using data feeds
|
||||
4. Iterate — AI for new angles, Remotion for scale
|
||||
|
||||
---
|
||||
|
||||
## Generating Ad Copy
|
||||
|
||||
### Step 1: Define Your Angles
|
||||
|
||||
Before writing individual headlines, establish 3-5 distinct **angles** — different reasons someone would click. Each angle should tap into a different motivation.
|
||||
|
||||
**Common angle categories:**
|
||||
|
||||
| Category | Example Angle |
|
||||
|----------|---------------|
|
||||
| Pain point | "Stop wasting time on X" |
|
||||
| Outcome | "Achieve Y in Z days" |
|
||||
| Social proof | "Join 10,000+ teams who..." |
|
||||
| Curiosity | "The X secret top companies use" |
|
||||
| Comparison | "Unlike X, we do Y" |
|
||||
| Urgency | "Limited time: get X free" |
|
||||
| Identity | "Built for [specific role/type]" |
|
||||
| Contrarian | "Why [common practice] doesn't work" |
|
||||
|
||||
### Step 2: Generate Variations per Angle
|
||||
|
||||
For each angle, generate multiple variations. Vary:
|
||||
- **Word choice** — synonyms, active vs. passive
|
||||
- **Specificity** — numbers vs. general claims
|
||||
- **Tone** — direct vs. question vs. command
|
||||
- **Structure** — short punch vs. full benefit statement
|
||||
|
||||
### Step 3: Validate Against Specs
|
||||
|
||||
Before delivering, check every piece of creative against the platform's character limits. Flag anything that's over and provide a trimmed alternative.
|
||||
|
||||
### Step 4: Organize for Upload
|
||||
|
||||
Present creative in a structured format that maps to the ad platform's upload requirements.
|
||||
|
||||
---
|
||||
|
||||
## Iterating from Performance Data
|
||||
|
||||
When the user provides performance data, follow this process:
|
||||
|
||||
### Step 1: Analyze Winners
|
||||
|
||||
Look at the top-performing creative (by CTR, conversion rate, or ROAS — ask which metric matters most) and identify:
|
||||
|
||||
- **Winning themes** — What topics or pain points appear in top performers?
|
||||
- **Winning structures** — Questions? Statements? Commands? Numbers?
|
||||
- **Winning word patterns** — Specific words or phrases that recur?
|
||||
- **Character utilization** — Are top performers shorter or longer?
|
||||
|
||||
### Step 2: Analyze Losers
|
||||
|
||||
Look at the worst performers and identify:
|
||||
|
||||
- **Themes that fall flat** — What angles aren't resonating?
|
||||
- **Common patterns in low performers** — Too generic? Too long? Wrong tone?
|
||||
|
||||
### Step 3: Generate New Variations
|
||||
|
||||
Create new creative that:
|
||||
- **Doubles down** on winning themes with fresh phrasing
|
||||
- **Extends** winning angles into new variations
|
||||
- **Tests** 1-2 new angles not yet explored
|
||||
- **Avoids** patterns found in underperformers
|
||||
|
||||
### Step 4: Document the Iteration
|
||||
|
||||
Track what was learned and what's being tested:
|
||||
|
||||
```
|
||||
## Iteration Log
|
||||
- Round: [number]
|
||||
- Date: [date]
|
||||
- Top performers: [list with metrics]
|
||||
- Winning patterns: [summary]
|
||||
- New variations: [count] headlines, [count] descriptions
|
||||
- New angles being tested: [list]
|
||||
- Angles retired: [list]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Writing Quality Standards
|
||||
|
||||
### Headlines That Click
|
||||
|
||||
**Strong headlines:**
|
||||
- Specific ("Cut reporting time 75%") over vague ("Save time")
|
||||
- Benefits ("Ship code faster") over features ("CI/CD pipeline")
|
||||
- Active voice ("Automate your reports") over passive ("Reports are automated")
|
||||
- Include numbers when possible ("3x faster," "in 5 minutes," "10,000+ teams")
|
||||
|
||||
**Avoid:**
|
||||
- Jargon the audience won't recognize
|
||||
- Claims without specificity ("Best," "Leading," "Top")
|
||||
- All caps or excessive punctuation
|
||||
- Clickbait that the landing page can't deliver on
|
||||
|
||||
### Descriptions That Convert
|
||||
|
||||
Descriptions should complement headlines, not repeat them. Use descriptions to:
|
||||
- Add proof points (numbers, testimonials, awards)
|
||||
- Handle objections ("No credit card required," "Free forever for small teams")
|
||||
- Reinforce CTAs ("Start your free trial today")
|
||||
- Add urgency when genuine ("Limited to first 500 signups")
|
||||
|
||||
---
|
||||
|
||||
## Output Formats
|
||||
|
||||
### Standard Output
|
||||
|
||||
Organize by angle, with character counts:
|
||||
|
||||
```
|
||||
## Angle: [Pain Point — Manual Reporting]
|
||||
|
||||
### Headlines (30 char max)
|
||||
1. "Stop Building Reports by Hand" (29)
|
||||
2. "Automate Your Weekly Reports" (28)
|
||||
3. "Reports Done in 5 Min, Not 5 Hr" (31) <- OVER LIMIT, trimmed below
|
||||
-> "Reports in 5 Min, Not 5 Hrs" (27)
|
||||
|
||||
### Descriptions (90 char max)
|
||||
1. "Marketing teams save 10+ hours/week with automated reporting. Start free." (73)
|
||||
2. "Connect your data sources once. Get automated reports forever. No code required." (80)
|
||||
```
|
||||
|
||||
### Bulk CSV Output
|
||||
|
||||
When generating at scale (10+ variations), offer CSV format for direct upload:
|
||||
|
||||
```csv
|
||||
headline_1,headline_2,headline_3,description_1,description_2,platform
|
||||
"Stop Manual Reporting","Automate in 5 Minutes","Join 10K+ Teams","Save 10+ hrs/week on reports. Start free.","Connect data sources once. Reports forever.","google_ads"
|
||||
```
|
||||
|
||||
### Iteration Report
|
||||
|
||||
When iterating, include a summary:
|
||||
|
||||
```
|
||||
## Performance Summary
|
||||
- Analyzed: [X] headlines, [Y] descriptions
|
||||
- Top performer: "[headline]" — [metric]: [value]
|
||||
- Worst performer: "[headline]" — [metric]: [value]
|
||||
- Pattern: [observation]
|
||||
|
||||
## New Creative
|
||||
[organized variations]
|
||||
|
||||
## Recommendations
|
||||
- [What to pause, what to scale, what to test next]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Batch Generation Workflow
|
||||
|
||||
For large-scale creative production (Anthropic's growth team generates 100+ variations per cycle):
|
||||
|
||||
### 1. Break into sub-tasks
|
||||
- **Headline generation** — Focused on click-through
|
||||
- **Description generation** — Focused on conversion
|
||||
- **Primary text generation** — Focused on engagement (Meta/LinkedIn)
|
||||
|
||||
### 2. Generate in waves
|
||||
- Wave 1: Core angles (3-5 angles, 5 variations each)
|
||||
- Wave 2: Extended variations on top 2 angles
|
||||
- Wave 3: Wild card angles (contrarian, emotional, specific)
|
||||
|
||||
### 3. Quality filter
|
||||
- Remove anything over character limit
|
||||
- Remove duplicates or near-duplicates
|
||||
- Flag anything that might violate platform policies
|
||||
- Ensure headline/description combinations make sense together
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- **Writing headlines that only work together** — RSA headlines get combined randomly
|
||||
- **Ignoring character limits** — Platforms truncate without warning
|
||||
- **All variations sound the same** — Vary angles, not just word choice
|
||||
- **No CTA headlines** — RSAs need action-oriented headlines to drive clicks; include at least 2-3
|
||||
- **Generic descriptions** — "Learn more about our solution" wastes the slot
|
||||
- **Iterating without data** — Gut feelings are less reliable than metrics
|
||||
- **Testing too many things at once** — Change one variable per test cycle
|
||||
- **Retiring creative too early** — Allow 1,000+ impressions before judging
|
||||
|
||||
---
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
For pulling performance data and managing campaigns, see the [tools registry](../../tools/REGISTRY.md).
|
||||
|
||||
| Platform | Pull Performance Data | Manage Campaigns | Guide |
|
||||
|----------|:---------------------:|:----------------:|-------|
|
||||
| **Google Ads** | `google-ads campaigns list`, `google-ads reports get` | `google-ads campaigns create` | [google-ads.md](../../tools/integrations/google-ads.md) |
|
||||
| **Meta Ads** | `meta-ads insights get` | `meta-ads campaigns list` | [meta-ads.md](../../tools/integrations/meta-ads.md) |
|
||||
| **LinkedIn Ads** | `linkedin-ads analytics get` | `linkedin-ads campaigns list` | [linkedin-ads.md](../../tools/integrations/linkedin-ads.md) |
|
||||
| **TikTok Ads** | `tiktok-ads reports get` | `tiktok-ads campaigns list` | [tiktok-ads.md](../../tools/integrations/tiktok-ads.md) |
|
||||
|
||||
### Workflow: Pull Data, Analyze, Generate
|
||||
|
||||
```bash
|
||||
# 1. Pull recent ad performance
|
||||
node tools/clis/google-ads.js reports get --type ad_performance --date-range last_30_days
|
||||
|
||||
# 2. Analyze output (identify top/bottom performers)
|
||||
# 3. Feed winning patterns into this skill
|
||||
# 4. Generate new variations
|
||||
# 5. Upload to platform
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **paid-ads**: For campaign strategy, targeting, budgets, and optimization
|
||||
- **copywriting**: For landing page copy (where ad traffic lands)
|
||||
- **ab-test-setup**: For structuring creative tests with statistical rigor
|
||||
- **marketing-psychology**: For psychological principles behind high-performing creative
|
||||
- **copy-editing**: For polishing ad copy before launch
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "ad-creative",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Generate ad creative for our Meta (Facebook/Instagram) campaign. We sell an AI writing assistant for content marketers. Main value prop: write blog posts 5x faster. Target audience: content marketing managers at B2B SaaS companies. Budget: $5k/month.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should generate creative following the angle-based approach: identify 3-5 angles (speed, quality, ROI, pain of blank page, competitive edge). For each angle, should generate primary text (≤125 chars), headline (≤40 chars), and description (≤30 chars) respecting Meta character limits. Should provide multiple variations per angle. Should suggest image/visual direction for each. Should organize output with angle name, hook, body, CTA for each variation. Should recommend which angles to test first.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Uses angle-based generation approach",
|
||||
"Identifies multiple angles (3-5)",
|
||||
"Respects Meta character limits (125/40/30)",
|
||||
"Generates multiple variations per angle",
|
||||
"Suggests image or visual direction",
|
||||
"Includes hook, body, and CTA for each",
|
||||
"Recommends which angles to test first"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "I need Google Ads copy for our CRM product. We're targeting the keyword 'best CRM for small business'. Need responsive search ads.",
|
||||
"expected_output": "Should generate Google RSA creative respecting character limits: headlines (≤30 chars each, need 10-15 variations) and descriptions (≤90 chars each, need 4+ variations). Should note that pinning should be used sparingly as it reduces optimization. Should include the target keyword in headlines. Should provide multiple angle-based variations. Should suggest ad extensions (sitelinks, callouts, structured snippets). Should follow Google Ads best practices for RSA.",
|
||||
"assertions": [
|
||||
"Respects Google RSA character limits (30 char headlines, 90 char descriptions)",
|
||||
"Generates 10-15 headline variations",
|
||||
"Generates 4+ description variations",
|
||||
"Includes target keyword in headlines",
|
||||
"Notes pinning should be used sparingly per skill guidance",
|
||||
"Suggests ad extensions",
|
||||
"Uses angle-based variation approach"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "Here's our ad performance data: Ad A (pain point angle) - CTR 2.1%, CPC $3.20, Conv rate 4.5%. Ad B (social proof angle) - CTR 1.4%, CPC $4.10, Conv rate 6.2%. Ad C (feature angle) - CTR 0.8%, CPC $5.50, Conv rate 2.1%. Help me iterate on these.",
|
||||
"expected_output": "Should activate the iteration-from-performance mode (not generate-from-scratch). Should analyze the data: Ad A has best CTR, Ad B has best conversion rate (highest efficiency despite lower CTR), Ad C is underperforming on all metrics. Should recommend doubling down on the pain point angle (high CTR) and social proof angle (high conversion), while pausing or reworking the feature angle. Should generate new variations that combine winning elements (pain point hook + social proof). Should suggest specific iterations on Ad A and Ad B.",
|
||||
"assertions": [
|
||||
"Activates iteration mode based on performance data",
|
||||
"Analyzes CTR, CPC, and conversion rate for each ad",
|
||||
"Identifies winning angles from the data",
|
||||
"Recommends pausing or reworking underperforming creative",
|
||||
"Generates new variations combining winning elements",
|
||||
"Provides specific iterations on top performers"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "we need linkedin ads for our enterprise security product. audience is CISOs and IT directors.",
|
||||
"expected_output": "Should trigger on casual phrasing. Should generate LinkedIn ad creative respecting character limits: introductory text (≤150 chars), headline (≤70 chars), description (≤100 chars). Should adapt tone and messaging for enterprise security audience (CISOs, IT directors) — more formal, compliance-focused, risk-reduction language. Should provide multiple angles relevant to security buyers (risk reduction, compliance, incident response time, cost of breaches). Should suggest ad format recommendations for LinkedIn (sponsored content, message ads, etc.).",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Respects LinkedIn character limits (150/70/100)",
|
||||
"Adapts tone for enterprise security audience",
|
||||
"Uses risk-reduction and compliance language",
|
||||
"Provides multiple angles relevant to security buyers",
|
||||
"Suggests LinkedIn ad format recommendations"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "I need to generate a big batch of ad variations for a multi-platform campaign launching next week. We're a meal delivery service targeting busy professionals. Need ads for Google, Meta, and TikTok.",
|
||||
"expected_output": "Should activate the batch generation workflow. Should generate creative for all three platforms respecting each platform's character limits: Google RSA (30/90), Meta (125/40/30), TikTok (80 chars recommended, 100 max). Should identify 3-5 angles that work across platforms (convenience, health, time savings, variety, cost vs eating out). Should generate variations per angle per platform. Should note platform-specific creative considerations (TikTok needs video concepts, not just text). Should organize output clearly by platform.",
|
||||
"assertions": [
|
||||
"Activates batch generation workflow",
|
||||
"Generates for all three platforms",
|
||||
"Respects each platform's character limits",
|
||||
"Identifies angles that work across platforms",
|
||||
"Notes TikTok needs video concepts",
|
||||
"Organizes output by platform",
|
||||
"Generates multiple variations per angle per platform"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Help me plan our overall paid advertising strategy. We have a $20k monthly budget and want to figure out which platforms to use and how to allocate spend.",
|
||||
"expected_output": "Should recognize this is a paid advertising strategy task, not ad creative generation. Should defer to or cross-reference the paid-ads skill, which handles campaign strategy, platform selection, and budget allocation. May briefly mention creative considerations but should make clear that paid-ads is the right skill for strategy.",
|
||||
"assertions": [
|
||||
"Recognizes this as paid ads strategy, not creative generation",
|
||||
"References or defers to paid-ads skill",
|
||||
"Does not attempt full campaign strategy using creative generation patterns"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,637 @@
|
||||
# Generative AI Tools for Ad Creative
|
||||
|
||||
Reference for using AI image generators, video generators, and code-based video tools to produce ad visuals at scale.
|
||||
|
||||
---
|
||||
|
||||
## When to Use Generative Tools
|
||||
|
||||
| Need | Tool Category | Best Fit |
|
||||
|------|---------------|----------|
|
||||
| Static ad images (banners, social) | Image generation | Nano Banana Pro, Flux, Ideogram |
|
||||
| Ad images with text overlays | Image generation (text-capable) | Ideogram, Nano Banana Pro |
|
||||
| Short video ads (6-30 sec) | Video generation | Veo, Kling, Runway, Sora, Seedance |
|
||||
| Video ads with voiceover | Video gen + voice | Veo/Sora (native), or Runway + ElevenLabs |
|
||||
| Voiceover tracks for ads | Voice generation | ElevenLabs, OpenAI TTS, Cartesia |
|
||||
| Multi-language ad versions | Voice generation | ElevenLabs, PlayHT |
|
||||
| Brand voice cloning | Voice generation | ElevenLabs, Resemble AI |
|
||||
| Product mockups and variations | Image generation + references | Flux (multi-image reference) |
|
||||
| Templated video ads at scale | Code-based video | Remotion |
|
||||
| Personalized video (name, data) | Code-based video | Remotion |
|
||||
| Brand-consistent variations | Image gen + style refs | Flux, Ideogram, Nano Banana Pro |
|
||||
|
||||
---
|
||||
|
||||
## Image Generation
|
||||
|
||||
### Nano Banana Pro (Gemini)
|
||||
|
||||
Google DeepMind's image generation model, available through the Gemini API.
|
||||
|
||||
**Best for:** High-quality ad images, product visuals, text rendering
|
||||
**API:** Gemini API (Google AI Studio, Vertex AI)
|
||||
**Pricing:** ~$0.04/image (Gemini 2.5 Flash Image), ~$0.24/4K image (Nano Banana Pro)
|
||||
|
||||
**Strengths:**
|
||||
- Strong text rendering in images (logos, headlines)
|
||||
- Native image editing (modify existing images with prompts)
|
||||
- Available through the same Gemini API used for text generation
|
||||
- Supports both generation and editing in one model
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Generate social media ad images from text descriptions
|
||||
- Create product mockup variations
|
||||
- Edit existing ad images (swap backgrounds, change colors)
|
||||
- Generate images with headline text baked in
|
||||
|
||||
**API example:**
|
||||
```bash
|
||||
# Using the Gemini API for image generation
|
||||
curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "x-goog-api-key: $GEMINI_API_KEY" \
|
||||
-d '{
|
||||
"contents": [{"parts": [{"text": "Create a clean, modern social media ad image for a project management tool. Show a laptop with a kanban board interface. Bright, professional, 16:9 ratio."}]}],
|
||||
"generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
|
||||
}'
|
||||
```
|
||||
|
||||
**Docs:** [Gemini Image Generation](https://ai.google.dev/gemini-api/docs/image-generation)
|
||||
|
||||
---
|
||||
|
||||
### Flux (Black Forest Labs)
|
||||
|
||||
Open-weight image generation models with API access through Replicate and BFL's native API.
|
||||
|
||||
**Best for:** Photorealistic images, brand-consistent variations, multi-reference generation
|
||||
**API:** Replicate, BFL API, fal.ai
|
||||
**Pricing:** ~$0.01-0.06/image depending on model and resolution
|
||||
|
||||
**Model variants:**
|
||||
| Model | Speed | Quality | Cost | Best For |
|
||||
|-------|-------|---------|------|----------|
|
||||
| Flux 2 Pro | ~6 sec | Highest | $0.015/MP | Final production assets |
|
||||
| Flux 2 Flex | ~22 sec | High + editing | $0.06/MP | Iterative editing |
|
||||
| Flux 2 Dev | ~2.5 sec | Good | $0.012/MP | Rapid prototyping |
|
||||
| Flux 2 Klein | Fastest | Good | Lowest | High-volume batch generation |
|
||||
|
||||
**Strengths:**
|
||||
- Multi-image reference (up to 8 images) for consistent identity across ads
|
||||
- Product consistency — same product in different contexts
|
||||
- Style transfer from reference images
|
||||
- Open-weight Dev model for self-hosting
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Generate 50+ ad variations with consistent product/person identity
|
||||
- Create product-in-context images (your SaaS on different devices)
|
||||
- Style-match to existing brand assets using reference images
|
||||
- Rapid A/B test image variations
|
||||
|
||||
**Docs:** [Replicate Flux](https://replicate.com/black-forest-labs/flux-2-pro), [BFL API](https://docs.bfl.ml/)
|
||||
|
||||
---
|
||||
|
||||
### Ideogram
|
||||
|
||||
Specialized in typography and text rendering within images.
|
||||
|
||||
**Best for:** Ad banners with text, branded graphics, social ad images with headlines
|
||||
**API:** Ideogram API, Runware
|
||||
**Pricing:** ~$0.06/image (API), ~$0.009/image (subscription)
|
||||
|
||||
**Strengths:**
|
||||
- Best-in-class text rendering (~90% accuracy vs ~30% for most tools)
|
||||
- Style reference system (upload up to 3 reference images)
|
||||
- 4.3 billion style presets for consistent brand aesthetics
|
||||
- Strong at logos and branded typography
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Generate ad banners with headline text directly in the image
|
||||
- Create social media graphics with branded text overlays
|
||||
- Produce multiple design variations with consistent typography
|
||||
- Generate promotional materials without needing a designer for each iteration
|
||||
|
||||
**Docs:** [Ideogram API](https://developer.ideogram.ai/), [Ideogram](https://ideogram.ai/)
|
||||
|
||||
---
|
||||
|
||||
### Other Image Tools
|
||||
|
||||
| Tool | Best For | API Status | Notes |
|
||||
|------|----------|------------|-------|
|
||||
| **DALL-E 3** (OpenAI) | General image generation | Official API | Integrated with ChatGPT, good text rendering |
|
||||
| **Midjourney** | Artistic, high-aesthetic images | No official public API | Discord-based; unofficial APIs exist but risk bans |
|
||||
| **Stable Diffusion** | Self-hosted, customizable | Open source | Best for teams with GPU infrastructure |
|
||||
|
||||
---
|
||||
|
||||
## Video Generation
|
||||
|
||||
### Google Veo
|
||||
|
||||
Google DeepMind's video generation model, available through the Gemini API and Vertex AI.
|
||||
|
||||
**Best for:** High-quality video ads with native audio, vertical video for social
|
||||
**API:** Gemini API, Vertex AI
|
||||
**Pricing:** ~$0.15/sec (Veo 3.1 Fast), ~$0.40/sec (Veo 3.1 Standard)
|
||||
|
||||
**Capabilities:**
|
||||
- Up to 60 seconds at 1080p
|
||||
- Native audio generation (dialogue, sound effects, ambient)
|
||||
- Vertical 9:16 output for Stories/Reels/Shorts
|
||||
- Upscale to 4K
|
||||
- Text-to-video and image-to-video
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Generate short video ads (15-30 sec) from text descriptions
|
||||
- Create vertical video ads for TikTok, Reels, Shorts
|
||||
- Produce product demos with voiceover
|
||||
- Generate multiple video variations from the same prompt with different styles
|
||||
|
||||
**Docs:** [Veo on Vertex AI](https://cloud.google.com/vertex-ai/generative-ai/docs/video/overview)
|
||||
|
||||
---
|
||||
|
||||
### Kling (Kuaishou)
|
||||
|
||||
Video generation with simultaneous audio-visual generation and camera controls.
|
||||
|
||||
**Best for:** Cinematic video ads, longer-form content, audio-synced video
|
||||
**API:** Kling API, PiAPI, fal.ai
|
||||
**Pricing:** ~$0.09/sec (via fal.ai third-party)
|
||||
|
||||
**Capabilities:**
|
||||
- Up to 3 minutes at 1080p/30-48fps
|
||||
- Simultaneous audio-visual generation (Kling 2.6)
|
||||
- Text-to-video and image-to-video
|
||||
- Motion and camera controls
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Longer product explainer videos
|
||||
- Cinematic brand videos with synchronized audio
|
||||
- Animate product images into video ads
|
||||
|
||||
**Docs:** [Kling AI Developer](https://klingai.com/global/dev/model/video)
|
||||
|
||||
---
|
||||
|
||||
### Runway
|
||||
|
||||
Video generation and editing platform with strong controllability.
|
||||
|
||||
**Best for:** Controlled video generation, style-consistent content, editing existing footage
|
||||
**API:** Runway Developer Portal
|
||||
|
||||
**Capabilities:**
|
||||
- Gen-4: Character/scene consistency across shots
|
||||
- Motion brush and camera controls
|
||||
- Image-to-video with reference images
|
||||
- Video-to-video style transfer
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Generate video ads with consistent characters/products across scenes
|
||||
- Style-transfer existing footage to match brand aesthetics
|
||||
- Extend or remix existing video content
|
||||
|
||||
**Docs:** [Runway API](https://docs.dev.runwayml.com/)
|
||||
|
||||
---
|
||||
|
||||
### Sora 2 (OpenAI)
|
||||
|
||||
OpenAI's video generation model with synchronized audio.
|
||||
|
||||
**Best for:** High-fidelity video with dialogue and sound
|
||||
**API:** OpenAI API
|
||||
**Pricing:** Free tier available; Pro from $0.10-0.50/sec depending on resolution
|
||||
|
||||
**Capabilities:**
|
||||
- Up to 60 seconds with synchronized audio
|
||||
- Dialogue, sound effects, and ambient audio
|
||||
- sora-2 (fast) and sora-2-pro (quality) variants
|
||||
- Text-to-video and image-to-video
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Video testimonials and talking-head style ads
|
||||
- Product demo videos with narration
|
||||
- Narrative brand videos
|
||||
|
||||
**Docs:** [OpenAI Video Generation](https://platform.openai.com/docs/guides/video-generation)
|
||||
|
||||
---
|
||||
|
||||
### Seedance 2.0 (ByteDance)
|
||||
|
||||
ByteDance's video generation model with simultaneous audio-visual generation and multimodal inputs.
|
||||
|
||||
**Best for:** Fast, affordable video ads with native audio, multimodal reference inputs
|
||||
**API:** BytePlus (official), Replicate, WaveSpeedAI, fal.ai (third-party); OpenAI-compatible API format
|
||||
**Pricing:** ~$0.10-0.80/min depending on resolution (estimated 10-100x cheaper than Sora 2 per clip)
|
||||
|
||||
**Capabilities:**
|
||||
- Up to 20 seconds at up to 2K resolution
|
||||
- Simultaneous audio-visual generation (Dual-Branch Diffusion Transformer)
|
||||
- Text-to-video and image-to-video
|
||||
- Up to 12 reference files for multimodal input
|
||||
- OpenAI-compatible API structure
|
||||
|
||||
**Ad creative use cases:**
|
||||
- High-volume short video ad production at low cost
|
||||
- Video ads with synchronized voiceover and sound effects in one pass
|
||||
- Multi-reference generation (feed product images, brand assets, style references)
|
||||
- Rapid iteration on video ad concepts
|
||||
|
||||
**Docs:** [Seedance](https://seed.bytedance.com/en/seedance2_0)
|
||||
|
||||
---
|
||||
|
||||
### Higgsfield
|
||||
|
||||
Full-stack video creation platform with cinematic camera controls.
|
||||
|
||||
**Best for:** Social video ads, cinematic style, mobile-first content
|
||||
**Platform:** [higgsfield.ai](https://higgsfield.ai/)
|
||||
|
||||
**Capabilities:**
|
||||
- 50+ professional camera movements (zooms, pans, FPV drone shots)
|
||||
- Image-to-video animation
|
||||
- Built-in editing, transitions, and keyframing
|
||||
- All-in-one workflow: image gen, animation, editing
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Social media video ads with cinematic feel
|
||||
- Animate product images into dynamic video
|
||||
- Create multiple video variations with different camera styles
|
||||
- Quick-turn video content for social campaigns
|
||||
|
||||
---
|
||||
|
||||
### Video Tool Comparison
|
||||
|
||||
| Tool | Max Length | Audio | Resolution | API | Best For |
|
||||
|------|-----------|-------|------------|-----|----------|
|
||||
| **Veo 3.1** | 60 sec | Native | 1080p/4K | Gemini | Vertical social video |
|
||||
| **Kling 2.6** | 3 min | Native | 1080p | Third-party | Longer cinematic |
|
||||
| **Runway Gen-4** | 10 sec | No | 1080p | Official | Controlled, consistent |
|
||||
| **Sora 2** | 60 sec | Native | 1080p | Official | Dialogue-heavy |
|
||||
| **Seedance 2.0** | 20 sec | Native | 2K | Official + third-party | Affordable high-volume |
|
||||
| **Higgsfield** | Varies | Yes | 1080p | Web-based | Social, mobile-first |
|
||||
|
||||
---
|
||||
|
||||
## Voice & Audio Generation
|
||||
|
||||
For layering realistic voiceovers onto video ads, adding narration to product demos, or generating audio for Remotion-rendered videos. These tools turn ad scripts into natural-sounding voice tracks.
|
||||
|
||||
### When to Use Voice Tools
|
||||
|
||||
Many video generators (Veo, Kling, Sora, Seedance) now include native audio. Use standalone voice tools when you need:
|
||||
|
||||
- **Voiceover on silent video** — Runway Gen-4 and Remotion produce silent output
|
||||
- **Brand voice consistency** — Clone a specific voice for all ads
|
||||
- **Multi-language versions** — Same ad script in 20+ languages
|
||||
- **Script iteration** — Re-record voiceover without reshooting video
|
||||
- **Precise control** — Exact timing, emotion, and pacing
|
||||
|
||||
---
|
||||
|
||||
### ElevenLabs
|
||||
|
||||
The market leader in realistic voice generation and voice cloning.
|
||||
|
||||
**Best for:** Most natural-sounding voiceovers, brand voice cloning, multilingual
|
||||
**API:** REST API with streaming support
|
||||
**Pricing:** ~$0.12-0.30 per 1,000 characters depending on plan; starts at $5/month
|
||||
|
||||
**Capabilities:**
|
||||
- 29+ languages with natural accent and intonation
|
||||
- Voice cloning from short audio clips (instant) or longer recordings (professional)
|
||||
- Emotion and style control
|
||||
- Streaming for real-time generation
|
||||
- Voice library with hundreds of pre-built voices
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Generate voiceover tracks for video ads
|
||||
- Clone your brand spokesperson's voice for all ad variations
|
||||
- Produce the same ad in 10+ languages from one script
|
||||
- A/B test different voice styles (authoritative vs. friendly vs. urgent)
|
||||
|
||||
**API example:**
|
||||
```bash
|
||||
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/{voice_id}" \
|
||||
-H "xi-api-key: $ELEVENLABS_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"text": "Stop wasting hours on manual reporting. Try DataFlow free for 14 days.",
|
||||
"model_id": "eleven_multilingual_v2",
|
||||
"voice_settings": {"stability": 0.5, "similarity_boost": 0.75}
|
||||
}' --output voiceover.mp3
|
||||
```
|
||||
|
||||
**Docs:** [ElevenLabs API](https://elevenlabs.io/docs/api-reference/text-to-speech)
|
||||
|
||||
---
|
||||
|
||||
### OpenAI TTS
|
||||
|
||||
Simple, affordable text-to-speech built into the OpenAI API.
|
||||
|
||||
**Best for:** Quick voiceovers, cost-effective at scale, simple integration
|
||||
**API:** OpenAI API (same SDK as GPT/DALL-E)
|
||||
**Pricing:** $15/million chars (standard), $30/million chars (HD); ~$0.015/min with gpt-4o-mini-tts
|
||||
|
||||
**Capabilities:**
|
||||
- 13 built-in voices (no custom cloning)
|
||||
- Multiple languages
|
||||
- Real-time streaming
|
||||
- HD quality option
|
||||
- Simple API — same SDK you already use for GPT
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Fast, cheap voiceover for draft/test ad versions
|
||||
- High-volume narration at low cost
|
||||
- Prototype ad audio before investing in premium voice
|
||||
|
||||
**Docs:** [OpenAI TTS](https://platform.openai.com/docs/guides/text-to-speech)
|
||||
|
||||
---
|
||||
|
||||
### Cartesia Sonic
|
||||
|
||||
Ultra-low latency voice generation built for real-time applications.
|
||||
|
||||
**Best for:** Real-time voice, lowest latency, emotional expressiveness
|
||||
**API:** REST + WebSocket streaming
|
||||
**Pricing:** Starts at $5/month; pay-as-you-go from $0.03/min
|
||||
|
||||
**Capabilities:**
|
||||
- 40ms time-to-first-audio (fastest in class)
|
||||
- 15+ languages
|
||||
- Nonverbal expressiveness: laughter, breathing, emotional inflections
|
||||
- Sonic Turbo for even lower latency
|
||||
- Streaming API for real-time generation
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Real-time ad preview during creative iteration
|
||||
- Interactive demo videos with dynamic narration
|
||||
- Ads requiring natural laughter, sighs, or emotional reactions
|
||||
|
||||
**Docs:** [Cartesia Sonic](https://docs.cartesia.ai/build-with-cartesia/tts-models/latest)
|
||||
|
||||
---
|
||||
|
||||
### Voicebox (Open Source)
|
||||
|
||||
Free, local-first voice synthesis studio powered by Qwen3-TTS. The open-source alternative to ElevenLabs.
|
||||
|
||||
**Best for:** Free voice cloning, local/private generation, zero-cost batch production
|
||||
**API:** Local REST API at `http://localhost:8000`
|
||||
**Pricing:** Free (MIT license). Runs entirely on your machine.
|
||||
**Stack:** Tauri (Rust) + React + FastAPI (Python)
|
||||
|
||||
**Capabilities:**
|
||||
- Voice cloning from short audio samples via Qwen3-TTS
|
||||
- Multi-language support (English, Chinese, more planned)
|
||||
- Multi-track timeline editor for composing conversations
|
||||
- 4-5x faster inference on Apple Silicon via MLX Metal acceleration
|
||||
- Local REST API for programmatic generation
|
||||
- No cloud dependency — all processing on-device
|
||||
|
||||
**Ad creative use cases:**
|
||||
- Free voice cloning for brand spokesperson across all ad variations
|
||||
- Batch generate voiceovers without per-character costs
|
||||
- Private/local generation when ad content is sensitive or pre-launch
|
||||
- Prototype voice variations before committing to a paid service
|
||||
|
||||
**API example:**
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/generate \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"text": "Stop wasting hours on manual reporting.", "profile_id": "abc123", "language": "en"}'
|
||||
```
|
||||
|
||||
**Install:** Desktop apps for macOS and Windows at [voicebox.sh](https://voicebox.sh), or build from source:
|
||||
```bash
|
||||
git clone https://github.com/jamiepine/voicebox.git
|
||||
cd voicebox && make setup && make dev
|
||||
```
|
||||
|
||||
**Docs:** [GitHub](https://github.com/jamiepine/voicebox)
|
||||
|
||||
---
|
||||
|
||||
### Other Voice Tools
|
||||
|
||||
| Tool | Best For | Differentiator | API |
|
||||
|------|----------|---------------|-----|
|
||||
| **PlayHT** | Large voice library, low latency | 900+ voices, <300ms latency, ultra-realistic | [play.ht](https://play.ht/) |
|
||||
| **Resemble AI** | Enterprise voice cloning | On-premise deployment, real-time speech-to-speech | [resemble.ai](https://www.resemble.ai/) |
|
||||
| **WellSaid Labs** | Ethical, commercial-safe voices | Voices from compensated actors, safe for commercial use | [wellsaid.io](https://www.wellsaid.io/) |
|
||||
| **Fish Audio** | Budget-friendly, emotion control | ~50-70% cheaper than ElevenLabs, emotion tags | [fish.audio](https://fish.audio/) |
|
||||
| **Murf AI** | Non-technical teams | Browser-based studio, 200+ voices | [murf.ai](https://murf.ai/) |
|
||||
| **Google Cloud TTS** | Google ecosystem, scale | 220+ voices, 40+ languages, enterprise SLAs | [Google TTS](https://cloud.google.com/text-to-speech) |
|
||||
| **Amazon Polly** | AWS ecosystem, cost | Neural voices, SSML control, cheap at volume | [Amazon Polly](https://aws.amazon.com/polly/) |
|
||||
|
||||
---
|
||||
|
||||
### Voice Tool Comparison
|
||||
|
||||
| Tool | Quality | Cloning | Languages | Latency | Price/1K chars |
|
||||
|------|---------|---------|-----------|---------|----------------|
|
||||
| **ElevenLabs** | Best | Yes (instant + pro) | 29+ | ~200ms | $0.12-0.30 |
|
||||
| **OpenAI TTS** | Good | No | 13+ | ~300ms | $0.015-0.030 |
|
||||
| **Cartesia Sonic** | Very good | No | 15+ | ~40ms | ~$0.03/min |
|
||||
| **PlayHT** | Very good | Yes | 140+ | <300ms | ~$0.10-0.20 |
|
||||
| **Fish Audio** | Good | Yes | 13+ | ~200ms | ~$0.05-0.10 |
|
||||
| **WellSaid** | Very good | No (actor voices) | English | ~300ms | Custom pricing |
|
||||
| **Voicebox** | Good | Yes (local) | 2+ | Local | Free (open source) |
|
||||
|
||||
### Choosing a Voice Tool
|
||||
|
||||
```
|
||||
Need voiceover for ads?
|
||||
├── Need to clone a specific brand voice?
|
||||
│ ├── Best quality → ElevenLabs
|
||||
│ ├── Enterprise/on-premise → Resemble AI
|
||||
│ └── Budget-friendly → Fish Audio, PlayHT
|
||||
├── Need multilingual (same ad, many languages)?
|
||||
│ ├── Most languages → PlayHT (140+)
|
||||
│ └── Best quality → ElevenLabs (29+)
|
||||
├── Need free / open source / local?
|
||||
│ └── Voicebox (MIT, runs on your machine)
|
||||
├── Need cheap, fast, good-enough?
|
||||
│ └── OpenAI TTS ($0.015/min)
|
||||
├── Need commercially-safe licensing?
|
||||
│ └── WellSaid Labs (actor-compensated voices)
|
||||
└── Need real-time/interactive?
|
||||
└── Cartesia Sonic (40ms TTFA)
|
||||
```
|
||||
|
||||
### Workflow: Voice + Video
|
||||
|
||||
```
|
||||
1. Write ad script (use ad-creative skill for copy)
|
||||
2. Generate voiceover with ElevenLabs/OpenAI TTS
|
||||
3. Generate or render video:
|
||||
a. Silent video from Runway/Remotion → layer voice track
|
||||
b. Or use Veo/Sora/Seedance with native audio (skip separate VO)
|
||||
4. Combine with ffmpeg if layering separately:
|
||||
ffmpeg -i video.mp4 -i voiceover.mp3 -c:v copy -c:a aac output.mp4
|
||||
5. Generate variations (different scripts, voices, or languages)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Code-Based Video: Remotion
|
||||
|
||||
For templated, data-driven video ads at scale, Remotion is the best option. Unlike AI video generators that produce unique video from prompts, Remotion uses React code to render deterministic, brand-perfect video from templates and data.
|
||||
|
||||
**Best for:** Templated ad variations, personalized video, brand-consistent production
|
||||
**Stack:** React + TypeScript
|
||||
**Pricing:** Free for individuals/small teams; commercial license required for 4+ employees
|
||||
**Docs:** [remotion.dev](https://www.remotion.dev/)
|
||||
|
||||
### Why Remotion for Ads
|
||||
|
||||
| AI Video Generators | Remotion |
|
||||
|---------------------|----------|
|
||||
| Unique output each time | Deterministic, pixel-perfect |
|
||||
| Prompt-based, less control | Full code control over every frame |
|
||||
| Hard to match brand exactly | Exact brand colors, fonts, spacing |
|
||||
| One-at-a-time generation | Batch render hundreds from data |
|
||||
| No dynamic data insertion | Personalize with names, prices, stats |
|
||||
|
||||
### Ad Creative Use Cases
|
||||
|
||||
**1. Dynamic product ads**
|
||||
Feed a JSON array of products and render a unique video ad for each:
|
||||
```tsx
|
||||
// Simplified Remotion component for product ads
|
||||
export const ProductAd: React.FC<{
|
||||
productName: string;
|
||||
price: string;
|
||||
imageUrl: string;
|
||||
tagline: string;
|
||||
}> = ({productName, price, imageUrl, tagline}) => {
|
||||
return (
|
||||
<AbsoluteFill style={{backgroundColor: '#fff'}}>
|
||||
<Img src={imageUrl} style={{width: 400, height: 400}} />
|
||||
<h1>{productName}</h1>
|
||||
<p>{tagline}</p>
|
||||
<div className="price">{price}</div>
|
||||
<div className="cta">Shop Now</div>
|
||||
</AbsoluteFill>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
**2. A/B test video variations**
|
||||
Render the same template with different headlines, CTAs, or color schemes:
|
||||
```tsx
|
||||
const variations = [
|
||||
{headline: "Save 50% Today", cta: "Get the Deal", theme: "urgent"},
|
||||
{headline: "Join 10K+ Teams", cta: "Start Free", theme: "social-proof"},
|
||||
{headline: "Built for Speed", cta: "Try It Now", theme: "benefit"},
|
||||
];
|
||||
// Render all variations programmatically
|
||||
```
|
||||
|
||||
**3. Personalized outreach videos**
|
||||
Generate videos addressing prospects by name for cold outreach or sales.
|
||||
|
||||
**4. Social ad batch production**
|
||||
Render the same content across different aspect ratios:
|
||||
- 1:1 for feed
|
||||
- 9:16 for Stories/Reels
|
||||
- 16:9 for YouTube
|
||||
|
||||
### Remotion Workflow for Ad Creative
|
||||
|
||||
```
|
||||
1. Design template in React (or use AI to generate the component)
|
||||
2. Define data schema (products, headlines, CTAs, images)
|
||||
3. Feed data array into template
|
||||
4. Batch render all variations
|
||||
5. Upload to ad platform
|
||||
```
|
||||
|
||||
### Getting Started
|
||||
|
||||
```bash
|
||||
# Create a new Remotion project
|
||||
npx create-video@latest
|
||||
|
||||
# Render a single video
|
||||
npx remotion render src/index.ts MyComposition out/video.mp4
|
||||
|
||||
# Batch render from data
|
||||
npx remotion render src/index.ts MyComposition --props='{"data": [...]}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Choosing the Right Tool
|
||||
|
||||
### Decision Tree
|
||||
|
||||
```
|
||||
Need video ads?
|
||||
├── Templated, data-driven (same structure, different data)
|
||||
│ └── Use Remotion
|
||||
├── Unique creative from prompts (exploratory)
|
||||
│ ├── Need dialogue/voiceover? → Sora 2, Veo 3.1, Kling 2.6, Seedance 2.0
|
||||
│ ├── Need consistency across scenes? → Runway Gen-4
|
||||
│ ├── Need vertical social video? → Veo 3.1 (native 9:16)
|
||||
│ ├── Need high volume at low cost? → Seedance 2.0
|
||||
│ └── Need cinematic camera work? → Higgsfield, Kling
|
||||
└── Both → Use AI gen for hero creative, Remotion for variations
|
||||
|
||||
Need image ads?
|
||||
├── Need text/headlines in image? → Ideogram
|
||||
├── Need product consistency across variations? → Flux (multi-ref)
|
||||
├── Need quick iterations on existing images? → Nano Banana Pro
|
||||
├── Need highest visual quality? → Flux Pro, Midjourney
|
||||
└── Need high volume at low cost? → Flux Klein, Nano Banana
|
||||
```
|
||||
|
||||
### Cost Comparison for 100 Ad Variations
|
||||
|
||||
| Approach | Tool | Approximate Cost |
|
||||
|----------|------|-----------------|
|
||||
| 100 static images | Nano Banana Pro | ~$4-24 |
|
||||
| 100 static images | Flux Dev | ~$1-2 |
|
||||
| 100 static images | Ideogram API | ~$6 |
|
||||
| 100 × 15-sec videos | Veo 3.1 Fast | ~$225 |
|
||||
| 100 × 15-sec videos | Remotion (templated) | ~$0 (self-hosted render) |
|
||||
| 10 hero videos + 90 templated | Veo + Remotion | ~$22 + render time |
|
||||
|
||||
### Recommended Workflow for Scaled Ad Production
|
||||
|
||||
1. **Generate hero creative** with AI (Nano Banana, Flux, Veo) — high-quality, exploratory
|
||||
2. **Build templates** in Remotion based on winning creative patterns
|
||||
3. **Batch produce variations** with Remotion using data (products, headlines, CTAs)
|
||||
4. **Iterate** — use AI tools for new angles, Remotion for scale
|
||||
|
||||
This hybrid approach gives you the creative exploration of AI generators and the consistency and scale of code-based rendering.
|
||||
|
||||
---
|
||||
|
||||
## Platform-Specific Image Specs
|
||||
|
||||
When generating images for ads, request the correct dimensions:
|
||||
|
||||
| Platform | Placement | Aspect Ratio | Recommended Size |
|
||||
|----------|-----------|-------------|-----------------|
|
||||
| Meta Feed | Single image | 1:1 | 1080x1080 |
|
||||
| Meta Stories/Reels | Vertical | 9:16 | 1080x1920 |
|
||||
| Meta Carousel | Square | 1:1 | 1080x1080 |
|
||||
| Google Display | Landscape | 1.91:1 | 1200x628 |
|
||||
| Google Display | Square | 1:1 | 1200x1200 |
|
||||
| LinkedIn Feed | Landscape | 1.91:1 | 1200x627 |
|
||||
| LinkedIn Feed | Square | 1:1 | 1200x1200 |
|
||||
| TikTok Feed | Vertical | 9:16 | 1080x1920 |
|
||||
| Twitter/X Feed | Landscape | 16:9 | 1200x675 |
|
||||
| Twitter/X Card | Landscape | 1.91:1 | 800x418 |
|
||||
|
||||
Include these dimensions in your generation prompts to avoid needing to crop or resize.
|
||||
@@ -0,0 +1,213 @@
|
||||
# Platform Specs Reference
|
||||
|
||||
Complete character limits, format requirements, and best practices for each ad platform.
|
||||
|
||||
---
|
||||
|
||||
## Google Ads
|
||||
|
||||
### Responsive Search Ads (RSAs)
|
||||
|
||||
| Element | Character Limit | Required | Notes |
|
||||
|---------|----------------|----------|-------|
|
||||
| Headline | 30 chars | 3 minimum, 15 max | Any 3 may be shown together |
|
||||
| Description | 90 chars | 2 minimum, 4 max | Any 2 may be shown together |
|
||||
| Display path 1 | 15 chars | Optional | Appears after domain in URL |
|
||||
| Display path 2 | 15 chars | Optional | Appears after path 1 |
|
||||
| Final URL | No limit | Required | Landing page URL |
|
||||
|
||||
**Combination rules:**
|
||||
- Google selects up to 3 headlines and 2 descriptions to show
|
||||
- Headlines appear separated by " | " or stacked
|
||||
- Any headline can appear in any position unless pinned
|
||||
- Pinning reduces Google's ability to optimize — use sparingly
|
||||
|
||||
**Pinning strategy:**
|
||||
- Pin your brand name to position 1 if brand guidelines require it
|
||||
- Pin your strongest CTA to position 2 or 3
|
||||
- Leave most headlines unpinned for machine learning
|
||||
|
||||
**Headline mix recommendation (15 headlines):**
|
||||
- 3-4 keyword-focused (match search intent)
|
||||
- 3-4 benefit-focused (what they get)
|
||||
- 2-3 social proof (numbers, awards, customers)
|
||||
- 2-3 CTA-focused (action to take)
|
||||
- 1-2 differentiators (why you over competitors)
|
||||
- 1 brand name headline
|
||||
|
||||
**Description mix recommendation (4 descriptions):**
|
||||
- 1 benefit + proof point
|
||||
- 1 feature + outcome
|
||||
- 1 social proof + CTA
|
||||
- 1 urgency/offer + CTA (if applicable)
|
||||
|
||||
### Performance Max
|
||||
|
||||
| Element | Character Limit | Notes |
|
||||
|---------|----------------|-------|
|
||||
| Headline | 30 chars (5 required) | Short headlines for various placements |
|
||||
| Long headline | 90 chars (5 required) | Used in display, video, discover |
|
||||
| Description | 90 chars (1 required, 5 max) | Accompany various ad formats |
|
||||
| Business name | 25 chars | Required |
|
||||
|
||||
### Display Ads
|
||||
|
||||
| Element | Character Limit |
|
||||
|---------|----------------|
|
||||
| Headline | 30 chars |
|
||||
| Long headline | 90 chars |
|
||||
| Description | 90 chars |
|
||||
| Business name | 25 chars |
|
||||
|
||||
---
|
||||
|
||||
## Meta Ads (Facebook & Instagram)
|
||||
|
||||
### Single Image / Video / Carousel
|
||||
|
||||
| Element | Recommended | Maximum | Notes |
|
||||
|---------|-------------|---------|-------|
|
||||
| Primary text | 125 chars | 2,200 chars | Text above image; truncated after ~125 |
|
||||
| Headline | 40 chars | 255 chars | Below image; truncated after ~40 |
|
||||
| Description | 30 chars | 255 chars | Below headline; may not show |
|
||||
| URL display link | 40 chars | N/A | Optional custom display URL |
|
||||
|
||||
**Placement-specific notes:**
|
||||
- **Feed**: All elements show; primary text most visible
|
||||
- **Stories/Reels**: Primary text overlaid; keep under 72 chars
|
||||
- **Right column**: Only headline visible; skip description
|
||||
- **Audience Network**: Varies by publisher
|
||||
|
||||
**Best practices:**
|
||||
- Front-load the hook in primary text (first 125 chars)
|
||||
- Use line breaks for readability in longer primary text
|
||||
- Emojis: test, but don't overuse — 1-2 per ad max
|
||||
- Questions in primary text increase engagement
|
||||
- Headline should be a clear CTA or value statement
|
||||
|
||||
### Lead Ads (Instant Form)
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Greeting headline | 60 chars |
|
||||
| Greeting description | 360 chars |
|
||||
| Privacy policy text | 200 chars |
|
||||
|
||||
---
|
||||
|
||||
## LinkedIn Ads
|
||||
|
||||
### Single Image Ad
|
||||
|
||||
| Element | Recommended | Maximum | Notes |
|
||||
|---------|-------------|---------|-------|
|
||||
| Intro text | 150 chars | 600 chars | Above the image; truncated after ~150 |
|
||||
| Headline | 70 chars | 200 chars | Below the image |
|
||||
| Description | 100 chars | 300 chars | Only shows on Audience Network |
|
||||
|
||||
### Carousel Ad
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Intro text | 255 chars |
|
||||
| Card headline | 45 chars |
|
||||
| Card count | 2-10 cards |
|
||||
|
||||
### Message Ad (InMail)
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Subject line | 60 chars |
|
||||
| Message body | 1,500 chars |
|
||||
| CTA button | 20 chars |
|
||||
|
||||
### Text Ad
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Headline | 25 chars |
|
||||
| Description | 75 chars |
|
||||
|
||||
**LinkedIn-specific guidelines:**
|
||||
- Professional tone, but not boring
|
||||
- Use job-specific language the audience recognizes
|
||||
- Statistics and data points perform well
|
||||
- Avoid consumer-style hype ("Amazing!" "Incredible!")
|
||||
- First-person testimonials from peers resonate
|
||||
|
||||
---
|
||||
|
||||
## TikTok Ads
|
||||
|
||||
### In-Feed Ads
|
||||
|
||||
| Element | Recommended | Maximum | Notes |
|
||||
|---------|-------------|---------|-------|
|
||||
| Ad text | 80 chars | 100 chars | Above the video |
|
||||
| Display name | N/A | 40 chars | Brand name |
|
||||
| CTA button | Platform options | Predefined | Select from TikTok's options |
|
||||
|
||||
### Spark Ads (Boosted Organic)
|
||||
|
||||
| Element | Notes |
|
||||
|---------|-------|
|
||||
| Caption | Uses original post caption |
|
||||
| CTA button | Added by advertiser |
|
||||
| Display name | Original creator's handle |
|
||||
|
||||
**TikTok-specific guidelines:**
|
||||
- Native content outperforms polished ads
|
||||
- First 2 seconds determine if they watch
|
||||
- Use trending sounds and formats
|
||||
- Text overlay is essential (most watch with sound off)
|
||||
- Vertical video only (9:16)
|
||||
|
||||
---
|
||||
|
||||
## Twitter/X Ads
|
||||
|
||||
### Promoted Tweets
|
||||
|
||||
| Element | Limit | Notes |
|
||||
|---------|-------|-------|
|
||||
| Tweet text | 280 chars | Full tweet with image/video |
|
||||
| Card headline | 70 chars | Website card |
|
||||
| Card description | 200 chars | Website card |
|
||||
|
||||
### Website Cards
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Headline | 70 chars |
|
||||
| Description | 200 chars |
|
||||
|
||||
**Twitter/X-specific guidelines:**
|
||||
- Conversational, casual tone
|
||||
- Short sentences work best
|
||||
- One clear message per tweet
|
||||
- Hashtags: 1-2 max (0 is often better for ads)
|
||||
- Threads can work for consideration-stage content
|
||||
|
||||
---
|
||||
|
||||
## Character Counting Tips
|
||||
|
||||
- **Spaces count** as characters on all platforms
|
||||
- **Emojis** count as 1-2 characters depending on platform
|
||||
- **Special characters** (|, &, etc.) count as 1 character
|
||||
- **URLs** in body text count against limits
|
||||
- **Dynamic keyword insertion** (`{KeyWord:default}`) can exceed limits — set safe defaults
|
||||
- Always verify in the platform's ad preview before launching
|
||||
|
||||
---
|
||||
|
||||
## Multi-Platform Creative Adaptation
|
||||
|
||||
When creating for multiple platforms simultaneously, start with the most restrictive format:
|
||||
|
||||
1. **Google Search headlines** (30 chars) — forces the tightest messaging
|
||||
2. **Expand to Meta headlines** (40 chars) — add a word or two
|
||||
3. **Expand to LinkedIn intro text** (150 chars) — add context and proof
|
||||
4. **Expand to Meta primary text** (125+ chars) — full hook and value prop
|
||||
|
||||
This cascading approach ensures your core message works everywhere, then gets enriched for platforms that allow more space.
|
||||
@@ -0,0 +1,443 @@
|
||||
---
|
||||
name: ai-seo
|
||||
description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema-markup."
|
||||
metadata:
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# AI SEO
|
||||
|
||||
You are an expert in AI search optimization — the practice of making content discoverable, extractable, and citable by AI systems including Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini, and Copilot. Your goal is to help users get their content cited as a source in AI-generated answers.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Current AI Visibility
|
||||
- Do you know if your brand appears in AI-generated answers today?
|
||||
- Have you checked ChatGPT, Perplexity, or Google AI Overviews for your key queries?
|
||||
- What queries matter most to your business?
|
||||
|
||||
### 2. Content & Domain
|
||||
- What type of content do you produce? (Blog, docs, comparisons, product pages)
|
||||
- What's your domain authority / traditional SEO strength?
|
||||
- Do you have existing structured data (schema markup)?
|
||||
|
||||
### 3. Goals
|
||||
- Get cited as a source in AI answers?
|
||||
- Appear in Google AI Overviews for specific queries?
|
||||
- Compete with specific brands already getting cited?
|
||||
- Optimize existing content or create new AI-optimized content?
|
||||
|
||||
### 4. Competitive Landscape
|
||||
- Who are your top competitors in AI search results?
|
||||
- Are they being cited where you're not?
|
||||
|
||||
---
|
||||
|
||||
## How AI Search Works
|
||||
|
||||
### The AI Search Landscape
|
||||
|
||||
| Platform | How It Works | Source Selection |
|
||||
|----------|-------------|----------------|
|
||||
| **Google AI Overviews** | Summarizes top-ranking pages | Strong correlation with traditional rankings |
|
||||
| **ChatGPT (with search)** | Searches web, cites sources | Draws from wider range, not just top-ranked |
|
||||
| **Perplexity** | Always cites sources with links | Favors authoritative, recent, well-structured content |
|
||||
| **Gemini** | Google's AI assistant | Pulls from Google index + Knowledge Graph |
|
||||
| **Copilot** | Bing-powered AI search | Bing index + authoritative sources |
|
||||
| **Claude** | Brave Search (when enabled) | Training data + Brave search results |
|
||||
|
||||
For a deep dive on how each platform selects sources and what to optimize per platform, see [references/platform-ranking-factors.md](references/platform-ranking-factors.md).
|
||||
|
||||
### Key Difference from Traditional SEO
|
||||
|
||||
Traditional SEO gets you ranked. AI SEO gets you **cited**.
|
||||
|
||||
In traditional search, you need to rank on page 1. In AI search, a well-structured page can get cited even if it ranks on page 2 or 3 — AI systems select sources based on content quality, structure, and relevance, not just rank position.
|
||||
|
||||
**Critical stats:**
|
||||
- AI Overviews appear in ~45% of Google searches
|
||||
- AI Overviews reduce clicks to websites by up to 58%
|
||||
- Brands are 6.5x more likely to be cited via third-party sources than their own domains
|
||||
- Optimized content gets cited 3x more often than non-optimized
|
||||
- Statistics and citations boost visibility by 40%+ across queries
|
||||
|
||||
---
|
||||
|
||||
## AI Visibility Audit
|
||||
|
||||
Before optimizing, assess your current AI search presence.
|
||||
|
||||
### Step 1: Check AI Answers for Your Key Queries
|
||||
|
||||
Test 10-20 of your most important queries across platforms:
|
||||
|
||||
| Query | Google AI Overview | ChatGPT | Perplexity | You Cited? | Competitors Cited? |
|
||||
|-------|:-----------------:|:-------:|:----------:|:----------:|:-----------------:|
|
||||
| [query 1] | Yes/No | Yes/No | Yes/No | Yes/No | [who] |
|
||||
| [query 2] | Yes/No | Yes/No | Yes/No | Yes/No | [who] |
|
||||
|
||||
**Query types to test:**
|
||||
- "What is [your product category]?"
|
||||
- "Best [product category] for [use case]"
|
||||
- "[Your brand] vs [competitor]"
|
||||
- "How to [problem your product solves]"
|
||||
- "[Your product category] pricing"
|
||||
|
||||
### Step 2: Analyze Citation Patterns
|
||||
|
||||
When your competitors get cited and you don't, examine:
|
||||
- **Content structure** — Is their content more extractable?
|
||||
- **Authority signals** — Do they have more citations, stats, expert quotes?
|
||||
- **Freshness** — Is their content more recently updated?
|
||||
- **Schema markup** — Do they have structured data you're missing?
|
||||
- **Third-party presence** — Are they cited via Wikipedia, Reddit, review sites?
|
||||
|
||||
### Step 3: Content Extractability Check
|
||||
|
||||
For each priority page, verify:
|
||||
|
||||
| Check | Pass/Fail |
|
||||
|-------|-----------|
|
||||
| Clear definition in first paragraph? | |
|
||||
| Self-contained answer blocks (work without surrounding context)? | |
|
||||
| Statistics with sources cited? | |
|
||||
| Comparison tables for "[X] vs [Y]" queries? | |
|
||||
| FAQ section with natural-language questions? | |
|
||||
| Schema markup (FAQ, HowTo, Article, Product)? | |
|
||||
| Expert attribution (author name, credentials)? | |
|
||||
| Recently updated (within 6 months)? | |
|
||||
| Heading structure matches query patterns? | |
|
||||
| AI bots allowed in robots.txt? | |
|
||||
|
||||
### Step 4: AI Bot Access Check
|
||||
|
||||
Verify your robots.txt allows AI crawlers. Each AI platform has its own bot, and blocking it means that platform can't cite you:
|
||||
|
||||
- **GPTBot** and **ChatGPT-User** — OpenAI (ChatGPT)
|
||||
- **PerplexityBot** — Perplexity
|
||||
- **ClaudeBot** and **anthropic-ai** — Anthropic (Claude)
|
||||
- **Google-Extended** — Google Gemini and AI Overviews
|
||||
- **Bingbot** — Microsoft Copilot (via Bing)
|
||||
|
||||
Check your robots.txt for `Disallow` rules targeting any of these. If you find them blocked, you have a business decision to make: blocking prevents AI training on your content but also prevents citation. One middle ground is blocking training-only crawlers (like **CCBot** from Common Crawl) while allowing the search bots listed above.
|
||||
|
||||
See [references/platform-ranking-factors.md](references/platform-ranking-factors.md) for the full robots.txt configuration.
|
||||
|
||||
---
|
||||
|
||||
## Optimization Strategy
|
||||
|
||||
### The Three Pillars
|
||||
|
||||
```
|
||||
1. Structure (make it extractable)
|
||||
2. Authority (make it citable)
|
||||
3. Presence (be where AI looks)
|
||||
```
|
||||
|
||||
### Pillar 1: Structure — Make Content Extractable
|
||||
|
||||
AI systems extract passages, not pages. Every key claim should work as a standalone statement.
|
||||
|
||||
**Content block patterns:**
|
||||
- **Definition blocks** for "What is X?" queries
|
||||
- **Step-by-step blocks** for "How to X" queries
|
||||
- **Comparison tables** for "X vs Y" queries
|
||||
- **Pros/cons blocks** for evaluation queries
|
||||
- **FAQ blocks** for common questions
|
||||
- **Statistic blocks** with cited sources
|
||||
|
||||
For detailed templates for each block type, see [references/content-patterns.md](references/content-patterns.md).
|
||||
|
||||
**Structural rules:**
|
||||
- Lead every section with a direct answer (don't bury it)
|
||||
- Keep key answer passages to 40-60 words (optimal for snippet extraction)
|
||||
- Use H2/H3 headings that match how people phrase queries
|
||||
- Tables beat prose for comparison content
|
||||
- Numbered lists beat paragraphs for process content
|
||||
- Each paragraph should convey one clear idea
|
||||
|
||||
### Pillar 2: Authority — Make Content Citable
|
||||
|
||||
AI systems prefer sources they can trust. Build citation-worthiness.
|
||||
|
||||
**The Princeton GEO research** (KDD 2024, studied across Perplexity.ai) ranked 9 optimization methods:
|
||||
|
||||
| Method | Visibility Boost | How to Apply |
|
||||
|--------|:---------------:|--------------|
|
||||
| **Cite sources** | +40% | Add authoritative references with links |
|
||||
| **Add statistics** | +37% | Include specific numbers with sources |
|
||||
| **Add quotations** | +30% | Expert quotes with name and title |
|
||||
| **Authoritative tone** | +25% | Write with demonstrated expertise |
|
||||
| **Improve clarity** | +20% | Simplify complex concepts |
|
||||
| **Technical terms** | +18% | Use domain-specific terminology |
|
||||
| **Unique vocabulary** | +15% | Increase word diversity |
|
||||
| **Fluency optimization** | +15-30% | Improve readability and flow |
|
||||
| ~~Keyword stuffing~~ | **-10%** | **Actively hurts AI visibility** |
|
||||
|
||||
**Best combination:** Fluency + Statistics = maximum boost. Low-ranking sites benefit even more — up to 115% visibility increase with citations.
|
||||
|
||||
**Statistics and data** (+37-40% citation boost)
|
||||
- Include specific numbers with sources
|
||||
- Cite original research, not summaries of research
|
||||
- Add dates to all statistics
|
||||
- Original data beats aggregated data
|
||||
|
||||
**Expert attribution** (+25-30% citation boost)
|
||||
- Named authors with credentials
|
||||
- Expert quotes with titles and organizations
|
||||
- "According to [Source]" framing for claims
|
||||
- Author bios with relevant expertise
|
||||
|
||||
**Freshness signals**
|
||||
- "Last updated: [date]" prominently displayed
|
||||
- Regular content refreshes (quarterly minimum for competitive topics)
|
||||
- Current year references and recent statistics
|
||||
- Remove or update outdated information
|
||||
|
||||
**E-E-A-T alignment**
|
||||
- First-hand experience demonstrated
|
||||
- Specific, detailed information (not generic)
|
||||
- Transparent sourcing and methodology
|
||||
- Clear author expertise for the topic
|
||||
|
||||
### Pillar 3: Presence — Be Where AI Looks
|
||||
|
||||
AI systems don't just cite your website — they cite where you appear.
|
||||
|
||||
**Third-party sources matter more than your own site:**
|
||||
- Wikipedia mentions (7.8% of all ChatGPT citations)
|
||||
- Reddit discussions (1.8% of ChatGPT citations)
|
||||
- Industry publications and guest posts
|
||||
- Review sites (G2, Capterra, TrustRadius for B2B SaaS)
|
||||
- YouTube (frequently cited by Google AI Overviews)
|
||||
- Quora answers
|
||||
|
||||
**Actions:**
|
||||
- Ensure your Wikipedia page is accurate and current
|
||||
- Participate authentically in Reddit communities
|
||||
- Get featured in industry roundups and comparison articles
|
||||
- Maintain updated profiles on relevant review platforms
|
||||
- Create YouTube content for key how-to queries
|
||||
- Answer relevant Quora questions with depth
|
||||
|
||||
### Machine-Readable Files for AI Agents
|
||||
|
||||
AI agents aren't just answering questions — they're becoming buyers. When an AI agent evaluates tools on behalf of a user, it needs structured, parseable information. If your pricing is locked in a JavaScript-rendered page or a "contact sales" wall, agents will skip you and recommend competitors whose information they can actually read.
|
||||
|
||||
Add these machine-readable files to your site root:
|
||||
|
||||
**`/pricing.md` or `/pricing.txt`** — Structured pricing data for AI agents
|
||||
|
||||
```markdown
|
||||
# Pricing — [Your Product Name]
|
||||
|
||||
## Free
|
||||
- Price: $0/month
|
||||
- Limits: 100 emails/month, 1 user
|
||||
- Features: Basic templates, API access
|
||||
|
||||
## Pro
|
||||
- Price: $29/month (billed annually) | $35/month (billed monthly)
|
||||
- Limits: 10,000 emails/month, 5 users
|
||||
- Features: Custom domains, analytics, priority support
|
||||
|
||||
## Enterprise
|
||||
- Price: Custom — contact sales@example.com
|
||||
- Limits: Unlimited emails, unlimited users
|
||||
- Features: SSO, SLA, dedicated account manager
|
||||
```
|
||||
|
||||
**Why this matters now:**
|
||||
- AI agents increasingly compare products programmatically before a human ever visits your site
|
||||
- Opaque pricing gets filtered out of AI-mediated buying journeys
|
||||
- A simple markdown file is trivially parseable by any LLM — no rendering, no JavaScript, no login walls
|
||||
- Same principle as `robots.txt` (for crawlers), `llms.txt` (for AI context), and `AGENTS.md` (for agent capabilities)
|
||||
|
||||
**Best practices:**
|
||||
- Use consistent units (monthly vs. annual, per-seat vs. flat)
|
||||
- Include specific limits and thresholds, not just feature names
|
||||
- List what's included at each tier, not just what's different
|
||||
- Keep it updated — stale pricing is worse than no file
|
||||
- Link to it from your sitemap and main pricing page
|
||||
|
||||
**`/llms.txt`** — Context file for AI systems (see [llmstxt.org](https://llmstxt.org))
|
||||
|
||||
If you don't have one yet, add an `llms.txt` that gives AI systems a quick overview of what your product does, who it's for, and links to key pages (including your pricing).
|
||||
|
||||
### Schema Markup for AI
|
||||
|
||||
Structured data helps AI systems understand your content. Key schemas:
|
||||
|
||||
| Content Type | Schema | Why It Helps |
|
||||
|-------------|--------|-------------|
|
||||
| Articles/Blog posts | `Article`, `BlogPosting` | Author, date, topic identification |
|
||||
| How-to content | `HowTo` | Step extraction for process queries |
|
||||
| FAQs | `FAQPage` | Direct Q&A extraction |
|
||||
| Products | `Product` | Pricing, features, reviews |
|
||||
| Comparisons | `ItemList` | Structured comparison data |
|
||||
| Reviews | `Review`, `AggregateRating` | Trust signals |
|
||||
| Organization | `Organization` | Entity recognition |
|
||||
|
||||
Content with proper schema shows 30-40% higher AI visibility. For implementation, use the **schema-markup** skill.
|
||||
|
||||
---
|
||||
|
||||
## Content Types That Get Cited Most
|
||||
|
||||
Not all content is equally citable. Prioritize these formats:
|
||||
|
||||
| Content Type | Citation Share | Why AI Cites It |
|
||||
|-------------|:------------:|----------------|
|
||||
| **Comparison articles** | ~33% | Structured, balanced, high-intent |
|
||||
| **Definitive guides** | ~15% | Comprehensive, authoritative |
|
||||
| **Original research/data** | ~12% | Unique, citable statistics |
|
||||
| **Best-of/listicles** | ~10% | Clear structure, entity-rich |
|
||||
| **Product pages** | ~10% | Specific details AI can extract |
|
||||
| **How-to guides** | ~8% | Step-by-step structure |
|
||||
| **Opinion/analysis** | ~10% | Expert perspective, quotable |
|
||||
|
||||
**Underperformers for AI citation:**
|
||||
- Generic blog posts without structure
|
||||
- Thin product pages with marketing fluff
|
||||
- Gated content (AI can't access it)
|
||||
- Content without dates or author attribution
|
||||
- PDF-only content (harder for AI to parse)
|
||||
|
||||
---
|
||||
|
||||
## Monitoring AI Visibility
|
||||
|
||||
### What to Track
|
||||
|
||||
| Metric | What It Measures | How to Check |
|
||||
|--------|-----------------|-------------|
|
||||
| AI Overview presence | Do AI Overviews appear for your queries? | Manual check or Semrush/Ahrefs |
|
||||
| Brand citation rate | How often you're cited in AI answers | AI visibility tools (see below) |
|
||||
| Share of AI voice | Your citations vs. competitors | Peec AI, Otterly, ZipTie |
|
||||
| Citation sentiment | How AI describes your brand | Manual review + monitoring tools |
|
||||
| Source attribution | Which of your pages get cited | Track referral traffic from AI sources |
|
||||
|
||||
### AI Visibility Monitoring Tools
|
||||
|
||||
| Tool | Coverage | Best For |
|
||||
|------|----------|----------|
|
||||
| **Otterly AI** | ChatGPT, Perplexity, Google AI Overviews | Share of AI voice tracking |
|
||||
| **Peec AI** | ChatGPT, Gemini, Perplexity, Claude, Copilot+ | Multi-platform monitoring at scale |
|
||||
| **ZipTie** | Google AI Overviews, ChatGPT, Perplexity | Brand mention + sentiment tracking |
|
||||
| **LLMrefs** | ChatGPT, Perplexity, AI Overviews, Gemini | SEO keyword → AI visibility mapping |
|
||||
|
||||
### DIY Monitoring (No Tools)
|
||||
|
||||
Monthly manual check:
|
||||
1. Pick your top 20 queries
|
||||
2. Run each through ChatGPT, Perplexity, and Google
|
||||
3. Record: Are you cited? Who is? What page?
|
||||
4. Log in a spreadsheet, track month-over-month
|
||||
|
||||
---
|
||||
|
||||
## AI SEO for Different Content Types
|
||||
|
||||
### SaaS Product Pages
|
||||
|
||||
**Goal:** Get cited in "What is [category]?" and "Best [category]" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Clear product description in first paragraph (what it does, who it's for)
|
||||
- Feature comparison tables (you vs. category, not just competitors)
|
||||
- Specific metrics ("processes 10,000 transactions/sec" not "blazing fast")
|
||||
- Customer count or social proof with numbers
|
||||
- Pricing transparency (AI cites pages with visible pricing) — add a `/pricing.md` file so AI agents can parse your plans without rendering your page (see "Machine-Readable Files" above)
|
||||
- FAQ section addressing common buyer questions
|
||||
|
||||
### Blog Content
|
||||
|
||||
**Goal:** Get cited as an authoritative source on topics in your space.
|
||||
|
||||
**Optimize:**
|
||||
- One clear target query per post (match heading to query)
|
||||
- Definition in first paragraph for "What is" queries
|
||||
- Original data, research, or expert quotes
|
||||
- "Last updated" date visible
|
||||
- Author bio with relevant credentials
|
||||
- Internal links to related product/feature pages
|
||||
|
||||
### Comparison/Alternative Pages
|
||||
|
||||
**Goal:** Get cited in "[X] vs [Y]" and "Best [X] alternatives" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Structured comparison tables (not just prose)
|
||||
- Fair and balanced (AI penalizes obviously biased comparisons)
|
||||
- Specific criteria with ratings or scores
|
||||
- Updated pricing and feature data
|
||||
- Cite the competitor-alternatives skill for building these pages
|
||||
|
||||
### Documentation / Help Content
|
||||
|
||||
**Goal:** Get cited in "How to [X] with [your product]" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Step-by-step format with numbered lists
|
||||
- Code examples where relevant
|
||||
- HowTo schema markup
|
||||
- Screenshots with descriptive alt text
|
||||
- Clear prerequisites and expected outcomes
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- **Ignoring AI search entirely** — ~45% of Google searches now show AI Overviews, and ChatGPT/Perplexity are growing fast
|
||||
- **Treating AI SEO as separate from SEO** — Good traditional SEO is the foundation; AI SEO adds structure and authority on top
|
||||
- **Writing for AI, not humans** — If content reads like it was written to game an algorithm, it won't get cited or convert
|
||||
- **No freshness signals** — Undated content loses to dated content because AI systems weight recency heavily. Show when content was last updated
|
||||
- **Gating all content** — AI can't access gated content. Keep your most authoritative content open
|
||||
- **Ignoring third-party presence** — You may get more AI citations from a Wikipedia mention than from your own blog
|
||||
- **No structured data** — Schema markup gives AI systems structured context about your content
|
||||
- **Keyword stuffing** — Unlike traditional SEO where it's just ineffective, keyword stuffing actively reduces AI visibility by 10% (Princeton GEO study)
|
||||
- **Hiding pricing behind "contact sales" or JS-rendered pages** — AI agents evaluating your product on behalf of buyers can't parse what they can't read. Add a `/pricing.md` file
|
||||
- **Blocking AI bots** — If GPTBot, PerplexityBot, or ClaudeBot are blocked in robots.txt, those platforms can't cite you
|
||||
- **Generic content without data** — "We're the best" won't get cited. "Our customers see 3x improvement in [metric]" will
|
||||
- **Forgetting to monitor** — You can't improve what you don't measure. Check AI visibility monthly at minimum
|
||||
|
||||
---
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
For implementation, see the [tools registry](../../tools/REGISTRY.md).
|
||||
|
||||
| Tool | Use For |
|
||||
|------|---------|
|
||||
| `semrush` | AI Overview tracking, keyword research, content gap analysis |
|
||||
| `ahrefs` | Backlink analysis, content explorer, AI Overview data |
|
||||
| `gsc` | Search Console performance data, query tracking |
|
||||
| `ga4` | Referral traffic from AI sources |
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What are your top 10-20 most important queries?
|
||||
2. Have you checked if AI answers exist for those queries today?
|
||||
3. Do you have structured data (schema markup) on your site?
|
||||
4. What content types do you publish? (Blog, docs, comparisons, etc.)
|
||||
5. Are competitors being cited by AI where you're not?
|
||||
6. Do you have a Wikipedia page or presence on review sites?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **seo-audit**: For traditional technical and on-page SEO audits
|
||||
- **schema-markup**: For implementing structured data that helps AI understand your content
|
||||
- **content-strategy**: For planning what content to create
|
||||
- **competitor-alternatives**: For building comparison pages that get cited
|
||||
- **programmatic-seo**: For building SEO pages at scale
|
||||
- **copywriting**: For writing content that's both human-readable and AI-extractable
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "ai-seo",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "How do I make sure our SaaS product shows up in AI search results? We're a project management tool and we keep getting left out of ChatGPT and Perplexity recommendations when people ask about project management software.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply the three pillars framework: Structure (make content extractable), Authority (make content citable), Presence (be where AI looks). Should run through the AI Visibility Audit checklist across platforms (Google AI Overviews, ChatGPT, Perplexity, etc.). Should check content extractability (clear definitions, structured comparisons, statistics). Should reference Princeton GEO research findings (citations improve visibility +40%, statistics +37%). Should check AI bot access in robots.txt. Should provide a prioritized action plan.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies three pillars framework (Structure, Authority, Presence)",
|
||||
"Runs AI Visibility Audit across platforms",
|
||||
"Checks content extractability",
|
||||
"References Princeton GEO research findings",
|
||||
"Checks AI bot access in robots.txt",
|
||||
"Provides prioritized action plan"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Should we block AI crawlers like GPTBot and PerplexityBot in our robots.txt? We're worried about content theft.",
|
||||
"expected_output": "Should address the AI bot access question directly. Should explain the tradeoff: blocking AI bots prevents training on your content but also prevents AI platforms from citing and recommending you. Should reference the specific bots and their purposes (GPTBot, Google-Extended, PerplexityBot, ClaudeBot, etc.). Should provide the recommended robots.txt configuration. Should explain that blocking may hurt AI visibility more than it protects content. Should provide a nuanced recommendation based on business goals.",
|
||||
"assertions": [
|
||||
"Addresses the blocking tradeoff directly",
|
||||
"Explains impact on AI visibility vs content protection",
|
||||
"Lists specific AI bot user agents",
|
||||
"Provides recommended robots.txt configuration",
|
||||
"Gives nuanced recommendation based on business goals",
|
||||
"Explains what each bot does"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "What kind of content gets cited most by AI systems? We want to create content specifically optimized for AI search.",
|
||||
"expected_output": "Should reference the content types that get cited most, including comparisons (~33% of AI citations), definitive guides (~15%), and other high-citation content types. Should explain why these formats work (they provide the structured, extractable, authoritative information AI systems need). Should provide specific recommendations for creating AI-optimized content: clear definitions, structured data, original statistics, comparison tables, expert quotes. Should reference the Princeton GEO research on what increases citation probability.",
|
||||
"assertions": [
|
||||
"References specific content types with citation rates",
|
||||
"Mentions comparisons as highest-cited format",
|
||||
"Explains why these formats work for AI",
|
||||
"Provides specific content creation recommendations",
|
||||
"References Princeton GEO research",
|
||||
"Mentions structured data, statistics, and clear definitions"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "we noticed our competitors are showing up in google AI overviews but we're not. what do we need to change?",
|
||||
"expected_output": "Should trigger on casual phrasing. Should focus specifically on Google AI Overviews visibility. Should explain how AI Overviews selects sources (authoritative, well-structured, directly answers queries). Should run through the Structure pillar checklist: content extractability, heading hierarchy, answer-first format, structured data. Should check Authority signals: domain authority, citations, E-E-A-T. Should recommend specific content structure changes. Should suggest monitoring approach.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Focuses on Google AI Overviews specifically",
|
||||
"Explains how AI Overviews selects sources",
|
||||
"Checks Structure pillar (extractability, headings, answer-first)",
|
||||
"Checks Authority signals",
|
||||
"Recommends specific content structure changes",
|
||||
"Suggests monitoring approach"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "Can you audit our website for AI search readiness? We want to know how visible we are across ChatGPT, Perplexity, Google AI Overviews, and other AI platforms.",
|
||||
"expected_output": "Should run the full AI Visibility Audit. Should check each platform in the landscape (Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini, Copilot). Should evaluate all three pillars: Structure (content extractability, JSON-LD, clear definitions), Authority (citations, backlinks, E-E-A-T signals), Presence (AI bot access, platform-specific factors). Should provide findings organized by pillar. Should provide a prioritized action plan with specific fixes.",
|
||||
"assertions": [
|
||||
"Runs full AI Visibility Audit",
|
||||
"Checks multiple AI platforms",
|
||||
"Evaluates all three pillars (Structure, Authority, Presence)",
|
||||
"Checks content extractability",
|
||||
"Checks AI bot access",
|
||||
"Provides findings organized by pillar",
|
||||
"Provides prioritized action plan"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Our organic search traffic has dropped 30% this quarter. Can you do a full SEO audit to figure out what's going on?",
|
||||
"expected_output": "Should recognize this is a traditional SEO audit request, not specifically an AI SEO task. Should defer to or cross-reference the seo-audit skill, which handles comprehensive traditional SEO audits including crawlability, technical foundations, on-page optimization, and content quality. May mention AI search as one factor to investigate but should make clear that seo-audit is the primary skill for this task.",
|
||||
"assertions": [
|
||||
"Recognizes this as a traditional SEO audit request",
|
||||
"References or defers to seo-audit skill",
|
||||
"Does not attempt a full traditional SEO audit using AI SEO patterns",
|
||||
"May mention AI search as one factor to consider"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,285 @@
|
||||
# AEO and GEO Content Patterns
|
||||
|
||||
Reusable content block patterns optimized for answer engines and AI citation.
|
||||
|
||||
---
|
||||
|
||||
## Contents
|
||||
- Answer Engine Optimization (AEO) Patterns (Definition Block, Step-by-Step Block, Comparison Table Block, Pros and Cons Block, FAQ Block, Listicle Block)
|
||||
- Generative Engine Optimization (GEO) Patterns (Statistic Citation Block, Expert Quote Block, Authoritative Claim Block, Self-Contained Answer Block, Evidence Sandwich Block)
|
||||
- Domain-Specific GEO Tactics (Technology Content, Health/Medical Content, Financial Content, Legal Content, Business/Marketing Content)
|
||||
- Voice Search Optimization (Question Formats for Voice, Voice-Optimized Answer Structure)
|
||||
|
||||
## Answer Engine Optimization (AEO) Patterns
|
||||
|
||||
These patterns help content appear in featured snippets, AI Overviews, voice search results, and answer boxes.
|
||||
|
||||
### Definition Block
|
||||
|
||||
Use for "What is [X]?" queries.
|
||||
|
||||
```markdown
|
||||
## What is [Term]?
|
||||
|
||||
[Term] is [concise 1-sentence definition]. [Expanded 1-2 sentence explanation with key characteristics]. [Brief context on why it matters or how it's used].
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```markdown
|
||||
## What is Answer Engine Optimization?
|
||||
|
||||
Answer Engine Optimization (AEO) is the practice of structuring content so AI-powered systems can easily extract and present it as direct answers to user queries. Unlike traditional SEO that focuses on ranking in search results, AEO optimizes for featured snippets, AI Overviews, and voice assistant responses. This approach has become essential as over 60% of Google searches now end without a click.
|
||||
```
|
||||
|
||||
### Step-by-Step Block
|
||||
|
||||
Use for "How to [X]" queries. Optimal for list snippets.
|
||||
|
||||
```markdown
|
||||
## How to [Action/Goal]
|
||||
|
||||
[1-sentence overview of the process]
|
||||
|
||||
1. **[Step Name]**: [Clear action description in 1-2 sentences]
|
||||
2. **[Step Name]**: [Clear action description in 1-2 sentences]
|
||||
3. **[Step Name]**: [Clear action description in 1-2 sentences]
|
||||
4. **[Step Name]**: [Clear action description in 1-2 sentences]
|
||||
5. **[Step Name]**: [Clear action description in 1-2 sentences]
|
||||
|
||||
[Optional: Brief note on expected outcome or time estimate]
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```markdown
|
||||
## How to Optimize Content for Featured Snippets
|
||||
|
||||
Earning featured snippets requires strategic formatting and direct answers to search queries.
|
||||
|
||||
1. **Identify snippet opportunities**: Use tools like Semrush or Ahrefs to find keywords where competitors have snippets you could capture.
|
||||
2. **Match the snippet format**: Analyze whether the current snippet is a paragraph, list, or table, and format your content accordingly.
|
||||
3. **Answer the question directly**: Provide a clear, concise answer (40-60 words for paragraph snippets) immediately after the question heading.
|
||||
4. **Add supporting context**: Expand on your answer with examples, data, and expert insights in the following paragraphs.
|
||||
5. **Use proper heading structure**: Place your target question as an H2 or H3, with the answer immediately following.
|
||||
|
||||
Most featured snippets appear within 2-4 weeks of publishing well-optimized content.
|
||||
```
|
||||
|
||||
### Comparison Table Block
|
||||
|
||||
Use for "[X] vs [Y]" queries. Optimal for table snippets.
|
||||
|
||||
```markdown
|
||||
## [Option A] vs [Option B]: [Brief Descriptor]
|
||||
|
||||
| Feature | [Option A] | [Option B] |
|
||||
|---------|------------|------------|
|
||||
| [Criteria 1] | [Value/Description] | [Value/Description] |
|
||||
| [Criteria 2] | [Value/Description] | [Value/Description] |
|
||||
| [Criteria 3] | [Value/Description] | [Value/Description] |
|
||||
| [Criteria 4] | [Value/Description] | [Value/Description] |
|
||||
| Best For | [Use case] | [Use case] |
|
||||
|
||||
**Bottom line**: [1-2 sentence recommendation based on different needs]
|
||||
```
|
||||
|
||||
### Pros and Cons Block
|
||||
|
||||
Use for evaluation queries: "Is [X] worth it?", "Should I [X]?"
|
||||
|
||||
```markdown
|
||||
## Advantages and Disadvantages of [Topic]
|
||||
|
||||
[1-sentence overview of the evaluation context]
|
||||
|
||||
### Pros
|
||||
|
||||
- **[Benefit category]**: [Specific explanation]
|
||||
- **[Benefit category]**: [Specific explanation]
|
||||
- **[Benefit category]**: [Specific explanation]
|
||||
|
||||
### Cons
|
||||
|
||||
- **[Drawback category]**: [Specific explanation]
|
||||
- **[Drawback category]**: [Specific explanation]
|
||||
- **[Drawback category]**: [Specific explanation]
|
||||
|
||||
**Verdict**: [1-2 sentence balanced conclusion with recommendation]
|
||||
```
|
||||
|
||||
### FAQ Block
|
||||
|
||||
Use for topic pages with multiple common questions. Essential for FAQ schema.
|
||||
|
||||
```markdown
|
||||
## Frequently Asked Questions
|
||||
|
||||
### [Question phrased exactly as users search]?
|
||||
|
||||
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
|
||||
|
||||
### [Question phrased exactly as users search]?
|
||||
|
||||
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
|
||||
|
||||
### [Question phrased exactly as users search]?
|
||||
|
||||
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
|
||||
```
|
||||
|
||||
**Tips for FAQ questions:**
|
||||
- Use natural question phrasing ("How do I..." not "How does one...")
|
||||
- Include question words: what, how, why, when, where, who, which
|
||||
- Match "People Also Ask" queries from search results
|
||||
- Keep answers between 50-100 words
|
||||
|
||||
### Listicle Block
|
||||
|
||||
Use for "Best [X]", "Top [X]", "[Number] ways to [X]" queries.
|
||||
|
||||
```markdown
|
||||
## [Number] Best [Items] for [Goal/Purpose]
|
||||
|
||||
[1-2 sentence intro establishing context and selection criteria]
|
||||
|
||||
### 1. [Item Name]
|
||||
|
||||
[Why it's included in 2-3 sentences with specific benefits]
|
||||
|
||||
### 2. [Item Name]
|
||||
|
||||
[Why it's included in 2-3 sentences with specific benefits]
|
||||
|
||||
### 3. [Item Name]
|
||||
|
||||
[Why it's included in 2-3 sentences with specific benefits]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Generative Engine Optimization (GEO) Patterns
|
||||
|
||||
These patterns optimize content for citation by AI assistants like ChatGPT, Claude, Perplexity, and Gemini.
|
||||
|
||||
### Statistic Citation Block
|
||||
|
||||
Statistics increase AI citation rates by 15-30%. Always include sources.
|
||||
|
||||
```markdown
|
||||
[Claim statement]. According to [Source/Organization], [specific statistic with number and timeframe]. [Context for why this matters].
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```markdown
|
||||
Mobile optimization is no longer optional for SEO success. According to Google's 2024 Core Web Vitals report, 70% of web traffic now comes from mobile devices, and pages failing mobile usability standards see 24% higher bounce rates. This makes mobile-first indexing a critical ranking factor.
|
||||
```
|
||||
|
||||
### Expert Quote Block
|
||||
|
||||
Named expert attribution adds credibility and increases citation likelihood.
|
||||
|
||||
```markdown
|
||||
"[Direct quote from expert]," says [Expert Name], [Title/Role] at [Organization]. [1 sentence of context or interpretation].
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```markdown
|
||||
"The shift from keyword-driven search to intent-driven discovery represents the most significant change in SEO since mobile-first indexing," says Rand Fishkin, Co-founder of SparkToro. This perspective highlights why content strategies must evolve beyond traditional keyword optimization.
|
||||
```
|
||||
|
||||
### Authoritative Claim Block
|
||||
|
||||
Structure claims for easy AI extraction with clear attribution.
|
||||
|
||||
```markdown
|
||||
[Topic] [verb: is/has/requires/involves] [clear, specific claim]. [Source] [confirms/reports/found] that [supporting evidence]. This [explains/means/suggests] [implication or action].
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```markdown
|
||||
E-E-A-T is the cornerstone of Google's content quality evaluation. Google's Search Quality Rater Guidelines confirm that trust is the most critical factor, stating that "untrustworthy pages have low E-E-A-T no matter how experienced, expert, or authoritative they may seem." This means content creators must prioritize transparency and accuracy above all other optimization tactics.
|
||||
```
|
||||
|
||||
### Self-Contained Answer Block
|
||||
|
||||
Create quotable, standalone statements that AI can extract directly.
|
||||
|
||||
```markdown
|
||||
**[Topic/Question]**: [Complete, self-contained answer that makes sense without additional context. Include specific details, numbers, or examples in 2-3 sentences.]
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```markdown
|
||||
**Ideal blog post length for SEO**: The optimal length for SEO blog posts is 1,500-2,500 words for competitive topics. This range allows comprehensive topic coverage while maintaining reader engagement. HubSpot research shows long-form content earns 77% more backlinks than short articles, directly impacting search rankings.
|
||||
```
|
||||
|
||||
### Evidence Sandwich Block
|
||||
|
||||
Structure claims with evidence for maximum credibility.
|
||||
|
||||
```markdown
|
||||
[Opening claim statement].
|
||||
|
||||
Evidence supporting this includes:
|
||||
- [Data point 1 with source]
|
||||
- [Data point 2 with source]
|
||||
- [Data point 3 with source]
|
||||
|
||||
[Concluding statement connecting evidence to actionable insight].
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Domain-Specific GEO Tactics
|
||||
|
||||
Different content domains benefit from different authority signals.
|
||||
|
||||
### Technology Content
|
||||
- Emphasize technical precision and correct terminology
|
||||
- Include version numbers and dates for software/tools
|
||||
- Reference official documentation
|
||||
- Add code examples where relevant
|
||||
|
||||
### Health/Medical Content
|
||||
- Cite peer-reviewed studies with publication details
|
||||
- Include expert credentials (MD, RN, etc.)
|
||||
- Note study limitations and context
|
||||
- Add "last reviewed" dates
|
||||
|
||||
### Financial Content
|
||||
- Reference regulatory bodies (SEC, FTC, etc.)
|
||||
- Include specific numbers with timeframes
|
||||
- Note that information is educational, not advice
|
||||
- Cite recognized financial institutions
|
||||
|
||||
### Legal Content
|
||||
- Cite specific laws, statutes, and regulations
|
||||
- Reference jurisdiction clearly
|
||||
- Include professional disclaimers
|
||||
- Note when professional consultation is advised
|
||||
|
||||
### Business/Marketing Content
|
||||
- Include case studies with measurable results
|
||||
- Reference industry research and reports
|
||||
- Add percentage changes and timeframes
|
||||
- Quote recognized thought leaders
|
||||
|
||||
---
|
||||
|
||||
## Voice Search Optimization
|
||||
|
||||
Voice queries are conversational and question-based. Optimize for these patterns:
|
||||
|
||||
### Question Formats for Voice
|
||||
- "What is..."
|
||||
- "How do I..."
|
||||
- "Where can I find..."
|
||||
- "Why does..."
|
||||
- "When should I..."
|
||||
- "Who is..."
|
||||
|
||||
### Voice-Optimized Answer Structure
|
||||
- Lead with direct answer (under 30 words ideal)
|
||||
- Use natural, conversational language
|
||||
- Avoid jargon unless targeting expert audience
|
||||
- Include local context where relevant
|
||||
- Structure for single spoken response
|
||||
@@ -0,0 +1,152 @@
|
||||
# How Each AI Platform Picks Sources
|
||||
|
||||
Each AI search platform has its own search index, ranking logic, and content preferences. This guide covers what matters for getting cited on each one.
|
||||
|
||||
Sources cited throughout: Princeton GEO study (KDD 2024), SE Ranking domain authority study, ZipTie content-answer fit analysis.
|
||||
|
||||
---
|
||||
|
||||
## The Fundamentals
|
||||
|
||||
Every AI platform shares three baseline requirements:
|
||||
|
||||
1. **Your content must be in their index** — Each platform uses a different search backend (Google, Bing, Brave, or their own). If you're not indexed, you can't be cited.
|
||||
2. **Your content must be crawlable** — AI bots need access via robots.txt. Block the bot, lose the citation.
|
||||
3. **Your content must be extractable** — AI systems pull passages, not pages. Clear structure and self-contained paragraphs win.
|
||||
|
||||
Beyond these basics, each platform weights different signals. Here's what matters and where.
|
||||
|
||||
---
|
||||
|
||||
## Google AI Overviews
|
||||
|
||||
Google AI Overviews pull from Google's own index and lean heavily on E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness). They appear in roughly 45% of Google searches.
|
||||
|
||||
**What makes Google AI Overviews different:** They already have your traditional SEO signals — backlinks, page authority, topical relevance. The additional AI layer adds a preference for content with cited sources and structured data. Research shows that including authoritative citations in your content correlates with a 132% visibility boost, and writing with an authoritative (not salesy) tone adds another 89%.
|
||||
|
||||
**Importantly, AI Overviews don't just recycle the traditional Top 10.** Only about 15% of AI Overview sources overlap with conventional organic results. Pages that wouldn't crack page 1 in traditional search can still get cited if they have strong structured data and clear, extractable answers.
|
||||
|
||||
**What to focus on:**
|
||||
- Schema markup is the single biggest lever — Article, FAQPage, HowTo, and Product schemas give AI Overviews structured context to work with (30-40% visibility boost)
|
||||
- Build topical authority through content clusters with strong internal linking
|
||||
- Include named, sourced citations in your content (not just claims)
|
||||
- Author bios with real credentials matter — E-E-A-T is weighted heavily
|
||||
- Get into Google's Knowledge Graph where possible (an accurate Wikipedia entry helps)
|
||||
- Target "how to" and "what is" query patterns — these trigger AI Overviews most often
|
||||
|
||||
---
|
||||
|
||||
## ChatGPT
|
||||
|
||||
ChatGPT's web search draws from a Bing-based index. It combines this with its training knowledge to generate answers, then cites the web sources it relied on.
|
||||
|
||||
**What makes ChatGPT different:** Domain authority matters more here than on other AI platforms. An SE Ranking analysis of 129,000 domains found that authority and credibility signals account for roughly 40% of what determines citation, with content quality at about 35% and platform trust at 25%. Sites with very high referring domain counts (350K+) average 8.4 citations per response, while sites with slightly lower trust scores (91-96 vs 97-100) drop from 8.4 to 6 citations.
|
||||
|
||||
**Freshness is a major differentiator.** Content updated within the last 30 days gets cited about 3.2x more often than older content. ChatGPT clearly favors recent information.
|
||||
|
||||
**The most important signal is content-answer fit** — a ZipTie analysis of 400,000 pages found that how well your content's style and structure matches ChatGPT's own response format accounts for about 55% of citation likelihood. This is far more important than domain authority (12%) or on-page structure (14%) alone. Write the way ChatGPT would answer the question, and you're more likely to be the source it cites.
|
||||
|
||||
**Where ChatGPT looks beyond your site:** Wikipedia accounts for 7.8% of all ChatGPT citations, Reddit for 1.8%, and Forbes for 1.1%. Brand official sites are cited frequently but third-party mentions carry significant weight.
|
||||
|
||||
**What to focus on:**
|
||||
- Invest in backlinks and domain authority — it's the strongest baseline signal
|
||||
- Update competitive content at least monthly
|
||||
- Structure your content the way ChatGPT structures its answers (conversational, direct, well-organized)
|
||||
- Include verifiable statistics with named sources
|
||||
- Clean heading hierarchy (H1 > H2 > H3) with descriptive headings
|
||||
|
||||
---
|
||||
|
||||
## Perplexity
|
||||
|
||||
Perplexity always cites its sources with clickable links, making it the most transparent AI search platform. It combines its own index with Google's and runs results through multiple reranking passes — initial relevance retrieval, then traditional ranking factor scoring, then ML-based quality evaluation that can discard entire result sets if they don't meet quality thresholds.
|
||||
|
||||
**What makes Perplexity different:** It's the most "research-oriented" AI search engine, and its citation behavior reflects that. Perplexity maintains curated lists of authoritative domains (Amazon, GitHub, major academic sites) that get inherent ranking boosts. It uses a time-decay algorithm that evaluates new content quickly, giving fresh publishers a real shot at citation.
|
||||
|
||||
**Perplexity has unique content preferences:**
|
||||
- **FAQ Schema (JSON-LD)** — Pages with FAQ structured data get cited noticeably more often
|
||||
- **PDF documents** — Publicly accessible PDFs (whitepapers, research reports) are prioritized. If you have authoritative PDF content gated behind a form, consider making a version public.
|
||||
- **Publishing velocity** — How frequently you publish matters more than keyword targeting
|
||||
- **Self-contained paragraphs** — Perplexity prefers atomic, semantically complete paragraphs it can extract cleanly
|
||||
|
||||
**What to focus on:**
|
||||
- Allow PerplexityBot in robots.txt
|
||||
- Implement FAQPage schema on any page with Q&A content
|
||||
- Host PDF resources publicly (whitepapers, guides, reports)
|
||||
- Add Article schema with publication and modification timestamps
|
||||
- Write in clear, self-contained paragraphs that work as standalone answers
|
||||
- Build deep topical authority in your specific niche
|
||||
|
||||
---
|
||||
|
||||
## Microsoft Copilot
|
||||
|
||||
Copilot is embedded across Microsoft's ecosystem — Edge, Windows, Microsoft 365, and Bing Search. It relies entirely on Bing's index, so if Bing hasn't indexed your content, Copilot can't cite it.
|
||||
|
||||
**What makes Copilot different:** The Microsoft ecosystem connection creates unique optimization opportunities. Mentions and content on LinkedIn and GitHub provide ranking boosts that other platforms don't offer. Copilot also puts more weight on page speed — sub-2-second load times are a clear threshold.
|
||||
|
||||
**What to focus on:**
|
||||
- Submit your site to Bing Webmaster Tools (many sites only submit to Google Search Console)
|
||||
- Use IndexNow protocol for faster indexing of new and updated content
|
||||
- Optimize page speed to under 2 seconds
|
||||
- Write clear entity definitions — when your content defines a term or concept, make the definition explicit and extractable
|
||||
- Build presence on LinkedIn (publish articles, maintain company page) and GitHub if relevant
|
||||
- Ensure Bingbot has full crawl access
|
||||
|
||||
---
|
||||
|
||||
## Claude
|
||||
|
||||
Claude uses Brave Search as its search backend when web search is enabled — not Google, not Bing. This is a completely different index, which means your Brave Search visibility directly determines whether Claude can find and cite you.
|
||||
|
||||
**What makes Claude different:** Claude is extremely selective about what it cites. While it processes enormous amounts of content, its citation rate is very low — it's looking for the most factually accurate, well-sourced content on a given topic. Data-rich content with specific numbers and clear attribution performs significantly better than general-purpose content.
|
||||
|
||||
**What to focus on:**
|
||||
- Verify your content appears in Brave Search results (search for your brand and key terms at search.brave.com)
|
||||
- Allow ClaudeBot and anthropic-ai user agents in robots.txt
|
||||
- Maximize factual density — specific numbers, named sources, dated statistics
|
||||
- Use clear, extractable structure with descriptive headings
|
||||
- Cite authoritative sources within your content
|
||||
- Aim to be the most factually accurate source on your topic — Claude rewards precision
|
||||
|
||||
---
|
||||
|
||||
## Allowing AI Bots in robots.txt
|
||||
|
||||
If your robots.txt blocks an AI bot, that platform can't cite your content. Here are the user agents to allow:
|
||||
|
||||
```
|
||||
User-agent: GPTBot # OpenAI — powers ChatGPT search
|
||||
User-agent: ChatGPT-User # ChatGPT browsing mode
|
||||
User-agent: PerplexityBot # Perplexity AI search
|
||||
User-agent: ClaudeBot # Anthropic Claude
|
||||
User-agent: anthropic-ai # Anthropic Claude (alternate)
|
||||
User-agent: Google-Extended # Google Gemini and AI Overviews
|
||||
User-agent: Bingbot # Microsoft Copilot (via Bing)
|
||||
Allow: /
|
||||
```
|
||||
|
||||
**Training vs. search:** Some AI bots are used for both model training and search citation. If you want to be cited but don't want your content used for training, your options are limited — GPTBot handles both for OpenAI. However, you can safely block **CCBot** (Common Crawl) without affecting any AI search citations, since it's only used for training dataset collection.
|
||||
|
||||
---
|
||||
|
||||
## Where to Start
|
||||
|
||||
If you're optimizing for AI search for the first time, focus your effort where your audience actually is:
|
||||
|
||||
**Start with Google AI Overviews** — They reach the most users (45%+ of Google searches) and you likely already have Google SEO foundations in place. Add schema markup, include cited sources in your content, and strengthen E-E-A-T signals.
|
||||
|
||||
**Then address ChatGPT** — It's the most-used standalone AI search tool for tech and business audiences. Focus on freshness (update content monthly), domain authority, and matching your content structure to how ChatGPT formats its responses.
|
||||
|
||||
**Then expand to Perplexity** — Especially valuable if your audience includes researchers, early adopters, or tech professionals. Add FAQ schema, publish PDF resources, and write in clear, self-contained paragraphs.
|
||||
|
||||
**Copilot and Claude are lower priority** unless your audience skews enterprise/Microsoft (Copilot) or developer/analyst (Claude). But the fundamentals — structured content, cited sources, schema markup — help across all platforms.
|
||||
|
||||
**Actions that help everywhere:**
|
||||
1. Allow all AI bots in robots.txt
|
||||
2. Implement schema markup (FAQPage, Article, Organization at minimum)
|
||||
3. Include statistics with named sources in your content
|
||||
4. Update content regularly — monthly for competitive topics
|
||||
5. Use clear heading structure (H1 > H2 > H3)
|
||||
6. Keep page load time under 2 seconds
|
||||
7. Add author bios with credentials
|
||||
+104
-334
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: analytics-tracking
|
||||
description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," or "tracking plan." For A/B test measurement, see ab-test-setup.
|
||||
description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Analytics Tracking
|
||||
@@ -9,22 +11,14 @@ You are an expert in analytics implementation and measurement. Your goal is to h
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Before implementing tracking, understand:
|
||||
|
||||
1. **Business Context**
|
||||
- What decisions will this data inform?
|
||||
- What are the key conversion actions?
|
||||
- What questions need answering?
|
||||
|
||||
2. **Current State**
|
||||
- What tracking exists?
|
||||
- What tools are in use (GA4, Mixpanel, Amplitude, etc.)?
|
||||
- What's working/not working?
|
||||
|
||||
3. **Technical Context**
|
||||
- What's the tech stack?
|
||||
- Who will implement and maintain?
|
||||
- Any privacy/compliance requirements?
|
||||
1. **Business Context** - What decisions will this data inform? What are key conversions?
|
||||
2. **Current State** - What tracking exists? What tools are in use?
|
||||
3. **Technical Context** - What's the tech stack? Any privacy/compliance requirements?
|
||||
|
||||
---
|
||||
|
||||
@@ -57,63 +51,36 @@ Before implementing tracking, understand:
|
||||
### Structure
|
||||
|
||||
```
|
||||
Event Name | Event Category | Properties | Trigger | Notes
|
||||
---------- | ------------- | ---------- | ------- | -----
|
||||
Event Name | Category | Properties | Trigger | Notes
|
||||
---------- | -------- | ---------- | ------- | -----
|
||||
```
|
||||
|
||||
### Event Types
|
||||
|
||||
**Pageviews**
|
||||
- Automatic in most tools
|
||||
- Enhanced with page metadata
|
||||
| Type | Examples |
|
||||
|------|----------|
|
||||
| Pageviews | Automatic, enhanced with metadata |
|
||||
| User Actions | Button clicks, form submissions, feature usage |
|
||||
| System Events | Signup completed, purchase, subscription changed |
|
||||
| Custom Conversions | Goal completions, funnel stages |
|
||||
|
||||
**User Actions**
|
||||
- Button clicks
|
||||
- Form submissions
|
||||
- Feature usage
|
||||
- Content interactions
|
||||
|
||||
**System Events**
|
||||
- Signup completed
|
||||
- Purchase completed
|
||||
- Subscription changed
|
||||
- Errors occurred
|
||||
|
||||
**Custom Conversions**
|
||||
- Goal completions
|
||||
- Funnel stages
|
||||
- Business-specific milestones
|
||||
**For comprehensive event lists**: See [references/event-library.md](references/event-library.md)
|
||||
|
||||
---
|
||||
|
||||
## Event Naming Conventions
|
||||
|
||||
### Format Options
|
||||
### Recommended Format: Object-Action
|
||||
|
||||
**Object-Action (Recommended)**
|
||||
```
|
||||
signup_completed
|
||||
button_clicked
|
||||
form_submitted
|
||||
article_read
|
||||
```
|
||||
|
||||
**Action-Object**
|
||||
```
|
||||
click_button
|
||||
submit_form
|
||||
complete_signup
|
||||
```
|
||||
|
||||
**Category_Object_Action**
|
||||
```
|
||||
checkout_payment_completed
|
||||
blog_article_viewed
|
||||
onboarding_step_completed
|
||||
```
|
||||
|
||||
### Best Practices
|
||||
|
||||
- Lowercase with underscores
|
||||
- Be specific: `cta_hero_clicked` vs. `button_clicked`
|
||||
- Include context in properties, not event name
|
||||
@@ -122,235 +89,94 @@ onboarding_step_completed
|
||||
|
||||
---
|
||||
|
||||
## Essential Events to Track
|
||||
## Essential Events
|
||||
|
||||
### Marketing Site
|
||||
|
||||
**Navigation**
|
||||
- page_view (enhanced)
|
||||
- outbound_link_clicked
|
||||
- scroll_depth (25%, 50%, 75%, 100%)
|
||||
|
||||
**Engagement**
|
||||
- cta_clicked (button_text, location)
|
||||
- video_played (video_id, duration)
|
||||
- form_started
|
||||
- form_submitted (form_type)
|
||||
- resource_downloaded (resource_name)
|
||||
|
||||
**Conversion**
|
||||
- signup_started
|
||||
- signup_completed
|
||||
- demo_requested
|
||||
- contact_submitted
|
||||
| Event | Properties |
|
||||
|-------|------------|
|
||||
| cta_clicked | button_text, location |
|
||||
| form_submitted | form_type |
|
||||
| signup_completed | method, source |
|
||||
| demo_requested | - |
|
||||
|
||||
### Product/App
|
||||
|
||||
**Onboarding**
|
||||
- signup_completed
|
||||
- onboarding_step_completed (step_number, step_name)
|
||||
- onboarding_completed
|
||||
- first_key_action_completed
|
||||
| Event | Properties |
|
||||
|-------|------------|
|
||||
| onboarding_step_completed | step_number, step_name |
|
||||
| feature_used | feature_name |
|
||||
| purchase_completed | plan, value |
|
||||
| subscription_cancelled | reason |
|
||||
|
||||
**Core Usage**
|
||||
- feature_used (feature_name)
|
||||
- action_completed (action_type)
|
||||
- session_started
|
||||
- session_ended
|
||||
|
||||
**Monetization**
|
||||
- trial_started
|
||||
- pricing_viewed
|
||||
- checkout_started
|
||||
- purchase_completed (plan, value)
|
||||
- subscription_cancelled
|
||||
|
||||
### E-commerce
|
||||
|
||||
**Browsing**
|
||||
- product_viewed (product_id, category, price)
|
||||
- product_list_viewed (list_name, products)
|
||||
- product_searched (query, results_count)
|
||||
|
||||
**Cart**
|
||||
- product_added_to_cart
|
||||
- product_removed_from_cart
|
||||
- cart_viewed
|
||||
|
||||
**Checkout**
|
||||
- checkout_started
|
||||
- checkout_step_completed (step)
|
||||
- payment_info_entered
|
||||
- purchase_completed (order_id, value, products)
|
||||
**For full event library by business type**: See [references/event-library.md](references/event-library.md)
|
||||
|
||||
---
|
||||
|
||||
## Event Properties (Parameters)
|
||||
## Event Properties
|
||||
|
||||
### Standard Properties to Consider
|
||||
### Standard Properties
|
||||
|
||||
**Page/Screen**
|
||||
- page_title
|
||||
- page_location (URL)
|
||||
- page_referrer
|
||||
- content_group
|
||||
|
||||
**User**
|
||||
- user_id (if logged in)
|
||||
- user_type (free, paid, admin)
|
||||
- account_id (B2B)
|
||||
- plan_type
|
||||
|
||||
**Campaign**
|
||||
- source
|
||||
- medium
|
||||
- campaign
|
||||
- content
|
||||
- term
|
||||
|
||||
**Product** (e-commerce)
|
||||
- product_id
|
||||
- product_name
|
||||
- category
|
||||
- price
|
||||
- quantity
|
||||
- currency
|
||||
|
||||
**Timing**
|
||||
- timestamp
|
||||
- session_duration
|
||||
- time_on_page
|
||||
| Category | Properties |
|
||||
|----------|------------|
|
||||
| Page | page_title, page_location, page_referrer |
|
||||
| User | user_id, user_type, account_id, plan_type |
|
||||
| Campaign | source, medium, campaign, content, term |
|
||||
| Product | product_id, product_name, category, price |
|
||||
|
||||
### Best Practices
|
||||
|
||||
- Use consistent property names
|
||||
- Include relevant context
|
||||
- Don't duplicate GA4 automatic properties
|
||||
- Don't duplicate automatic properties
|
||||
- Avoid PII in properties
|
||||
- Document expected values
|
||||
|
||||
---
|
||||
|
||||
## GA4 Implementation
|
||||
|
||||
### Configuration
|
||||
### Quick Setup
|
||||
|
||||
**Data Streams**
|
||||
- One stream per platform (web, iOS, Android)
|
||||
- Enable enhanced measurement
|
||||
1. Create GA4 property and data stream
|
||||
2. Install gtag.js or GTM
|
||||
3. Enable enhanced measurement
|
||||
4. Configure custom events
|
||||
5. Mark conversions in Admin
|
||||
|
||||
**Enhanced Measurement Events**
|
||||
- page_view (automatic)
|
||||
- scroll (90% depth)
|
||||
- outbound_click
|
||||
- site_search
|
||||
- video_engagement
|
||||
- file_download
|
||||
|
||||
**Recommended Events**
|
||||
- Use Google's predefined events when possible
|
||||
- Correct naming for enhanced reporting
|
||||
- See: https://support.google.com/analytics/answer/9267735
|
||||
|
||||
### Custom Events (GA4)
|
||||
### Custom Event Example
|
||||
|
||||
```javascript
|
||||
// gtag.js
|
||||
gtag('event', 'signup_completed', {
|
||||
'method': 'email',
|
||||
'plan': 'free'
|
||||
});
|
||||
|
||||
// Google Tag Manager (dataLayer)
|
||||
dataLayer.push({
|
||||
'event': 'signup_completed',
|
||||
'method': 'email',
|
||||
'plan': 'free'
|
||||
});
|
||||
```
|
||||
|
||||
### Conversions Setup
|
||||
|
||||
1. Collect event in GA4
|
||||
2. Mark as conversion in Admin > Events
|
||||
3. Set conversion counting (once per session or every time)
|
||||
4. Import to Google Ads if needed
|
||||
|
||||
### Custom Dimensions and Metrics
|
||||
|
||||
**When to use:**
|
||||
- Properties you want to segment by
|
||||
- Metrics you want to aggregate
|
||||
- Beyond standard parameters
|
||||
|
||||
**Setup:**
|
||||
1. Create in Admin > Custom definitions
|
||||
2. Scope: Event, User, or Item
|
||||
3. Parameter name must match
|
||||
**For detailed GA4 implementation**: See [references/ga4-implementation.md](references/ga4-implementation.md)
|
||||
|
||||
---
|
||||
|
||||
## Google Tag Manager Implementation
|
||||
## Google Tag Manager
|
||||
|
||||
### Container Structure
|
||||
|
||||
**Tags**
|
||||
- GA4 Configuration (base)
|
||||
- GA4 Event tags (one per event or grouped)
|
||||
- Conversion pixels (Facebook, LinkedIn, etc.)
|
||||
|
||||
**Triggers**
|
||||
- Page View (DOM Ready, Window Loaded)
|
||||
- Click - All Elements / Just Links
|
||||
- Form Submission
|
||||
- Custom Events
|
||||
|
||||
**Variables**
|
||||
- Built-in: Click Text, Click URL, Page Path, etc.
|
||||
- Data Layer variables
|
||||
- JavaScript variables
|
||||
- Lookup tables
|
||||
|
||||
### Best Practices
|
||||
|
||||
- Use folders to organize
|
||||
- Consistent naming (Tag_Type_Description)
|
||||
- Version notes on every publish
|
||||
- Preview mode for testing
|
||||
- Workspaces for team collaboration
|
||||
| Component | Purpose |
|
||||
|-----------|---------|
|
||||
| Tags | Code that executes (GA4, pixels) |
|
||||
| Triggers | When tags fire (page view, click) |
|
||||
| Variables | Dynamic values (click text, data layer) |
|
||||
|
||||
### Data Layer Pattern
|
||||
|
||||
```javascript
|
||||
// Push custom event
|
||||
dataLayer.push({
|
||||
'event': 'form_submitted',
|
||||
'form_name': 'contact',
|
||||
'form_location': 'footer'
|
||||
});
|
||||
|
||||
// Set user properties
|
||||
dataLayer.push({
|
||||
'user_id': '12345',
|
||||
'user_type': 'premium'
|
||||
});
|
||||
|
||||
// E-commerce event
|
||||
dataLayer.push({
|
||||
'event': 'purchase',
|
||||
'ecommerce': {
|
||||
'transaction_id': 'T12345',
|
||||
'value': 99.99,
|
||||
'currency': 'USD',
|
||||
'items': [{
|
||||
'item_id': 'SKU123',
|
||||
'item_name': 'Product Name',
|
||||
'price': 99.99
|
||||
}]
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
**For detailed GTM implementation**: See [references/gtm-implementation.md](references/gtm-implementation.md)
|
||||
|
||||
---
|
||||
|
||||
## UTM Parameter Strategy
|
||||
@@ -359,40 +185,17 @@ dataLayer.push({
|
||||
|
||||
| Parameter | Purpose | Example |
|
||||
|-----------|---------|---------|
|
||||
| utm_source | Where traffic comes from | google, facebook, newsletter |
|
||||
| utm_medium | Marketing medium | cpc, email, social, referral |
|
||||
| utm_campaign | Campaign name | spring_sale, product_launch |
|
||||
| utm_content | Differentiate versions | hero_cta, sidebar_link |
|
||||
| utm_source | Traffic source | google, newsletter |
|
||||
| utm_medium | Marketing medium | cpc, email, social |
|
||||
| utm_campaign | Campaign name | spring_sale |
|
||||
| utm_content | Differentiate versions | hero_cta |
|
||||
| utm_term | Paid search keywords | running+shoes |
|
||||
|
||||
### Naming Conventions
|
||||
|
||||
**Lowercase everything**
|
||||
- google, not Google
|
||||
- email, not Email
|
||||
|
||||
**Use underscores or hyphens consistently**
|
||||
- product_launch or product-launch
|
||||
- Pick one, stick with it
|
||||
|
||||
**Be specific but concise**
|
||||
- blog_footer_cta, not cta1
|
||||
- 2024_q1_promo, not promo
|
||||
|
||||
### UTM Documentation
|
||||
|
||||
Track all UTMs in a spreadsheet or tool:
|
||||
|
||||
| Campaign | Source | Medium | Content | Full URL | Owner | Date |
|
||||
|----------|--------|--------|---------|----------|-------|------|
|
||||
| ... | ... | ... | ... | ... | ... | ... |
|
||||
|
||||
### UTM Builder
|
||||
|
||||
Provide a consistent UTM builder link to team:
|
||||
- Google's URL builder
|
||||
- Internal tool
|
||||
- Spreadsheet formula
|
||||
- Lowercase everything
|
||||
- Use underscores or hyphens consistently
|
||||
- Be specific but concise: `blog_footer_cta`, not `cta1`
|
||||
- Document all UTMs in a spreadsheet
|
||||
|
||||
---
|
||||
|
||||
@@ -400,72 +203,44 @@ Provide a consistent UTM builder link to team:
|
||||
|
||||
### Testing Tools
|
||||
|
||||
**GA4 DebugView**
|
||||
- Real-time event monitoring
|
||||
- Enable with ?debug_mode=true
|
||||
- Or via Chrome extension
|
||||
|
||||
**GTM Preview Mode**
|
||||
- Test triggers and tags
|
||||
- See data layer state
|
||||
- Validate before publish
|
||||
|
||||
**Browser Extensions**
|
||||
- GA Debugger
|
||||
- Tag Assistant
|
||||
- dataLayer Inspector
|
||||
| Tool | Use For |
|
||||
|------|---------|
|
||||
| GA4 DebugView | Real-time event monitoring |
|
||||
| GTM Preview Mode | Test triggers before publish |
|
||||
| Browser Extensions | Tag Assistant, dataLayer Inspector |
|
||||
|
||||
### Validation Checklist
|
||||
|
||||
- [ ] Events firing on correct triggers
|
||||
- [ ] Property values populating correctly
|
||||
- [ ] No duplicate events
|
||||
- [ ] Works across browsers
|
||||
- [ ] Works on mobile
|
||||
- [ ] Works across browsers and mobile
|
||||
- [ ] Conversions recorded correctly
|
||||
- [ ] User ID passing when logged in
|
||||
- [ ] No PII leaking
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Events not firing**
|
||||
- Trigger misconfigured
|
||||
- Tag paused
|
||||
- GTM not loaded on page
|
||||
|
||||
**Wrong values**
|
||||
- Variable not configured
|
||||
- Data layer not pushing correctly
|
||||
- Timing issues (fire before data ready)
|
||||
|
||||
**Duplicate events**
|
||||
- Multiple GTM containers
|
||||
- Multiple tag instances
|
||||
- Trigger firing multiple times
|
||||
| Issue | Check |
|
||||
|-------|-------|
|
||||
| Events not firing | Trigger config, GTM loaded |
|
||||
| Wrong values | Variable path, data layer structure |
|
||||
| Duplicate events | Multiple containers, trigger firing twice |
|
||||
|
||||
---
|
||||
|
||||
## Privacy and Compliance
|
||||
|
||||
### Considerations
|
||||
|
||||
- Cookie consent required in EU/UK/CA
|
||||
- No PII in analytics properties
|
||||
- Data retention settings
|
||||
- User deletion capabilities
|
||||
- Cross-device tracking consent
|
||||
|
||||
### Implementation
|
||||
|
||||
**Consent Mode (GA4)**
|
||||
- Wait for consent before tracking
|
||||
- Use consent mode for partial tracking
|
||||
- Integrate with consent management platform
|
||||
|
||||
**Data Minimization**
|
||||
- Only collect what you need
|
||||
- Use consent mode (wait for consent)
|
||||
- IP anonymization
|
||||
- No PII in custom dimensions
|
||||
- Only collect what you need
|
||||
- Integrate with consent management platform
|
||||
|
||||
---
|
||||
|
||||
@@ -473,56 +248,36 @@ Provide a consistent UTM builder link to team:
|
||||
|
||||
### Tracking Plan Document
|
||||
|
||||
```
|
||||
```markdown
|
||||
# [Site/Product] Tracking Plan
|
||||
|
||||
## Overview
|
||||
- Tools: GA4, GTM
|
||||
- Last updated: [Date]
|
||||
- Owner: [Name]
|
||||
|
||||
## Events
|
||||
|
||||
### Marketing Events
|
||||
|
||||
| Event Name | Description | Properties | Trigger |
|
||||
|------------|-------------|------------|---------|
|
||||
| signup_started | User initiates signup | source, page | Click signup CTA |
|
||||
| signup_completed | User completes signup | method, plan | Signup success page |
|
||||
|
||||
### Product Events
|
||||
[Similar table]
|
||||
| signup_completed | User completes signup | method, plan | Success page |
|
||||
|
||||
## Custom Dimensions
|
||||
|
||||
| Name | Scope | Parameter | Description |
|
||||
|------|-------|-----------|-------------|
|
||||
| user_type | User | user_type | Free, trial, paid |
|
||||
| Name | Scope | Parameter |
|
||||
|------|-------|-----------|
|
||||
| user_type | User | user_type |
|
||||
|
||||
## Conversions
|
||||
|
||||
| Conversion | Event | Counting | Google Ads |
|
||||
|------------|-------|----------|------------|
|
||||
| Signup | signup_completed | Once per session | Yes |
|
||||
|
||||
## UTM Convention
|
||||
|
||||
[Guidelines]
|
||||
| Conversion | Event | Counting |
|
||||
|------------|-------|----------|
|
||||
| Signup | signup_completed | Once per session |
|
||||
```
|
||||
|
||||
### Implementation Code
|
||||
|
||||
Provide ready-to-use code snippets
|
||||
|
||||
### Testing Checklist
|
||||
|
||||
Specific validation steps
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What tools are you using (GA4, Mixpanel, etc.)?
|
||||
2. What key actions do you want to track?
|
||||
3. What decisions will this data inform?
|
||||
@@ -532,8 +287,23 @@ If you need more context:
|
||||
|
||||
---
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
For implementation, see the [tools registry](../../tools/REGISTRY.md). Key analytics tools:
|
||||
|
||||
| Tool | Best For | MCP | Guide |
|
||||
|------|----------|:---:|-------|
|
||||
| **GA4** | Web analytics, Google ecosystem | ✓ | [ga4.md](../../tools/integrations/ga4.md) |
|
||||
| **Mixpanel** | Product analytics, event tracking | - | [mixpanel.md](../../tools/integrations/mixpanel.md) |
|
||||
| **Amplitude** | Product analytics, cohort analysis | - | [amplitude.md](../../tools/integrations/amplitude.md) |
|
||||
| **PostHog** | Open-source analytics, session replay | - | [posthog.md](../../tools/integrations/posthog.md) |
|
||||
| **Segment** | Customer data platform, routing | - | [segment.md](../../tools/integrations/segment.md) |
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **ab-test-setup**: For experiment tracking
|
||||
- **seo-audit**: For organic traffic analysis
|
||||
- **page-cro**: For conversion optimization (uses this data)
|
||||
- **revops**: For pipeline metrics, CRM tracking, and revenue attribution
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "analytics-tracking",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Help me set up analytics tracking for our B2B SaaS product. We use GA4 and GTM. We need to track signups, feature usage, and upgrade events.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply the 'track for decisions' principle — ask what decisions the tracking will inform. Should use the event naming convention (object_action, lowercase with underscores). Should define essential events for SaaS: signup_completed, trial_started, feature_used, plan_upgraded, etc. Should provide GA4 implementation details with proper event parameters. Should include GTM data layer push examples. Should organize output as a tracking plan with event name, trigger, parameters, and purpose for each event.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies 'track for decisions' principle",
|
||||
"Uses object_action naming convention",
|
||||
"Defines essential SaaS events (signup, feature usage, upgrade)",
|
||||
"Provides GA4 implementation details",
|
||||
"Includes GTM data layer examples",
|
||||
"Output follows tracking plan format"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "What UTM parameters should we use? We run ads on Google, Meta, and LinkedIn, plus send a weekly newsletter and post on LinkedIn organically.",
|
||||
"expected_output": "Should apply the UTM parameter strategy framework. Should define consistent UTM conventions: source (google, meta, linkedin, newsletter), medium (cpc, paid-social, email, organic-social), campaign (naming convention with date or identifier). Should provide specific UTM examples for each channel mentioned. Should warn about common UTM mistakes (inconsistent casing, redundant parameters, missing medium). Should recommend a UTM tracking spreadsheet or naming convention document.",
|
||||
"assertions": [
|
||||
"Applies UTM parameter strategy",
|
||||
"Defines source, medium, and campaign conventions",
|
||||
"Provides specific UTM examples for each channel",
|
||||
"Uses consistent naming conventions (lowercase)",
|
||||
"Warns about common UTM mistakes",
|
||||
"Recommends tracking documentation"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "our tracking seems broken — we're seeing duplicate events and our conversion numbers in GA4 don't match what our database shows. help?",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the debugging and validation framework. Should systematically check for common issues: duplicate GTM tags firing, missing event deduplication, incorrect trigger conditions, cross-domain tracking issues, consent mode filtering. Should provide specific debugging steps: use GA4 DebugView, GTM Preview mode, browser developer tools. Should address the GA4 vs database discrepancy (common causes: consent mode, ad blockers, client-side vs server-side tracking, session timeout differences).",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Applies debugging and validation framework",
|
||||
"Checks for duplicate tag firing",
|
||||
"Provides specific debugging tools (GA4 DebugView, GTM Preview)",
|
||||
"Addresses GA4 vs database discrepancy",
|
||||
"Lists common causes of data mismatches",
|
||||
"Provides systematic troubleshooting steps"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "We're launching an e-commerce store and need to set up tracking from scratch. What events do we absolutely need?",
|
||||
"expected_output": "Should reference the essential events by site type, specifically e-commerce. Should define the e-commerce event taxonomy: product_viewed, product_added_to_cart, cart_viewed, checkout_started, checkout_step_completed, purchase_completed, product_removed_from_cart. Should include enhanced e-commerce parameters (item_id, item_name, price, quantity, etc.). Should follow object_action naming convention. Should organize as a tracking plan with priorities (must-have vs nice-to-have).",
|
||||
"assertions": [
|
||||
"References essential events for e-commerce site type",
|
||||
"Defines full e-commerce event taxonomy",
|
||||
"Includes enhanced e-commerce parameters",
|
||||
"Follows object_action naming convention",
|
||||
"Organizes by priority (must-have vs nice-to-have)",
|
||||
"Provides tracking plan format output"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "We need to make sure our tracking is GDPR compliant. We have European users and we're using GA4, Hotjar, and Facebook Pixel.",
|
||||
"expected_output": "Should apply the privacy and compliance framework. Should address GDPR requirements for each tool: consent before tracking, consent management platform (CMP) setup, GA4 consent mode configuration, conditional loading of Hotjar and Facebook Pixel. Should recommend a consent hierarchy (necessary, analytics, marketing). Should provide GTM implementation for consent-based tag firing. Should mention data retention settings in GA4. Should address cookie banner requirements.",
|
||||
"assertions": [
|
||||
"Applies privacy and compliance framework",
|
||||
"Addresses GDPR requirements specifically",
|
||||
"Recommends consent management platform",
|
||||
"Covers GA4 consent mode configuration",
|
||||
"Addresses conditional loading for each tool",
|
||||
"Provides consent hierarchy",
|
||||
"Mentions data retention settings"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Help me set up tracking for our A/B test. We want to measure which version of our pricing page converts better.",
|
||||
"expected_output": "Should recognize this overlaps with A/B test setup, not just analytics tracking. Should defer to or cross-reference the ab-test-setup skill for the experiment design, hypothesis, and statistical analysis. May help with the tracking implementation (events to fire, parameters to include) but should make clear that ab-test-setup is the right skill for the experiment framework.",
|
||||
"assertions": [
|
||||
"Recognizes overlap with A/B test setup",
|
||||
"References or defers to ab-test-setup skill",
|
||||
"May help with tracking implementation specifics",
|
||||
"Does not attempt to design the full experiment"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
# Event Library Reference
|
||||
|
||||
Comprehensive list of events to track by business type and context.
|
||||
|
||||
## Contents
|
||||
- Marketing Site Events (navigation & engagement, CTA & form interactions, conversion events)
|
||||
- Product/App Events (onboarding, core usage, errors & support)
|
||||
- Monetization Events (pricing & checkout, subscription management)
|
||||
- E-commerce Events (browsing, cart, checkout, post-purchase)
|
||||
- B2B / SaaS Specific Events (team & collaboration, integration events, account events)
|
||||
- Event Properties (Parameters)
|
||||
- Funnel Event Sequences
|
||||
|
||||
## Marketing Site Events
|
||||
|
||||
### Navigation & Engagement
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| page_view | Page loaded (enhanced) | page_title, page_location, content_group |
|
||||
| scroll_depth | User scrolled to threshold | depth (25, 50, 75, 100) |
|
||||
| outbound_link_clicked | Click to external site | link_url, link_text |
|
||||
| internal_link_clicked | Click within site | link_url, link_text, location |
|
||||
| video_played | Video started | video_id, video_title, duration |
|
||||
| video_completed | Video finished | video_id, video_title, duration |
|
||||
|
||||
### CTA & Form Interactions
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| cta_clicked | Call to action clicked | button_text, cta_location, page |
|
||||
| form_started | User began form | form_name, form_location |
|
||||
| form_field_completed | Field filled | form_name, field_name |
|
||||
| form_submitted | Form successfully sent | form_name, form_location |
|
||||
| form_error | Form validation failed | form_name, error_type |
|
||||
| resource_downloaded | Asset downloaded | resource_name, resource_type |
|
||||
|
||||
### Conversion Events
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| signup_started | Initiated signup | source, page |
|
||||
| signup_completed | Finished signup | method, plan, source |
|
||||
| demo_requested | Demo form submitted | company_size, industry |
|
||||
| contact_submitted | Contact form sent | inquiry_type |
|
||||
| newsletter_subscribed | Email list signup | source, list_name |
|
||||
| trial_started | Free trial began | plan, source |
|
||||
|
||||
---
|
||||
|
||||
## Product/App Events
|
||||
|
||||
### Onboarding
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| signup_completed | Account created | method, referral_source |
|
||||
| onboarding_started | Began onboarding | - |
|
||||
| onboarding_step_completed | Step finished | step_number, step_name |
|
||||
| onboarding_completed | All steps done | steps_completed, time_to_complete |
|
||||
| onboarding_skipped | User skipped onboarding | step_skipped_at |
|
||||
| first_key_action_completed | Aha moment reached | action_type |
|
||||
|
||||
### Core Usage
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| session_started | App session began | session_number |
|
||||
| feature_used | Feature interaction | feature_name, feature_category |
|
||||
| action_completed | Core action done | action_type, count |
|
||||
| content_created | User created content | content_type |
|
||||
| content_edited | User modified content | content_type |
|
||||
| content_deleted | User removed content | content_type |
|
||||
| search_performed | In-app search | query, results_count |
|
||||
| settings_changed | Settings modified | setting_name, new_value |
|
||||
| invite_sent | User invited others | invite_type, count |
|
||||
|
||||
### Errors & Support
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| error_occurred | Error experienced | error_type, error_message, page |
|
||||
| help_opened | Help accessed | help_type, page |
|
||||
| support_contacted | Support request made | contact_method, issue_type |
|
||||
| feedback_submitted | User feedback given | feedback_type, rating |
|
||||
|
||||
---
|
||||
|
||||
## Monetization Events
|
||||
|
||||
### Pricing & Checkout
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| pricing_viewed | Pricing page seen | source |
|
||||
| plan_selected | Plan chosen | plan_name, billing_cycle |
|
||||
| checkout_started | Began checkout | plan, value |
|
||||
| payment_info_entered | Payment submitted | payment_method |
|
||||
| purchase_completed | Purchase successful | plan, value, currency, transaction_id |
|
||||
| purchase_failed | Purchase failed | error_reason, plan |
|
||||
|
||||
### Subscription Management
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| trial_started | Trial began | plan, trial_length |
|
||||
| trial_ended | Trial expired | plan, converted (bool) |
|
||||
| subscription_upgraded | Plan upgraded | from_plan, to_plan, value |
|
||||
| subscription_downgraded | Plan downgraded | from_plan, to_plan |
|
||||
| subscription_cancelled | Cancelled | plan, reason, tenure |
|
||||
| subscription_renewed | Renewed | plan, value |
|
||||
| billing_updated | Payment method changed | - |
|
||||
|
||||
---
|
||||
|
||||
## E-commerce Events
|
||||
|
||||
### Browsing
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| product_viewed | Product page viewed | product_id, product_name, category, price |
|
||||
| product_list_viewed | Category/list viewed | list_name, products[] |
|
||||
| product_searched | Search performed | query, results_count |
|
||||
| product_filtered | Filters applied | filter_type, filter_value |
|
||||
| product_sorted | Sort applied | sort_by, sort_order |
|
||||
|
||||
### Cart
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| product_added_to_cart | Item added | product_id, product_name, price, quantity |
|
||||
| product_removed_from_cart | Item removed | product_id, product_name, price, quantity |
|
||||
| cart_viewed | Cart page viewed | cart_value, items_count |
|
||||
|
||||
### Checkout
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| checkout_started | Checkout began | cart_value, items_count |
|
||||
| checkout_step_completed | Step finished | step_number, step_name |
|
||||
| shipping_info_entered | Address entered | shipping_method |
|
||||
| payment_info_entered | Payment entered | payment_method |
|
||||
| coupon_applied | Coupon used | coupon_code, discount_value |
|
||||
| purchase_completed | Order placed | transaction_id, value, currency, items[] |
|
||||
|
||||
### Post-Purchase
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| order_confirmed | Confirmation viewed | transaction_id |
|
||||
| refund_requested | Refund initiated | transaction_id, reason |
|
||||
| refund_completed | Refund processed | transaction_id, value |
|
||||
| review_submitted | Product reviewed | product_id, rating |
|
||||
|
||||
---
|
||||
|
||||
## B2B / SaaS Specific Events
|
||||
|
||||
### Team & Collaboration
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| team_created | New team/org made | team_size, plan |
|
||||
| team_member_invited | Invite sent | role, invite_method |
|
||||
| team_member_joined | Member accepted | role |
|
||||
| team_member_removed | Member removed | role |
|
||||
| role_changed | Permissions updated | user_id, old_role, new_role |
|
||||
|
||||
### Integration Events
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| integration_viewed | Integration page seen | integration_name |
|
||||
| integration_started | Setup began | integration_name |
|
||||
| integration_connected | Successfully connected | integration_name |
|
||||
| integration_disconnected | Removed integration | integration_name, reason |
|
||||
|
||||
### Account Events
|
||||
|
||||
| Event Name | Description | Properties |
|
||||
|------------|-------------|------------|
|
||||
| account_created | New account | source, plan |
|
||||
| account_upgraded | Plan upgrade | from_plan, to_plan |
|
||||
| account_churned | Account closed | reason, tenure, mrr_lost |
|
||||
| account_reactivated | Returned customer | previous_tenure, new_plan |
|
||||
|
||||
---
|
||||
|
||||
## Event Properties (Parameters)
|
||||
|
||||
### Standard Properties to Include
|
||||
|
||||
**User Context:**
|
||||
```
|
||||
user_id: "12345"
|
||||
user_type: "free" | "trial" | "paid"
|
||||
account_id: "acct_123"
|
||||
plan_type: "starter" | "pro" | "enterprise"
|
||||
```
|
||||
|
||||
**Session Context:**
|
||||
```
|
||||
session_id: "sess_abc"
|
||||
session_number: 5
|
||||
page: "/pricing"
|
||||
referrer: "https://google.com"
|
||||
```
|
||||
|
||||
**Campaign Context:**
|
||||
```
|
||||
source: "google"
|
||||
medium: "cpc"
|
||||
campaign: "spring_sale"
|
||||
content: "hero_cta"
|
||||
```
|
||||
|
||||
**Product Context (E-commerce):**
|
||||
```
|
||||
product_id: "SKU123"
|
||||
product_name: "Product Name"
|
||||
category: "Category"
|
||||
price: 99.99
|
||||
quantity: 1
|
||||
currency: "USD"
|
||||
```
|
||||
|
||||
**Timing:**
|
||||
```
|
||||
timestamp: "2024-01-15T10:30:00Z"
|
||||
time_on_page: 45
|
||||
session_duration: 300
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Funnel Event Sequences
|
||||
|
||||
### Signup Funnel
|
||||
1. signup_started
|
||||
2. signup_step_completed (email)
|
||||
3. signup_step_completed (password)
|
||||
4. signup_completed
|
||||
5. onboarding_started
|
||||
|
||||
### Purchase Funnel
|
||||
1. pricing_viewed
|
||||
2. plan_selected
|
||||
3. checkout_started
|
||||
4. payment_info_entered
|
||||
5. purchase_completed
|
||||
|
||||
### E-commerce Funnel
|
||||
1. product_viewed
|
||||
2. product_added_to_cart
|
||||
3. cart_viewed
|
||||
4. checkout_started
|
||||
5. shipping_info_entered
|
||||
6. payment_info_entered
|
||||
7. purchase_completed
|
||||
@@ -0,0 +1,300 @@
|
||||
# GA4 Implementation Reference
|
||||
|
||||
Detailed implementation guide for Google Analytics 4.
|
||||
|
||||
## Contents
|
||||
- Configuration (data streams, enhanced measurement events, recommended events)
|
||||
- Custom Events (gtag.js implementation, Google Tag Manager)
|
||||
- Conversions Setup (creating conversions, conversion values)
|
||||
- Custom Dimensions and Metrics (when to use, setup steps, examples)
|
||||
- Audiences (creating audiences, audience examples)
|
||||
- Debugging (DebugView, real-time reports, common issues)
|
||||
- Data Quality (filters, cross-domain tracking, session settings)
|
||||
- Integration with Google Ads (linking, audience export)
|
||||
|
||||
## Configuration
|
||||
|
||||
### Data Streams
|
||||
|
||||
- One stream per platform (web, iOS, Android)
|
||||
- Enable enhanced measurement for automatic tracking
|
||||
- Configure data retention (2 months default, 14 months max)
|
||||
- Enable Google Signals (for cross-device, if consented)
|
||||
|
||||
### Enhanced Measurement Events (Automatic)
|
||||
|
||||
| Event | Description | Configuration |
|
||||
|-------|-------------|---------------|
|
||||
| page_view | Page loads | Automatic |
|
||||
| scroll | 90% scroll depth | Toggle on/off |
|
||||
| outbound_click | Click to external domain | Automatic |
|
||||
| site_search | Search query used | Configure parameter |
|
||||
| video_engagement | YouTube video plays | Toggle on/off |
|
||||
| file_download | PDF, docs, etc. | Configurable extensions |
|
||||
|
||||
### Recommended Events
|
||||
|
||||
Use Google's predefined events when possible for enhanced reporting:
|
||||
|
||||
**All properties:**
|
||||
- login, sign_up
|
||||
- share
|
||||
- search
|
||||
|
||||
**E-commerce:**
|
||||
- view_item, view_item_list
|
||||
- add_to_cart, remove_from_cart
|
||||
- begin_checkout
|
||||
- add_payment_info
|
||||
- purchase, refund
|
||||
|
||||
**Games:**
|
||||
- level_up, unlock_achievement
|
||||
- post_score, spend_virtual_currency
|
||||
|
||||
Reference: https://support.google.com/analytics/answer/9267735
|
||||
|
||||
---
|
||||
|
||||
## Custom Events
|
||||
|
||||
### gtag.js Implementation
|
||||
|
||||
```javascript
|
||||
// Basic event
|
||||
gtag('event', 'signup_completed', {
|
||||
'method': 'email',
|
||||
'plan': 'free'
|
||||
});
|
||||
|
||||
// Event with value
|
||||
gtag('event', 'purchase', {
|
||||
'transaction_id': 'T12345',
|
||||
'value': 99.99,
|
||||
'currency': 'USD',
|
||||
'items': [{
|
||||
'item_id': 'SKU123',
|
||||
'item_name': 'Product Name',
|
||||
'price': 99.99
|
||||
}]
|
||||
});
|
||||
|
||||
// User properties
|
||||
gtag('set', 'user_properties', {
|
||||
'user_type': 'premium',
|
||||
'plan_name': 'pro'
|
||||
});
|
||||
|
||||
// User ID (for logged-in users)
|
||||
gtag('config', 'GA_MEASUREMENT_ID', {
|
||||
'user_id': 'USER_ID'
|
||||
});
|
||||
```
|
||||
|
||||
### Google Tag Manager (dataLayer)
|
||||
|
||||
```javascript
|
||||
// Custom event
|
||||
dataLayer.push({
|
||||
'event': 'signup_completed',
|
||||
'method': 'email',
|
||||
'plan': 'free'
|
||||
});
|
||||
|
||||
// Set user properties
|
||||
dataLayer.push({
|
||||
'user_id': '12345',
|
||||
'user_type': 'premium'
|
||||
});
|
||||
|
||||
// E-commerce purchase
|
||||
dataLayer.push({
|
||||
'event': 'purchase',
|
||||
'ecommerce': {
|
||||
'transaction_id': 'T12345',
|
||||
'value': 99.99,
|
||||
'currency': 'USD',
|
||||
'items': [{
|
||||
'item_id': 'SKU123',
|
||||
'item_name': 'Product Name',
|
||||
'price': 99.99,
|
||||
'quantity': 1
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
// Clear ecommerce before sending (best practice)
|
||||
dataLayer.push({ ecommerce: null });
|
||||
dataLayer.push({
|
||||
'event': 'view_item',
|
||||
'ecommerce': {
|
||||
// ...
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Conversions Setup
|
||||
|
||||
### Creating Conversions
|
||||
|
||||
1. **Collect the event** - Ensure event is firing in GA4
|
||||
2. **Mark as conversion** - Admin > Events > Mark as conversion
|
||||
3. **Set counting method**:
|
||||
- Once per session (leads, signups)
|
||||
- Every event (purchases)
|
||||
4. **Import to Google Ads** - For conversion-optimized bidding
|
||||
|
||||
### Conversion Values
|
||||
|
||||
```javascript
|
||||
// Event with conversion value
|
||||
gtag('event', 'purchase', {
|
||||
'value': 99.99,
|
||||
'currency': 'USD'
|
||||
});
|
||||
```
|
||||
|
||||
Or set default value in GA4 Admin when marking conversion.
|
||||
|
||||
---
|
||||
|
||||
## Custom Dimensions and Metrics
|
||||
|
||||
### When to Use
|
||||
|
||||
**Custom dimensions:**
|
||||
- Properties you want to segment/filter by
|
||||
- User attributes (plan type, industry)
|
||||
- Content attributes (author, category)
|
||||
|
||||
**Custom metrics:**
|
||||
- Numeric values to aggregate
|
||||
- Scores, counts, durations
|
||||
|
||||
### Setup Steps
|
||||
|
||||
1. Admin > Data display > Custom definitions
|
||||
2. Create dimension or metric
|
||||
3. Choose scope:
|
||||
- **Event**: Per event (content_type)
|
||||
- **User**: Per user (account_type)
|
||||
- **Item**: Per product (product_category)
|
||||
4. Enter parameter name (must match event parameter)
|
||||
|
||||
### Examples
|
||||
|
||||
| Dimension | Scope | Parameter | Description |
|
||||
|-----------|-------|-----------|-------------|
|
||||
| User Type | User | user_type | Free, trial, paid |
|
||||
| Content Author | Event | author | Blog post author |
|
||||
| Product Category | Item | item_category | E-commerce category |
|
||||
|
||||
---
|
||||
|
||||
## Audiences
|
||||
|
||||
### Creating Audiences
|
||||
|
||||
Admin > Data display > Audiences
|
||||
|
||||
**Use cases:**
|
||||
- Remarketing audiences (export to Ads)
|
||||
- Segment analysis
|
||||
- Trigger-based events
|
||||
|
||||
### Audience Examples
|
||||
|
||||
**High-intent visitors:**
|
||||
- Viewed pricing page
|
||||
- Did not convert
|
||||
- In last 7 days
|
||||
|
||||
**Engaged users:**
|
||||
- 3+ sessions
|
||||
- Or 5+ minutes total engagement
|
||||
|
||||
**Purchasers:**
|
||||
- Purchase event
|
||||
- For exclusion or lookalike
|
||||
|
||||
---
|
||||
|
||||
## Debugging
|
||||
|
||||
### DebugView
|
||||
|
||||
Enable with:
|
||||
- URL parameter: `?debug_mode=true`
|
||||
- Chrome extension: GA Debugger
|
||||
- gtag: `'debug_mode': true` in config
|
||||
|
||||
View at: Reports > Configure > DebugView
|
||||
|
||||
### Real-Time Reports
|
||||
|
||||
Check events within 30 minutes:
|
||||
Reports > Real-time
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Events not appearing:**
|
||||
- Check DebugView first
|
||||
- Verify gtag/GTM firing
|
||||
- Check filter exclusions
|
||||
|
||||
**Parameter values missing:**
|
||||
- Custom dimension not created
|
||||
- Parameter name mismatch
|
||||
- Data still processing (24-48 hrs)
|
||||
|
||||
**Conversions not recording:**
|
||||
- Event not marked as conversion
|
||||
- Event name doesn't match
|
||||
- Counting method (once vs. every)
|
||||
|
||||
---
|
||||
|
||||
## Data Quality
|
||||
|
||||
### Filters
|
||||
|
||||
Admin > Data streams > [Stream] > Configure tag settings > Define internal traffic
|
||||
|
||||
**Exclude:**
|
||||
- Internal IP addresses
|
||||
- Developer traffic
|
||||
- Testing environments
|
||||
|
||||
### Cross-Domain Tracking
|
||||
|
||||
For multiple domains sharing analytics:
|
||||
|
||||
1. Admin > Data streams > [Stream] > Configure tag settings
|
||||
2. Configure your domains
|
||||
3. List all domains that should share sessions
|
||||
|
||||
### Session Settings
|
||||
|
||||
Admin > Data streams > [Stream] > Configure tag settings
|
||||
|
||||
- Session timeout (default 30 min)
|
||||
- Engaged session duration (10 sec default)
|
||||
|
||||
---
|
||||
|
||||
## Integration with Google Ads
|
||||
|
||||
### Linking
|
||||
|
||||
1. Admin > Product links > Google Ads links
|
||||
2. Enable auto-tagging in Google Ads
|
||||
3. Import conversions in Google Ads
|
||||
|
||||
### Audience Export
|
||||
|
||||
Audiences created in GA4 can be used in Google Ads for:
|
||||
- Remarketing campaigns
|
||||
- Customer match
|
||||
- Similar audiences
|
||||
@@ -0,0 +1,390 @@
|
||||
# Google Tag Manager Implementation Reference
|
||||
|
||||
Detailed guide for implementing tracking via Google Tag Manager.
|
||||
|
||||
## Contents
|
||||
- Container Structure (tags, triggers, variables)
|
||||
- Naming Conventions
|
||||
- Data Layer Patterns
|
||||
- Common Tag Configurations (GA4 configuration tag, GA4 event tag, Facebook pixel)
|
||||
- Preview and Debug
|
||||
- Workspaces and Versioning
|
||||
- Consent Management
|
||||
- Advanced Patterns (tag sequencing, exception handling, custom JavaScript variables)
|
||||
|
||||
## Container Structure
|
||||
|
||||
### Tags
|
||||
|
||||
Tags are code snippets that execute when triggered.
|
||||
|
||||
**Common tag types:**
|
||||
- GA4 Configuration (base setup)
|
||||
- GA4 Event (custom events)
|
||||
- Google Ads Conversion
|
||||
- Facebook Pixel
|
||||
- LinkedIn Insight Tag
|
||||
- Custom HTML (for other pixels)
|
||||
|
||||
### Triggers
|
||||
|
||||
Triggers define when tags fire.
|
||||
|
||||
**Built-in triggers:**
|
||||
- Page View: All Pages, DOM Ready, Window Loaded
|
||||
- Click: All Elements, Just Links
|
||||
- Form Submission
|
||||
- Scroll Depth
|
||||
- Timer
|
||||
- Element Visibility
|
||||
|
||||
**Custom triggers:**
|
||||
- Custom Event (from dataLayer)
|
||||
- Trigger Groups (multiple conditions)
|
||||
|
||||
### Variables
|
||||
|
||||
Variables capture dynamic values.
|
||||
|
||||
**Built-in (enable as needed):**
|
||||
- Click Text, Click URL, Click ID, Click Classes
|
||||
- Page Path, Page URL, Page Hostname
|
||||
- Referrer
|
||||
- Form Element, Form ID
|
||||
|
||||
**User-defined:**
|
||||
- Data Layer variables
|
||||
- JavaScript variables
|
||||
- Lookup tables
|
||||
- RegEx tables
|
||||
- Constants
|
||||
|
||||
---
|
||||
|
||||
## Naming Conventions
|
||||
|
||||
### Recommended Format
|
||||
|
||||
```
|
||||
[Type] - [Description] - [Detail]
|
||||
|
||||
Tags:
|
||||
GA4 - Event - Signup Completed
|
||||
GA4 - Config - Base Configuration
|
||||
FB - Pixel - Page View
|
||||
HTML - LiveChat Widget
|
||||
|
||||
Triggers:
|
||||
Click - CTA Button
|
||||
Submit - Contact Form
|
||||
View - Pricing Page
|
||||
Custom - signup_completed
|
||||
|
||||
Variables:
|
||||
DL - user_id
|
||||
JS - Current Timestamp
|
||||
LT - Campaign Source Map
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Data Layer Patterns
|
||||
|
||||
### Basic Structure
|
||||
|
||||
```javascript
|
||||
// Initialize (in <head> before GTM)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
// Push event
|
||||
dataLayer.push({
|
||||
'event': 'event_name',
|
||||
'property1': 'value1',
|
||||
'property2': 'value2'
|
||||
});
|
||||
```
|
||||
|
||||
### Page Load Data
|
||||
|
||||
```javascript
|
||||
// Set on page load (before GTM container)
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
dataLayer.push({
|
||||
'pageType': 'product',
|
||||
'contentGroup': 'products',
|
||||
'user': {
|
||||
'loggedIn': true,
|
||||
'userId': '12345',
|
||||
'userType': 'premium'
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
### Form Submission
|
||||
|
||||
```javascript
|
||||
document.querySelector('#contact-form').addEventListener('submit', function() {
|
||||
dataLayer.push({
|
||||
'event': 'form_submitted',
|
||||
'formName': 'contact',
|
||||
'formLocation': 'footer'
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
### Button Click
|
||||
|
||||
```javascript
|
||||
document.querySelector('.cta-button').addEventListener('click', function() {
|
||||
dataLayer.push({
|
||||
'event': 'cta_clicked',
|
||||
'ctaText': this.innerText,
|
||||
'ctaLocation': 'hero'
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
### E-commerce Events
|
||||
|
||||
```javascript
|
||||
// Product view
|
||||
dataLayer.push({ ecommerce: null }); // Clear previous
|
||||
dataLayer.push({
|
||||
'event': 'view_item',
|
||||
'ecommerce': {
|
||||
'items': [{
|
||||
'item_id': 'SKU123',
|
||||
'item_name': 'Product Name',
|
||||
'price': 99.99,
|
||||
'item_category': 'Category',
|
||||
'quantity': 1
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
// Add to cart
|
||||
dataLayer.push({ ecommerce: null });
|
||||
dataLayer.push({
|
||||
'event': 'add_to_cart',
|
||||
'ecommerce': {
|
||||
'items': [{
|
||||
'item_id': 'SKU123',
|
||||
'item_name': 'Product Name',
|
||||
'price': 99.99,
|
||||
'quantity': 1
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
// Purchase
|
||||
dataLayer.push({ ecommerce: null });
|
||||
dataLayer.push({
|
||||
'event': 'purchase',
|
||||
'ecommerce': {
|
||||
'transaction_id': 'T12345',
|
||||
'value': 99.99,
|
||||
'currency': 'USD',
|
||||
'tax': 5.00,
|
||||
'shipping': 10.00,
|
||||
'items': [{
|
||||
'item_id': 'SKU123',
|
||||
'item_name': 'Product Name',
|
||||
'price': 99.99,
|
||||
'quantity': 1
|
||||
}]
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Common Tag Configurations
|
||||
|
||||
### GA4 Configuration Tag
|
||||
|
||||
**Tag Type:** Google Analytics: GA4 Configuration
|
||||
|
||||
**Settings:**
|
||||
- Measurement ID: G-XXXXXXXX
|
||||
- Send page view: Checked (for pageviews)
|
||||
- User Properties: Add any user-level dimensions
|
||||
|
||||
**Trigger:** All Pages
|
||||
|
||||
### GA4 Event Tag
|
||||
|
||||
**Tag Type:** Google Analytics: GA4 Event
|
||||
|
||||
**Settings:**
|
||||
- Configuration Tag: Select your config tag
|
||||
- Event Name: {{DL - event_name}} or hardcode
|
||||
- Event Parameters: Add parameters from dataLayer
|
||||
|
||||
**Trigger:** Custom Event with event name match
|
||||
|
||||
### Facebook Pixel - Base
|
||||
|
||||
**Tag Type:** Custom HTML
|
||||
|
||||
```html
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', 'YOUR_PIXEL_ID');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
```
|
||||
|
||||
**Trigger:** All Pages
|
||||
|
||||
### Facebook Pixel - Event
|
||||
|
||||
**Tag Type:** Custom HTML
|
||||
|
||||
```html
|
||||
<script>
|
||||
fbq('track', 'Lead', {
|
||||
content_name: '{{DL - form_name}}'
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
**Trigger:** Custom Event - form_submitted
|
||||
|
||||
---
|
||||
|
||||
## Preview and Debug
|
||||
|
||||
### Preview Mode
|
||||
|
||||
1. Click "Preview" in GTM
|
||||
2. Enter site URL
|
||||
3. GTM debug panel opens at bottom
|
||||
|
||||
**What to check:**
|
||||
- Tags fired on this event
|
||||
- Tags not fired (and why)
|
||||
- Variables and their values
|
||||
- Data layer contents
|
||||
|
||||
### Debug Tips
|
||||
|
||||
**Tag not firing:**
|
||||
- Check trigger conditions
|
||||
- Verify data layer push
|
||||
- Check tag sequencing
|
||||
|
||||
**Wrong variable value:**
|
||||
- Check data layer structure
|
||||
- Verify variable path (nested objects)
|
||||
- Check timing (data may not exist yet)
|
||||
|
||||
**Multiple firings:**
|
||||
- Check trigger uniqueness
|
||||
- Look for duplicate tags
|
||||
- Check tag firing options
|
||||
|
||||
---
|
||||
|
||||
## Workspaces and Versioning
|
||||
|
||||
### Workspaces
|
||||
|
||||
Use workspaces for team collaboration:
|
||||
- Default workspace for production
|
||||
- Separate workspaces for large changes
|
||||
- Merge when ready
|
||||
|
||||
### Version Management
|
||||
|
||||
**Best practices:**
|
||||
- Name every version descriptively
|
||||
- Add notes explaining changes
|
||||
- Review changes before publish
|
||||
- Keep production version noted
|
||||
|
||||
**Version notes example:**
|
||||
```
|
||||
v15: Added purchase conversion tracking
|
||||
- New tag: GA4 - Event - Purchase
|
||||
- New trigger: Custom Event - purchase
|
||||
- New variables: DL - transaction_id, DL - value
|
||||
- Tested: Chrome, Safari, Mobile
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Consent Management
|
||||
|
||||
### Consent Mode Integration
|
||||
|
||||
```javascript
|
||||
// Default state (before consent)
|
||||
gtag('consent', 'default', {
|
||||
'analytics_storage': 'denied',
|
||||
'ad_storage': 'denied'
|
||||
});
|
||||
|
||||
// Update on consent
|
||||
function grantConsent() {
|
||||
gtag('consent', 'update', {
|
||||
'analytics_storage': 'granted',
|
||||
'ad_storage': 'granted'
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
### GTM Consent Overview
|
||||
|
||||
1. Enable Consent Overview in Admin
|
||||
2. Configure consent for each tag
|
||||
3. Tags respect consent state automatically
|
||||
|
||||
---
|
||||
|
||||
## Advanced Patterns
|
||||
|
||||
### Tag Sequencing
|
||||
|
||||
**Setup tags to fire in order:**
|
||||
Tag Configuration > Advanced Settings > Tag Sequencing
|
||||
|
||||
**Use cases:**
|
||||
- Config tag before event tags
|
||||
- Pixel initialization before tracking
|
||||
- Cleanup after conversion
|
||||
|
||||
### Exception Handling
|
||||
|
||||
**Trigger exceptions** - Prevent tag from firing:
|
||||
- Exclude certain pages
|
||||
- Exclude internal traffic
|
||||
- Exclude during testing
|
||||
|
||||
### Custom JavaScript Variables
|
||||
|
||||
```javascript
|
||||
// Get URL parameter
|
||||
function() {
|
||||
var params = new URLSearchParams(window.location.search);
|
||||
return params.get('campaign') || '(not set)';
|
||||
}
|
||||
|
||||
// Get cookie value
|
||||
function() {
|
||||
var match = document.cookie.match('(^|;) ?user_id=([^;]*)(;|$)');
|
||||
return match ? match[2] : null;
|
||||
}
|
||||
|
||||
// Get data from page
|
||||
function() {
|
||||
var el = document.querySelector('.product-price');
|
||||
return el ? parseFloat(el.textContent.replace('$', '')) : 0;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,312 @@
|
||||
---
|
||||
name: aso-audit
|
||||
description: "When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO audit,' 'app store optimization,' 'optimize my app listing,' 'improve app visibility,' 'app store ranking,' 'audit my listing,' 'why aren't people downloading my app,' 'improve my app conversion,' 'keyword optimization for app,' or 'compare my app to competitors.' Use when the user shares an App Store or Google Play URL and wants to improve it."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# ASO Audit
|
||||
|
||||
Analyze App Store and Google Play listings against ASO best practices. Fetches
|
||||
live listing data, scores metadata, visuals, and ratings, then produces a
|
||||
prioritized action plan.
|
||||
|
||||
## When to Use
|
||||
|
||||
- User shares an App Store or Google Play URL
|
||||
- User asks to audit or optimize an app listing
|
||||
- User wants to compare their app against competitors
|
||||
- User asks about app store ranking, visibility, or download conversion
|
||||
|
||||
## Before Auditing
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
## Phase 1 — Identify Store & Fetch
|
||||
|
||||
### Detect store type from URL
|
||||
|
||||
```
|
||||
Apple: apps.apple.com/{country}/app/{name}/id{digits}
|
||||
Google: play.google.com/store/apps/details?id={package}
|
||||
```
|
||||
|
||||
If the user gives an app name instead of a URL, search the web for:
|
||||
`site:apps.apple.com "{app name}"` or `site:play.google.com "{app name}"`
|
||||
|
||||
### Fetch the listing
|
||||
|
||||
Use WebFetch to retrieve the listing page. Extract every available field:
|
||||
|
||||
**Apple App Store fields:**
|
||||
|
||||
- App name (title) — 30 char limit
|
||||
- Subtitle — 30 char limit
|
||||
- Description (long) — not indexed for search, but matters for conversion
|
||||
- Promotional text — 170 chars, updatable without new release
|
||||
- Category (primary + secondary)
|
||||
- Screenshots (count, order, caption text)
|
||||
- Preview video (presence, duration)
|
||||
- Rating (average + count)
|
||||
- Recent reviews (visible ones)
|
||||
- Price / in-app purchases
|
||||
- Developer name
|
||||
- Last updated date
|
||||
- Version history notes
|
||||
- Age rating
|
||||
- Size
|
||||
- Languages / localizations listed
|
||||
- In-app events (if any visible)
|
||||
|
||||
**Google Play fields:**
|
||||
|
||||
- App name (title) — 30 char limit
|
||||
- Short description — 80 char limit
|
||||
- Full description — 4,000 char limit, IS indexed for search
|
||||
- Category + tags
|
||||
- Feature graphic (presence)
|
||||
- Screenshots (count, order)
|
||||
- Preview video (presence)
|
||||
- Rating (average + count)
|
||||
- Recent reviews (visible ones)
|
||||
- Price / in-app purchases
|
||||
- Developer name
|
||||
- Last updated date
|
||||
- What's new text
|
||||
- Downloads range
|
||||
- Content rating
|
||||
- Data safety section
|
||||
- Languages listed
|
||||
|
||||
If WebFetch returns incomplete data (stores render client-side), note gaps and
|
||||
work with what's available. Ask the user to paste missing fields if critical.
|
||||
|
||||
### Visual asset assessment
|
||||
|
||||
WebFetch cannot extract screenshot images or caption text. **Take a screenshot
|
||||
of the listing page** to get visual data:
|
||||
|
||||
1. Navigate to the listing URL and capture a full-page screenshot
|
||||
2. Assess the screenshot for: icon quality, screenshot count, caption text,
|
||||
messaging quality, preview video presence, feature graphic (Google Play)
|
||||
3. If browser tools are unavailable, ask the user to share a screenshot of the
|
||||
listing page
|
||||
|
||||
**Promotional text (Apple):** This 170-char field appears above the description
|
||||
but is often indistinguishable from it in scraped HTML. If you cannot confirm
|
||||
its presence, note this and recommend the user check App Store Connect.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1.5 — Assess Brand Maturity
|
||||
|
||||
Before scoring, classify the app into one of three tiers. This determines how
|
||||
you interpret "textbook ASO" deviations — a deliberate brand choice by a
|
||||
household name is not the same as a missed opportunity by an unknown app.
|
||||
|
||||
### Tier definitions
|
||||
|
||||
| Tier | Signals | Examples |
|
||||
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- |
|
||||
| **Dominant** | Household name, 1M+ ratings, top-10 in category, near-universal brand recognition. Users search by brand name, not generic keywords. | Instagram, Uber, Spotify, WhatsApp, Netflix |
|
||||
| **Established** | Well-known in their category, 100K+ ratings, strong organic installs, recognized brand but not universally known. | Strava, Notion, Duolingo, Cash App, Calm |
|
||||
| **Challenger** | Building awareness, <100K ratings, needs discovery through keywords and ASO tactics. Most apps fall here. | Your app, most indie/startup apps |
|
||||
|
||||
### How tier affects scoring
|
||||
|
||||
**Dominant apps** get adjusted scoring in these areas:
|
||||
|
||||
- **Title:** Brand-only or brand-first titles are valid (score 8+ if brand is the keyword). These apps don't need generic keyword discovery.
|
||||
- **Description:** Score purely on conversion quality, not keyword presence. If the app is a household name, a well-crafted brand description beats a keyword-stuffed one.
|
||||
- **Visual Assets:** Lifestyle/brand photography instead of UI demos is a legitimate conversion strategy. No video is acceptable if the product is hard to demo in 30s or brand awareness is near-universal.
|
||||
- **What's New:** Generic release notes at weekly+ cadence are acceptable (score 8+). At scale, detailed changelogs have minimal ROI and risk backlash.
|
||||
- **In-app events:** Missing events for utility apps with massive install bases (Uber, WhatsApp) is not a penalty. These apps don't need discovery help.
|
||||
- **Localization:** Score relative to actual market, not absolute count. A US-only fintech with 2 languages (English + Spanish) is appropriately localized.
|
||||
|
||||
**Established apps** get partial adjustment:
|
||||
|
||||
- Brand-first titles are fine but should still include 1-2 keywords
|
||||
- Strategic description choices get benefit of the doubt
|
||||
- Other dimensions scored normally
|
||||
|
||||
**Challenger apps** are scored strictly against textbook ASO best practices — every character, screenshot, and keyword matters.
|
||||
|
||||
**Key principle:** Before docking points, ask: "Is this a mistake or a deliberate
|
||||
choice by a team that has data I don't?" If the app has 1M+ ratings and a
|
||||
dedicated ASO team, assume their choices are data-informed unless clearly wrong.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 — Score Each Dimension
|
||||
|
||||
Score each dimension 0-10 using the criteria in `references/scoring-criteria.md`.
|
||||
Apply the brand maturity tier adjustments from Phase 1.5.
|
||||
|
||||
Reference files for platform specs and benchmarks:
|
||||
|
||||
- `references/apple-specs.md` — Official Apple character limits, screenshot/video specs, CPP/PPO rules, rejection triggers
|
||||
- `references/google-play-specs.md` — Official Google Play limits, screenshot specs, Android Vitals thresholds, policies
|
||||
- `references/benchmarks.md` — Conversion data, rating impact, video lift, screenshot behavior, CPP/event benchmarks
|
||||
|
||||
### Dimensions and Weights
|
||||
|
||||
| # | Dimension | Weight | What It Covers |
|
||||
| --- | -------------------- | ------ | ------------------------------------------------------------------------- |
|
||||
| 1 | Title & Subtitle | 20% | Character usage, keyword presence, clarity, brand + keyword balance |
|
||||
| 2 | Description | 15% | First 3 lines, keyword density (Google), CTA, structure, promotional text |
|
||||
| 3 | Visual Assets | 25% | Screenshot count/quality/messaging, video, icon, feature graphic |
|
||||
| 4 | Ratings & Reviews | 20% | Average rating, volume, recency, developer responses |
|
||||
| 5 | Metadata & Freshness | 10% | Category choice, update recency, localization count, data safety |
|
||||
| 6 | Conversion Signals | 10% | Price positioning, IAP transparency, social proof, download range |
|
||||
|
||||
**Final score** = weighted sum, out of 100.
|
||||
|
||||
### Score interpretation
|
||||
|
||||
| Score | Grade | Meaning |
|
||||
| ------ | ----- | --------------------------------------------------------- |
|
||||
| 85-100 | A | Well-optimized; focus on A/B testing and iteration |
|
||||
| 70-84 | B | Good foundation; clear opportunities to improve |
|
||||
| 50-69 | C | Significant gaps; prioritized fixes will have high impact |
|
||||
| 30-49 | D | Major optimization needed across multiple dimensions |
|
||||
| 0-29 | F | Listing needs a complete overhaul |
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — Competitor Comparison (Optional)
|
||||
|
||||
If the user provides competitor URLs or asks for comparison:
|
||||
|
||||
1. Fetch 2-3 top competitors in the same category
|
||||
2. Run the same scoring on each
|
||||
3. Build a comparison table highlighting where the user's app is weaker/stronger
|
||||
4. Identify keyword gaps — terms competitors rank for that the user's app doesn't target
|
||||
|
||||
If no competitors are specified, suggest the user provide 2-3 or offer to search
|
||||
for top apps in their category.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4 — Generate Report
|
||||
|
||||
Use the template in `references/report-template.md` to structure the output.
|
||||
|
||||
The report must include:
|
||||
|
||||
1. **Score card** — table with all 6 dimensions, scores, and grade
|
||||
2. **Top 3 quick wins** — changes that take <1 hour and have highest impact
|
||||
3. **Detailed findings** — per-dimension breakdown with specific issues and fixes
|
||||
4. **Keyword suggestions** — based on title/description analysis and competitor gaps
|
||||
5. **Visual asset recommendations** — specific screenshot/video improvements
|
||||
6. **Priority action plan** — ordered list of changes by impact vs effort
|
||||
|
||||
### Report rules
|
||||
|
||||
- Every recommendation must be **specific and actionable** ("Change subtitle from X to Y" not "Improve subtitle")
|
||||
- Include character counts for all text recommendations
|
||||
- Flag platform-specific differences (Apple vs Google) when relevant
|
||||
- Note what CANNOT be assessed without paid tools (search volume, exact rankings)
|
||||
- When suggesting keyword changes, explain WHY each keyword matters
|
||||
|
||||
---
|
||||
|
||||
## Platform-Specific Rules
|
||||
|
||||
### Apple App Store — Key Facts
|
||||
|
||||
- Title (30 chars) + Subtitle (30 chars) + Keyword field (100 **bytes**, hidden) = indexed text
|
||||
- Keywords field is bytes not chars — Arabic/CJK use 2-3 bytes per char
|
||||
- Long description is NOT indexed for search — optimize for conversion only
|
||||
- Promotional text (170 chars) does NOT affect search (Apple confirmed)
|
||||
- Never repeat words across title/subtitle/keyword field (Apple indexes each word once)
|
||||
- Keyword field: commas, no spaces ("photo,editor,filter" not "photo, editor, filter")
|
||||
- Screenshots: up to 10 per device. First 3 visible in search — 90% never scroll past 3rd
|
||||
- Screenshot captions indexed since June 2025 (AI extraction)
|
||||
- In-app events: max 10 published at once, max 31 days each. Indexed and appear in search
|
||||
- Custom Product Pages (up to 70) in organic search since July 2025. +5.9% avg conversion lift
|
||||
- App preview video: up to 3, 15-30s each. Autoplays muted — +20-40% conversion lift
|
||||
- SKStoreReviewController: max 3 prompts per 365 days
|
||||
- Apple has human editorial curation — quality and design matter more
|
||||
- See `references/apple-specs.md` for full specs, dimensions, and rejection triggers
|
||||
|
||||
### Google Play — Key Facts
|
||||
|
||||
- Title (30 chars) + Short description (80 chars) + Full description (4,000 chars) = indexed text
|
||||
- Full description IS indexed — target 2-3% keyword density naturally
|
||||
- No hidden keyword field — all keywords must be in visible text
|
||||
- Google NLP/semantic understanding — keyword stuffing detected and penalized
|
||||
- Prohibited in title: emojis, ALL CAPS, "best"/"#1"/"free", CTAs (enforced since 2021)
|
||||
- Screenshots: min 2, **max 8** per device (not 10 like Apple)
|
||||
- Feature graphic (1024x500, exact) required for featured placements
|
||||
- Video does NOT autoplay — only ~6% of users tap play (low ROI vs iOS)
|
||||
- Android Vitals directly affect ranking: crash >1.09% or ANR >0.47% = reduced visibility
|
||||
- Promotional Content: submit 14 days early for featuring. Apps see 2x explore acquisitions
|
||||
- Custom Store Listings: up to 50 (can target churned users, specific countries, ad campaigns)
|
||||
- Store Listing Experiments: test up to 3 variants, run 7+ days, 1 experiment at a time
|
||||
- See `references/google-play-specs.md` for full specs and policy details
|
||||
|
||||
### What Apple Indexes vs What Google Indexes
|
||||
|
||||
| Field | Apple Indexed? | Google Indexed? |
|
||||
| --------------------- | ---------------- | ---------------------- |
|
||||
| Title | Yes | Yes (strongest signal) |
|
||||
| Subtitle / Short desc | Yes | Yes |
|
||||
| Keyword field | Yes (hidden) | Does not exist |
|
||||
| Long description | No | Yes (heavily) |
|
||||
| Screenshot captions | Yes (since 2025) | No |
|
||||
| In-app events | Yes | N/A (LiveOps instead) |
|
||||
| Developer name | No | Partial |
|
||||
| IAP names | Yes | Yes |
|
||||
|
||||
---
|
||||
|
||||
## Common Issues Checklist
|
||||
|
||||
Flag these if found. Items marked _(tier-dependent)_ should be evaluated against
|
||||
the app's brand maturity tier — they may be deliberate choices for Dominant apps.
|
||||
|
||||
**Always flag (all tiers):**
|
||||
|
||||
- [ ] Rating below 4.0
|
||||
- [ ] Last update > 3 months ago
|
||||
- [ ] Google Play description has no keyword strategy (under 1% density)
|
||||
- [ ] Google Play missing feature graphic
|
||||
- [ ] Apple keyword field likely has repeated words (inferred from title+subtitle)
|
||||
- [ ] Category mismatch — app would face less competition in a different category
|
||||
- [ ] Fewer than 5 screenshots
|
||||
|
||||
**Flag for Challenger/Established only** _(not mistakes for Dominant apps):_
|
||||
|
||||
- [ ] Title wastes characters on brand name only (no keywords) _(Dominant: brand IS the keyword)_
|
||||
- [ ] Subtitle/short description duplicates title keywords
|
||||
- [ ] Description first 3 lines are generic _(Dominant: may be brand-voice choice)_
|
||||
- [ ] No preview video _(Dominant: may be rational if product is hard to demo)_
|
||||
- [ ] Screenshots are just UI dumps with no messaging/captions _(Dominant: lifestyle/brand shots may convert better)_
|
||||
- [ ] Only 1-2 localizations _(score relative to actual market, not absolute count)_
|
||||
- [ ] No in-app events or promotional content _(Dominant utility apps may not need discovery help)_
|
||||
|
||||
**Flag for all tiers but note context:**
|
||||
|
||||
- [ ] No developer responses to negative reviews _(note volume — responding at 10M+ reviews is a different challenge than at 1K)_
|
||||
- [ ] Generic "What's New" text _(acceptable at weekly+ release cadence for Established/Dominant)_
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What is the App Store or Google Play URL?
|
||||
2. Is this your app or a competitor's?
|
||||
3. What category does the app compete in?
|
||||
4. Do you have competitor URLs to compare against?
|
||||
5. Are you focused on search visibility, conversion rate, or both?
|
||||
6. Do you have access to App Store Connect or Google Play Console data?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **page-cro**: For optimizing the conversion of web-based landing pages that drive app installs
|
||||
- **ad-creative**: For creating App Store and Google Play ad creatives
|
||||
- **analytics-tracking**: For setting up install attribution and in-app event tracking
|
||||
- **customer-research**: For understanding user needs and language to inform listing copy
|
||||
@@ -0,0 +1,107 @@
|
||||
# Apple App Store — Official Specs & Guidelines
|
||||
|
||||
All data from developer.apple.com as of March 2026.
|
||||
|
||||
## Character Limits
|
||||
|
||||
| Field | Limit | Indexed for Search? | Notes |
|
||||
| ----------------------- | ---------------- | ------------------------ | -------------------------------------------------------- |
|
||||
| App Name | 30 chars (min 2) | Yes | Must be unique; no trademarks, competitor names, pricing |
|
||||
| Subtitle | 30 chars | Yes | No unverifiable claims |
|
||||
| Keywords | 100 bytes | Yes (hidden) | Commas, no spaces between terms |
|
||||
| Description | 4,000 chars | **No** | Plain text only, no HTML |
|
||||
| Promotional Text | 170 chars | **No** (Apple confirmed) | Updatable without new version |
|
||||
| What's New | 4,000 chars | No | Required for all versions after first |
|
||||
| IAP Name | 35 chars | Yes | Appears in search |
|
||||
| IAP Description | 55 chars | No | |
|
||||
| In-App Event Name | 30 chars | Yes | Title case required |
|
||||
| In-App Event Short Desc | 50 chars | Yes | Sentence case |
|
||||
| In-App Event Long Desc | 120 chars | No | Sentence case |
|
||||
|
||||
**Keywords field is 100 bytes, not 100 characters.** Non-Latin scripts (Arabic,
|
||||
Chinese, Japanese, Korean) use 2-3 bytes per character, reducing effective
|
||||
keyword count significantly.
|
||||
|
||||
## Screenshot Specs
|
||||
|
||||
| Device | Required? | Count | Dimensions (portrait) |
|
||||
| ---------------- | ------------- | ----- | -------------------------- |
|
||||
| 6.9" iPhone | **Required** | 1-10 | 1260 x 2736 |
|
||||
| 13" iPad | **Required** | 1-10 | 2064 x 2752 |
|
||||
| Mac | If applicable | 1-10 | Up to 2880 x 1800 (16:10) |
|
||||
| Apple Watch | If applicable | 1-10 | Varies by model |
|
||||
| Apple TV | If applicable | 1-10 | 1920 x 1080 or 3840 x 2160 |
|
||||
| Apple Vision Pro | If applicable | 1-10 | 3840 x 2160 |
|
||||
|
||||
- Formats: JPEG, PNG
|
||||
- Apple auto-scales from required base sizes to smaller devices
|
||||
|
||||
## App Preview Video Specs
|
||||
|
||||
- **Count:** Up to 3 per app
|
||||
- **Duration:** 15-30 seconds
|
||||
- **Max file size:** 500 MB
|
||||
- **Codecs:** H.264 (10-12 Mbps, up to 30fps) or ProRes 422 HQ
|
||||
- **Audio:** Stereo, 256 kbps AAC or PCM, 44.1/48 kHz
|
||||
- **Formats:** .mov, .m4v, .mp4
|
||||
- **Behavior:** Autoplays muted on product page (iOS 11+)
|
||||
|
||||
## Custom Product Pages (CPPs)
|
||||
|
||||
- **Max:** 70 additional pages (plus 1 default)
|
||||
- **Customizable:** Screenshots, promotional text, app previews, deep links (iOS 18+)
|
||||
- **Keywords:** Each keyword combo must be unique to a single CPP
|
||||
- **Review:** Submitted to App Review independently of app updates
|
||||
- **Organic search:** CPPs appear in organic search results since July 2025
|
||||
- **Performance:** +2.5 percentage points higher conversion on average vs default
|
||||
|
||||
## Product Page Optimization (A/B Testing)
|
||||
|
||||
- **Treatments:** Up to 3 vs original
|
||||
- **Testable:** App icons, screenshots, app preview videos
|
||||
- **NOT testable:** Title, subtitle, description, keywords
|
||||
- **Concurrent tests:** 1 per app
|
||||
- **Max duration:** 90 days
|
||||
- **Icon constraint:** All icon variants must be in the published app binary
|
||||
- **Confidence:** Apple recommends 90% threshold (Bayesian method)
|
||||
- **Cannot modify** a test once started
|
||||
|
||||
## In-App Events
|
||||
|
||||
- **Max approved:** 15 in App Store Connect at once
|
||||
- **Max published:** 10 on App Store simultaneously
|
||||
- **Max duration:** 31 days per event
|
||||
- **Pre-event promotion:** Up to 14 days before start
|
||||
- **Badge types:** Challenge, Competition, Live Event, Major Update, New Season, Premiere, Special Event
|
||||
|
||||
**Event card image:** 16:9, min 1920x1080, max 3840x2160
|
||||
**Event details image:** 9:16, min 1080x1920, max 2160x3840
|
||||
|
||||
**Not suitable:** Repetitive daily tasks, price promotions without new content, general awareness campaigns.
|
||||
|
||||
## Ratings & Reviews
|
||||
|
||||
- **SKStoreReviewController:** Max 3 prompts per 365-day period
|
||||
- System controls display frequency (may show fewer than 3)
|
||||
- Do not use custom buttons to request reviews
|
||||
- Developers can respond to all reviews in App Store Connect
|
||||
- Summary rating is territory-specific
|
||||
|
||||
## Metadata Rejection Triggers (App Review Guidelines)
|
||||
|
||||
| Guideline | Rejection Trigger |
|
||||
| --------- | ------------------------------------------------------------------------- |
|
||||
| 2.3.1 | Hidden features, misleading marketing, false pricing |
|
||||
| 2.3.2 | Not disclosing IAPs in description/screenshots |
|
||||
| 2.3.3 | Screenshots that don't show app in use (only splash/login) |
|
||||
| 2.3.4 | Preview videos using non-app content |
|
||||
| 2.3.5 | Wrong category selected |
|
||||
| 2.3.7 | Keyword stuffing: trademarks, competitor names, pricing, irrelevant terms |
|
||||
| 2.3.8 | Metadata not appropriate for all audiences (must be 4+ rated) |
|
||||
| 2.3.10 | Other platform names/imagery (Android, etc.) in metadata |
|
||||
| 2.3.12 | Generic What's New for significant changes |
|
||||
| 2.3.13 | Inaccurate in-app event metadata |
|
||||
|
||||
Sources: developer.apple.com/app-store/product-page/,
|
||||
developer.apple.com/app-store/search/,
|
||||
developer.apple.com/app-store/review/guidelines/
|
||||
@@ -0,0 +1,129 @@
|
||||
# ASO Benchmarks & Conversion Data
|
||||
|
||||
Industry data from AppTweak, SplitMetrics, Sensor Tower, and others. Updated March 2026.
|
||||
|
||||
## Conversion Rate Benchmarks by Category
|
||||
|
||||
**Average CVR (page view to install):**
|
||||
|
||||
- iOS overall: **25.0%**
|
||||
- Google Play overall: **27.3%**
|
||||
|
||||
| Category | iOS CVR | Google Play CVR |
|
||||
| ----------------- | -------------- | --------------- |
|
||||
| Navigation | 115%\* | -- |
|
||||
| Auto & Vehicles | -- | 70.5% |
|
||||
| Business | 66.7% | -- |
|
||||
| Music (Games) | -- | 45.0% |
|
||||
| Utilities & Tools | -- | 36.8% |
|
||||
| Shopping | -- | 27.7% |
|
||||
| Health & Fitness | -- | 23.2% |
|
||||
| Finance | -- | 19.7% |
|
||||
| Food & Drink | -- | 13.1% |
|
||||
| Games (Board) | 1.2% | 7.3% |
|
||||
| Games (overall) | 3-5% realistic | -- |
|
||||
|
||||
\*Above 100% = some users install from search without visiting product page.
|
||||
|
||||
Source: AppTweak 2025 Benchmarks Report (H1 2024 data, US market)
|
||||
|
||||
## Rating Impact on Conversion
|
||||
|
||||
| Rating Change | Conversion Impact |
|
||||
| -------------------------- | --------------------------------------- |
|
||||
| 3.0 to 4.0 stars | **+89%** |
|
||||
| 4.0 to 4.5 stars | **+20-30%** |
|
||||
| 4.3 to 4.6 stars | **+22-28%** (Finance, Health) |
|
||||
| 0.4-star gap vs competitor | **~25% lost installs** from same search |
|
||||
| 3-star vs 5-star app | **50% fewer conversions** for 3-star |
|
||||
|
||||
**Critical thresholds:**
|
||||
|
||||
- **4.0 stars** = minimum for Apple featuring, user trust, conversion viability
|
||||
- **4.5+ stars** = optimal zone. Sweet spot: 4.1-4.9
|
||||
- **5.0 stars** can look suspicious to users
|
||||
- **Below 3.5** = sharp visibility drop on both stores
|
||||
- **79% of users** check ratings before downloading
|
||||
- **50% reject** apps below 3 stars
|
||||
|
||||
Sources: AppFollow, MobileAction, Sensor Tower, Troof.ai
|
||||
|
||||
## Preview Video Impact
|
||||
|
||||
**iOS:** +20-40% conversion lift (video autoplays on product page)
|
||||
**Google Play:** Minimal lift (only ~6% of visitors tap to play)
|
||||
|
||||
- Autoplay introduced in iOS 11 caused **+47% conversion jump**
|
||||
- Users who watch video are **2x more likely to install**
|
||||
- Average watch time: **4-6.5 seconds** (first 5 seconds are critical)
|
||||
- 50%+ of viewers watch to the end
|
||||
|
||||
**Takeaway:** Video is high-ROI on iOS, low-ROI on Google Play.
|
||||
|
||||
Sources: StoreMaven, SplitMetrics, Leanplum
|
||||
|
||||
## Screenshot Impact
|
||||
|
||||
- **90% of users** do not scroll past the 3rd screenshot
|
||||
- Average scroll rate: only **17%**
|
||||
- Users spend **6-10 seconds** scanning before deciding
|
||||
- **First screenshot decides everything**
|
||||
- Well-designed screenshots lift conversion **20-35%**
|
||||
- A/B test winners see **10-25% improvement**
|
||||
- **Optimal count:** 4-5 for utility apps, 5-6 for complex apps
|
||||
- More than 6: diminishing returns, can cause decision paralysis
|
||||
- Top 200 apps update screenshots **2-4 times/year**
|
||||
- Top Google Play games update visuals **up to 8x/year**
|
||||
- **57% of top games** A/B tested screenshots at least 2x in 2024
|
||||
|
||||
Sources: AppTweak, ASOMobile, Sensor Tower
|
||||
|
||||
## Custom Product Pages (Apple CPPs)
|
||||
|
||||
- Average conversion lift: **+5.9% for apps**, **+3.5% for games**
|
||||
- Best cases: up to **+8.6%**
|
||||
- Organic referral: **+2.5 percentage points** (156% lift vs 1.6% baseline)
|
||||
- Apple Ads CPP CVR: **55.8% in 2024** (up from 42.1% in 2023)
|
||||
- **Only 31% of apps** and **26% of games** use CPPs (low adoption = opportunity)
|
||||
- Screenshot reordering alone produced **+16.6% installs** in one case
|
||||
|
||||
Sources: AppTweak, SplitMetrics, MobileAction
|
||||
|
||||
## Custom Store Listings (Google Play CSLs)
|
||||
|
||||
- Up to **50 custom versions** per app
|
||||
- Case study (Lockwood/Avakin Life): **+57% CVR** over 2 months
|
||||
- Can target inactive/churned users (28+ days no activity)
|
||||
|
||||
Source: Phiture, MobileAction
|
||||
|
||||
## In-App Events (Apple)
|
||||
|
||||
- **55% of top 200 apps** use them regularly
|
||||
- +**15-20% more impressions** from editorial/browse placements
|
||||
- One case: **+124% surge** in total impressions
|
||||
- One case: **+50% impressions AND first-time downloads**
|
||||
- Search CVR uptick: **+10.3%**
|
||||
- Re-downloads increase: **+15.5%**
|
||||
- **Boost is short-lived** -- KPIs drop to baseline when event ends
|
||||
- Optimal: **2-4 active events per month**
|
||||
|
||||
Sources: Phiture, AppTweak, Appalize
|
||||
|
||||
## Promotional Content (Google Play)
|
||||
|
||||
- Apps with featuring see **2x explore acquisitions** (official Google)
|
||||
- +2% 28-day active users and +4% revenue on average
|
||||
|
||||
Source: Google Play Console documentation
|
||||
|
||||
## A/B Test Impact Thresholds
|
||||
|
||||
| Improvement | Classification |
|
||||
| ----------- | ---------------------------------- |
|
||||
| >10% | Strong winner -- apply immediately |
|
||||
| 5-10% | Meaningful winner |
|
||||
| 2-5% | Marginal winner |
|
||||
| <2% | Noise -- not significant |
|
||||
|
||||
Source: SplitMetrics, MobileAction
|
||||
@@ -0,0 +1,131 @@
|
||||
# Google Play Store — Official Specs & Guidelines
|
||||
|
||||
All data from support.google.com and developer.android.com as of March 2026.
|
||||
|
||||
## Character Limits
|
||||
|
||||
| Field | Limit | Indexed? | Notes |
|
||||
| ----------------- | ----------- | ---------------------- | ------------------------------------- |
|
||||
| App Title | 30 chars | Yes (strongest signal) | Reduced from 50 in Sept 2021 |
|
||||
| Short Description | 80 chars | Yes | Visible without expanding |
|
||||
| Full Description | 4,000 chars | **Yes (heavily)** | Google NLP indexes entire text |
|
||||
| Developer Name | 64 chars | Partial | Same emoji/caps restrictions as title |
|
||||
|
||||
## Prohibited in Metadata (enforced since Sept 2021)
|
||||
|
||||
**Title, Icon, Developer Name:**
|
||||
|
||||
- Emojis, emoticons, repeated special characters
|
||||
- ALL CAPS (unless registered brand)
|
||||
- Performance claims: "top," "best," "#1," "free," "no ads"
|
||||
- Misleading store performance or endorsement
|
||||
- Calls-to-action: "update now," "download now"
|
||||
|
||||
**Short Description:**
|
||||
|
||||
- Same performance claims as title
|
||||
- Calls-to-action
|
||||
- Unattributed testimonials
|
||||
|
||||
**Screenshots, Feature Graphic, Video:**
|
||||
|
||||
- Time-sensitive taglines
|
||||
- Calls-to-action ("Download now," "Play now")
|
||||
- Must authentically showcase app functionality
|
||||
|
||||
## Screenshot Specs
|
||||
|
||||
| Device | Min | Max | Aspect Ratio | Min Resolution | Max Long Edge |
|
||||
| ---------- | ----- | ----- | ------------ | -------------- | ------------- |
|
||||
| Phone | **2** | **8** | 9:16 or 16:9 | 320px any side | 3,840px |
|
||||
| 7" Tablet | 4 | 8 | 9:16 or 16:9 | 1,080px short | 7,680px |
|
||||
| 10" Tablet | 4 | 8 | 9:16 or 16:9 | 1,080px short | 7,680px |
|
||||
| Chromebook | 4 | 8 | 9:16 or 16:9 | 1,080px short | 7,680px |
|
||||
| Wear OS | 1 | 8 | **1:1** | 384x384 | 3,840px |
|
||||
| Android TV | 1 | 8 | **16:9** | 1,920x1,080 | 3,840px |
|
||||
|
||||
- **Recommended phone size:** 1080x1920 (portrait)
|
||||
- **Format:** JPEG or 24-bit PNG (no alpha)
|
||||
- **Max file size:** 8 MB each
|
||||
|
||||
**Note:** Google Play max is 8 screenshots per device, not 10 like Apple.
|
||||
|
||||
## Feature Graphic
|
||||
|
||||
- **Dimensions:** 1024 x 500 px (exact, required)
|
||||
- **Format:** JPEG or 24-bit PNG (no alpha)
|
||||
- Displayed at top of listing and in featured placements
|
||||
|
||||
## App Icon
|
||||
|
||||
- **Dimensions:** 512 x 512 px
|
||||
- **Format:** 32-bit PNG (with alpha)
|
||||
- **Max file size:** 1,024 KB
|
||||
- **Shape:** Full square (Google applies 30% corner radius automatically)
|
||||
- **Prohibited:** Ranking claims, download counts, deal text, emoji
|
||||
|
||||
## Preview Video
|
||||
|
||||
- **Format:** YouTube URL (public or unlisted)
|
||||
- **Duration:** 30 seconds to 2 minutes recommended
|
||||
- No ads, no monetization, must be embeddable, not age-restricted
|
||||
- **Does NOT autoplay** (only ~6% of visitors tap to play)
|
||||
|
||||
## Store Listing Experiments (A/B Testing)
|
||||
|
||||
- **Variants:** Up to 3 per experiment (plus control)
|
||||
- **Testable:** Icon, feature graphic, screenshots, video, short description, full description
|
||||
- **Concurrent:** Cannot run more than 1 default graphics experiment simultaneously
|
||||
- **Audience:** Signed-in Google Play users only
|
||||
- **Metrics:** First-time installers + retained first-time installers (1-day retention)
|
||||
- **Duration:** Run at least 7 days (weekday/weekend variance)
|
||||
- **Localized:** Test across up to 5 languages simultaneously
|
||||
|
||||
## Custom Store Listings
|
||||
|
||||
- **Max:** 50 per app (100 for Play partners)
|
||||
- **Customizable:** Title, short/full description, icon, screenshots, feature graphic, video
|
||||
- **Targeting:** Country/region, pre-registration, install state, Google Ads campaigns, inactive/churned users (28+ days)
|
||||
- **2025 addition:** Gemini AI auto-generates text for CSLs in Play Console
|
||||
|
||||
## Promotional Content (LiveOps)
|
||||
|
||||
| Type | Description | Duration |
|
||||
| ----------------- | ------------------------------ | -------------------- |
|
||||
| Offers | Discounts, free items, bundles | Up to 28 days |
|
||||
| Events | Time-limited in-app events | Must have time limit |
|
||||
| Major Update | Significant new features | Max 1 week |
|
||||
| Crossover (games) | Cross-game/IP collaboration | Varies |
|
||||
|
||||
- Submit **4+ days** before start (standard review)
|
||||
- Submit **14+ days** before for featuring requests
|
||||
- **Impact:** "Over twice as many explore acquisitions during featuring" (official Google)
|
||||
|
||||
## Android Vitals — Ranking Thresholds
|
||||
|
||||
Apps exceeding these thresholds get **reduced visibility** in search and recommendations.
|
||||
|
||||
| Metric | Overall Threshold | Per-Device Threshold |
|
||||
| ---------------------------- | ----------------- | -------------------- |
|
||||
| User-Perceived Crash Rate | **1.09%** | 8% |
|
||||
| User-Perceived ANR Rate | **0.47%** | 8% |
|
||||
| Excessive Partial Wake Locks | 5% | N/A |
|
||||
|
||||
**Consequences:** Reduced search visibility, warning labels on listing, quality alerts to users before install.
|
||||
**Recovery:** Google checks daily using 28-day rolling average.
|
||||
|
||||
## Search Ranking — Official Factors
|
||||
|
||||
Google confirms these affect ranking:
|
||||
|
||||
1. **Metadata relevance** — Title carries most weight. NLP scans title + short desc + full desc.
|
||||
2. **App quality** — Android Vitals (crash/ANR rates)
|
||||
3. **Ratings and reviews** — Star rating + review text. 85% of featured apps have 4.0+
|
||||
4. **Install volume and velocity** — Total installs + daily/weekly frequency
|
||||
5. **Engagement and retention** — Session frequency, duration, retention rates
|
||||
6. **Update frequency** — Regular updates signal active maintenance
|
||||
7. **Localization** — Regional keyword/visual adaptation. 59% of US apps localize titles.
|
||||
|
||||
Sources: support.google.com/googleplay/android-developer/answer/4448378,
|
||||
support.google.com/googleplay/android-developer/answer/9898842,
|
||||
developer.android.com/topic/performance/vitals
|
||||
@@ -0,0 +1,213 @@
|
||||
# ASO Audit Report Template
|
||||
|
||||
Use this structure for all ASO audit reports.
|
||||
|
||||
---
|
||||
|
||||
## Header
|
||||
|
||||
```
|
||||
# ASO Audit: {App Name}
|
||||
**Store:** {Apple App Store / Google Play}
|
||||
**URL:** {listing URL}
|
||||
**Audit date:** {date}
|
||||
**Brand tier:** {Dominant / Established / Challenger} — {one-line justification}
|
||||
**Overall Score:** {score}/100 (Grade: {A/B/C/D/F})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Score Card
|
||||
|
||||
```
|
||||
| Dimension | Score | Grade | Key Issue |
|
||||
|-----------|-------|-------|-----------|
|
||||
| Title & Subtitle | X/10 | {grade} | {one-line summary} |
|
||||
| Description | X/10 | {grade} | {one-line summary} |
|
||||
| Visual Assets | X/10 | {grade} | {one-line summary} |
|
||||
| Ratings & Reviews | X/10 | {grade} | {one-line summary} |
|
||||
| Metadata & Freshness | X/10 | {grade} | {one-line summary} |
|
||||
| Conversion Signals | X/10 | {grade} | {one-line summary} |
|
||||
| **OVERALL** | **{weighted}/100** | **{grade}** | |
|
||||
```
|
||||
|
||||
Grade scale per dimension: 9-10 = A, 7-8 = B, 5-6 = C, 3-4 = D, 1-2 = F
|
||||
|
||||
---
|
||||
|
||||
## Top 3 Quick Wins
|
||||
|
||||
Highest-impact changes that take under 1 hour:
|
||||
|
||||
```
|
||||
### 1. {Action verb} — {specific change}
|
||||
**Impact:** {High/Medium} | **Effort:** {<15 min / <30 min / <1 hour}
|
||||
**Current:** {what it is now}
|
||||
**Recommended:** {exact replacement, with character count}
|
||||
**Why:** {one sentence explaining the impact}
|
||||
|
||||
### 2. ...
|
||||
### 3. ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Detailed Findings
|
||||
|
||||
### Title & Subtitle Analysis
|
||||
|
||||
```
|
||||
**Current title:** "{title}" ({X}/30 chars used)
|
||||
**Current subtitle/short desc:** "{subtitle}" ({X}/30 or /80 chars used)
|
||||
|
||||
**Issues found:**
|
||||
- {issue 1}
|
||||
- {issue 2}
|
||||
|
||||
**Recommended title:** "{new title}" ({X}/30 chars) — {rationale}
|
||||
**Recommended subtitle:** "{new subtitle}" ({X}/30 or /80 chars) — {rationale}
|
||||
```
|
||||
|
||||
### Description Analysis
|
||||
|
||||
```
|
||||
**First 3 lines (above fold):**
|
||||
> {quoted text}
|
||||
|
||||
**Issues found:**
|
||||
- {issue 1}
|
||||
- {issue 2}
|
||||
|
||||
**Keyword density (Google Play only):** {X}% — target: 2-3%
|
||||
**Top keywords found:** {keyword1} (Xn), {keyword2} (Xn), ...
|
||||
**Missing high-value keywords:** {keyword1}, {keyword2}, ...
|
||||
|
||||
**Recommended first 3 lines:**
|
||||
> {rewritten text}
|
||||
```
|
||||
|
||||
### Visual Assets Analysis
|
||||
|
||||
```
|
||||
**Screenshots:** {count} ({store} shows first {3/all} in search)
|
||||
**Preview video:** {Yes/No}
|
||||
**Icon assessment:** {description}
|
||||
**Feature graphic (Google Play):** {Yes/No}
|
||||
|
||||
**Screenshot audit:**
|
||||
1. {screenshot 1 description} — {pass/issue}
|
||||
2. {screenshot 2 description} — {pass/issue}
|
||||
...
|
||||
|
||||
**Recommendations:**
|
||||
- {specific visual change 1}
|
||||
- {specific visual change 2}
|
||||
```
|
||||
|
||||
### Ratings & Reviews Analysis
|
||||
|
||||
```
|
||||
**Average rating:** {X.X} stars ({count} ratings)
|
||||
**Recent review sentiment:** {Positive/Mixed/Negative}
|
||||
**Common complaints:** {theme1}, {theme2}
|
||||
**Developer responses:** {Yes, active / Sporadic / None}
|
||||
|
||||
**Recommendations:**
|
||||
- {specific action 1}
|
||||
- {specific action 2}
|
||||
```
|
||||
|
||||
### Metadata & Freshness
|
||||
|
||||
```
|
||||
**Last updated:** {date} ({X days/months ago})
|
||||
**Localizations:** {count} languages
|
||||
**Category:** {current category}
|
||||
**In-app events/LiveOps:** {Yes/No}
|
||||
|
||||
**Recommendations:**
|
||||
- {specific action 1}
|
||||
- {specific action 2}
|
||||
```
|
||||
|
||||
### Conversion Signals
|
||||
|
||||
```
|
||||
**Price model:** {Free / Freemium / Paid}
|
||||
**IAP count:** {count}
|
||||
**Downloads (Google Play):** {range}
|
||||
**Social proof visible:** {awards, press, badges — or "none"}
|
||||
|
||||
**Recommendations:**
|
||||
- {specific action 1}
|
||||
- {specific action 2}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Keyword Suggestions
|
||||
|
||||
```
|
||||
| Keyword | Rationale | Where to Place | Priority |
|
||||
|---------|-----------|----------------|----------|
|
||||
| {keyword} | {why this keyword} | {title/subtitle/description/keyword field} | {High/Med/Low} |
|
||||
| ... | ... | ... | ... |
|
||||
```
|
||||
|
||||
Note: Without paid ASO tools, exact search volume is unavailable. These
|
||||
suggestions are based on category analysis, competitor metadata, and semantic
|
||||
relevance. Validate with AppTweak, Sensor Tower, or MobileAction for volume data.
|
||||
|
||||
---
|
||||
|
||||
## Competitor Comparison (if applicable)
|
||||
|
||||
```
|
||||
| Metric | {Your App} | {Competitor 1} | {Competitor 2} |
|
||||
|--------|-----------|----------------|----------------|
|
||||
| Title keywords | ... | ... | ... |
|
||||
| Rating | ... | ... | ... |
|
||||
| Screenshots | ... | ... | ... |
|
||||
| Video | ... | ... | ... |
|
||||
| Description keywords | ... | ... | ... |
|
||||
| Last updated | ... | ... | ... |
|
||||
| Overall ASO score | ... | ... | ... |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Priority Action Plan
|
||||
|
||||
Ordered by impact (high to low), grouped by effort:
|
||||
|
||||
```
|
||||
### Do This Week (Quick Wins)
|
||||
1. {action} — {expected impact}
|
||||
2. {action} — {expected impact}
|
||||
|
||||
### Do This Month (Medium Effort)
|
||||
3. {action} — {expected impact}
|
||||
4. {action} — {expected impact}
|
||||
|
||||
### Plan for Next Quarter (High Effort)
|
||||
5. {action} — {expected impact}
|
||||
6. {action} — {expected impact}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Limitations
|
||||
|
||||
Always include this section:
|
||||
|
||||
> **What this audit cannot measure without paid ASO tools:**
|
||||
>
|
||||
> - Exact keyword search volume and difficulty scores
|
||||
> - Historical keyword ranking positions
|
||||
> - Download and revenue estimates
|
||||
> - Apple keyword field contents (hidden from public view)
|
||||
> - Install conversion rate data (only available to app owner in console)
|
||||
> - A/B test results from previous experiments
|
||||
>
|
||||
> For these data points, consider using AppTweak ($69/mo), Sensor Tower, or
|
||||
> MobileAction ($69/mo).
|
||||
@@ -0,0 +1,213 @@
|
||||
# ASO Scoring Criteria
|
||||
|
||||
Score each dimension 0-10 using the rubrics below.
|
||||
**Apply brand maturity tier adjustments** from Phase 1.5 of the main skill.
|
||||
|
||||
---
|
||||
|
||||
## Brand Maturity Adjustments (apply to all dimensions)
|
||||
|
||||
Before scoring, determine the app's tier: **Dominant**, **Established**, or **Challenger**.
|
||||
|
||||
**Dominant apps (Instagram, Uber, Spotify, WhatsApp, Netflix):**
|
||||
|
||||
- Brand-only titles score 8+ (the brand IS the keyword)
|
||||
- Lifestyle/brand screenshots score same as captioned UI screenshots
|
||||
- Generic What's New at weekly+ cadence scores 8+
|
||||
- Missing in-app events for utility apps is not a penalty
|
||||
- Description scored on conversion quality only, not keyword presence
|
||||
- Localization scored relative to actual market footprint
|
||||
- Missing preview video is acceptable if brand awareness is near-universal
|
||||
|
||||
**Established apps (Duolingo, Strava, Notion, Calm, Cash App):**
|
||||
|
||||
- Brand-first titles with 1-2 keywords score normally
|
||||
- Strategic description/visual choices get benefit of the doubt
|
||||
- All other dimensions scored normally
|
||||
|
||||
**Challenger apps (most apps):**
|
||||
|
||||
- Scored strictly against textbook ASO — every character and feature matters
|
||||
|
||||
**Key principle:** Before docking points, ask: "Is this a mistake or a data-informed
|
||||
choice by a team with more information than I have?"
|
||||
|
||||
---
|
||||
|
||||
## 1. Title & Subtitle (Weight: 20%)
|
||||
|
||||
**Challenger rubric:**
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 9-10 | Brand + high-value keyword in title, complementary keywords in subtitle, no word repetition across fields, near max character usage, instantly communicates app purpose |
|
||||
| 7-8 | Good keyword presence, minor character waste (5+ unused chars), clear purpose |
|
||||
| 5-6 | Has keywords but poor placement, some repetition between fields, purpose somewhat clear |
|
||||
| 3-4 | Title is brand-only or generic, subtitle missing or weak, poor character usage |
|
||||
| 1-2 | No keyword strategy, title doesn't communicate purpose, major character waste |
|
||||
| 0 | Cannot assess (data unavailable) |
|
||||
|
||||
**Dominant/Established adjustment:** Brand-only titles (e.g., "Instagram") are
|
||||
valid if the brand has high search volume. Score 8+ for Dominant apps where
|
||||
brand recognition eliminates the need for generic keywords. Evaluate whether
|
||||
unused characters represent waste or intentional simplicity.
|
||||
|
||||
**Check for:**
|
||||
|
||||
- Characters used vs limit (title: 30, subtitle/short desc: 30/80). "Near max" = within 3 chars of the limit (27+/30, 77+/80)
|
||||
- Primary keyword in title
|
||||
- Keyword duplication between title and subtitle
|
||||
- Whether app purpose is immediately clear
|
||||
- Unnecessary words (articles, prepositions) consuming space
|
||||
- Special characters or claims ("#1", "best") that risk rejection (Apple)
|
||||
|
||||
---
|
||||
|
||||
## 2. Description (Weight: 15%)
|
||||
|
||||
### Apple App Store
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| 9-10 | First 3 lines hook with clear value prop, structured with features/benefits/social proof/CTA, promotional text actively used, compelling and scannable |
|
||||
| 7-8 | Good opening, decent structure, could improve scannability or CTA |
|
||||
| 5-6 | Generic opening ("Welcome to..."), some structure, missing CTA or social proof |
|
||||
| 3-4 | Wall of text, no clear value prop above fold, no promotional text |
|
||||
| 1-2 | Minimal or boilerplate description, no effort |
|
||||
| 0 | Cannot assess |
|
||||
|
||||
### Google Play
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 9-10 | Keywords in first 3 sentences, 2-3% natural density throughout, HTML formatting used, structured sections, strong CTA, keywords feel natural |
|
||||
| 7-8 | Good keyword presence, some structure, density slightly off (1-2% or 3-4%) |
|
||||
| 5-6 | Keywords present but sparse (<1%) or stuffed (>5%), weak structure |
|
||||
| 3-4 | No keyword strategy visible, poor formatting, wall of text |
|
||||
| 1-2 | Minimal description, no keywords, no structure |
|
||||
| 0 | Cannot assess |
|
||||
|
||||
**Check for:**
|
||||
|
||||
- First 3 lines quality (visible before "Read More")
|
||||
- Feature-benefit framing (not just feature lists)
|
||||
- Social proof (downloads, awards, press mentions)
|
||||
- Call to action
|
||||
- Keyword density (Google Play only - count target keywords / total words)
|
||||
- HTML formatting usage (Google Play)
|
||||
- Promotional text presence and quality (Apple)
|
||||
|
||||
---
|
||||
|
||||
## 3. Visual Assets (Weight: 25%)
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 9-10 | 8-10 screenshots with clear messaging/captions, preview video present, screenshots tell a story in sequence, each communicates one benefit, icon is distinctive and memorable |
|
||||
| 7-8 | 6-7 screenshots with captions, good icon, no video OR good video but some screenshot messaging unclear |
|
||||
| 5-6 | 5+ screenshots but weak/no captions, basic icon, no video, screenshots are UI dumps |
|
||||
| 3-4 | 3-4 screenshots, no captions, generic icon, no storytelling |
|
||||
| 1-2 | Fewer than 3 screenshots, or screenshots are raw unedited UI, poor icon |
|
||||
| 0 | Cannot assess |
|
||||
|
||||
**Check for:**
|
||||
|
||||
- Screenshot count (minimum 5, ideal 8-10)
|
||||
- Caption/overlay text on screenshots (one message per screen, 5-7 words max)
|
||||
- First 3 screenshots (highest conversion impact on Apple)
|
||||
- Preview video presence and quality
|
||||
- Icon distinctiveness (no text in icon, bold shapes, stands out)
|
||||
- Feature graphic presence (Google Play - mandatory for featured placements)
|
||||
- Screenshot storytelling flow (do they tell a coherent story?)
|
||||
- Localized visual assets (for non-English markets)
|
||||
- Caption keywords (Apple - indexed since June 2025)
|
||||
|
||||
---
|
||||
|
||||
## 4. Ratings & Reviews (Weight: 20%)
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | ------------------------------------------------------------------------------------------------------ |
|
||||
| 9-10 | 4.5+ stars, 10K+ ratings, recent reviews positive, developer responds to negatives, steady review flow |
|
||||
| 7-8 | 4.0-4.4 stars, 1K+ ratings, mostly positive recent reviews, some developer responses |
|
||||
| 5-6 | 3.5-3.9 stars, 500+ ratings, mixed recent reviews, no developer responses |
|
||||
| 3-4 | 3.0-3.4 stars, <500 ratings, negative themes in recent reviews |
|
||||
| 1-2 | Below 3.0 stars, few ratings, no developer engagement, visible complaints |
|
||||
| 0 | No ratings yet or cannot assess |
|
||||
|
||||
**Check for:**
|
||||
|
||||
- Average rating (target: 4.0+ minimum, 4.5+ ideal)
|
||||
- Total rating count
|
||||
- Recent review sentiment (last 5-10 visible reviews)
|
||||
- Common complaint themes (bugs, crashes, pricing, UX)
|
||||
- Developer response presence and quality
|
||||
- Rating trend (improving or declining, if visible)
|
||||
- Review recency (fresh reviews signal active user base)
|
||||
|
||||
---
|
||||
|
||||
## 5. Metadata & Freshness (Weight: 10%)
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | ------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 9-10 | Updated within last month, 10+ localizations, optimal category choice, in-app events/LiveOps active, data safety complete |
|
||||
| 7-8 | Updated within 2 months, 5+ localizations, good category, data safety present |
|
||||
| 5-6 | Updated within 3 months, 2-4 localizations, acceptable category |
|
||||
| 3-4 | Updated 3-6 months ago, 1-2 localizations, possibly wrong category |
|
||||
| 1-2 | Not updated in 6+ months, single language, poor category choice |
|
||||
| 0 | Cannot assess |
|
||||
|
||||
**Check for:**
|
||||
|
||||
- Last update date and recency
|
||||
- Number of supported languages/localizations
|
||||
- Category selection (is it the best fit? less competitive alternative?)
|
||||
- In-app events (Apple) or promotional content (Google) presence
|
||||
- Data safety / privacy nutrition label completeness
|
||||
- Age rating appropriateness
|
||||
- Version history quality (do release notes communicate value?)
|
||||
- What's New text quality
|
||||
|
||||
---
|
||||
|
||||
## 6. Conversion Signals (Weight: 10%)
|
||||
|
||||
| Score | Criteria |
|
||||
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 9-10 | Clear value before download, transparent pricing/IAP, social proof visible (press, awards), download range suggests strong traction, developer credibility strong |
|
||||
| 7-8 | Good value communication, pricing clear, some social proof |
|
||||
| 5-6 | Value prop exists but weak, pricing unclear or IAP heavy, limited social proof |
|
||||
| 3-4 | Unclear what user gets, confusing pricing, no social proof, low downloads visible |
|
||||
| 1-2 | No value communication, suspicious pricing, app looks abandoned |
|
||||
| 0 | Cannot assess |
|
||||
|
||||
**Check for:**
|
||||
|
||||
- Price transparency (free, freemium, paid - is it clear?)
|
||||
- In-app purchase list quality (do IAP names communicate value?)
|
||||
- Download range (Google Play - 10K+, 100K+, 1M+ signals trust)
|
||||
- Developer name/brand recognition
|
||||
- "Editors' Choice" or featured badges
|
||||
- Press mentions or awards in description
|
||||
- Related apps from same developer (portfolio trust signal)
|
||||
- Privacy practices transparency
|
||||
|
||||
---
|
||||
|
||||
## Calculating Final Score
|
||||
|
||||
```
|
||||
Final Score = (Title * 0.20) + (Description * 0.15) + (Visuals * 0.25)
|
||||
+ (Ratings * 0.20) + (Metadata * 0.10) + (Conversion * 0.10)
|
||||
|
||||
Scale to 100: Final Score * 10
|
||||
```
|
||||
|
||||
**Example:** Title: 7, Description: 6, Visuals: 8, Ratings: 9, Metadata: 5, Conversion: 7
|
||||
|
||||
```
|
||||
(7 * 0.20) + (6 * 0.15) + (8 * 0.25) + (9 * 0.20) + (5 * 0.10) + (7 * 0.10)
|
||||
= 1.4 + 0.9 + 2.0 + 1.8 + 0.5 + 0.7
|
||||
= 7.3 → 73/100 → Grade: B
|
||||
```
|
||||
@@ -0,0 +1,424 @@
|
||||
---
|
||||
name: churn-prevention
|
||||
description: "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Churn Prevention
|
||||
|
||||
You are an expert in SaaS retention and churn prevention. Your goal is to help reduce both voluntary churn (customers choosing to cancel) and involuntary churn (failed payments) through well-designed cancel flows, dynamic save offers, proactive retention, and dunning strategies.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Current Churn Situation
|
||||
- What's your monthly churn rate? (Voluntary vs. involuntary if known)
|
||||
- How many active subscribers?
|
||||
- What's the average MRR per customer?
|
||||
- Do you have a cancel flow today, or does cancel happen instantly?
|
||||
|
||||
### 2. Billing & Platform
|
||||
- What billing provider? (Stripe, Chargebee, Paddle, Recurly, Braintree)
|
||||
- Monthly, annual, or both billing intervals?
|
||||
- Do you support plan pausing or downgrades?
|
||||
- Any existing retention tooling? (Churnkey, ProsperStack, Raaft)
|
||||
|
||||
### 3. Product & Usage Data
|
||||
- Do you track feature usage per user?
|
||||
- Can you identify engagement drop-offs?
|
||||
- Do you have cancellation reason data from past churns?
|
||||
- What's your activation metric? (What do retained users do that churned users don't?)
|
||||
|
||||
### 4. Constraints
|
||||
- B2B or B2C? (Affects flow design)
|
||||
- Self-serve cancellation required? (Some regulations mandate easy cancel)
|
||||
- Brand tone for offboarding? (Empathetic, direct, playful)
|
||||
|
||||
---
|
||||
|
||||
## How This Skill Works
|
||||
|
||||
Churn has two types requiring different strategies:
|
||||
|
||||
| Type | Cause | Solution |
|
||||
|------|-------|----------|
|
||||
| **Voluntary** | Customer chooses to cancel | Cancel flows, save offers, exit surveys |
|
||||
| **Involuntary** | Payment fails | Dunning emails, smart retries, card updaters |
|
||||
|
||||
Voluntary churn is typically 50-70% of total churn. Involuntary churn is 30-50% but is often easier to fix.
|
||||
|
||||
This skill supports three modes:
|
||||
|
||||
1. **Build a cancel flow** — Design from scratch with survey, save offers, and confirmation
|
||||
2. **Optimize an existing flow** — Analyze cancel data and improve save rates
|
||||
3. **Set up dunning** — Failed payment recovery with retries and email sequences
|
||||
|
||||
---
|
||||
|
||||
## Cancel Flow Design
|
||||
|
||||
### The Cancel Flow Structure
|
||||
|
||||
Every cancel flow follows this sequence:
|
||||
|
||||
```
|
||||
Trigger → Survey → Dynamic Offer → Confirmation → Post-Cancel
|
||||
```
|
||||
|
||||
**Step 1: Trigger**
|
||||
Customer clicks "Cancel subscription" in account settings.
|
||||
|
||||
**Step 2: Exit Survey**
|
||||
Ask why they're cancelling. This determines which save offer to show.
|
||||
|
||||
**Step 3: Dynamic Save Offer**
|
||||
Present a targeted offer based on their reason (discount, pause, downgrade, etc.)
|
||||
|
||||
**Step 4: Confirmation**
|
||||
If they still want to cancel, confirm clearly with end-of-billing-period messaging.
|
||||
|
||||
**Step 5: Post-Cancel**
|
||||
Set expectations, offer easy reactivation path, trigger win-back sequence.
|
||||
|
||||
### Exit Survey Design
|
||||
|
||||
The exit survey is the foundation. Good reason categories:
|
||||
|
||||
| Reason | What It Tells You |
|
||||
|--------|-------------------|
|
||||
| Too expensive | Price sensitivity, may respond to discount or downgrade |
|
||||
| Not using it enough | Low engagement, may respond to pause or onboarding help |
|
||||
| Missing a feature | Product gap, show roadmap or workaround |
|
||||
| Switching to competitor | Competitive pressure, understand what they offer |
|
||||
| Technical issues / bugs | Product quality, escalate to support |
|
||||
| Temporary / seasonal need | Usage pattern, offer pause |
|
||||
| Business closed / changed | Unavoidable, learn and let go gracefully |
|
||||
| Other | Catch-all, include free text field |
|
||||
|
||||
**Survey best practices:**
|
||||
- 1 question, single-select with optional free text
|
||||
- 5-8 reason options max (avoid decision fatigue)
|
||||
- Put most common reasons first (review data quarterly)
|
||||
- Don't make it feel like a guilt trip
|
||||
- "Help us improve" framing works better than "Why are you leaving?"
|
||||
|
||||
### Dynamic Save Offers
|
||||
|
||||
The key insight: **match the offer to the reason.** A discount won't save someone who isn't using the product. A feature roadmap won't save someone who can't afford it.
|
||||
|
||||
**Offer-to-reason mapping:**
|
||||
|
||||
| Cancel Reason | Primary Offer | Fallback Offer |
|
||||
|---------------|---------------|----------------|
|
||||
| Too expensive | Discount (20-30% for 2-3 months) | Downgrade to lower plan |
|
||||
| Not using it enough | Pause (1-3 months) | Free onboarding session |
|
||||
| Missing feature | Roadmap preview + timeline | Workaround guide |
|
||||
| Switching to competitor | Competitive comparison + discount | Feedback session |
|
||||
| Technical issues | Escalate to support immediately | Credit + priority fix |
|
||||
| Temporary / seasonal | Pause subscription | Downgrade temporarily |
|
||||
| Business closed | Skip offer (respect the situation) | — |
|
||||
|
||||
### Save Offer Types
|
||||
|
||||
**Discount**
|
||||
- 20-30% off for 2-3 months is the sweet spot
|
||||
- Avoid 50%+ discounts (trains customers to cancel for deals)
|
||||
- Time-limit the offer ("This offer expires when you leave this page")
|
||||
- Show the dollar amount saved, not just the percentage
|
||||
|
||||
**Pause subscription**
|
||||
- 1-3 month pause maximum (longer pauses rarely reactivate)
|
||||
- 60-80% of pausers eventually return to active
|
||||
- Auto-reactivation with advance notice email
|
||||
- Keep their data and settings intact
|
||||
|
||||
**Plan downgrade**
|
||||
- Offer a lower tier instead of full cancellation
|
||||
- Show what they keep vs. what they lose
|
||||
- Position as "right-size your plan" not "downgrade"
|
||||
- Easy path back up when ready
|
||||
|
||||
**Feature unlock / extension**
|
||||
- Unlock a premium feature they haven't tried
|
||||
- Extend trial of a higher tier
|
||||
- Works best for "not getting enough value" reasons
|
||||
|
||||
**Personal outreach**
|
||||
- For high-value accounts (top 10-20% by MRR)
|
||||
- Route to customer success for a call
|
||||
- Personal email from founder for smaller companies
|
||||
|
||||
### Cancel Flow UI Patterns
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ We're sorry to see you go │
|
||||
│ │
|
||||
│ What's the main reason you're │
|
||||
│ cancelling? │
|
||||
│ │
|
||||
│ ○ Too expensive │
|
||||
│ ○ Not using it enough │
|
||||
│ ○ Missing a feature I need │
|
||||
│ ○ Switching to another tool │
|
||||
│ ○ Technical issues │
|
||||
│ ○ Temporary / don't need right now │
|
||||
│ ○ Other: [____________] │
|
||||
│ │
|
||||
│ [Continue] │
|
||||
│ [Never mind, keep my subscription] │
|
||||
└─────────────────────────────────────┘
|
||||
↓ (selects "Too expensive")
|
||||
┌─────────────────────────────────────┐
|
||||
│ What if we could help? │
|
||||
│ │
|
||||
│ We'd love to keep you. Here's a │
|
||||
│ special offer: │
|
||||
│ │
|
||||
│ ┌───────────────────────────────┐ │
|
||||
│ │ 25% off for the next 3 months│ │
|
||||
│ │ Save $XX/month │ │
|
||||
│ │ │ │
|
||||
│ │ [Accept Offer] │ │
|
||||
│ └───────────────────────────────┘ │
|
||||
│ │
|
||||
│ Or switch to [Basic Plan] at │
|
||||
│ $X/month → │
|
||||
│ │
|
||||
│ [No thanks, continue cancelling] │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**UI principles:**
|
||||
- Keep the "continue cancelling" option visible (no dark patterns)
|
||||
- One primary offer + one fallback, not a wall of options
|
||||
- Show specific dollar savings, not abstract percentages
|
||||
- Use the customer's name and account data when possible
|
||||
- Mobile-friendly (many cancellations happen on mobile)
|
||||
|
||||
For detailed cancel flow patterns by industry and billing provider, see [references/cancel-flow-patterns.md](references/cancel-flow-patterns.md).
|
||||
|
||||
---
|
||||
|
||||
## Churn Prediction & Proactive Retention
|
||||
|
||||
The best save happens before the customer ever clicks "Cancel."
|
||||
|
||||
### Risk Signals
|
||||
|
||||
Track these leading indicators of churn:
|
||||
|
||||
| Signal | Risk Level | Timeframe |
|
||||
|--------|-----------|-----------|
|
||||
| Login frequency drops 50%+ | High | 2-4 weeks before cancel |
|
||||
| Key feature usage stops | High | 1-3 weeks before cancel |
|
||||
| Support tickets spike then stop | High | 1-2 weeks before cancel |
|
||||
| Email open rates decline | Medium | 2-6 weeks before cancel |
|
||||
| Billing page visits increase | High | Days before cancel |
|
||||
| Team seats removed | High | 1-2 weeks before cancel |
|
||||
| Data export initiated | Critical | Days before cancel |
|
||||
| NPS score drops below 6 | Medium | 1-3 months before cancel |
|
||||
|
||||
### Health Score Model
|
||||
|
||||
Build a simple health score (0-100) from weighted signals:
|
||||
|
||||
```
|
||||
Health Score = (
|
||||
Login frequency score × 0.30 +
|
||||
Feature usage score × 0.25 +
|
||||
Support sentiment × 0.15 +
|
||||
Billing health × 0.15 +
|
||||
Engagement score × 0.15
|
||||
)
|
||||
```
|
||||
|
||||
| Score | Status | Action |
|
||||
|-------|--------|--------|
|
||||
| 80-100 | Healthy | Upsell opportunities |
|
||||
| 60-79 | Needs attention | Proactive check-in |
|
||||
| 40-59 | At risk | Intervention campaign |
|
||||
| 0-39 | Critical | Personal outreach |
|
||||
|
||||
### Proactive Interventions
|
||||
|
||||
**Before they think about cancelling:**
|
||||
|
||||
| Trigger | Intervention |
|
||||
|---------|-------------|
|
||||
| Usage drop >50% for 2 weeks | "We noticed you haven't used [feature]. Need help?" email |
|
||||
| Approaching plan limit | Upgrade nudge (not a wall — paywall-upgrade-cro handles this) |
|
||||
| No login for 14 days | Re-engagement email with recent product updates |
|
||||
| NPS detractor (0-6) | Personal follow-up within 24 hours |
|
||||
| Support ticket unresolved >48h | Escalation + proactive status update |
|
||||
| Annual renewal in 30 days | Value recap email + renewal confirmation |
|
||||
|
||||
---
|
||||
|
||||
## Involuntary Churn: Payment Recovery
|
||||
|
||||
Failed payments cause 30-50% of all churn but are the most recoverable.
|
||||
|
||||
### The Dunning Stack
|
||||
|
||||
```
|
||||
Pre-dunning → Smart retry → Dunning emails → Grace period → Hard cancel
|
||||
```
|
||||
|
||||
### Pre-Dunning (Prevent Failures)
|
||||
|
||||
- **Card expiry alerts**: Email 30, 15, and 7 days before card expires
|
||||
- **Backup payment method**: Prompt for a second payment method at signup
|
||||
- **Card updater services**: Visa/Mastercard auto-update programs (reduces hard declines 30-50%)
|
||||
- **Pre-billing notification**: Email 3-5 days before charge for annual plans
|
||||
|
||||
### Smart Retry Logic
|
||||
|
||||
Not all failures are the same. Retry strategy by decline type:
|
||||
|
||||
| Decline Type | Examples | Retry Strategy |
|
||||
|-------------|----------|----------------|
|
||||
| Soft decline (temporary) | Insufficient funds, processor timeout | Retry 3-5 times over 7-10 days |
|
||||
| Hard decline (permanent) | Card stolen, account closed | Don't retry — ask for new card |
|
||||
| Authentication required | 3D Secure, SCA | Send customer to update payment |
|
||||
|
||||
**Retry timing best practices:**
|
||||
- Retry 1: 24 hours after failure
|
||||
- Retry 2: 3 days after failure
|
||||
- Retry 3: 5 days after failure
|
||||
- Retry 4: 7 days after failure (with dunning email escalation)
|
||||
- After 4 retries: Hard cancel with reactivation path
|
||||
|
||||
**Smart retry tip:** Retry on the day of the month the payment originally succeeded (if Day 1 worked before, retry on Day 1). Stripe Smart Retries handles this automatically.
|
||||
|
||||
### Dunning Email Sequence
|
||||
|
||||
| Email | Timing | Tone | Content |
|
||||
|-------|--------|------|---------|
|
||||
| 1 | Day 0 (failure) | Friendly alert | "Your payment didn't go through. Update your card." |
|
||||
| 2 | Day 3 | Helpful reminder | "Quick reminder — update your payment to keep access." |
|
||||
| 3 | Day 7 | Urgency | "Your account will be paused in 3 days. Update now." |
|
||||
| 4 | Day 10 | Final warning | "Last chance to keep your account active." |
|
||||
|
||||
**Dunning email best practices:**
|
||||
- Direct link to payment update page (no login required if possible)
|
||||
- Show what they'll lose (their data, their team's access)
|
||||
- Don't blame ("your payment failed" not "you failed to pay")
|
||||
- Include support contact for help
|
||||
- Plain text performs better than designed emails for dunning
|
||||
|
||||
### Recovery Benchmarks
|
||||
|
||||
| Metric | Poor | Average | Good |
|
||||
|--------|------|---------|------|
|
||||
| Soft decline recovery | <40% | 50-60% | 70%+ |
|
||||
| Hard decline recovery | <10% | 20-30% | 40%+ |
|
||||
| Overall payment recovery | <30% | 40-50% | 60%+ |
|
||||
| Pre-dunning prevention | None | 10-15% | 20-30% |
|
||||
|
||||
For the complete dunning playbook with provider-specific setup, see [references/dunning-playbook.md](references/dunning-playbook.md).
|
||||
|
||||
---
|
||||
|
||||
## Metrics & Measurement
|
||||
|
||||
### Key Churn Metrics
|
||||
|
||||
| Metric | Formula | Target |
|
||||
|--------|---------|--------|
|
||||
| Monthly churn rate | Churned customers / Start-of-month customers | <5% B2C, <2% B2B |
|
||||
| Revenue churn (net) | (Lost MRR - Expansion MRR) / Start MRR | Negative (net expansion) |
|
||||
| Cancel flow save rate | Saved / Total cancel sessions | 25-35% |
|
||||
| Offer acceptance rate | Accepted offers / Shown offers | 15-25% |
|
||||
| Pause reactivation rate | Reactivated / Total paused | 60-80% |
|
||||
| Dunning recovery rate | Recovered / Total failed payments | 50-60% |
|
||||
| Time to cancel | Days from first churn signal to cancel | Track trend |
|
||||
|
||||
### Cohort Analysis
|
||||
|
||||
Segment churn by:
|
||||
- **Acquisition channel** — Which channels bring stickier customers?
|
||||
- **Plan type** — Which plans churn most?
|
||||
- **Tenure** — When do most cancellations happen? (30, 60, 90 days?)
|
||||
- **Cancel reason** — Which reasons are growing?
|
||||
- **Save offer type** — Which offers work best for which segments?
|
||||
|
||||
### Cancel Flow A/B Tests
|
||||
|
||||
Test one variable at a time:
|
||||
|
||||
| Test | Hypothesis | Metric |
|
||||
|------|-----------|--------|
|
||||
| Discount % (20% vs 30%) | Higher discount saves more | Save rate, LTV impact |
|
||||
| Pause duration (1 vs 3 months) | Longer pause increases return rate | Reactivation rate |
|
||||
| Survey placement (before vs after offer) | Survey-first personalizes offers | Save rate |
|
||||
| Offer presentation (modal vs full page) | Full page gets more attention | Save rate |
|
||||
| Copy tone (empathetic vs direct) | Empathetic reduces friction | Save rate |
|
||||
|
||||
**How to run cancel flow experiments:** Use the **ab-test-setup** skill to design statistically rigorous tests. PostHog is a good fit for cancel flow experiments — its feature flags can split users into different flows server-side, and its funnel analytics track each step of the cancel flow (survey → offer → accept/decline → confirm). See the [PostHog integration guide](../../tools/integrations/posthog.md) for setup.
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- **No cancel flow at all** — Instant cancel leaves money on the table. Even a simple survey + one offer saves 10-15%
|
||||
- **Making cancellation hard to find** — Hidden cancel buttons breed resentment and bad reviews. Many jurisdictions require easy cancellation (FTC Click-to-Cancel rule)
|
||||
- **Same offer for every reason** — A blanket discount doesn't address "missing feature" or "not using it"
|
||||
- **Discounts too deep** — 50%+ discounts train customers to cancel-and-return for deals
|
||||
- **Ignoring involuntary churn** — Often 30-50% of total churn and the easiest to fix
|
||||
- **No dunning emails** — Letting payment failures silently cancel accounts
|
||||
- **Guilt-trip copy** — "Are you sure you want to abandon us?" damages brand trust
|
||||
- **Not tracking save offer LTV** — A "saved" customer who churns 30 days later wasn't really saved
|
||||
- **Pausing too long** — Pauses beyond 3 months rarely reactivate. Set limits.
|
||||
- **No post-cancel path** — Make reactivation easy and trigger win-back emails, because some churned users will want to come back
|
||||
|
||||
---
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
For implementation, see the [tools registry](../../tools/REGISTRY.md).
|
||||
|
||||
### Retention Platforms
|
||||
|
||||
| Tool | Best For | Key Feature |
|
||||
|------|----------|-------------|
|
||||
| **Churnkey** | Full cancel flow + dunning | AI-powered adaptive offers, 34% avg save rate |
|
||||
| **ProsperStack** | Cancel flows with analytics | Advanced rules engine, Stripe/Chargebee integration |
|
||||
| **Raaft** | Simple cancel flow builder | Easy setup, good for early-stage |
|
||||
| **Chargebee Retention** | Chargebee customers | Native integration, was Brightback |
|
||||
|
||||
### Billing Providers (Dunning)
|
||||
|
||||
| Provider | Smart Retries | Dunning Emails | Card Updater |
|
||||
|----------|:------------:|:--------------:|:------------:|
|
||||
| **Stripe** | Built-in (Smart Retries) | Built-in | Automatic |
|
||||
| **Chargebee** | Built-in | Built-in | Via gateway |
|
||||
| **Paddle** | Built-in | Built-in | Managed |
|
||||
| **Recurly** | Built-in | Built-in | Built-in |
|
||||
| **Braintree** | Manual config | Manual | Via gateway |
|
||||
|
||||
### Related CLI Tools
|
||||
|
||||
| Tool | Use For |
|
||||
|------|---------|
|
||||
| `stripe` | Subscription management, dunning config, payment retries |
|
||||
| `customer-io` | Dunning email sequences, retention campaigns |
|
||||
| `posthog` | Cancel flow A/B tests via feature flags, funnel analytics |
|
||||
| `mixpanel` / `ga4` | Usage tracking, churn signal analysis |
|
||||
| `segment` | Event routing for health scoring |
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **email-sequence**: For win-back email sequences after cancellation
|
||||
- **paywall-upgrade-cro**: For in-app upgrade moments and trial expiration
|
||||
- **pricing-strategy**: For plan structure and annual discount strategy
|
||||
- **onboarding-cro**: For activation to prevent early churn
|
||||
- **analytics-tracking**: For setting up churn signal events
|
||||
- **ab-test-setup**: For testing cancel flow variations with statistical rigor
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"skill_name": "churn-prevention",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Our SaaS product has a 7% monthly churn rate and we need to bring it down. We're a $49/month project management tool with about 2,000 paying customers. Can you help us design a churn prevention strategy?",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should address both voluntary and involuntary churn. Should design a cancel flow following the framework: trigger → exit survey → dynamic save offer → confirmation → post-cancel nurture. Should include the 7 exit survey categories and recommend dynamic save offers mapped to each cancellation reason. Should address dunning for involuntary churn (pre-dunning, smart retry, email sequence, grace period). Should recommend a health score model. Should provide prioritized implementation plan.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Addresses both voluntary and involuntary churn",
|
||||
"Designs cancel flow with proper stages",
|
||||
"Includes exit survey with multiple categories",
|
||||
"Maps save offers to cancellation reasons",
|
||||
"Addresses dunning stack for payment recovery",
|
||||
"Recommends health score model",
|
||||
"Provides prioritized implementation plan"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "We keep losing customers because their credit cards expire. About 15% of our churn is from failed payments. How do we fix this?",
|
||||
"expected_output": "Should identify this as involuntary churn / payment recovery. Should apply the dunning stack framework: pre-dunning (card expiration reminders before failure), smart retry (retry logic based on failure reason), dunning email sequence (escalating urgency), grace period, and eventual cancellation. Should provide specific timing for each stage. Should recommend payment recovery tools and strategies (card updater services, backup payment methods). Should include recovery rate benchmarks.",
|
||||
"assertions": [
|
||||
"Identifies as involuntary churn / payment recovery",
|
||||
"Applies dunning stack framework",
|
||||
"Includes pre-dunning card expiration reminders",
|
||||
"Includes smart retry logic",
|
||||
"Provides dunning email sequence with escalating urgency",
|
||||
"Recommends grace period before cancellation",
|
||||
"Mentions card updater services or backup payment methods",
|
||||
"Includes recovery benchmarks"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "what should we show users when they click the cancel button? right now they just go straight to cancellation with no attempt to save them",
|
||||
"expected_output": "Should trigger on casual phrasing. Should design the cancel flow: cancel button → exit survey → dynamic save offer → confirmation → post-cancel. Should detail the exit survey categories (too expensive, missing feature, switched to competitor, not using enough, technical issues, bad support, other). Should provide dynamic save offers matched to each reason (e.g., too expensive → discount offer, missing feature → roadmap update, not using enough → onboarding help). Should include copy recommendations for each screen. Should warn against dark patterns (making it impossible to cancel).",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Designs multi-step cancel flow",
|
||||
"Includes exit survey with 7 categories",
|
||||
"Provides dynamic save offers mapped to reasons",
|
||||
"Includes copy recommendations",
|
||||
"Warns against dark patterns",
|
||||
"Includes confirmation and post-cancel steps"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "How do we identify which customers are at risk of churning before they actually cancel? We want to be proactive.",
|
||||
"expected_output": "Should apply the health score model framework. Should define health score components: product usage signals (login frequency, feature adoption, key action completion), engagement signals (support tickets, NPS responses, email engagement), and account signals (contract type, company growth, stakeholder changes). Should recommend scoring methodology (0-100 scale). Should define risk tiers and recommended interventions for each tier. Should suggest data sources and implementation approach.",
|
||||
"assertions": [
|
||||
"Applies health score model framework",
|
||||
"Defines usage-based health signals",
|
||||
"Defines engagement-based health signals",
|
||||
"Defines account-based health signals",
|
||||
"Recommends scoring methodology",
|
||||
"Defines risk tiers with interventions",
|
||||
"Suggests data sources and implementation"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "Our exit survey shows that 40% of cancellations say 'too expensive' as the reason. What save offers should we try?",
|
||||
"expected_output": "Should reference the dynamic save offers mapped to the 'too expensive' reason. Should suggest multiple offer types: temporary discount, downgrade to cheaper plan, annual billing discount, pause instead of cancel, extended trial of current plan. Should recommend testing different offers to find what works best. Should also dig deeper — 'too expensive' often masks other issues (not seeing value, not using enough features). Should suggest follow-up questions in the exit survey to get more specific.",
|
||||
"assertions": [
|
||||
"References save offers for 'too expensive' reason",
|
||||
"Suggests multiple offer types (discount, downgrade, pause)",
|
||||
"Recommends testing different offers",
|
||||
"Notes that 'too expensive' often masks other issues",
|
||||
"Suggests deeper follow-up questions",
|
||||
"Provides specific save offer copy or structure"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "We want to set up a win-back email sequence for customers who already cancelled. Can you help write those emails?",
|
||||
"expected_output": "Should recognize this overlaps with email sequence work. Should defer to or cross-reference the email-sequence skill for writing the actual email sequence. May provide churn-specific context (timing post-cancel, re-engagement hooks, win-back offer strategy) but should make clear that email-sequence is the right skill for designing and writing the full email sequence.",
|
||||
"assertions": [
|
||||
"Recognizes overlap with email sequence work",
|
||||
"References or defers to email-sequence skill",
|
||||
"May provide churn-specific context for the sequence",
|
||||
"Does not attempt to write a full email sequence"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,316 @@
|
||||
# Cancel Flow Patterns
|
||||
|
||||
Detailed cancel flow patterns by business type, billing provider, and industry.
|
||||
|
||||
---
|
||||
|
||||
## Cancel Flow by Business Type
|
||||
|
||||
### B2C / Self-Serve SaaS
|
||||
|
||||
High volume, low touch. The flow must work without human intervention.
|
||||
|
||||
**Flow structure:**
|
||||
```
|
||||
Cancel button → Exit survey (1 question) → Dynamic offer → Confirm → Post-cancel
|
||||
```
|
||||
|
||||
**Characteristics:**
|
||||
- Fully automated, no human in the loop
|
||||
- Quick — 2-3 screens maximum
|
||||
- One offer + one fallback, not a menu of options
|
||||
- Mobile-optimized (significant cancellations on mobile)
|
||||
- Clear "continue cancelling" at every step
|
||||
|
||||
**Typical save rate:** 20-30%
|
||||
|
||||
**Example flow for a $29/mo productivity app:**
|
||||
1. "What's the main reason?" → 6 options
|
||||
2. Selected "Too expensive" → "Get 25% off for 3 months (save $21.75)"
|
||||
3. Declined → "Or switch to our Starter plan at $12/mo"
|
||||
4. Declined → "We're sorry to see you go. Your access continues until [date]."
|
||||
|
||||
---
|
||||
|
||||
### B2B / Team Plans
|
||||
|
||||
Lower volume, higher stakes. Personal outreach is worth the cost.
|
||||
|
||||
**Flow structure:**
|
||||
```
|
||||
Cancel button → Exit survey → Offer (or route to CS) → Confirm → Post-cancel
|
||||
```
|
||||
|
||||
**Characteristics:**
|
||||
- Route accounts above MRR threshold to customer success
|
||||
- Show team impact ("Your 8 team members will lose access")
|
||||
- Offer admin-to-admin call for enterprise accounts
|
||||
- Longer consideration — allow "schedule a call" as a save option
|
||||
- Require admin/owner role to cancel (not any team member)
|
||||
|
||||
**Typical save rate:** 30-45% (higher because of personal touch)
|
||||
|
||||
**MRR-based routing:**
|
||||
|
||||
| Account MRR | Cancel Flow |
|
||||
|-------------|-------------|
|
||||
| <$100/mo | Automated flow with offers |
|
||||
| $100-$500/mo | Automated + flag for CS follow-up |
|
||||
| $500-$2,000/mo | Route to CS before cancel completes |
|
||||
| $2,000+/mo | Block self-serve cancel, require CS call |
|
||||
|
||||
---
|
||||
|
||||
### Freemium / Free-to-Paid
|
||||
|
||||
Users cancelling paid to return to free tier. Different psychology — they're not leaving, they're downgrading.
|
||||
|
||||
**Flow structure:**
|
||||
```
|
||||
Cancel button → "Switch to Free?" prompt → Exit survey (if still cancelling) → Offer → Confirm
|
||||
```
|
||||
|
||||
**Characteristics:**
|
||||
- Lead with the free tier as the first option (not a save offer)
|
||||
- Show what they keep on free vs. what they lose
|
||||
- The "save" is keeping them on free, not losing them entirely
|
||||
- Track free-tier users for future re-upgrade campaigns
|
||||
|
||||
---
|
||||
|
||||
## Cancel Flow by Billing Interval
|
||||
|
||||
### Monthly Subscribers
|
||||
|
||||
- More price-sensitive, shorter commitment
|
||||
- Discount offers work well (20-30% for 2-3 months)
|
||||
- Pause is effective (1-2 months)
|
||||
- Suggest annual plan at a discount as an alternative
|
||||
|
||||
**Offer priority:**
|
||||
1. Discount (if reason = price)
|
||||
2. Pause (if reason = not using / temporary)
|
||||
3. Annual plan switch (if engaged but price-sensitive)
|
||||
|
||||
### Annual Subscribers
|
||||
|
||||
- Higher commitment, often cancelling for stronger reasons
|
||||
- Prorate refund expectations matter
|
||||
- Longer save window (they've already paid)
|
||||
- Personal outreach more justified (higher LTV at stake)
|
||||
|
||||
**Offer priority:**
|
||||
1. Pause remainder of term (if temporary)
|
||||
2. Plan adjustment + credit for next renewal
|
||||
3. Personal outreach from CS
|
||||
4. Partial refund + downgrade (better than full refund + cancel)
|
||||
|
||||
**Refund handling:**
|
||||
- Offer prorated refund if significant time remaining
|
||||
- "Pause until renewal" if less than 3 months left
|
||||
- Be generous — bad refund experiences create vocal detractors
|
||||
|
||||
---
|
||||
|
||||
## Save Offer Patterns
|
||||
|
||||
### The Discount Ladder
|
||||
|
||||
Don't lead with your biggest discount. Escalate:
|
||||
|
||||
```
|
||||
Cancel click → 15% off → Still cancelling → 25% off → Still cancelling → Let them go
|
||||
```
|
||||
|
||||
**Rules:**
|
||||
- Maximum 2 discount offers per cancel session
|
||||
- Never exceed 30% (higher trains cancel-for-discount behavior)
|
||||
- Time-limit discounts (2-3 months, then full price resumes)
|
||||
- Track discount accepters — if they cancel again at full price, don't re-offer
|
||||
|
||||
### The Pause Playbook
|
||||
|
||||
Pause is often better than a discount because it doesn't devalue your product.
|
||||
|
||||
**Implementation:**
|
||||
|
||||
| Setting | Recommendation |
|
||||
|---------|---------------|
|
||||
| Pause duration options | 1 month, 2 months, 3 months |
|
||||
| Default selection | 1 month (shortest) |
|
||||
| Maximum pause | 3 months (longer pauses rarely return) |
|
||||
| During pause | Keep data, remove access |
|
||||
| Reactivation | Auto-reactivate with 7-day advance email |
|
||||
| Repeat pauses | Allow 1 pause per 12-month period |
|
||||
|
||||
**Pause reactivation sequence:**
|
||||
- Day -7: "Your pause ends in 7 days. We've been busy — here's what's new."
|
||||
- Day -1: "Welcome back tomorrow! Here's what's waiting for you."
|
||||
- Day 0: "You're back! Here's a quick tour of what's new."
|
||||
|
||||
### The Downgrade Path
|
||||
|
||||
For multi-plan products, downgrade is the strongest save:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Before you go, what about right-sizing │
|
||||
│ your plan? │
|
||||
│ │
|
||||
│ Current: Pro ($49/mo) │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────┐ │
|
||||
│ │ Switch to Starter ($19/mo) │ │
|
||||
│ │ │ │
|
||||
│ │ ✓ Keep: Projects, integrations │ │
|
||||
│ │ ✗ Lose: Advanced analytics, │ │
|
||||
│ │ team features │ │
|
||||
│ │ │ │
|
||||
│ │ [Switch to Starter] │ │
|
||||
│ └─────────────────────────────────┘ │
|
||||
│ │
|
||||
│ [No thanks, continue cancelling] │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Downgrade best practices:**
|
||||
- Show exactly what they keep and what they lose
|
||||
- Use checkmarks and X marks for scanability
|
||||
- Preserve their data even on the lower plan
|
||||
- If they downgrade, don't show upgrade prompts for at least 30 days
|
||||
|
||||
### The Competitor Switch Handler
|
||||
|
||||
When the cancel reason is "switching to competitor":
|
||||
|
||||
1. **Ask which competitor** (optional, don't force it)
|
||||
2. **Show a comparison** if you have one (see competitor-alternatives skill)
|
||||
3. **Offer a migration credit** ("We'll match their price for 3 months")
|
||||
4. **Request a feedback call** ("15 minutes to understand what we're missing")
|
||||
|
||||
This data is gold for product and marketing teams.
|
||||
|
||||
---
|
||||
|
||||
## Post-Cancel Experience
|
||||
|
||||
What happens after cancel matters for:
|
||||
- Win-back potential
|
||||
- Word of mouth
|
||||
- Review sentiment
|
||||
|
||||
### Confirmation Page
|
||||
|
||||
```
|
||||
Your subscription has been cancelled.
|
||||
|
||||
What happens next:
|
||||
• Your access continues until [billing period end date]
|
||||
• Your data will be preserved for 90 days
|
||||
• You can reactivate anytime from your account settings
|
||||
|
||||
[Reactivate My Account]
|
||||
|
||||
We'd love to have you back. We'll keep improving based on feedback
|
||||
from customers like you.
|
||||
```
|
||||
|
||||
### Post-Cancel Sequence
|
||||
|
||||
| Timing | Action |
|
||||
|--------|--------|
|
||||
| Immediately | Confirmation email with access end date |
|
||||
| Day 1 | (Nothing — don't be desperate) |
|
||||
| Day 7 | NPS/satisfaction survey about overall experience |
|
||||
| Day 30 | "What's new" email with recent improvements |
|
||||
| Day 60 | Address their specific cancel reason if resolved |
|
||||
| Day 90 | Final win-back with special offer |
|
||||
|
||||
**For detailed win-back email sequences**: See the email-sequence skill.
|
||||
|
||||
---
|
||||
|
||||
## Segmentation Rules
|
||||
|
||||
The most effective cancel flows use segmentation to show different offers to different customers.
|
||||
|
||||
### Segmentation Dimensions
|
||||
|
||||
| Dimension | Why It Matters |
|
||||
|-----------|---------------|
|
||||
| Plan / MRR | Higher-value customers get personal outreach |
|
||||
| Tenure | Long-term customers get more generous offers |
|
||||
| Usage level | High-usage customers get different messaging than dormant ones |
|
||||
| Billing interval | Monthly vs. annual need different approaches |
|
||||
| Previous saves | Don't re-offer the same discount to a repeat canceller |
|
||||
| Cancel reason | Drives which offer to show (core mapping) |
|
||||
|
||||
### Segment-Specific Flows
|
||||
|
||||
**New customer (< 30 days):**
|
||||
- They haven't activated. The save is onboarding, not discounts.
|
||||
- Offer: Free onboarding call, setup help, extended trial
|
||||
- Ask: "What were you hoping to accomplish?" (learn what's missing)
|
||||
|
||||
**Engaged customer cancelling on price:**
|
||||
- They love the product but can't justify the cost.
|
||||
- Offer: Discount, annual plan switch, downgrade
|
||||
- High save potential
|
||||
|
||||
**Dormant customer (no login 30+ days):**
|
||||
- They forgot about you. A discount won't bring them back.
|
||||
- Offer: Pause subscription, "what changed?" conversation
|
||||
- Low save potential — focus on learning why
|
||||
|
||||
**Power user switching to competitor:**
|
||||
- They're actively choosing something else.
|
||||
- Offer: Competitive match, feedback call, roadmap preview
|
||||
- Medium save potential — depends on reason
|
||||
|
||||
---
|
||||
|
||||
## Implementation Checklist
|
||||
|
||||
### Phase 1: Foundation (Week 1)
|
||||
- [ ] Add cancel flow (survey + 1 offer + confirmation)
|
||||
- [ ] Set up exit survey with 5-7 reason categories
|
||||
- [ ] Map one offer per reason (simple 1:1 mapping)
|
||||
- [ ] Track cancel reasons and save rate in analytics
|
||||
- [ ] Enable pre-dunning card expiry emails
|
||||
|
||||
### Phase 2: Optimization (Weeks 2-4)
|
||||
- [ ] Add fallback offers (primary + secondary per reason)
|
||||
- [ ] Implement pause subscription option
|
||||
- [ ] Set up dunning email sequence (4 emails over 10 days)
|
||||
- [ ] Enable smart retries (Stripe Smart Retries or equivalent)
|
||||
- [ ] Add MRR-based routing for high-value accounts
|
||||
|
||||
### Phase 3: Advanced (Month 2+)
|
||||
- [ ] Build health score from usage signals
|
||||
- [ ] Set up proactive intervention triggers
|
||||
- [ ] A/B test discount amounts and offer types
|
||||
- [ ] Segment flows by plan, tenure, and usage
|
||||
- [ ] Post-cancel win-back sequence (coordinate with email-sequence skill)
|
||||
- [ ] Cohort analysis: churn by channel, plan, tenure
|
||||
|
||||
---
|
||||
|
||||
## Compliance Notes
|
||||
|
||||
### FTC Click-to-Cancel Rule (US)
|
||||
- Cancellation must be as easy as signup
|
||||
- Cannot require a phone call to cancel if signup was online
|
||||
- Cannot add excessive steps to discourage cancellation
|
||||
- Save offers are allowed but "continue cancelling" must be clear
|
||||
|
||||
### GDPR / Data Retention (EU)
|
||||
- Inform users about data retention period post-cancel
|
||||
- Offer data export before account deletion
|
||||
- Honor deletion requests within 30 days
|
||||
- Don't use post-cancel data for marketing without consent
|
||||
|
||||
### General Best Practices
|
||||
- Always show a clear path to complete cancellation
|
||||
- Never hide the cancel button (dark pattern)
|
||||
- Process cancellation even if save flow has errors
|
||||
- Confirm cancellation with email receipt
|
||||
@@ -0,0 +1,408 @@
|
||||
# Dunning Playbook
|
||||
|
||||
Complete guide to recovering failed payments and reducing involuntary churn.
|
||||
|
||||
---
|
||||
|
||||
## Why Dunning Matters
|
||||
|
||||
- Failed payments cause 30-50% of all subscription churn
|
||||
- Most failed payments are recoverable with the right strategy
|
||||
- Subscription businesses lose an estimated $129 billion annually to involuntary churn
|
||||
- Effective dunning recovers 50-60% of failed payments
|
||||
|
||||
---
|
||||
|
||||
## The Dunning Timeline
|
||||
|
||||
```
|
||||
Day -30 to -7: Pre-dunning (prevent failures)
|
||||
Day 0: Payment fails → Smart retry #1 + Email #1
|
||||
Day 1-3: Smart retry #2 + Email #2
|
||||
Day 3-5: Smart retry #3
|
||||
Day 5-7: Smart retry #4 + Email #3
|
||||
Day 7-10: Final retry + Email #4 (final warning)
|
||||
Day 10-14: Grace period ends → Account paused/cancelled
|
||||
Day 14+: Win-back sequence begins
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pre-Dunning: Prevent Failures Before They Happen
|
||||
|
||||
### Card Expiry Management
|
||||
|
||||
| Timing | Action |
|
||||
|--------|--------|
|
||||
| 30 days before expiry | Email: "Your card ending in 4242 expires next month" |
|
||||
| 15 days before expiry | Email: "Update your payment method to avoid interruption" |
|
||||
| 7 days before expiry | Email: "Your card expires in 7 days — update now" |
|
||||
| 3 days before expiry | In-app banner: "Payment method expiring soon" |
|
||||
|
||||
**Email template — Card expiring:**
|
||||
```
|
||||
Subject: Your card ending in 4242 expires soon
|
||||
|
||||
Hi [Name],
|
||||
|
||||
The card on file for your [Product] subscription expires on [date].
|
||||
|
||||
Update your payment method now to avoid any interruption:
|
||||
|
||||
[Update Payment Method →]
|
||||
|
||||
This takes less than 30 seconds.
|
||||
|
||||
— [Product] Team
|
||||
```
|
||||
|
||||
### Card Updater Services
|
||||
|
||||
Major card networks offer automatic card update programs:
|
||||
|
||||
| Service | Network | What It Does |
|
||||
|---------|---------|--------------|
|
||||
| Visa Account Updater (VAU) | Visa | Auto-updates stored card numbers and expiry dates |
|
||||
| Mastercard Automatic Billing Updater (ABU) | Mastercard | Same for Mastercard |
|
||||
| Amex Cardrefresher | American Express | Same for Amex |
|
||||
|
||||
**Impact:** Reduces hard declines from expired/replaced cards by 30-50%.
|
||||
|
||||
**How to enable:**
|
||||
- **Stripe**: Automatic — enabled by default
|
||||
- **Chargebee**: Enabled through gateway settings
|
||||
- **Recurly**: Built-in, enabled by default
|
||||
- **Braintree**: Contact processor to enable
|
||||
|
||||
### Backup Payment Methods
|
||||
|
||||
Prompt for a second payment method:
|
||||
- During signup: "Add a backup payment method" (low conversion)
|
||||
- After first successful payment: "Protect your account with a backup card" (better timing)
|
||||
- After a failed payment is recovered: "Add a backup to prevent future interruptions" (best timing — they felt the pain)
|
||||
|
||||
### Pre-Billing Notifications
|
||||
|
||||
For annual plans or high-value subscriptions:
|
||||
- Email 7 days before renewal with amount and date
|
||||
- Include link to update payment method
|
||||
- Show what's included in the renewal
|
||||
- Required by some regulations for auto-renewals
|
||||
|
||||
---
|
||||
|
||||
## Smart Retry Strategy
|
||||
|
||||
### Decline Type Classification
|
||||
|
||||
| Code | Type | Meaning | Retry? |
|
||||
|------|------|---------|--------|
|
||||
| `insufficient_funds` | Soft | Temporarily low balance | Yes — retry in 2-3 days |
|
||||
| `card_declined` (generic) | Soft | Various temporary reasons | Yes — retry 3-4 times |
|
||||
| `processing_error` | Soft | Gateway/network issue | Yes — retry within 24h |
|
||||
| `expired_card` | Hard | Card is expired | No — request new card |
|
||||
| `stolen_card` | Hard | Card reported stolen | No — request new card |
|
||||
| `do_not_honor` | Soft/Hard | Bank refused (ambiguous) | Try once more, then ask for new card |
|
||||
| `authentication_required` | Auth | SCA/3DS needed | Send customer to authenticate |
|
||||
|
||||
### Retry Schedule by Provider
|
||||
|
||||
**Stripe (Smart Retries — recommended):**
|
||||
- Enable "Smart Retries" in Stripe Dashboard → Billing → Settings
|
||||
- Stripe's ML model picks optimal retry timing based on billions of transactions
|
||||
- Typically 4-8 retry attempts over 3-4 weeks
|
||||
- Recovers ~15% more than fixed-schedule retries
|
||||
|
||||
**Manual retry schedule (if no smart retries):**
|
||||
|
||||
| Retry | Timing | Best Day/Time |
|
||||
|-------|--------|--------------|
|
||||
| 1 | Day 1 (24h after failure) | Morning, same day of week as original |
|
||||
| 2 | Day 3 | Try a different time of day |
|
||||
| 3 | Day 5 | After typical payday (1st, 15th) |
|
||||
| 4 | Day 7 | Morning of the next business day |
|
||||
| 5 (final) | Day 10 | Last attempt before grace period ends |
|
||||
|
||||
**Retry timing insights:**
|
||||
- Retry on the same day of month the original payment succeeded
|
||||
- Retry after common paydays (1st and 15th of the month)
|
||||
- Avoid retrying on weekends (lower approval rates)
|
||||
- Morning retries (8-10am local time) perform slightly better
|
||||
|
||||
---
|
||||
|
||||
## Dunning Email Sequence
|
||||
|
||||
### Email 1: Payment Failed (Day 0)
|
||||
|
||||
**Tone:** Friendly, matter-of-fact. No alarm.
|
||||
|
||||
```
|
||||
Subject: Action needed — your payment didn't go through
|
||||
|
||||
Hi [Name],
|
||||
|
||||
We tried to charge your [card type] ending in [last 4] for your
|
||||
[Product] subscription ($[amount]), but it didn't go through.
|
||||
|
||||
This happens sometimes — usually a quick card update fixes it.
|
||||
|
||||
[Update Payment Method →]
|
||||
|
||||
Your access isn't affected yet. We'll retry automatically, but
|
||||
updating your card is the fastest fix.
|
||||
|
||||
Need help? Just reply to this email.
|
||||
|
||||
— [Product] Team
|
||||
```
|
||||
|
||||
### Email 2: Reminder (Day 3)
|
||||
|
||||
**Tone:** Helpful, slightly more urgent.
|
||||
|
||||
```
|
||||
Subject: Quick reminder — update your payment for [Product]
|
||||
|
||||
Hi [Name],
|
||||
|
||||
Just a heads-up — we still haven't been able to process your
|
||||
$[amount] payment for [Product].
|
||||
|
||||
[Update Payment Method →]
|
||||
|
||||
Takes less than 30 seconds. Your [data/projects/team access]
|
||||
is safe, but we'll need a valid payment method to keep your
|
||||
account active.
|
||||
|
||||
Questions? Reply here and we'll help.
|
||||
|
||||
— [Product] Team
|
||||
```
|
||||
|
||||
### Email 3: Urgency (Day 7)
|
||||
|
||||
**Tone:** Direct, clear consequences.
|
||||
|
||||
```
|
||||
Subject: Your [Product] account will be paused in 3 days
|
||||
|
||||
Hi [Name],
|
||||
|
||||
We've tried to process your payment several times, but your
|
||||
[card type] ending in [last 4] keeps getting declined.
|
||||
|
||||
If we don't receive payment by [date], your account will be
|
||||
paused and you'll lose access to:
|
||||
|
||||
• [Key feature/data they use]
|
||||
• [Their projects/workspace]
|
||||
• [Team access for X members]
|
||||
|
||||
[Update Payment Method Now →]
|
||||
|
||||
Your data won't be deleted — you can reactivate anytime by
|
||||
updating your payment method.
|
||||
|
||||
— [Product] Team
|
||||
```
|
||||
|
||||
### Email 4: Final Warning (Day 10)
|
||||
|
||||
**Tone:** Final, clear, no guilt.
|
||||
|
||||
```
|
||||
Subject: Last chance to keep your [Product] account active
|
||||
|
||||
Hi [Name],
|
||||
|
||||
This is our last reminder. Your payment of $[amount] is past
|
||||
due, and your account will be paused tomorrow ([date]).
|
||||
|
||||
[Update Payment Method →]
|
||||
|
||||
After pausing:
|
||||
• Your data is saved for [90 days]
|
||||
• You can reactivate anytime
|
||||
• Just update your card to restore access
|
||||
|
||||
If you intended to cancel, no action needed — your account
|
||||
will be paused automatically.
|
||||
|
||||
— [Product] Team
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Grace Period Management
|
||||
|
||||
### What Happens During Grace Period
|
||||
|
||||
| Setting | Recommendation |
|
||||
|---------|---------------|
|
||||
| Duration | 7-14 days after final retry |
|
||||
| Access | Degraded (read-only) or full access |
|
||||
| Visibility | In-app banner: "Payment past due — update to continue" |
|
||||
| Retry | Continue background retries during grace |
|
||||
| Communication | Dunning emails continue |
|
||||
|
||||
### Access Degradation Options
|
||||
|
||||
**Option A: Full access during grace (recommended for B2B)**
|
||||
- Lower friction, customer feels respected
|
||||
- Higher recovery rate (they still see value)
|
||||
- Risk: some customers exploit the grace period
|
||||
|
||||
**Option B: Read-only access (recommended for B2C)**
|
||||
- Can view but not create/edit
|
||||
- Creates urgency without data loss fear
|
||||
- Clear message: "Update payment to resume full access"
|
||||
|
||||
**Option C: Immediate lockout (not recommended)**
|
||||
- Aggressive, damages relationship
|
||||
- Lower recovery rate
|
||||
- Only appropriate for very low-cost plans
|
||||
|
||||
### Post-Grace Period
|
||||
|
||||
| Timing | Action |
|
||||
|--------|--------|
|
||||
| Grace period ends | Pause account (not delete) |
|
||||
| Day 1 post-pause | "Your account has been paused" email |
|
||||
| Day 7 post-pause | "Your data is still here" reminder |
|
||||
| Day 30 post-pause | Win-back attempt with new offer |
|
||||
| Day 60 post-pause | Final win-back |
|
||||
| Day 90 post-pause | Data deletion warning (if applicable) |
|
||||
|
||||
---
|
||||
|
||||
## Provider-Specific Setup
|
||||
|
||||
### Stripe
|
||||
|
||||
**Enable Smart Retries:**
|
||||
1. Dashboard → Settings → Billing → Subscriptions and emails
|
||||
2. Enable "Smart Retries" under retry rules
|
||||
3. Set failed payment emails in Dashboard → Settings → Emails
|
||||
|
||||
**Custom retry rules (if not using Smart Retries):**
|
||||
```
|
||||
Retry 1: 3 days after failure
|
||||
Retry 2: 5 days after failure
|
||||
Retry 3: 7 days after failure
|
||||
Final: Mark subscription as unpaid after last retry
|
||||
```
|
||||
|
||||
**Webhook events to handle:**
|
||||
- `invoice.payment_failed` — trigger dunning
|
||||
- `invoice.paid` — cancel dunning, restore access
|
||||
- `customer.subscription.updated` — status changes
|
||||
- `customer.subscription.deleted` — final cancellation
|
||||
|
||||
### Chargebee
|
||||
|
||||
**Built-in dunning:**
|
||||
1. Settings → Configure Chargebee → Retry Settings
|
||||
2. Configure retry attempts and intervals
|
||||
3. Settings → Configure Chargebee → Email Notifications → Dunning
|
||||
|
||||
**Dunning options:**
|
||||
- Automatic retries with configurable schedule
|
||||
- Built-in dunning emails (customizable templates)
|
||||
- Grace period configuration per plan
|
||||
|
||||
### Paddle
|
||||
|
||||
**Managed dunning:**
|
||||
- Paddle handles retries and dunning automatically
|
||||
- Limited customization (Paddle manages the relationship)
|
||||
- Webhook: `subscription.payment_failed`, `subscription.cancelled`
|
||||
- Best for hands-off approach
|
||||
|
||||
### Recurly
|
||||
|
||||
**Revenue Recovery:**
|
||||
1. Configuration → Dunning Management
|
||||
2. Set retry schedule per plan
|
||||
3. Configure grace period and final action (pause vs cancel)
|
||||
|
||||
**Advanced features:**
|
||||
- Machine-learning retry optimization
|
||||
- Per-plan dunning schedules
|
||||
- Built-in Account Updater
|
||||
|
||||
---
|
||||
|
||||
## In-App Dunning
|
||||
|
||||
Don't rely on email alone. Show payment failures in the app:
|
||||
|
||||
### Banner Pattern
|
||||
```
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ ⚠ Your payment of $29 failed. Update your card to │
|
||||
│ avoid losing access. [Update Payment →] [Dismiss] │
|
||||
└──────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Rules:**
|
||||
- Show on every page load during dunning period
|
||||
- Allow dismiss (but show again next session)
|
||||
- Direct link to payment update (fewest clicks possible)
|
||||
- Don't block the product — let them continue using it
|
||||
|
||||
### Modal Pattern (for final warning)
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ │
|
||||
│ Your account will be paused │
|
||||
│ on [date] │
|
||||
│ │
|
||||
│ Update your payment method to │
|
||||
│ keep access to your [X] projects │
|
||||
│ and [Y] team members. │
|
||||
│ │
|
||||
│ [Update Payment Method] │
|
||||
│ [Remind Me Later] │
|
||||
│ │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Measuring Dunning Performance
|
||||
|
||||
### Key Metrics
|
||||
|
||||
| Metric | How to Calculate | Target |
|
||||
|--------|-----------------|--------|
|
||||
| Recovery rate | Recovered payments / Total failed | 50-60% |
|
||||
| Recovery rate by decline type | Recovered / Failed per type | Soft: 70%+, Hard: 40%+ |
|
||||
| Time to recovery | Days from failure to successful payment | <5 days |
|
||||
| Pre-dunning prevention rate | Prevented failures / Expected failures | 20-30% |
|
||||
| Dunning email open rate | Opens / Sent per email | 60%+ |
|
||||
| Dunning email click rate | Clicks / Opens per email | 30%+ |
|
||||
| Revenue recovered (monthly) | Sum of recovered payment amounts | Track trend |
|
||||
| Revenue lost to involuntary churn | Sum of failed + unrecovered amounts | Track trend |
|
||||
|
||||
### Benchmarking
|
||||
|
||||
**By company stage:**
|
||||
|
||||
| Stage | Typical Involuntary Churn | Target After Optimization |
|
||||
|-------|--------------------------|--------------------------|
|
||||
| Early (< $1M ARR) | 3-5% of MRR/month | 1-2% |
|
||||
| Growth ($1-10M ARR) | 2-4% of MRR/month | 0.5-1.5% |
|
||||
| Scale ($10M+ ARR) | 1-3% of MRR/month | 0.3-0.8% |
|
||||
|
||||
### ROI Calculation
|
||||
|
||||
```
|
||||
Monthly failed payment MRR: $10,000
|
||||
Current recovery rate: 30% ($3,000 recovered)
|
||||
Target recovery rate: 60% ($6,000 recovered)
|
||||
Monthly improvement: $3,000/month
|
||||
Annual improvement: $36,000/year
|
||||
Cost of dunning optimization: ~$200-500/month (tooling)
|
||||
ROI: 6-15x
|
||||
```
|
||||
@@ -0,0 +1,158 @@
|
||||
---
|
||||
name: cold-email
|
||||
description: Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions "cold outreach," "prospecting email," "outbound email," "email to leads," "reach out to prospects," "sales email," "follow-up email sequence," "nobody's replying to my emails," or "how do I write a cold email." Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see email-sequence. For sales collateral beyond emails, see sales-enablement.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Cold Email Writing
|
||||
|
||||
You are an expert cold email writer. Your goal is to write emails that sound like they came from a sharp, thoughtful human — not a sales machine following a template.
|
||||
|
||||
## Before Writing
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Understand the situation (ask if not provided):
|
||||
|
||||
1. **Who are you writing to?** — Role, company, why them specifically
|
||||
2. **What do you want?** — The outcome (meeting, reply, intro, demo)
|
||||
3. **What's the value?** — The specific problem you solve for people like them
|
||||
4. **What's your proof?** — A result, case study, or credibility signal
|
||||
5. **Any research signals?** — Funding, hiring, LinkedIn posts, company news, tech stack changes
|
||||
|
||||
Work with whatever the user gives you. If they have a strong signal and a clear value prop, that's enough to write. Don't block on missing inputs — use what you have and note what would make it stronger.
|
||||
|
||||
---
|
||||
|
||||
## Writing Principles
|
||||
|
||||
### Write like a peer, not a vendor
|
||||
|
||||
The email should read like it came from someone who understands their world — not someone trying to sell them something. Use contractions. Read it aloud. If it sounds like marketing copy, rewrite it.
|
||||
|
||||
### Every sentence must earn its place
|
||||
|
||||
Cold email is ruthlessly short. If a sentence doesn't move the reader toward replying, cut it. The best cold emails feel like they could have been shorter, not longer.
|
||||
|
||||
### Personalization must connect to the problem
|
||||
|
||||
If you remove the personalized opening and the email still makes sense, the personalization isn't working. The observation should naturally lead into why you're reaching out.
|
||||
|
||||
See [personalization.md](references/personalization.md) for the 4-level system and research signals.
|
||||
|
||||
### Lead with their world, not yours
|
||||
|
||||
The reader should see their own situation reflected back. "You/your" should dominate over "I/we." Don't open with who you are or what your company does.
|
||||
|
||||
### One ask, low friction
|
||||
|
||||
Interest-based CTAs ("Worth exploring?" / "Would this be useful?") beat meeting requests. One CTA per email. Make it easy to say yes with a one-line reply.
|
||||
|
||||
---
|
||||
|
||||
## Voice & Tone
|
||||
|
||||
**The target voice:** A smart colleague who noticed something relevant and is sharing it. Conversational but not sloppy. Confident but not pushy.
|
||||
|
||||
**Calibrate to the audience:**
|
||||
|
||||
- C-suite: ultra-brief, peer-level, understated
|
||||
- Mid-level: more specific value, slightly more detail
|
||||
- Technical: precise, no fluff, respect their intelligence
|
||||
|
||||
**What it should NOT sound like:**
|
||||
|
||||
- A template with fields swapped in
|
||||
- A pitch deck compressed into paragraph form
|
||||
- A LinkedIn DM from someone you've never met
|
||||
- An AI-generated email (avoid the telltale patterns: "I hope this email finds you well," "I came across your profile," "leverage," "synergy," "best-in-class")
|
||||
|
||||
---
|
||||
|
||||
## Structure
|
||||
|
||||
There's no single right structure. Choose a framework that fits the situation, or write freeform if the email flows naturally without one.
|
||||
|
||||
**Common shapes that work:**
|
||||
|
||||
- **Observation → Problem → Proof → Ask** — You noticed X, which usually means Y challenge. We helped Z with that. Interested?
|
||||
- **Question → Value → Ask** — Struggling with X? We do Y. Company Z saw [result]. Worth a look?
|
||||
- **Trigger → Insight → Ask** — Congrats on X. That usually creates Y challenge. We've helped similar companies with that. Curious?
|
||||
- **Story → Bridge → Ask** — [Similar company] had [problem]. They [solved it this way]. Relevant to you?
|
||||
|
||||
For the full catalog of frameworks with examples, see [frameworks.md](references/frameworks.md).
|
||||
|
||||
---
|
||||
|
||||
## Subject Lines
|
||||
|
||||
Short, boring, internal-looking. The subject line's only job is to get the email opened — not to sell.
|
||||
|
||||
- 2-4 words, lowercase, no punctuation tricks
|
||||
- Should look like it came from a colleague ("reply rates," "hiring ops," "Q2 forecast")
|
||||
- No product pitches, no urgency, no emojis, no prospect's first name
|
||||
|
||||
See [subject-lines.md](references/subject-lines.md) for the full data.
|
||||
|
||||
---
|
||||
|
||||
## Follow-Up Sequences
|
||||
|
||||
Each follow-up should add something new — a different angle, fresh proof, a useful resource. "Just checking in" gives the reader no reason to respond.
|
||||
|
||||
- 3-5 total emails, increasing gaps between them
|
||||
- Each email should stand alone (they may not have read the previous ones)
|
||||
- The breakup email is your last touch — honor it
|
||||
|
||||
See [follow-up-sequences.md](references/follow-up-sequences.md) for cadence, angle rotation, and breakup email templates.
|
||||
|
||||
---
|
||||
|
||||
## Quality Check
|
||||
|
||||
Before presenting, gut-check:
|
||||
|
||||
- Does it sound like a human wrote it? (Read it aloud)
|
||||
- Would YOU reply to this if you received it?
|
||||
- Does every sentence serve the reader, not the sender?
|
||||
- Is the personalization connected to the problem?
|
||||
- Is there one clear, low-friction ask?
|
||||
|
||||
---
|
||||
|
||||
## What to Avoid
|
||||
|
||||
- Opening with "I hope this email finds you well" or "My name is X and I work at Y"
|
||||
- Jargon: "synergy," "leverage," "circle back," "best-in-class," "leading provider"
|
||||
- Feature dumps — one proof point beats ten features
|
||||
- HTML, images, or multiple links
|
||||
- Fake "Re:" or "Fwd:" subject lines
|
||||
- Identical templates with only {{FirstName}} swapped
|
||||
- Asking for 30-minute calls in first touch
|
||||
- "Just checking in" follow-ups
|
||||
|
||||
---
|
||||
|
||||
## Data & Benchmarks
|
||||
|
||||
The references contain performance data if you need to make informed choices:
|
||||
|
||||
- [benchmarks.md](references/benchmarks.md) — Reply rates, conversion funnels, expert methods, common mistakes
|
||||
- [personalization.md](references/personalization.md) — 4-level personalization system, research signals
|
||||
- [subject-lines.md](references/subject-lines.md) — Subject line data and optimization
|
||||
- [follow-up-sequences.md](references/follow-up-sequences.md) — Cadence, angles, breakup emails
|
||||
- [frameworks.md](references/frameworks.md) — All copywriting frameworks with examples
|
||||
|
||||
Use this data to inform your writing — not as a checklist to satisfy.
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **copywriting**: For landing pages and web copy
|
||||
- **email-sequence**: For lifecycle/nurture email sequences (not cold outreach)
|
||||
- **social-content**: For LinkedIn and social posts
|
||||
- **product-marketing-context**: For establishing foundational positioning
|
||||
- **revops**: For lead scoring, routing, and pipeline management
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"skill_name": "cold-email",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Write a cold email to VP of Marketing at mid-size B2B SaaS companies. We sell a content analytics platform that shows which blog posts actually drive pipeline. Our main proof point: customers see 3x increase in content-attributed revenue within 90 days.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should write like a peer, not a vendor. Should use one of the structure frameworks (observation→problem→proof→ask or similar). Subject line should be 2-4 words, lowercase, internal-looking. Every sentence should earn its place. Personalization should connect to the prospect's problem, not just their name. Should use the 3x revenue proof point as social proof, not a feature claim. CTA should be low-friction (not 'book a demo'). Should provide 2-3 variations. Should include a quality check against the guidelines.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Writes like a peer, not a vendor",
|
||||
"Uses a structure framework from the skill",
|
||||
"Subject line is short, lowercase, internal-looking",
|
||||
"Every sentence earns its place (concise)",
|
||||
"Personalization connects to prospect's problem",
|
||||
"Uses proof point as social proof",
|
||||
"CTA is low-friction",
|
||||
"Provides 2-3 variations"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Help me write a cold email to CTOs at enterprise companies. I sell cybersecurity training. My current email has a 2% open rate and 0% reply rate.",
|
||||
"expected_output": "Should diagnose the current email's likely problems based on 2% open rate (subject line issue) and 0% reply rate (body/relevance issue). Should apply voice calibration for CTO audience (respect their time, technical credibility, executive-level language). Should provide a completely new email following structure frameworks. Subject line should be 2-4 words, look internal. Should adapt tone for enterprise CTOs — more formal than startup audience but still peer-like. Should provide the email plus analysis of why each element works.",
|
||||
"assertions": [
|
||||
"Diagnoses problems from the performance data",
|
||||
"Identifies subject line as likely open rate issue",
|
||||
"Applies voice calibration for CTO audience",
|
||||
"Subject line is short, lowercase, internal-looking",
|
||||
"Adapts tone for enterprise audience",
|
||||
"Uses structure framework from the skill",
|
||||
"Explains why each element works"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "write me a follow-up sequence. prospect didn't reply to my first email about our HR software. how many should I send and how far apart?",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the follow-up sequence guidance: 3-5 follow-ups recommended. Each follow-up should add something new (new angle, new proof point, new value) — not just 'bumping' or 'checking in.' Should provide timing recommendations between emails. Should provide actual follow-up email copy for each touch, with different angles. Should include a breakup email at the end. Should note that each follow-up should be shorter than the previous.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Recommends 3-5 follow-up emails",
|
||||
"Each follow-up adds something new",
|
||||
"Does not use 'just bumping' or 'checking in' language",
|
||||
"Provides timing between emails",
|
||||
"Provides actual copy for each follow-up",
|
||||
"Includes a breakup email",
|
||||
"Follow-ups get progressively shorter"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Review this cold email and tell me what's wrong: 'Dear Sir/Madam, I hope this email finds you well. I wanted to reach out to introduce our innovative cloud-based platform that leverages AI to streamline your business operations. We have helped over 500 companies transform their workflows. I would love to schedule a 30-minute call to discuss how we can help your organization. Best regards, John'",
|
||||
"expected_output": "Should apply the quality check framework. Should identify multiple problems: 'Dear Sir/Madam' (no personalization), 'I hope this email finds you well' (filler), 'innovative cloud-based platform' (jargon/buzzwords), 'leverages AI to streamline' (vague vendor language), 'transform their workflows' (means nothing), '30-minute call' (too much ask for cold email), entire email is about the sender not the prospect. Should rewrite following the principles: peer tone, observation→problem→proof→ask structure, every sentence earns its place, personalization connected to their problem, low-friction CTA.",
|
||||
"assertions": [
|
||||
"Identifies lack of personalization",
|
||||
"Identifies filler phrases",
|
||||
"Identifies jargon and buzzwords",
|
||||
"Identifies vendor language vs peer language",
|
||||
"Identifies CTA as too high-friction",
|
||||
"Notes email is sender-focused not prospect-focused",
|
||||
"Provides a rewritten version",
|
||||
"Rewrite follows cold email principles"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "What are the best subject lines for cold emails? I want to maximize open rates.",
|
||||
"expected_output": "Should apply the subject line guidelines: short (2-4 words), lowercase or sentence case, internal-looking (should look like it came from a colleague, not a vendor). Should provide examples following these principles. Should explain why these work (bypass promotional filters, trigger curiosity, don't look like marketing). Should warn against common bad subject lines (ALL CAPS, emojis, clickbait, long subjects). Should note that subject line gets them to open but body gets them to reply.",
|
||||
"assertions": [
|
||||
"Applies subject line guidelines (2-4 words, lowercase, internal-looking)",
|
||||
"Provides specific examples",
|
||||
"Explains why the format works",
|
||||
"Warns against common bad subject line patterns",
|
||||
"Notes distinction between open rate and reply rate"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Can you help me set up an automated email drip campaign for leads who download our whitepaper?",
|
||||
"expected_output": "Should recognize this is a lifecycle/nurture email sequence, not cold outreach. Should defer to or cross-reference the email-sequence skill, which handles drip campaigns, lead nurture sequences, and lifecycle emails. Cold email is specifically for unsolicited outbound outreach to prospects who haven't opted in. Should make this distinction clear.",
|
||||
"assertions": [
|
||||
"Recognizes this as lifecycle/nurture email, not cold outreach",
|
||||
"References or defers to email-sequence skill",
|
||||
"Explains the distinction between cold email and lifecycle email",
|
||||
"Does not attempt to design a nurture sequence using cold email patterns"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
# Benchmarks, Data & Expert Methods
|
||||
|
||||
## Core Performance Metrics (2024–2025)
|
||||
|
||||
| Metric | Average | Good | Excellent | Source |
|
||||
| -------------------------- | ------- | ------ | --------- | ------------------------ |
|
||||
| Open rate | 27.7% | 40–45% | 50%+ | Belkins, Snov.io |
|
||||
| Reply rate | 4–5.8% | 5–10% | 10–15% | Belkins, Reachoutly |
|
||||
| Reply rate (best-in-class) | — | — | 15–25%+ | Digital Bloom, Instantly |
|
||||
| Positive reply % | ~48% | 55–60% | 62–65% | Digital Bloom |
|
||||
| Meeting booking rate | 0.5–1% | 1–2% | 2.3%+ | Reachoutly |
|
||||
| Bounce rate | 7.5% | <4% | <2% | Belkins |
|
||||
|
||||
## Realistic Funnel Model
|
||||
|
||||
500 emails → 100 opens (20%) → 25 replies (5%) → 8 positive replies (30%) → 4 meetings (50%) → 1 client (25% close). ~**0.2% end-to-end conversion** for average performers.
|
||||
|
||||
## Performance Levers (ranked by impact)
|
||||
|
||||
1. **Hook type** — Timeline hooks outperform problem hooks by 3.4x in meetings
|
||||
2. **Personalization depth** — Up to 250% more replies
|
||||
3. **Brevity** — 25–75 words optimal, 83% more replies under 75 words
|
||||
4. **Targeting precision** — ≤50 contacts per campaign = 2.76x higher reply rates
|
||||
5. **Follow-up strategy** — First follow-up adds 49% more replies
|
||||
6. **Reading level** — 3rd–5th grade = 67% more replies
|
||||
7. **Send timing** — Thursday peaks at 6.87% reply rate
|
||||
|
||||
## Declining Effectiveness Trend
|
||||
|
||||
Reply rates dropped from 7–8% (2020–2022) to 4–5.8% (2024–2025), ~15% YoY decline. Drivers: inbox saturation (10+ cold emails/week, 20% say none relevant), stricter anti-spam (Google's threshold: 0.1% complaints), AI email flood (more volume, less quality signal). Writing craft matters more, not less — gap between average and excellent is widening.
|
||||
|
||||
## Response Rates by Seniority
|
||||
|
||||
- **Entry-level:** Highest engagement at 8% reply, 50% open
|
||||
- **C-level:** 23% more likely to respond than non-C-suite when they engage (6.4% vs 5.2%)
|
||||
- **CTOs/VP Tech:** 7.68% reply
|
||||
- **CEOs/Founders:** 7.63% reply
|
||||
- **Heads of Sales:** 6.60% (most targeted role, highest saturation)
|
||||
|
||||
## Industry Variation
|
||||
|
||||
**Highest responding:** Nonprofits (16.5%+), legal (10%), EdTech (7.8%), chemical (7.3%), manufacturing (6.1%).
|
||||
**Lowest responding:** SaaS (3.5%), financial services (3.4%), IT services (3.5%).
|
||||
|
||||
## Top 15 Mistakes (ranked by impact)
|
||||
|
||||
1. **Too long** — 70% of emails above 10th-grade level. Under 75 words = 83% more replies
|
||||
2. **Too self-focused** — "We are a leading..." signals sales pitch. Count I/We sentences
|
||||
3. **No clear value prop** — 71% of decision-makers ignore irrelevant emails
|
||||
4. **Generic templates** — {{FirstName}} isn't personalization. Recipients detect instantly
|
||||
5. **Feature dumping** — "Great reps lead with problems" (Lavender). One proof point beats ten features
|
||||
6. **False personalization** — "Loved your post!" without specifics is transparent
|
||||
7. **Asking too much too soon** — 30-min call in first email = "proposing on first date"
|
||||
8. **Pushy language** — "Act Now" stacking increases spam flagging by 67%
|
||||
9. **No CTA** — Without a clear next step, momentum dies
|
||||
10. **"Just checking in" follow-ups** — "I never heard back" = 12% drop in bookings
|
||||
11. **Wrong tone for audience** — Founder ≠ RevOps lead ≠ sales leader
|
||||
12. **Jargon/buzzwords** — "Leverage synergistic platform" → "We help you book more meetings"
|
||||
13. **Unsubstantiated claims** — "300% more leads" without proof triggers skepticism
|
||||
14. **Too many contacts per company** — 1–2 people = 7.8% reply; 10+ = 3.8%
|
||||
15. **Fake urgency** — Fake "Re:" / "Fwd:" / countdown timers destroy trust
|
||||
|
||||
## Cultural Calibration
|
||||
|
||||
| Factor | US | UK | Germany/DACH | Scandinavia |
|
||||
| ------------ | --------------- | ------------------------ | -------------------- | ----------------------- |
|
||||
| Tone | Direct, casual | Polite, professional | Precise, data-driven | Fact-based, egalitarian |
|
||||
| Length | Shorter, blunt | Longer, insight-led | Detail-oriented | Concise but substantive |
|
||||
| Social proof | Outcome numbers | Research-led credibility | Technical precision | Shared values |
|
||||
|
||||
North America: 4.1% response. Europe: 3.1%. Asia-Pacific: 2.8%. Shorter, more direct sequences work better in US. UK needs more insight/personality. GDPR affects European tone.
|
||||
|
||||
## Expert Quick Reference
|
||||
|
||||
| Expert | Core Method | Best For |
|
||||
| -------------- | --------------------------------------------------------------- | ----------------------------------------------- |
|
||||
| Alex Berman | 3C's: Compliment → Case Study → CTA | High-ticket B2B services, agencies |
|
||||
| Josh Braun | "Poke the Bear" — neutral questions exposing invisible problems | Empathy-driven consultative selling |
|
||||
| Kyle Coleman | Systematic research + AI personalization at scale | Bridging mass outreach and deep personalization |
|
||||
| Becc Holland | Psychographic personalization, Premise Buckets | Combining personalization with relevance |
|
||||
| Will Allred | Data-driven coaching, Mouse Trap, Vanilla Ice Cream | Any context; universal frameworks |
|
||||
| Justin Michael | 1–3 sentence hyper-brevity, quote their own words | High-velocity SDR teams at scale |
|
||||
| Sam Nelson | Agoge Sequence — Triple on Day 1 (email + LinkedIn + call) | Multi-channel, tiered personalization |
|
||||
@@ -0,0 +1,81 @@
|
||||
# Follow-Up Sequences
|
||||
|
||||
55% of replies come from follow-ups, not the initial email. Yet 48% of salespeople never follow up even once.
|
||||
|
||||
## How Many: 3–5 Total Emails
|
||||
|
||||
- Highest single-email reply rate: **8.4%** (Belkins).
|
||||
- 4–7 email campaigns achieve **27% reply rates** vs 9% for 1–3 emails (Woodpecker, 20M emails).
|
||||
- By 4th follow-up, response rates drop **55%** and spam complaints **triple**.
|
||||
- Resolution: longer sequences catch different timing windows. Cap at 4 follow-ups (5 total emails). Each must add genuinely new value.
|
||||
|
||||
## Optimal Cadence
|
||||
|
||||
Increase the gap between each touch:
|
||||
|
||||
| Touch | Day | Notes |
|
||||
| ------------- | ----- | ---------------------------------------------- |
|
||||
| Initial email | 0 | Maximum personalization investment |
|
||||
| Follow-up 1 | 3 | Waiting 3 days increases response by up to 31% |
|
||||
| Follow-up 2 | 7–8 | Different angle |
|
||||
| Follow-up 3 | 14 | New value piece |
|
||||
| Follow-up 4 | 21–28 | Breakup email |
|
||||
|
||||
**Best days:** Tuesday–Thursday (Thursday peaks at 6.87% reply rate).
|
||||
**Best times:** 9–11 AM or 1–3 PM in prospect's local time.
|
||||
**Avoid:** Monday mornings (inbox overload), Friday afternoons (checked out).
|
||||
|
||||
## Angle Rotation
|
||||
|
||||
Each follow-up must stand alone while building toward the goal. Never just "bump this up."
|
||||
|
||||
| Email | Angle | Purpose |
|
||||
| ----------- | ---------------------------------------------------------- | -------------------------- |
|
||||
| Initial | Personalized hook + core value prop + soft CTA | Introduce problem/solution |
|
||||
| Follow-up 1 | Different angle, new value piece (stat, insight, resource) | Show additional benefit |
|
||||
| Follow-up 2 | Social proof / case study from similar company | Build credibility |
|
||||
| Follow-up 3 | New insight, industry trend, or relevant resource | Demonstrate expertise |
|
||||
| Follow-up 4 | Breakup — acknowledge silence, leave door open | Trigger loss aversion |
|
||||
|
||||
Add only **one new value proposition per email** (SalesBread). This naturally forces different angles.
|
||||
|
||||
## The Breakup Email
|
||||
|
||||
Leverages loss aversion — removing pressure while creating scarcity through withdrawal. Close.com reports **10–15% response rates** from breakup emails with cold prospects.
|
||||
|
||||
**Structure:**
|
||||
|
||||
1. Acknowledge you've reached out multiple times
|
||||
2. Validate their potential lack of interest
|
||||
3. State this is your final email for now
|
||||
4. Leave the door open
|
||||
|
||||
**Example:**
|
||||
|
||||
> I haven't heard back, so I'll assume now isn't the right time. Before I close the loop: [1-sentence insight or resource]. If that changes things, feel free to reply. Otherwise, no hard feelings — good luck with [their goal].
|
||||
|
||||
**1-2-3 Format** (reduces friction to near zero):
|
||||
|
||||
> Since I haven't heard back, I'll keep it simple. Reply with a number:
|
||||
>
|
||||
> 1 — Interested, let's talk
|
||||
> 2 — Not now, check back in 3 months
|
||||
> 3 — Not interested, please stop
|
||||
|
||||
**Critical rule:** If you send a breakup email, honor it. Do not contact the prospect again.
|
||||
|
||||
## Phrases That Kill Response Rates
|
||||
|
||||
- "I never heard back" → **12% drop** in meeting booking rate (Gong)
|
||||
- "Just checking in" → Zero value, signals laziness
|
||||
- "Bumping this to the top of your inbox" → Presumptuous
|
||||
- "Did you see my last email?" → Guilt-tripping
|
||||
- "Following up on my previous message" → Generic, adds nothing
|
||||
|
||||
## CTA Adjustment by Seniority
|
||||
|
||||
**Executives/founders:** Ultra-low-effort, curiosity-driven. "Curious?" or "Worth 2 min?"
|
||||
|
||||
**Mid-level managers:** More specific value. "Want me to walk through how [Company] saved 15 hours/week?"
|
||||
|
||||
Higher in the org chart = less friction you can ask for.
|
||||
@@ -0,0 +1,90 @@
|
||||
# Cold Email Copywriting Frameworks
|
||||
|
||||
Frameworks beat templates — they teach thinking patterns, not copy-paste shortcuts.
|
||||
|
||||
## PAS — Problem, Agitate, Solution (default)
|
||||
|
||||
**Structure:** Identify pain → Amplify consequences → Present solution + soft CTA.
|
||||
**Best for:** Problem-aware but not solution-aware prospects. The workhorse framework.
|
||||
|
||||
> Most VP Sales at companies your size spend 5+ hours/week on manual CRM reporting. That's 250+ hours/year not spent coaching reps — and often means inaccurate forecasts reaching leadership. We built a tool that auto-generates CRM reports in real time. Teams like Datadog reduced reporting time by 80%. Would it make sense to see how?
|
||||
|
||||
## BAB — Before, After, Bridge
|
||||
|
||||
**Structure:** Current painful situation → Ideal future → Your product as the bridge.
|
||||
**Best for:** Transformation-driven offers with clear before/after. Emotional decision-makers.
|
||||
|
||||
> Right now, your team is likely spending hours manually sourcing leads — feast or famine each quarter. Imagine qualified leads arriving daily on autopilot, reps spending 100% of their time selling. That's what our platform does. Companies like HubSpot saw a 40% pipeline increase within 90 days. Can I show you how?
|
||||
|
||||
## QVC — Question, Value, CTA
|
||||
|
||||
**Structure:** Targeted pain question → Brief value → Direct next step.
|
||||
**Best for:** C-suite prospects who prefer brevity. Qualify interest immediately.
|
||||
|
||||
> Are your SDRs spending more time researching than selling? We help sales teams automate prospect research so reps focus on conversations. Clients see 3x more meetings per rep per week. Worth a 10-minute demo?
|
||||
|
||||
## AIDA — Attention, Interest, Desire, Action
|
||||
|
||||
**Structure:** Hook/stat → Address specific challenge → Social proof/outcome → Clear CTA.
|
||||
**Best for:** Data-driven prospects, high-ticket pitches with strong stats.
|
||||
|
||||
> Companies in pharma lose 30% of leads due to manual outreach. Given {{Company}}'s growth this quarter, pipeline velocity is likely top of mind. Customers like Pfizer use our platform to automate lead qualification — cutting time-to-contact by 60%. Worth a 15-minute call?
|
||||
|
||||
## PPP — Praise, Picture, Push
|
||||
|
||||
**Structure:** Genuine compliment → How things could be better → Gentle push to action.
|
||||
**Best for:** Senior prospects who respond to relationship-building. Requires genuine trigger.
|
||||
|
||||
> Your keynote on scaling SDR teams was spot-on — especially on ramp time as the hidden cost. What if you could cut that in half? Our in-inbox coach helps new reps write effective emails from day one with real-time scoring. Open to a quick chat about how this could support your growth?
|
||||
|
||||
## Star-Story-Solution
|
||||
|
||||
**Structure:** Introduce character (customer) → Tell challenge narrative → Reveal results.
|
||||
**Best for:** Strong customer success stories. Humanizes the pitch.
|
||||
|
||||
> Last year, Sarah — VP Sales at a Series B startup — had 5 SDRs competing against a rival with 20. Her team was getting crushed on volume. They adopted our AI prospecting tool and sent hyper-personalized emails at 3x pace without losing quality. Within 90 days, they booked more meetings than their competitor's entire team. Happy to share how this could work for {{Company}}.
|
||||
|
||||
## SCQ — Situation, Complication, Question
|
||||
|
||||
**Structure:** Current reality → Complicating challenge → Question that speaks to need → Optional answer.
|
||||
**Best for:** Consultative selling. Mirrors how professionals present to leadership.
|
||||
|
||||
> Your team doubled this year. That usually means onboarding is eating into selling time. How are you handling ramp for new hires?
|
||||
|
||||
## ACCA — Awareness, Comprehension, Conviction, Action
|
||||
|
||||
**Structure:** Contrarian hook → Explain benefit simply → Provide proof → Strong CTA.
|
||||
**Best for:** Analytical buyers who need evidence (engineers, CFOs, ops leaders).
|
||||
|
||||
> Most sales teams measure rep activity. The top 5% measure rep efficiency instead. When Acme switched, they booked 40% more meetings with fewer emails. Worth seeing how?
|
||||
|
||||
## 3C's (Alex Berman)
|
||||
|
||||
**Structure:** Compliment → Case Study → CTA.
|
||||
**Best for:** Agency/services cold outreach. Case study does the heavy lifting.
|
||||
|
||||
> Big fan of [Company]. We just built an app for [Competitor] that does XYZ. I have a few more ideas. Interested?
|
||||
|
||||
## Mouse Trap (Lavender/Will Allred)
|
||||
|
||||
**Structure:** Observation + Binary value-prop question. 1–2 sentences total.
|
||||
**Best for:** Maximum brevity. Impulsive reply based on curiosity.
|
||||
|
||||
> Looks like you're hiring reps. Would it be helpful to get a more granular look at how they're ramping on email?
|
||||
|
||||
## Justin Michael Method
|
||||
|
||||
**Structure:** Trigger/Pain → Solution hint → Binary CTA. 1–3 sentences, no intro.
|
||||
**Best for:** High-velocity SDR teams. Mobile-optimized. Deliberately polarizing.
|
||||
|
||||
Spend max 1 minute on personalization. Use industry/persona-level signals. For top-tier prospects, quote their own words from interviews — they almost always respond.
|
||||
|
||||
## Vanilla Ice Cream (Lavender)
|
||||
|
||||
**Structure:** Observation → Problem/Insight → Credibility → Solution → Call-to-Conversation.
|
||||
**Best for:** Universal "base" framework that works everywhere. Five parts.
|
||||
|
||||
## PASTOR (Ray Edwards)
|
||||
|
||||
**Structure:** Problem → Amplify → Story → Testimony → Offer → Response.
|
||||
**Best for:** Longer-form or multi-email sequences. Consulting, education, complex B2B services. Each element can be developed across separate touches.
|
||||
@@ -0,0 +1,79 @@
|
||||
# Personalization at Scale
|
||||
|
||||
Personalization drives **50–250% more replies** (Lavender). The key insight: **if your personalization has nothing to do with the problem you solve, it's just an attention hack** (Clay).
|
||||
|
||||
## Four Levels of Personalization
|
||||
|
||||
### Level 1 — Basic (merge tags)
|
||||
|
||||
First name, company name, job title. Table stakes, no longer differentiating. ~5% lift.
|
||||
|
||||
### Level 2 — Industry/segment
|
||||
|
||||
Industry-specific pain points, trends, regulatory challenges. Scalable via micro-segmentation.
|
||||
|
||||
> Most {{industry}} teams struggle with {{lead gen problem}}, which often leads to wasted effort.
|
||||
|
||||
### Level 3 — Role-level
|
||||
|
||||
Challenges specific to their role and seniority.
|
||||
|
||||
> As Head of Sales, keeping pipeline steady is probably your biggest headache. Your RevOps team is small, so you're likely wearing multiple hats during scaling.
|
||||
|
||||
### Level 4 — Individual (gold standard)
|
||||
|
||||
Specific, timely observations about that person connected to the problem you solve.
|
||||
|
||||
> Noticed you're hiring 3 SDRs — sounds like you're scaling outbound fast. Most teams hit follow-up fatigue during onboarding.
|
||||
|
||||
## Research Signal Stack
|
||||
|
||||
| Signal | Where to find it | How to use it |
|
||||
| ----------------- | ---------------------------------- | ---------------------------------------------------------------------------- |
|
||||
| Recent funding | Crunchbase, LinkedIn, press | "Congrats on Series B — scaling teams fast usually creates X challenge" |
|
||||
| Job postings | LinkedIn Jobs, careers page | "Noticed you're hiring 3 SDRs — sounds like you're scaling outbound" |
|
||||
| Tech stack | BuiltWith, Wappalyzer, HG Insights | "I see you're using HubSpot — most teams at your stage hit a ceiling with X" |
|
||||
| LinkedIn activity | Posts, comments, job changes | "Really enjoyed your post about X" |
|
||||
| Company news | Google News, press releases | "Congrats on acquiring X — integrating teams usually creates Y challenge" |
|
||||
| Podcast/talks | Google, YouTube, podcasts | "Caught your talk at SaaStr on X — really insightful" |
|
||||
| Website changes | Manual review | "Your new pricing page caught my eye — curious how it's converting" |
|
||||
|
||||
## The 3-Minute Personalization System
|
||||
|
||||
From "30 Minutes to President's Club":
|
||||
|
||||
**Step 1:** Build a research stack of top 10 buying signals — 5 company triggers, 5 person triggers. Stack-rank by relevance.
|
||||
|
||||
**Step 2:** Build a 3x3 template: (1) personalization attached to a problem, (2) problem you solve, (3) one-sentence solution + low-friction CTA.
|
||||
|
||||
**Step 3:** Create 5 "trigger templates" — pre-written personalization paragraphs for each trigger, with a smooth segue into the problem.
|
||||
|
||||
The personalization must logically connect to the problem. This creates 5 reusable triggers with the rest of the email constant. A top SDR writes a personalized email in **under 3 minutes**.
|
||||
|
||||
## The Four -Graphic Principles (Becc Holland)
|
||||
|
||||
- **Demographic** — Age, profession, background
|
||||
- **Technographic** — Tech stack, tools used
|
||||
- **Firmographic** — Company size, funding, industry, growth stage
|
||||
- **Psychographic** — Values, passions, beliefs (highest-impact dimension)
|
||||
|
||||
Tapping into what prospects are passionate about drives significantly higher response rates.
|
||||
|
||||
## Observation-Based Openers (highest performing)
|
||||
|
||||
**Trigger-event:** "Congrats on the recent funding round — scaling the team from here is exciting, and I imagine [challenge] is top of mind."
|
||||
|
||||
**Observation:** "Your recent post about [topic] resonated — especially the part about [detail]. Got me thinking about how that applies to [challenge]."
|
||||
|
||||
**Industry insight:** "Most [role titles] I talk to spend [X hours/week] on [problem] — curious if that matches your experience at [Company]."
|
||||
|
||||
## What Feels Fake (avoid)
|
||||
|
||||
- AI-generated emails with similar phrasing ("I hope this email finds you well")
|
||||
- Generic attention hacks disconnected from problem ("Cool that you went to UCLA!" → pitch)
|
||||
- Over-personalizing to creepiness
|
||||
- "I saw your LinkedIn profile and wanted to reach out" — signals mass automation
|
||||
|
||||
## The "So What?" Test
|
||||
|
||||
After writing any opening line, read from prospect's perspective: "So what? Why would I care?" If the answer is nothing, rewrite.
|
||||
@@ -0,0 +1,53 @@
|
||||
# Subject Line Optimization
|
||||
|
||||
The subject line determines whether the email gets read. The data is counterintuitive: **short, boring, internal-looking subject lines win decisively.**
|
||||
|
||||
## Length: 2–4 words
|
||||
|
||||
- 2-word subject lines get **60% more opens** than 5-word (Lavender).
|
||||
- Going from 2 to 4 words reduces replies by **17.5%**.
|
||||
- 2–4 words yield **46% open rates** vs 34% for 10 words (Belkins, 5.5M emails).
|
||||
- Mobile truncates at 30–35 characters — brevity is practical necessity.
|
||||
|
||||
## Internal Camouflage Principle
|
||||
|
||||
Subject lines that look like they came from a colleague, not a vendor, double open rates (Gong). Buyers mentally categorize before opening — if it looks like sales, it's filtered.
|
||||
|
||||
**High-performing examples:** "reply rates" · "trial delays" · "hiring ops" · "employee turnover" · "Q2 forecast" · "new patients" · "personalization issue" · "second page"
|
||||
|
||||
## Capitalization: lowercase wins
|
||||
|
||||
All-lowercase has highest open rates (Gong, 85M+ emails). Lowercase looks more personal/internal. For cold outreach specifically, lowercase beats title case.
|
||||
|
||||
## Personalization: context over name
|
||||
|
||||
Personalized subject lines boost opens **26–50%**, but type matters:
|
||||
|
||||
- **First name in subject line → 12% fewer replies.** Signals automation.
|
||||
- **Contextual personalization works:** pain points, competitors, trigger events, industry challenges.
|
||||
- Use {{painPoint}}, {{competitor}}, {{commonGround}} — not {{firstName}}.
|
||||
|
||||
## Questions: only when highly specific
|
||||
|
||||
Data conflicts: Belkins says questions perform well (46% open rate). Lavender says questions lower opens by **56%**. Resolution: **specific pain questions work** ("Need help with {{challenge}}?"), **generic questions fail** ("Quick question?" / "Have 15 minutes?"). Default to statements.
|
||||
|
||||
## What to Avoid
|
||||
|
||||
| Anti-pattern | Impact |
|
||||
| ---------------------------------------------- | --------------------------- |
|
||||
| Salesy language ("increase," "boost," "ROI") | -17.9% opens |
|
||||
| Urgency words ("ASAP," "urgent") | Below 36% opens |
|
||||
| Excessive punctuation ("!!!" or "??") | -36% opens |
|
||||
| Numbers and percentages | -46% opens |
|
||||
| Emojis | Hurt B2B professionalism |
|
||||
| Pitching product in subject | -57% replies |
|
||||
| Empty/no subject line | +30% opens but -12% replies |
|
||||
| Spam triggers ("free," "guarantee," "act now") | Deliverability risk |
|
||||
|
||||
## C-Suite Subject Lines
|
||||
|
||||
Executives receive 300–400 emails daily, decide in seconds. They respond **23% more often** than non-C-suite when emails pass their filter (6.4% reply rate).
|
||||
|
||||
What works: ultra-concise, human, understated. "{{companyInitiative}}" · "thank you" · "an update" · "a question" · reference to a specific project or trigger event.
|
||||
|
||||
Anything "salesy" is immediately rejected.
|
||||
@@ -0,0 +1,163 @@
|
||||
---
|
||||
name: community-marketing
|
||||
description: "Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a community strategy, grow a Discord or Slack community, manage a forum or subreddit, build brand advocates, increase word-of-mouth, drive community-led growth, engage users post-signup, or turn customers into evangelists. Trigger phrases: \"build a community,\" \"community strategy,\" \"Discord community,\" \"Slack community,\" \"community-led growth,\" \"brand advocates,\" \"user community,\" \"forum strategy,\" \"community engagement,\" \"grow our community,\" \"ambassador program,\" \"community flywheel.\""
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Community Marketing
|
||||
|
||||
You are an expert community builder and community-led growth strategist. Your goal is to help the user design, launch, and grow a community that creates genuine value for members while driving measurable business outcomes.
|
||||
|
||||
## Before You Start
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered.
|
||||
|
||||
Understand the situation (ask if not provided):
|
||||
|
||||
1. **What is the product or brand?** — What problem does it solve, who uses it
|
||||
2. **What community platform(s) are in play?** — Discord, Slack, Circle, Reddit, Facebook Groups, forum, etc.
|
||||
3. **What stage is the community at?** — Pre-launch, 0–100 members, 100–1k, scaling, or established
|
||||
4. **What is the primary community goal?** — Retention, activation, word-of-mouth, support deflection, product feedback, revenue
|
||||
5. **Who is the ideal community member?** — Role, motivation, what they hope to get from joining
|
||||
|
||||
Work with whatever context is available. If key details are missing, make reasonable assumptions and flag them.
|
||||
|
||||
---
|
||||
|
||||
## Community Strategy Principles
|
||||
|
||||
### Build around a shared identity, not just a product
|
||||
|
||||
The strongest communities are built around who members *are* or aspire to be — not around your product. Members join because of the product but stay because of the people and identity.
|
||||
|
||||
Examples:
|
||||
- Indie hackers (identity: bootstrapped founders)
|
||||
- r/homelab (identity: tinkerers who self-host)
|
||||
- Figma community (identity: designers who care about craft)
|
||||
|
||||
Always define: **What identity does this community reinforce for its members?**
|
||||
|
||||
### Value must flow to members first
|
||||
|
||||
Every community touchpoint should answer: *What does the member get from this?*
|
||||
|
||||
- Exclusive knowledge or early access
|
||||
- Peer connections they can't get elsewhere
|
||||
- Recognition and status within a group they respect
|
||||
- Direct influence on the product roadmap
|
||||
- Career opportunities, visibility, or credibility
|
||||
|
||||
### The Community Flywheel
|
||||
|
||||
Healthy communities compound over time:
|
||||
|
||||
```
|
||||
Members join → get value → engage → create content/help others
|
||||
↑ ↓
|
||||
←←←←← new members discover the community ←←
|
||||
```
|
||||
|
||||
Design for the flywheel from day one. Every decision should ask: *Does this accelerate the loop or slow it down?*
|
||||
|
||||
---
|
||||
|
||||
## Playbooks by Goal
|
||||
|
||||
### Launching a Community from Zero
|
||||
|
||||
1. **Recruit 20–50 founding members manually** — DM your most engaged users, beta testers, or fans. Don't open publicly until there is baseline activity.
|
||||
2. **Set the culture explicitly** — Write community guidelines that describe the *vibe*, not just the rules. What does great participation look like here?
|
||||
3. **Seed conversations before launch** — Pre-populate channels with 5–10 posts that model the behavior you want. Questions, wins, resources.
|
||||
4. **Do things that don't scale at first** — Reply to every post. Welcome every new member by name. Host a weekly call. You are buying social proof.
|
||||
5. **Define your core loop** — What action do you want members to take weekly? Make it easy and reward it publicly.
|
||||
|
||||
### Growing an Existing Community
|
||||
|
||||
1. **Audit where members drop off** — Are people joining but not posting? Posting once and disappearing? Identify the leaky stage.
|
||||
2. **Create a new member journey** — A pinned welcome post, a #introduce-yourself channel, a DM or email from a community manager, a clear "start here" path.
|
||||
3. **Surface member wins publicly** — Showcase user projects, testimonials, milestones. This reinforces identity and signals that participation has rewards.
|
||||
4. **Run recurring community rituals** — Weekly threads (e.g., "What are you working on?"), monthly AMAs, seasonal challenges. Rituals create habit.
|
||||
5. **Identify and invest in power users** — 1% of members generate 90% of value. Give them recognition, early access, moderator roles, or direct product input.
|
||||
|
||||
### Building a Brand Ambassador / Advocate Program
|
||||
|
||||
1. **Identify candidates** — Look for people who already recommend you unprompted. Check reviews, social mentions, community posts.
|
||||
2. **Make the ask personal** — Don't send a generic form. Reach out 1:1 and explain why you chose them specifically.
|
||||
3. **Offer meaningful benefits** — Exclusive access, swag, revenue share, or public recognition — not just "early access to features."
|
||||
4. **Give them tools and content** — Referral links, shareable assets, key talking points, a private Slack channel.
|
||||
5. **Measure and iterate** — Track referral traffic, signups, and engagement driven by advocates. Double down on what works.
|
||||
|
||||
### Community-Led Support (Deflection + Retention)
|
||||
|
||||
1. **Create a searchable knowledge base** from top community questions
|
||||
2. **Recognize members who help others** — "Community Expert" badges, leaderboards, shoutouts
|
||||
3. **Close the loop with product** — When community feedback drives a change, announce it publicly and credit the members who raised it
|
||||
4. **Monitor sentiment weekly** — Look for patterns in complaints or confusion before they become churn signals
|
||||
|
||||
---
|
||||
|
||||
## Platform Selection Guide
|
||||
|
||||
| Platform | Best For | Watch Out For |
|
||||
|----------|----------|---------------|
|
||||
| Discord | Developer, gaming, creator communities; real-time chat | High noise, hard to search, onboarding friction |
|
||||
| Slack | B2B / professional communities; familiar to SaaS buyers | Free tier limits history; feels like work |
|
||||
| Circle | Creator or course-based communities; clean UX | Less organic discovery; requires driving traffic |
|
||||
| Reddit | High-volume public communities; SEO benefit | You don't own it; moderation is hard |
|
||||
| Facebook Groups | Consumer brands; older demographics | Declining organic reach; algorithm dependent |
|
||||
| Forum (Discourse) | Long-form technical communities; SEO-rich | Slower velocity; higher effort to post |
|
||||
|
||||
---
|
||||
|
||||
## Community Health Metrics
|
||||
|
||||
Track these signals weekly:
|
||||
|
||||
- **DAU/MAU ratio** — Stickiness. Above 20% is healthy for most communities.
|
||||
- **New member post rate** — % of new members who post within 7 days of joining
|
||||
- **Thread reply rate** — % of posts that receive at least one reply
|
||||
- **Churn / lurker ratio** — Members who joined but haven't posted in 30+ days
|
||||
- **Content created by non-staff** — % of posts not written by the company team
|
||||
|
||||
**Warning signs:**
|
||||
- Most posts are from the company team, not members
|
||||
- Questions go unanswered for >24 hours
|
||||
- The same 5 people account for 80%+ of engagement
|
||||
- New members stop posting after their intro message
|
||||
|
||||
---
|
||||
|
||||
## Output Formats
|
||||
|
||||
Depending on what the user needs, produce one of:
|
||||
|
||||
- **Community Strategy Doc** — Platform choice, identity definition, core loop, 90-day launch plan
|
||||
- **Channel Architecture** — Recommended channels/categories with purpose and posting guidelines for each
|
||||
- **New Member Journey** — Welcome sequence: pinned post, DM template, first-week prompts
|
||||
- **Community Ritual Calendar** — Weekly/monthly recurring events and threads
|
||||
- **Ambassador Program Brief** — Criteria, benefits, outreach template, tracking plan
|
||||
- **Health Audit Report** — Current metrics, diagnosis, top 3 priorities to fix
|
||||
|
||||
Always be specific. Generic advice ("be consistent," "provide value") is not useful. Give the user something they can act on today.
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What platform are you building on (or considering)?
|
||||
2. What stage is the community at? (Pre-launch, early, growing, established)
|
||||
3. What's the primary business goal? (Retention, activation, word-of-mouth, support deflection)
|
||||
4. Who is the ideal community member and what motivates them?
|
||||
5. Do you have existing users or customers to seed from?
|
||||
6. How much time can you dedicate to community management weekly?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **referral-program**: For structured referral and ambassador incentive programs
|
||||
- **churn-prevention**: For retention strategies that complement community engagement
|
||||
- **social-content**: For content creation across social platforms
|
||||
- **customer-research**: For understanding your community members' needs and language
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: competitor-alternatives
|
||||
description: "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' or 'competitive landing pages.' Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. Emphasizes deep research, modular content architecture, and varied section types beyond feature tables."
|
||||
description: "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Competitor & Alternative Pages
|
||||
@@ -9,6 +11,9 @@ You are an expert in creating competitor comparison and alternative pages. Your
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Before creating competitor pages, understand:
|
||||
|
||||
1. **Your Product**
|
||||
@@ -55,7 +60,6 @@ Before creating competitor pages, understand:
|
||||
### 4. Modular Content Architecture
|
||||
- Competitor data should be centralized
|
||||
- Updates propagate to all pages
|
||||
- Avoid duplicating research
|
||||
- Single source of truth per competitor
|
||||
|
||||
---
|
||||
@@ -68,11 +72,7 @@ Before creating competitor pages, understand:
|
||||
|
||||
**URL pattern**: `/alternatives/[competitor]` or `/[competitor]-alternative`
|
||||
|
||||
**Target keywords**:
|
||||
- "[Competitor] alternative"
|
||||
- "alternative to [Competitor]"
|
||||
- "switch from [Competitor]"
|
||||
- "[Competitor] replacement"
|
||||
**Target keywords**: "[Competitor] alternative", "alternative to [Competitor]", "switch from [Competitor]"
|
||||
|
||||
**Page structure**:
|
||||
1. Why people look for alternatives (validate their pain)
|
||||
@@ -83,21 +83,15 @@ Before creating competitor pages, understand:
|
||||
6. Social proof from switchers
|
||||
7. CTA
|
||||
|
||||
**Tone**: Empathetic to their frustration, helpful guide
|
||||
|
||||
---
|
||||
|
||||
### Format 2: [Competitor] Alternatives (Plural)
|
||||
|
||||
**Search intent**: User is researching options, earlier in journey
|
||||
|
||||
**URL pattern**: `/alternatives/[competitor]-alternatives` or `/best-[competitor]-alternatives`
|
||||
**URL pattern**: `/alternatives/[competitor]-alternatives`
|
||||
|
||||
**Target keywords**:
|
||||
- "[Competitor] alternatives"
|
||||
- "best [Competitor] alternatives"
|
||||
- "tools like [Competitor]"
|
||||
- "[Competitor] competitors"
|
||||
**Target keywords**: "[Competitor] alternatives", "best [Competitor] alternatives", "tools like [Competitor]"
|
||||
|
||||
**Page structure**:
|
||||
1. Why people look for alternatives (common pain points)
|
||||
@@ -108,8 +102,6 @@ Before creating competitor pages, understand:
|
||||
6. Recommendation by use case
|
||||
7. CTA
|
||||
|
||||
**Tone**: Objective guide, you're one option among several (but positioned well)
|
||||
|
||||
**Important**: Include 4-7 real alternatives. Being genuinely helpful builds trust and ranks better.
|
||||
|
||||
---
|
||||
@@ -120,29 +112,18 @@ Before creating competitor pages, understand:
|
||||
|
||||
**URL pattern**: `/vs/[competitor]` or `/compare/[you]-vs-[competitor]`
|
||||
|
||||
**Target keywords**:
|
||||
- "[You] vs [Competitor]"
|
||||
- "[Competitor] vs [You]"
|
||||
- "[You] compared to [Competitor]"
|
||||
- "[You] or [Competitor]"
|
||||
**Target keywords**: "[You] vs [Competitor]", "[Competitor] vs [You]"
|
||||
|
||||
**Page structure**:
|
||||
1. TL;DR summary (key differences in 2-3 sentences)
|
||||
2. At-a-glance comparison table
|
||||
3. Detailed comparison by category:
|
||||
- Features
|
||||
- Pricing
|
||||
- Service & support
|
||||
- Ease of use
|
||||
- Integrations
|
||||
3. Detailed comparison by category (Features, Pricing, Support, Ease of use, Integrations)
|
||||
4. Who [You] is best for
|
||||
5. Who [Competitor] is best for (be honest)
|
||||
6. What customers say (testimonials from switchers)
|
||||
7. Migration support
|
||||
8. CTA
|
||||
|
||||
**Tone**: Confident but fair, acknowledge where competitor excels
|
||||
|
||||
---
|
||||
|
||||
### Format 4: [Competitor A] vs [Competitor B]
|
||||
@@ -151,11 +132,6 @@ Before creating competitor pages, understand:
|
||||
|
||||
**URL pattern**: `/compare/[competitor-a]-vs-[competitor-b]`
|
||||
|
||||
**Target keywords**:
|
||||
- "[Competitor A] vs [Competitor B]"
|
||||
- "[Competitor A] or [Competitor B]"
|
||||
- "[Competitor A] compared to [Competitor B]"
|
||||
|
||||
**Page structure**:
|
||||
1. Overview of both products
|
||||
2. Comparison by category
|
||||
@@ -164,458 +140,47 @@ Before creating competitor pages, understand:
|
||||
5. Comparison table (all three)
|
||||
6. CTA
|
||||
|
||||
**Tone**: Objective analyst, earn trust through fairness, then introduce yourself
|
||||
|
||||
**Why this works**: Captures search traffic for competitor terms, positions you as knowledgeable, introduces you to qualified audience.
|
||||
**Why this works**: Captures search traffic for competitor terms, positions you as knowledgeable.
|
||||
|
||||
---
|
||||
|
||||
## Index Pages
|
||||
## Essential Sections
|
||||
|
||||
Each format needs an index page that lists all pages of that type. These hub pages serve as navigation aids, SEO consolidators, and entry points for visitors exploring multiple comparisons.
|
||||
### TL;DR Summary
|
||||
Start every page with a quick summary for scanners—key differences in 2-3 sentences.
|
||||
|
||||
### Alternatives Index
|
||||
### Paragraph Comparisons
|
||||
Go beyond tables. For each dimension, write a paragraph explaining the differences and when each matters.
|
||||
|
||||
**URL**: `/alternatives` or `/alternatives/index`
|
||||
### Feature Comparison
|
||||
For each category: describe how each handles it, list strengths and limitations, give bottom line recommendation.
|
||||
|
||||
**Purpose**: Lists all "[Competitor] Alternative" pages
|
||||
### Pricing Comparison
|
||||
Include tier-by-tier comparison, what's included, hidden costs, and total cost calculation for sample team size.
|
||||
|
||||
**Page structure**:
|
||||
1. Headline: "[Your Product] as an Alternative"
|
||||
2. Brief intro on why people switch to you
|
||||
3. List of all alternative pages with:
|
||||
- Competitor name/logo
|
||||
- One-line summary of key differentiator vs. that competitor
|
||||
- Link to full comparison
|
||||
4. Common reasons people switch (aggregated)
|
||||
5. CTA
|
||||
### Who It's For
|
||||
Be explicit about ideal customer for each option. Honest recommendations build trust.
|
||||
|
||||
**Example**:
|
||||
```markdown
|
||||
## Explore [Your Product] as an Alternative
|
||||
### Migration Section
|
||||
Cover what transfers, what needs reconfiguration, support offered, and quotes from customers who switched.
|
||||
|
||||
Looking to switch? See how [Your Product] compares to the tools you're evaluating:
|
||||
|
||||
- **[Notion Alternative](/alternatives/notion)** — Better for teams who need [X]
|
||||
- **[Airtable Alternative](/alternatives/airtable)** — Better for teams who need [Y]
|
||||
- **[Monday Alternative](/alternatives/monday)** — Better for teams who need [Z]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Alternatives (Plural) Index
|
||||
|
||||
**URL**: `/alternatives/compare` or `/best-alternatives`
|
||||
|
||||
**Purpose**: Lists all "[Competitor] Alternatives" roundup pages
|
||||
|
||||
**Page structure**:
|
||||
1. Headline: "Software Alternatives & Comparisons"
|
||||
2. Brief intro on your comparison methodology
|
||||
3. List of all alternatives roundup pages with:
|
||||
- Competitor name
|
||||
- Number of alternatives covered
|
||||
- Link to roundup
|
||||
4. CTA
|
||||
|
||||
**Example**:
|
||||
```markdown
|
||||
## Find the Right Tool
|
||||
|
||||
Comparing your options? Our guides cover the top alternatives:
|
||||
|
||||
- **[Best Notion Alternatives](/alternatives/notion-alternatives)** — 7 tools compared
|
||||
- **[Best Airtable Alternatives](/alternatives/airtable-alternatives)** — 6 tools compared
|
||||
- **[Best Monday Alternatives](/alternatives/monday-alternatives)** — 5 tools compared
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Vs Comparisons Index
|
||||
|
||||
**URL**: `/vs` or `/compare`
|
||||
|
||||
**Purpose**: Lists all "You vs [Competitor]" and "[A] vs [B]" pages
|
||||
|
||||
**Page structure**:
|
||||
1. Headline: "Compare [Your Product]"
|
||||
2. Section: "[Your Product] vs Competitors" — list of direct comparisons
|
||||
3. Section: "Head-to-Head Comparisons" — list of [A] vs [B] pages
|
||||
4. Brief methodology note
|
||||
5. CTA
|
||||
|
||||
**Example**:
|
||||
```markdown
|
||||
## Compare [Your Product]
|
||||
|
||||
### [Your Product] vs. the Competition
|
||||
|
||||
- **[[Your Product] vs Notion](/vs/notion)** — Best for [differentiator]
|
||||
- **[[Your Product] vs Airtable](/vs/airtable)** — Best for [differentiator]
|
||||
- **[[Your Product] vs Monday](/vs/monday)** — Best for [differentiator]
|
||||
|
||||
### Other Comparisons
|
||||
|
||||
Evaluating tools we compete with? We've done the research:
|
||||
|
||||
- **[Notion vs Airtable](/compare/notion-vs-airtable)**
|
||||
- **[Notion vs Monday](/compare/notion-vs-monday)**
|
||||
- **[Airtable vs Monday](/compare/airtable-vs-monday)**
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Index Page Best Practices
|
||||
|
||||
**Keep them updated**: When you add a new comparison page, add it to the relevant index.
|
||||
|
||||
**Internal linking**:
|
||||
- Link from index → individual pages
|
||||
- Link from individual pages → back to index
|
||||
- Cross-link between related comparisons
|
||||
|
||||
**SEO value**:
|
||||
- Index pages can rank for broad terms like "project management tool comparisons"
|
||||
- Pass link equity to individual comparison pages
|
||||
- Help search engines discover all comparison content
|
||||
|
||||
**Sorting options**:
|
||||
- By popularity (search volume)
|
||||
- Alphabetically
|
||||
- By category/use case
|
||||
- By date added (show freshness)
|
||||
|
||||
**Include on index pages**:
|
||||
- Last updated date for credibility
|
||||
- Number of pages/comparisons available
|
||||
- Quick filters if you have many comparisons
|
||||
**For detailed templates**: See [references/templates.md](references/templates.md)
|
||||
|
||||
---
|
||||
|
||||
## Content Architecture
|
||||
|
||||
### Centralized Competitor Data
|
||||
|
||||
Create a single source of truth for each competitor:
|
||||
|
||||
```
|
||||
competitor_data/
|
||||
├── notion.md
|
||||
├── airtable.md
|
||||
├── monday.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
**Per competitor, document**:
|
||||
|
||||
```yaml
|
||||
name: Notion
|
||||
website: notion.so
|
||||
tagline: "The all-in-one workspace"
|
||||
founded: 2016
|
||||
headquarters: San Francisco
|
||||
|
||||
# Positioning
|
||||
primary_use_case: "docs + light databases"
|
||||
target_audience: "teams wanting flexible workspace"
|
||||
market_position: "premium, feature-rich"
|
||||
|
||||
# Pricing
|
||||
pricing_model: per-seat
|
||||
free_tier: true
|
||||
free_tier_limits: "limited blocks, 1 user"
|
||||
starter_price: $8/user/month
|
||||
business_price: $15/user/month
|
||||
enterprise: custom
|
||||
|
||||
# Features (rate 1-5 or describe)
|
||||
features:
|
||||
documents: 5
|
||||
databases: 4
|
||||
project_management: 3
|
||||
collaboration: 4
|
||||
integrations: 3
|
||||
mobile_app: 3
|
||||
offline_mode: 2
|
||||
api: 4
|
||||
|
||||
# Strengths (be honest)
|
||||
strengths:
|
||||
- Extremely flexible and customizable
|
||||
- Beautiful, modern interface
|
||||
- Strong template ecosystem
|
||||
- Active community
|
||||
|
||||
# Weaknesses (be fair)
|
||||
weaknesses:
|
||||
- Can be slow with large databases
|
||||
- Learning curve for advanced features
|
||||
- Limited automations compared to dedicated tools
|
||||
- Offline mode is limited
|
||||
|
||||
# Best for
|
||||
best_for:
|
||||
- Teams wanting all-in-one workspace
|
||||
- Content-heavy workflows
|
||||
- Documentation-first teams
|
||||
- Startups and small teams
|
||||
|
||||
# Not ideal for
|
||||
not_ideal_for:
|
||||
- Complex project management needs
|
||||
- Large databases (1000s of rows)
|
||||
- Teams needing robust offline
|
||||
- Enterprise with strict compliance
|
||||
|
||||
# Common complaints (from reviews)
|
||||
common_complaints:
|
||||
- "Gets slow with lots of content"
|
||||
- "Hard to find things as workspace grows"
|
||||
- "Mobile app is clunky"
|
||||
|
||||
# Migration notes
|
||||
migration_from:
|
||||
difficulty: medium
|
||||
data_export: "Markdown, CSV, HTML"
|
||||
what_transfers: "Pages, databases"
|
||||
what_doesnt: "Automations, integrations setup"
|
||||
time_estimate: "1-3 days for small team"
|
||||
```
|
||||
|
||||
### Your Product Data
|
||||
|
||||
Same structure for yourself—be honest:
|
||||
|
||||
```yaml
|
||||
name: [Your Product]
|
||||
# ... same fields
|
||||
|
||||
strengths:
|
||||
- [Your real strengths]
|
||||
|
||||
weaknesses:
|
||||
- [Your honest weaknesses]
|
||||
|
||||
best_for:
|
||||
- [Your ideal customers]
|
||||
|
||||
not_ideal_for:
|
||||
- [Who should use something else]
|
||||
```
|
||||
|
||||
### Page Generation
|
||||
|
||||
Each page pulls from centralized data:
|
||||
|
||||
- **[Competitor] Alternative page**: Pulls competitor data + your data
|
||||
- **[Competitor] Alternatives page**: Pulls competitor data + your data + other alternatives
|
||||
- **You vs [Competitor] page**: Pulls your data + competitor data
|
||||
- **[A] vs [B] page**: Pulls both competitor data + your data
|
||||
|
||||
**Benefits**:
|
||||
- Update competitor pricing once, updates everywhere
|
||||
- Add new feature comparison once, appears on all pages
|
||||
- Consistent accuracy across pages
|
||||
- Easier to maintain at scale
|
||||
|
||||
---
|
||||
|
||||
## Section Templates
|
||||
|
||||
### TL;DR Summary
|
||||
|
||||
Start every page with a quick summary for scanners:
|
||||
|
||||
```markdown
|
||||
**TL;DR**: [Competitor] excels at [strength] but struggles with [weakness].
|
||||
[Your product] is built for [your focus], offering [key differentiator].
|
||||
Choose [Competitor] if [their ideal use case]. Choose [You] if [your ideal use case].
|
||||
```
|
||||
|
||||
### Paragraph Comparison (Not Just Tables)
|
||||
|
||||
For each major dimension, write a paragraph:
|
||||
|
||||
```markdown
|
||||
## Features
|
||||
|
||||
[Competitor] offers [description of their feature approach].
|
||||
Their strength is [specific strength], which works well for [use case].
|
||||
However, [limitation] can be challenging for [user type].
|
||||
|
||||
[Your product] takes a different approach with [your approach].
|
||||
This means [benefit], though [honest tradeoff].
|
||||
Teams who [specific need] often find this more effective.
|
||||
```
|
||||
|
||||
### Feature Comparison Section
|
||||
|
||||
Go beyond checkmarks:
|
||||
|
||||
```markdown
|
||||
## Feature Comparison
|
||||
|
||||
### [Feature Category]
|
||||
|
||||
**[Competitor]**: [2-3 sentence description of how they handle this]
|
||||
- Strengths: [specific]
|
||||
- Limitations: [specific]
|
||||
|
||||
**[Your product]**: [2-3 sentence description]
|
||||
- Strengths: [specific]
|
||||
- Limitations: [specific]
|
||||
|
||||
**Bottom line**: Choose [Competitor] if [scenario]. Choose [You] if [scenario].
|
||||
```
|
||||
|
||||
### Pricing Comparison Section
|
||||
|
||||
```markdown
|
||||
## Pricing
|
||||
|
||||
| | [Competitor] | [Your Product] |
|
||||
|---|---|---|
|
||||
| Free tier | [Details] | [Details] |
|
||||
| Starting price | $X/user/mo | $X/user/mo |
|
||||
| Business tier | $X/user/mo | $X/user/mo |
|
||||
| Enterprise | Custom | Custom |
|
||||
|
||||
**What's included**: [Competitor]'s $X plan includes [features], while
|
||||
[Your product]'s $X plan includes [features].
|
||||
|
||||
**Total cost consideration**: Beyond per-seat pricing, consider [hidden costs,
|
||||
add-ons, implementation]. [Competitor] charges extra for [X], while
|
||||
[Your product] includes [Y] in base pricing.
|
||||
|
||||
**Value comparison**: For a 10-person team, [Competitor] costs approximately
|
||||
$X/year while [Your product] costs $Y/year, with [key differences in what you get].
|
||||
```
|
||||
|
||||
### Service & Support Comparison
|
||||
|
||||
```markdown
|
||||
## Service & Support
|
||||
|
||||
| | [Competitor] | [Your Product] |
|
||||
|---|---|---|
|
||||
| Documentation | [Quality assessment] | [Quality assessment] |
|
||||
| Response time | [SLA if known] | [Your SLA] |
|
||||
| Support channels | [List] | [List] |
|
||||
| Onboarding | [What they offer] | [What you offer] |
|
||||
| CSM included | [At what tier] | [At what tier] |
|
||||
|
||||
**Support quality**: Based on [G2/Capterra reviews, your research],
|
||||
[Competitor] support is described as [assessment]. Common feedback includes
|
||||
[quotes or themes].
|
||||
|
||||
[Your product] offers [your support approach]. [Specific differentiator like
|
||||
response time, dedicated CSM, implementation help].
|
||||
```
|
||||
|
||||
### Who It's For Section
|
||||
|
||||
```markdown
|
||||
## Who Should Choose [Competitor]
|
||||
|
||||
[Competitor] is the right choice if:
|
||||
- [Specific use case or need]
|
||||
- [Team type or size]
|
||||
- [Workflow or requirement]
|
||||
- [Budget or priority]
|
||||
|
||||
**Ideal [Competitor] customer**: [Persona description in 1-2 sentences]
|
||||
|
||||
## Who Should Choose [Your Product]
|
||||
|
||||
[Your product] is built for teams who:
|
||||
- [Specific use case or need]
|
||||
- [Team type or size]
|
||||
- [Workflow or requirement]
|
||||
- [Priority or value]
|
||||
|
||||
**Ideal [Your product] customer**: [Persona description in 1-2 sentences]
|
||||
```
|
||||
|
||||
### Migration Section
|
||||
|
||||
```markdown
|
||||
## Switching from [Competitor]
|
||||
|
||||
### What transfers
|
||||
- [Data type]: [How easily, any caveats]
|
||||
- [Data type]: [How easily, any caveats]
|
||||
|
||||
### What needs reconfiguration
|
||||
- [Thing]: [Why and effort level]
|
||||
- [Thing]: [Why and effort level]
|
||||
|
||||
### Migration support
|
||||
|
||||
We offer [migration support details]:
|
||||
- [Free data import tool / white-glove migration]
|
||||
- [Documentation / migration guide]
|
||||
- [Timeline expectation]
|
||||
- [Support during transition]
|
||||
|
||||
### What customers say about switching
|
||||
|
||||
> "[Quote from customer who switched]"
|
||||
> — [Name], [Role] at [Company]
|
||||
```
|
||||
|
||||
### Social Proof Section
|
||||
|
||||
Focus on switchers:
|
||||
|
||||
```markdown
|
||||
## What Customers Say
|
||||
|
||||
### Switched from [Competitor]
|
||||
|
||||
> "[Specific quote about why they switched and outcome]"
|
||||
> — [Name], [Role] at [Company]
|
||||
|
||||
> "[Another quote]"
|
||||
> — [Name], [Role] at [Company]
|
||||
|
||||
### Results after switching
|
||||
- [Company] saw [specific result]
|
||||
- [Company] reduced [metric] by [amount]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Comparison Table Best Practices
|
||||
|
||||
### Beyond Checkmarks
|
||||
|
||||
Instead of:
|
||||
| Feature | You | Competitor |
|
||||
|---------|-----|-----------|
|
||||
| Feature A | ✓ | ✓ |
|
||||
| Feature B | ✓ | ✗ |
|
||||
|
||||
Do this:
|
||||
| Feature | You | Competitor |
|
||||
|---------|-----|-----------|
|
||||
| Feature A | Full support with [detail] | Basic support, [limitation] |
|
||||
| Feature B | [Specific capability] | Not available |
|
||||
|
||||
### Organize by Category
|
||||
|
||||
Group features into meaningful categories:
|
||||
- Core functionality
|
||||
- Collaboration
|
||||
- Integrations
|
||||
- Security & compliance
|
||||
- Support & service
|
||||
|
||||
### Include Ratings Where Useful
|
||||
|
||||
| Category | You | Competitor | Notes |
|
||||
|----------|-----|-----------|-------|
|
||||
| Ease of use | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | [Brief note] |
|
||||
| Feature depth | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | [Brief note] |
|
||||
Create a single source of truth for each competitor with:
|
||||
- Positioning and target audience
|
||||
- Pricing (all tiers)
|
||||
- Feature ratings
|
||||
- Strengths and weaknesses
|
||||
- Best for / not ideal for
|
||||
- Common complaints (from reviews)
|
||||
- Migration notes
|
||||
|
||||
**For data structure and examples**: See [references/content-architecture.md](references/content-architecture.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -625,39 +190,14 @@ Group features into meaningful categories:
|
||||
|
||||
For each competitor, gather:
|
||||
|
||||
1. **Product research**
|
||||
- Sign up for free trial
|
||||
- Use the product yourself
|
||||
- Document features, UX, limitations
|
||||
- Take screenshots
|
||||
|
||||
2. **Pricing research**
|
||||
- Current pricing (check regularly)
|
||||
- What's included at each tier
|
||||
- Hidden costs, add-ons
|
||||
- Contract terms
|
||||
|
||||
3. **Review mining**
|
||||
- G2, Capterra, TrustRadius reviews
|
||||
- Common praise themes
|
||||
- Common complaint themes
|
||||
- Ratings by category
|
||||
|
||||
4. **Customer feedback**
|
||||
- Talk to customers who switched
|
||||
- Talk to prospects who chose competitor
|
||||
- Document real quotes
|
||||
|
||||
5. **Content research**
|
||||
- Their positioning and messaging
|
||||
- Their comparison pages (how do they compare to you?)
|
||||
- Their documentation quality
|
||||
- Their changelog (recent development)
|
||||
1. **Product research**: Sign up, use it, document features/UX/limitations
|
||||
2. **Pricing research**: Current pricing, what's included, hidden costs
|
||||
3. **Review mining**: G2, Capterra, TrustRadius for common praise/complaint themes
|
||||
4. **Customer feedback**: Talk to customers who switched (both directions)
|
||||
5. **Content research**: Their positioning, their comparison pages, their changelog
|
||||
|
||||
### Ongoing Updates
|
||||
|
||||
Competitor pages need maintenance:
|
||||
|
||||
- **Quarterly**: Verify pricing, check for major feature changes
|
||||
- **When notified**: Customer mentions competitor change
|
||||
- **Annually**: Full refresh of all competitor data
|
||||
@@ -668,77 +208,42 @@ Competitor pages need maintenance:
|
||||
|
||||
### Keyword Targeting
|
||||
|
||||
| Format | Primary Keywords | Secondary Keywords |
|
||||
|--------|-----------------|-------------------|
|
||||
| Alternative (singular) | [Competitor] alternative | alternative to [Competitor], switch from [Competitor], [Competitor] replacement |
|
||||
| Alternatives (plural) | [Competitor] alternatives | best [Competitor] alternatives, tools like [Competitor], [Competitor] competitors |
|
||||
| You vs Competitor | [You] vs [Competitor] | [Competitor] vs [You], [You] compared to [Competitor] |
|
||||
| Competitor vs Competitor | [A] vs [B] | [B] vs [A], [A] or [B], [A] compared to [B] |
|
||||
| Format | Primary Keywords |
|
||||
|--------|-----------------|
|
||||
| Alternative (singular) | [Competitor] alternative, alternative to [Competitor] |
|
||||
| Alternatives (plural) | [Competitor] alternatives, best [Competitor] alternatives |
|
||||
| You vs Competitor | [You] vs [Competitor], [Competitor] vs [You] |
|
||||
| Competitor vs Competitor | [A] vs [B], [B] vs [A] |
|
||||
|
||||
### Internal Linking
|
||||
|
||||
- Link between related competitor pages
|
||||
- Link from feature pages to relevant comparisons
|
||||
- Link from blog posts mentioning competitors
|
||||
- Hub page linking to all competitor content
|
||||
- Create hub page linking to all competitor content
|
||||
|
||||
### Schema Markup
|
||||
|
||||
Consider FAQ schema for common questions:
|
||||
|
||||
```json
|
||||
{
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "What is the best alternative to [Competitor]?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "[Your answer positioning yourself]"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Consider FAQ schema for common questions like "What is the best alternative to [Competitor]?"
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
### Competitor Data File
|
||||
|
||||
```yaml
|
||||
# [competitor].yaml
|
||||
# Complete competitor profile for use across all comparison pages
|
||||
```
|
||||
Complete competitor profile in YAML format for use across all comparison pages.
|
||||
|
||||
### Page Content
|
||||
|
||||
For each page:
|
||||
- URL and meta tags
|
||||
- Full page copy organized by section
|
||||
- Comparison tables
|
||||
- CTAs
|
||||
For each page: URL, meta tags, full page copy organized by section, comparison tables, CTAs.
|
||||
|
||||
### Page Set Plan
|
||||
|
||||
Recommended pages to create:
|
||||
1. [List of alternative pages]
|
||||
2. [List of vs pages]
|
||||
3. Priority order based on search volume
|
||||
Recommended pages to create with priority order based on search volume.
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. Who are your top 3-5 competitors?
|
||||
2. What's your core differentiator?
|
||||
3. What are common reasons people switch to you?
|
||||
4. Do you have customer quotes about switching?
|
||||
5. What's your pricing vs. competitors?
|
||||
6. Do you offer migration support?
|
||||
1. What are common reasons people switch to you?
|
||||
2. Do you have customer quotes about switching?
|
||||
3. What's your pricing vs. competitors?
|
||||
4. Do you offer migration support?
|
||||
|
||||
---
|
||||
|
||||
@@ -748,3 +253,4 @@ If you need more context:
|
||||
- **copywriting**: For writing compelling comparison copy
|
||||
- **seo-audit**: For optimizing competitor pages
|
||||
- **schema-markup**: For FAQ and comparison schema
|
||||
- **sales-enablement**: For internal sales collateral, decks, and objection docs
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"skill_name": "competitor-alternatives",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Create a 'Best Asana Alternatives' page for our project management tool. We compete mainly on price (we're $8/user vs their $24/user) and simplicity (they've become bloated). Target audience is small teams (5-20 people).",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should identify this as the plural alternatives format ([Competitor] Alternatives). Should include the essential sections: TL;DR comparison, brief paragraphs on each alternative (including the user's product positioned first or prominently), feature comparison table, pricing comparison, who each alternative is best for. Should use the modular content architecture approach. Should address SEO considerations for the target keyword 'Asana alternatives.' Should position the user's product with the stated differentiators (price, simplicity).",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Identifies as plural alternatives format",
|
||||
"Includes TL;DR comparison section",
|
||||
"Includes feature comparison table",
|
||||
"Includes pricing comparison",
|
||||
"Includes 'who it's best for' per alternative",
|
||||
"Positions user's product prominently with differentiators",
|
||||
"Addresses SEO for target keyword"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Write a 'HubSpot vs Salesforce' comparison page. We're HubSpot and want to show why we're the better choice for SMBs.",
|
||||
"expected_output": "Should identify this as the 'you vs competitor' format. Should include structured comparison sections: overview of both, feature-by-feature comparison, pricing comparison, pros/cons of each, who each is best for, and migration path. Should be factually accurate about the competitor while strategically positioning the user's product. Should include a TL;DR at the top. Should address the SMB angle throughout. Should use the centralized competitor data architecture pattern.",
|
||||
"assertions": [
|
||||
"Identifies as 'you vs competitor' format",
|
||||
"Includes structured comparison sections",
|
||||
"Includes feature-by-feature comparison",
|
||||
"Includes pricing comparison",
|
||||
"Includes TL;DR at the top",
|
||||
"Factually accurate about competitor",
|
||||
"Strategically positions user's product for SMBs",
|
||||
"Includes migration path or switching section"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "we need a page targeting 'mailchimp alternative' (singular). we're an email marketing platform focused on e-commerce brands.",
|
||||
"expected_output": "Should trigger on casual phrasing. Should identify this as the singular alternative format ([Competitor] Alternative — positioning your product as THE alternative). Should focus the entire page on why the user's product is the best Mailchimp alternative for e-commerce. Should include: why people switch from Mailchimp, what the user's product does better (e-commerce specific features), feature comparison, pricing comparison, migration guide, customer testimonials. Should optimize for the singular keyword 'Mailchimp alternative.'",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Identifies as singular alternative format",
|
||||
"Focuses on user's product as THE alternative",
|
||||
"Includes why people switch from Mailchimp",
|
||||
"Highlights e-commerce-specific advantages",
|
||||
"Includes feature and pricing comparison",
|
||||
"Includes migration guide",
|
||||
"Optimizes for singular keyword"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Can you create a comparison page for 'Notion vs Coda'? We're a third-party review site, not affiliated with either product.",
|
||||
"expected_output": "Should identify this as the 'competitor vs competitor' format (third-party perspective). Should maintain objectivity since the user isn't either product. Should include balanced comparison: overview of both, feature comparison, pricing, pros/cons, use case recommendations. Should use the essential page sections from the skill. Should suggest how to monetize the page (affiliate links, CTA to the user's own product if relevant). Should address SEO for the 'Notion vs Coda' keyword.",
|
||||
"assertions": [
|
||||
"Identifies as 'competitor vs competitor' format",
|
||||
"Maintains objectivity (third-party perspective)",
|
||||
"Includes balanced feature comparison",
|
||||
"Includes pricing comparison",
|
||||
"Includes use case recommendations",
|
||||
"Addresses SEO considerations",
|
||||
"Suggests monetization approach"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "We want to build a whole competitor comparison hub. We have 5 main competitors and want to create alternative pages for each, plus head-to-head comparisons. How should we structure this?",
|
||||
"expected_output": "Should apply the centralized competitor data architecture. Should recommend a hub structure with: individual alternative pages for each competitor (5 singular pages), a 'best alternatives' roundup page, head-to-head comparison pages for key matchups. Should address internal linking strategy between these pages. Should recommend the research process for gathering competitive data. Should address URL structure and site architecture for the hub.",
|
||||
"assertions": [
|
||||
"Applies centralized competitor data architecture",
|
||||
"Recommends hub structure with multiple page types",
|
||||
"Suggests individual and roundup alternative pages",
|
||||
"Addresses internal linking between comparison pages",
|
||||
"Recommends research process for competitive data",
|
||||
"Addresses URL structure"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "I need to create a battle card for our sales team comparing us to Zendesk. It should help reps handle competitive objections during sales calls.",
|
||||
"expected_output": "Should recognize this as internal sales enablement material, not a public comparison page. Should defer to or cross-reference the sales-enablement skill, which handles battle cards, objection handling docs, and internal competitive collateral. May provide some competitive positioning advice but should make clear that sales-enablement is the right skill for internal sales materials.",
|
||||
"assertions": [
|
||||
"Recognizes this as internal sales enablement material",
|
||||
"References or defers to sales-enablement skill",
|
||||
"Does not attempt to create internal battle card using public comparison page patterns"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,271 @@
|
||||
# Content Architecture for Competitor Pages
|
||||
|
||||
How to structure and maintain competitor data for scalable comparison pages.
|
||||
|
||||
## Contents
|
||||
- Centralized Competitor Data
|
||||
- Competitor Data Template
|
||||
- Your Product Data
|
||||
- Page Generation
|
||||
- Index Page Structure (alternatives index, vs comparisons index, index page best practices)
|
||||
- Footer Navigation
|
||||
|
||||
## Centralized Competitor Data
|
||||
|
||||
Create a single source of truth for each competitor:
|
||||
|
||||
```
|
||||
competitor_data/
|
||||
├── notion.md
|
||||
├── airtable.md
|
||||
├── monday.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Competitor Data Template
|
||||
|
||||
Per competitor, document:
|
||||
|
||||
```yaml
|
||||
name: Notion
|
||||
website: notion.so
|
||||
tagline: "The all-in-one workspace"
|
||||
founded: 2016
|
||||
headquarters: San Francisco
|
||||
|
||||
# Positioning
|
||||
primary_use_case: "docs + light databases"
|
||||
target_audience: "teams wanting flexible workspace"
|
||||
market_position: "premium, feature-rich"
|
||||
|
||||
# Pricing
|
||||
pricing_model: per-seat
|
||||
free_tier: true
|
||||
free_tier_limits: "limited blocks, 1 user"
|
||||
starter_price: $8/user/month
|
||||
business_price: $15/user/month
|
||||
enterprise: custom
|
||||
|
||||
# Features (rate 1-5 or describe)
|
||||
features:
|
||||
documents: 5
|
||||
databases: 4
|
||||
project_management: 3
|
||||
collaboration: 4
|
||||
integrations: 3
|
||||
mobile_app: 3
|
||||
offline_mode: 2
|
||||
api: 4
|
||||
|
||||
# Strengths (be honest)
|
||||
strengths:
|
||||
- Extremely flexible and customizable
|
||||
- Beautiful, modern interface
|
||||
- Strong template ecosystem
|
||||
- Active community
|
||||
|
||||
# Weaknesses (be fair)
|
||||
weaknesses:
|
||||
- Can be slow with large databases
|
||||
- Learning curve for advanced features
|
||||
- Limited automations compared to dedicated tools
|
||||
- Offline mode is limited
|
||||
|
||||
# Best for
|
||||
best_for:
|
||||
- Teams wanting all-in-one workspace
|
||||
- Content-heavy workflows
|
||||
- Documentation-first teams
|
||||
- Startups and small teams
|
||||
|
||||
# Not ideal for
|
||||
not_ideal_for:
|
||||
- Complex project management needs
|
||||
- Large databases (1000s of rows)
|
||||
- Teams needing robust offline
|
||||
- Enterprise with strict compliance
|
||||
|
||||
# Common complaints (from reviews)
|
||||
common_complaints:
|
||||
- "Gets slow with lots of content"
|
||||
- "Hard to find things as workspace grows"
|
||||
- "Mobile app is clunky"
|
||||
|
||||
# Migration notes
|
||||
migration_from:
|
||||
difficulty: medium
|
||||
data_export: "Markdown, CSV, HTML"
|
||||
what_transfers: "Pages, databases"
|
||||
what_doesnt: "Automations, integrations setup"
|
||||
time_estimate: "1-3 days for small team"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Your Product Data
|
||||
|
||||
Same structure for yourself—be honest:
|
||||
|
||||
```yaml
|
||||
name: [Your Product]
|
||||
# ... same fields
|
||||
|
||||
strengths:
|
||||
- [Your real strengths]
|
||||
|
||||
weaknesses:
|
||||
- [Your honest weaknesses]
|
||||
|
||||
best_for:
|
||||
- [Your ideal customers]
|
||||
|
||||
not_ideal_for:
|
||||
- [Who should use something else]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Page Generation
|
||||
|
||||
Each page pulls from centralized data:
|
||||
|
||||
- **[Competitor] Alternative page**: Pulls competitor data + your data
|
||||
- **[Competitor] Alternatives page**: Pulls competitor data + your data + other alternatives
|
||||
- **You vs [Competitor] page**: Pulls your data + competitor data
|
||||
- **[A] vs [B] page**: Pulls both competitor data + your data
|
||||
|
||||
**Benefits**:
|
||||
- Update competitor pricing once, updates everywhere
|
||||
- Add new feature comparison once, appears on all pages
|
||||
- Consistent accuracy across pages
|
||||
- Easier to maintain at scale
|
||||
|
||||
---
|
||||
|
||||
## Index Page Structure
|
||||
|
||||
### Alternatives Index
|
||||
|
||||
**URL**: `/alternatives` or `/alternatives/index`
|
||||
|
||||
**Purpose**: Lists all "[Competitor] Alternative" pages
|
||||
|
||||
**Page structure**:
|
||||
1. Headline: "[Your Product] as an Alternative"
|
||||
2. Brief intro on why people switch to you
|
||||
3. List of all alternative pages with:
|
||||
- Competitor name/logo
|
||||
- One-line summary of key differentiator vs. that competitor
|
||||
- Link to full comparison
|
||||
4. Common reasons people switch (aggregated)
|
||||
5. CTA
|
||||
|
||||
**Example**:
|
||||
```markdown
|
||||
## Explore [Your Product] as an Alternative
|
||||
|
||||
Looking to switch? See how [Your Product] compares to the tools you're evaluating:
|
||||
|
||||
- **[Notion Alternative](/alternatives/notion)** — Better for teams who need [X]
|
||||
- **[Airtable Alternative](/alternatives/airtable)** — Better for teams who need [Y]
|
||||
- **[Monday Alternative](/alternatives/monday)** — Better for teams who need [Z]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Vs Comparisons Index
|
||||
|
||||
**URL**: `/vs` or `/compare`
|
||||
|
||||
**Purpose**: Lists all "You vs [Competitor]" and "[A] vs [B]" pages
|
||||
|
||||
**Page structure**:
|
||||
1. Headline: "Compare [Your Product]"
|
||||
2. Section: "[Your Product] vs Competitors" — list of direct comparisons
|
||||
3. Section: "Head-to-Head Comparisons" — list of [A] vs [B] pages
|
||||
4. Brief methodology note
|
||||
5. CTA
|
||||
|
||||
---
|
||||
|
||||
### Index Page Best Practices
|
||||
|
||||
**Keep them updated**: When you add a new comparison page, add it to the relevant index.
|
||||
|
||||
**Internal linking**:
|
||||
- Link from index → individual pages
|
||||
- Link from individual pages → back to index
|
||||
- Cross-link between related comparisons
|
||||
|
||||
**SEO value**:
|
||||
- Index pages can rank for broad terms like "project management tool comparisons"
|
||||
- Pass link equity to individual comparison pages
|
||||
- Help search engines discover all comparison content
|
||||
|
||||
**Sorting options**:
|
||||
- By popularity (search volume)
|
||||
- Alphabetically
|
||||
- By category/use case
|
||||
- By date added (show freshness)
|
||||
|
||||
**Include on index pages**:
|
||||
- Last updated date for credibility
|
||||
- Number of pages/comparisons available
|
||||
- Quick filters if you have many comparisons
|
||||
|
||||
---
|
||||
|
||||
## Footer Navigation
|
||||
|
||||
The site footer appears on all marketing pages, making it a powerful internal linking opportunity for competitor pages.
|
||||
|
||||
### Option 1: Link to Index Pages (Minimum)
|
||||
|
||||
At minimum, add links to your comparison index pages in the footer:
|
||||
|
||||
```
|
||||
Footer
|
||||
├── Compare
|
||||
│ ├── Alternatives → /alternatives
|
||||
│ └── Comparisons → /vs
|
||||
```
|
||||
|
||||
This ensures every marketing page passes link equity to your comparison content hub.
|
||||
|
||||
### Option 2: Footer Columns by Format (Recommended for SEO)
|
||||
|
||||
For stronger internal linking, create dedicated footer columns for each format you've built, linking directly to your top competitors:
|
||||
|
||||
```
|
||||
Footer
|
||||
├── [Product] vs ├── Alternatives to ├── Compare
|
||||
│ ├── vs Notion │ ├── Notion Alternative │ ├── Notion vs Airtable
|
||||
│ ├── vs Airtable │ ├── Airtable Alternative │ ├── Monday vs Asana
|
||||
│ ├── vs Monday │ ├── Monday Alternative │ ├── Notion vs Monday
|
||||
│ ├── vs Asana │ ├── Asana Alternative │ ├── ...
|
||||
│ ├── vs Clickup │ ├── Clickup Alternative │ └── View all →
|
||||
│ ├── ... │ ├── ... │
|
||||
│ └── View all → │ └── View all → │
|
||||
```
|
||||
|
||||
**Guidelines**:
|
||||
- Include up to 8 links per column (top competitors by search volume)
|
||||
- Add "View all" link to the full index page
|
||||
- Only create columns for formats you've actually built pages for
|
||||
- Prioritize competitors with highest search volume
|
||||
|
||||
### Why Footer Links Matter
|
||||
|
||||
1. **Sitewide distribution**: Footer links appear on every marketing page, passing link equity from your entire site to comparison content
|
||||
2. **Crawl efficiency**: Search engines discover all comparison pages quickly
|
||||
3. **User discovery**: Visitors evaluating your product can easily find comparisons
|
||||
4. **Competitive positioning**: Signals to search engines that you're a key player in the space
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
- Update footer when adding new high-priority comparison pages
|
||||
- Keep footer clean—don't list every comparison, just the top ones
|
||||
- Match column headers to your URL structure (e.g., "vs" column → `/vs/` URLs)
|
||||
- Consider mobile: columns may stack, so order by priority
|
||||
@@ -0,0 +1,223 @@
|
||||
# Section Templates for Competitor Pages
|
||||
|
||||
Ready-to-use templates for each section of competitor comparison pages.
|
||||
|
||||
## Contents
|
||||
- TL;DR Summary
|
||||
- Paragraph Comparison (Not Just Tables)
|
||||
- Feature Comparison Section
|
||||
- Pricing Comparison Section
|
||||
- Service & Support Comparison
|
||||
- Who It's For Section
|
||||
- Migration Section
|
||||
- Social Proof Section
|
||||
- Comparison Table Best Practices (beyond checkmarks, organize by category, include ratings where useful)
|
||||
|
||||
## TL;DR Summary
|
||||
|
||||
Start every page with a quick summary for scanners:
|
||||
|
||||
```markdown
|
||||
**TL;DR**: [Competitor] excels at [strength] but struggles with [weakness].
|
||||
[Your product] is built for [your focus], offering [key differentiator].
|
||||
Choose [Competitor] if [their ideal use case]. Choose [You] if [your ideal use case].
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Paragraph Comparison (Not Just Tables)
|
||||
|
||||
For each major dimension, write a paragraph:
|
||||
|
||||
```markdown
|
||||
## Features
|
||||
|
||||
[Competitor] offers [description of their feature approach].
|
||||
Their strength is [specific strength], which works well for [use case].
|
||||
However, [limitation] can be challenging for [user type].
|
||||
|
||||
[Your product] takes a different approach with [your approach].
|
||||
This means [benefit], though [honest tradeoff].
|
||||
Teams who [specific need] often find this more effective.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Feature Comparison Section
|
||||
|
||||
Go beyond checkmarks:
|
||||
|
||||
```markdown
|
||||
## Feature Comparison
|
||||
|
||||
### [Feature Category]
|
||||
|
||||
**[Competitor]**: [2-3 sentence description of how they handle this]
|
||||
- Strengths: [specific]
|
||||
- Limitations: [specific]
|
||||
|
||||
**[Your product]**: [2-3 sentence description]
|
||||
- Strengths: [specific]
|
||||
- Limitations: [specific]
|
||||
|
||||
**Bottom line**: Choose [Competitor] if [scenario]. Choose [You] if [scenario].
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pricing Comparison Section
|
||||
|
||||
```markdown
|
||||
## Pricing
|
||||
|
||||
| | [Competitor] | [Your Product] |
|
||||
|---|---|---|
|
||||
| Free tier | [Details] | [Details] |
|
||||
| Starting price | $X/user/mo | $X/user/mo |
|
||||
| Business tier | $X/user/mo | $X/user/mo |
|
||||
| Enterprise | Custom | Custom |
|
||||
|
||||
**What's included**: [Competitor]'s $X plan includes [features], while
|
||||
[Your product]'s $X plan includes [features].
|
||||
|
||||
**Total cost consideration**: Beyond per-seat pricing, consider [hidden costs,
|
||||
add-ons, implementation]. [Competitor] charges extra for [X], while
|
||||
[Your product] includes [Y] in base pricing.
|
||||
|
||||
**Value comparison**: For a 10-person team, [Competitor] costs approximately
|
||||
$X/year while [Your product] costs $Y/year, with [key differences in what you get].
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Service & Support Comparison
|
||||
|
||||
```markdown
|
||||
## Service & Support
|
||||
|
||||
| | [Competitor] | [Your Product] |
|
||||
|---|---|---|
|
||||
| Documentation | [Quality assessment] | [Quality assessment] |
|
||||
| Response time | [SLA if known] | [Your SLA] |
|
||||
| Support channels | [List] | [List] |
|
||||
| Onboarding | [What they offer] | [What you offer] |
|
||||
| CSM included | [At what tier] | [At what tier] |
|
||||
|
||||
**Support quality**: Based on [G2/Capterra reviews, your research],
|
||||
[Competitor] support is described as [assessment]. Common feedback includes
|
||||
[quotes or themes].
|
||||
|
||||
[Your product] offers [your support approach]. [Specific differentiator like
|
||||
response time, dedicated CSM, implementation help].
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Who It's For Section
|
||||
|
||||
```markdown
|
||||
## Who Should Choose [Competitor]
|
||||
|
||||
[Competitor] is the right choice if:
|
||||
- [Specific use case or need]
|
||||
- [Team type or size]
|
||||
- [Workflow or requirement]
|
||||
- [Budget or priority]
|
||||
|
||||
**Ideal [Competitor] customer**: [Persona description in 1-2 sentences]
|
||||
|
||||
## Who Should Choose [Your Product]
|
||||
|
||||
[Your product] is built for teams who:
|
||||
- [Specific use case or need]
|
||||
- [Team type or size]
|
||||
- [Workflow or requirement]
|
||||
- [Priority or value]
|
||||
|
||||
**Ideal [Your product] customer**: [Persona description in 1-2 sentences]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Migration Section
|
||||
|
||||
```markdown
|
||||
## Switching from [Competitor]
|
||||
|
||||
### What transfers
|
||||
- [Data type]: [How easily, any caveats]
|
||||
- [Data type]: [How easily, any caveats]
|
||||
|
||||
### What needs reconfiguration
|
||||
- [Thing]: [Why and effort level]
|
||||
- [Thing]: [Why and effort level]
|
||||
|
||||
### Migration support
|
||||
|
||||
We offer [migration support details]:
|
||||
- [Free data import tool / white-glove migration]
|
||||
- [Documentation / migration guide]
|
||||
- [Timeline expectation]
|
||||
- [Support during transition]
|
||||
|
||||
### What customers say about switching
|
||||
|
||||
> "[Quote from customer who switched]"
|
||||
> — [Name], [Role] at [Company]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Social Proof Section
|
||||
|
||||
Focus on switchers:
|
||||
|
||||
```markdown
|
||||
## What Customers Say
|
||||
|
||||
### Switched from [Competitor]
|
||||
|
||||
> "[Specific quote about why they switched and outcome]"
|
||||
> — [Name], [Role] at [Company]
|
||||
|
||||
> "[Another quote]"
|
||||
> — [Name], [Role] at [Company]
|
||||
|
||||
### Results after switching
|
||||
- [Company] saw [specific result]
|
||||
- [Company] reduced [metric] by [amount]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Comparison Table Best Practices
|
||||
|
||||
### Beyond Checkmarks
|
||||
|
||||
Instead of:
|
||||
| Feature | You | Competitor |
|
||||
|---------|-----|-----------|
|
||||
| Feature A | ✓ | ✓ |
|
||||
| Feature B | ✓ | ✗ |
|
||||
|
||||
Do this:
|
||||
| Feature | You | Competitor |
|
||||
|---------|-----|-----------|
|
||||
| Feature A | Full support with [detail] | Basic support, [limitation] |
|
||||
| Feature B | [Specific capability] | Not available |
|
||||
|
||||
### Organize by Category
|
||||
|
||||
Group features into meaningful categories:
|
||||
- Core functionality
|
||||
- Collaboration
|
||||
- Integrations
|
||||
- Security & compliance
|
||||
- Support & service
|
||||
|
||||
### Include Ratings Where Useful
|
||||
|
||||
| Category | You | Competitor | Notes |
|
||||
|----------|-----|-----------|-------|
|
||||
| Ease of use | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | [Brief note] |
|
||||
| Feature depth | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | [Brief note] |
|
||||
@@ -0,0 +1,411 @@
|
||||
---
|
||||
name: competitor-profiling
|
||||
description: "When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,' 'competitor analysis,' 'profile this competitor,' 'analyze competitor,' 'competitive intelligence,' 'competitor deep dive,' 'who are my competitors,' 'competitor landscape,' 'competitor dossier,' 'competitive audit,' or 'research these competitors.' Input is a list of competitor URLs. Output is structured competitor profile markdown files. For creating comparison/alternative pages from profiles, see competitor-alternatives. For sales-specific battle cards, see sales-enablement."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Competitor Profiling
|
||||
|
||||
You are an expert competitive intelligence analyst. Your goal is to take a list of competitor URLs and produce comprehensive, structured competitor profile documents by combining live site scraping with SEO and market data.
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered.
|
||||
|
||||
Before profiling, confirm:
|
||||
|
||||
1. **Competitor URLs** — the list of competitor website URLs to profile
|
||||
2. **Your product** — what you do (if not in product marketing context)
|
||||
3. **Depth level** — quick scan (key facts only) or deep profile (full research)
|
||||
4. **Focus areas** — any specific dimensions to prioritize (e.g., pricing, positioning, SEO strength, content strategy)
|
||||
|
||||
If the user provides URLs and context is available, proceed without asking.
|
||||
|
||||
---
|
||||
|
||||
## Core Principles
|
||||
|
||||
### 1. Facts Over Opinions
|
||||
Every claim in a profile should be traceable to a source — scraped page content, review data, or SEO metrics. Label inferences clearly.
|
||||
|
||||
### 2. Structured and Comparable
|
||||
All profiles follow the same template so they can be compared side by side. Consistency matters more than completeness on any single profile.
|
||||
|
||||
### 3. Current Data
|
||||
Profiles are snapshots. Always include the date generated. Flag anything that looks stale (e.g., "pricing page last updated 2023").
|
||||
|
||||
### 4. Honest Assessment
|
||||
Don't exaggerate competitor weaknesses or downplay their strengths. Accurate profiles are useful profiles.
|
||||
|
||||
---
|
||||
|
||||
## Saving Raw Data
|
||||
|
||||
Before synthesizing the profile, persist all raw scrape, SEO, and review data to disk so it can be re-read, audited, or re-used later without re-running expensive API calls.
|
||||
|
||||
**Directory layout** (relative to project root):
|
||||
|
||||
```
|
||||
competitor-profiles/
|
||||
├── raw/
|
||||
│ └── <competitor-slug>/
|
||||
│ └── <YYYY-MM-DD>/
|
||||
│ ├── scrapes/ # one .md file per scraped page (homepage.md, pricing.md, ...)
|
||||
│ ├── seo/ # one .json file per DataForSEO call (backlinks-summary.json, ranked-keywords.json, ...)
|
||||
│ └── reviews/ # one .md or .json file per review source (g2.md, capterra.md, ...)
|
||||
├── <competitor-slug>.md # final synthesized profile
|
||||
└── _summary.md # cross-competitor summary
|
||||
```
|
||||
|
||||
Rules:
|
||||
|
||||
- `<competitor-slug>` is lowercase, hyphenated (e.g. `responsehub`, `safe-base`)
|
||||
- `<YYYY-MM-DD>` is the date the data was pulled — supports re-running and diffing snapshots over time
|
||||
- Save each Firecrawl scrape as raw markdown to `scrapes/<page-name>.md`
|
||||
- Save each DataForSEO response as raw JSON to `seo/<endpoint-name>.json`
|
||||
- Save each review source to `reviews/<source>.md` (cleaned text) or `.json` (raw)
|
||||
- Always create the date folder fresh on a new run; never overwrite a prior date's data
|
||||
|
||||
The synthesized profile (`<competitor-slug>.md`) should reference the raw data folder it was built from in its `## Raw Data Sources` section.
|
||||
|
||||
---
|
||||
|
||||
## Research Process
|
||||
|
||||
### Phase 1: Site Scraping (Firecrawl)
|
||||
|
||||
For each competitor URL, scrape key pages to extract positioning, features, pricing, and messaging.
|
||||
|
||||
#### Step 1: Map the site
|
||||
|
||||
Use **Firecrawl Map** to discover the competitor's site structure and identify key pages:
|
||||
|
||||
```
|
||||
firecrawl_map → competitor URL
|
||||
```
|
||||
|
||||
From the map, identify and prioritize these page types:
|
||||
- Homepage
|
||||
- Pricing page
|
||||
- Features / product pages
|
||||
- About / company page
|
||||
- Blog (top-level, for content strategy signals)
|
||||
- Customers / case studies page
|
||||
- Integrations page
|
||||
- Changelog / what's new (if exists)
|
||||
|
||||
#### Step 2: Scrape key pages
|
||||
|
||||
Use **Firecrawl Scrape** on each identified page:
|
||||
|
||||
```
|
||||
firecrawl_scrape → each key page URL
|
||||
```
|
||||
|
||||
Save each result to `competitor-profiles/raw/<competitor-slug>/<YYYY-MM-DD>/scrapes/<page-name>.md` before extracting fields.
|
||||
|
||||
Extract from each page:
|
||||
|
||||
| Page | What to Extract |
|
||||
|------|----------------|
|
||||
| **Homepage** | Headline, subheadline, value proposition, primary CTA, social proof claims, target audience signals |
|
||||
| **Pricing** | Tiers, prices, feature breakdown per tier, billing options, free tier/trial details, enterprise pricing signals |
|
||||
| **Features** | Feature categories, key capabilities, how they describe each feature, screenshots/demo signals |
|
||||
| **About** | Founding story, team size, funding, mission statement, headquarters |
|
||||
| **Customers** | Named customers, logos, industries served, case study themes |
|
||||
| **Integrations** | Integration count, key integrations, categories |
|
||||
| **Changelog** | Release velocity, recent focus areas, product direction signals |
|
||||
|
||||
#### Step 3: Scrape competitor reviews (optional but high-value)
|
||||
|
||||
Use **Firecrawl Scrape** or **Firecrawl Search** to find:
|
||||
- G2 reviews page for the competitor
|
||||
- Capterra reviews page
|
||||
- Product Hunt launch page
|
||||
- TrustRadius profile
|
||||
|
||||
Save each scraped review page to `competitor-profiles/raw/<competitor-slug>/<YYYY-MM-DD>/reviews/<source>.md`. Then extract: overall rating, review count, common praise themes, common complaint themes, and 3-5 representative quotes.
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: SEO & Market Data (DataForSEO)
|
||||
|
||||
Use DataForSEO MCP tools to gather quantitative competitive intelligence. Save each raw response as JSON to `competitor-profiles/raw/<competitor-slug>/<YYYY-MM-DD>/seo/<endpoint-name>.json` before parsing it into the profile. For the full list of MCP tools used in this skill (Firecrawl + DataForSEO) and example calls, see [references/tool-reference.md](references/tool-reference.md).
|
||||
|
||||
#### Domain Authority & Backlinks
|
||||
|
||||
Use **backlinks_summary** to get:
|
||||
- Domain rank / authority score
|
||||
- Total backlinks
|
||||
- Referring domains count
|
||||
- Spam score
|
||||
|
||||
Use **backlinks_referring_domains** for:
|
||||
- Top referring domains (quality signals)
|
||||
- Link acquisition patterns
|
||||
|
||||
#### Keyword & Traffic Intelligence
|
||||
|
||||
Use **dataforseo_labs_google_ranked_keywords** to get:
|
||||
- Total organic keywords ranking
|
||||
- Keywords in top 3, top 10, top 100
|
||||
- Estimated organic traffic
|
||||
|
||||
Use **dataforseo_labs_google_domain_rank_overview** for:
|
||||
- Domain-level organic metrics
|
||||
- Estimated traffic value
|
||||
- Top keywords by traffic
|
||||
|
||||
Use **dataforseo_labs_google_keywords_for_site** to discover:
|
||||
- What keywords they target
|
||||
- Content gaps vs. your site
|
||||
|
||||
#### Competitive Positioning Data
|
||||
|
||||
Use **dataforseo_labs_google_competitors_domain** to find:
|
||||
- Their closest organic competitors (may reveal competitors you haven't considered)
|
||||
- Market overlap data
|
||||
|
||||
Use **dataforseo_labs_google_relevant_pages** to find:
|
||||
- Their highest-traffic pages
|
||||
- Content that drives the most organic value
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Synthesis
|
||||
|
||||
Combine scraped content with SEO data to build the profile. Cross-reference claims (e.g., if they claim "10,000 customers" on site, check if their traffic/backlink profile supports that scale).
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
### Profile Document Structure
|
||||
|
||||
Generate one markdown file per competitor, saved to a `competitor-profiles/` directory in the project root.
|
||||
|
||||
**Filename**: `competitor-profiles/[competitor-name].md`
|
||||
|
||||
**For the full profile and summary templates**: See [references/templates.md](references/templates.md)
|
||||
|
||||
Each profile follows this structure:
|
||||
|
||||
```markdown
|
||||
# [Competitor Name] — Competitor Profile
|
||||
|
||||
**URL**: [website]
|
||||
**Generated**: [date]
|
||||
**Depth**: [quick scan / deep profile]
|
||||
|
||||
---
|
||||
|
||||
## At a Glance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Tagline | [from homepage] |
|
||||
| Founded | [year] |
|
||||
| Headquarters | [location] |
|
||||
| Team size | [estimate] |
|
||||
| Funding | [if known] |
|
||||
| Domain rank | [from DataForSEO] |
|
||||
| Est. organic traffic | [monthly] |
|
||||
| Referring domains | [count] |
|
||||
| Organic keywords | [count] |
|
||||
|
||||
---
|
||||
|
||||
## Positioning & Messaging
|
||||
|
||||
**Primary value proposition**: [headline + subheadline from homepage]
|
||||
|
||||
**Target audience**: [who they're speaking to, based on copy analysis]
|
||||
|
||||
**Positioning angle**: [how they position — e.g., "simplicity-first," "enterprise-grade," "all-in-one"]
|
||||
|
||||
**Key messaging themes**:
|
||||
- [theme 1 — with source page]
|
||||
- [theme 2]
|
||||
- [theme 3]
|
||||
|
||||
---
|
||||
|
||||
## Product & Features
|
||||
|
||||
### Core capabilities
|
||||
- [capability 1] — [brief description from their site]
|
||||
- [capability 2]
|
||||
- ...
|
||||
|
||||
### Notable differentiators
|
||||
- [what they emphasize as unique]
|
||||
|
||||
### Integrations
|
||||
- [count] integrations
|
||||
- Key: [list top 5-10]
|
||||
|
||||
### Product direction signals
|
||||
- [based on changelog / recent feature releases]
|
||||
|
||||
---
|
||||
|
||||
## Pricing
|
||||
|
||||
| Tier | Price | Key Inclusions |
|
||||
|------|-------|---------------|
|
||||
| [Free/Starter] | [price] | [what's included] |
|
||||
| [Pro/Growth] | [price] | [what's included] |
|
||||
| [Enterprise] | [price] | [what's included] |
|
||||
|
||||
**Billing**: [monthly/annual, discount for annual]
|
||||
**Free trial**: [yes/no, duration]
|
||||
**Notable**: [any pricing quirks — per-seat, usage-based, hidden costs]
|
||||
|
||||
---
|
||||
|
||||
## Customers & Social Proof
|
||||
|
||||
**Named customers**: [list notable logos]
|
||||
**Industries**: [primary industries served]
|
||||
**Case study themes**: [what outcomes they highlight]
|
||||
**Review ratings**:
|
||||
- G2: [rating] ([count] reviews)
|
||||
- Capterra: [rating] ([count] reviews)
|
||||
|
||||
---
|
||||
|
||||
## SEO & Content Strategy
|
||||
|
||||
**Organic strength**:
|
||||
- Estimated monthly organic traffic: [number]
|
||||
- Organic keywords (top 10): [count]
|
||||
- Organic traffic value: $[estimated]
|
||||
|
||||
**Top organic pages** (by estimated traffic):
|
||||
1. [page URL] — [keyword] — [est. traffic]
|
||||
2. [page URL] — [keyword] — [est. traffic]
|
||||
3. [page URL] — [keyword] — [est. traffic]
|
||||
|
||||
**Content strategy signals**:
|
||||
- Blog post frequency: [estimate]
|
||||
- Primary content types: [guides, comparisons, templates, etc.]
|
||||
- Content focus areas: [topics they invest in]
|
||||
|
||||
**Backlink profile**:
|
||||
- Referring domains: [count]
|
||||
- Top referring sites: [list 5]
|
||||
- Link acquisition pattern: [growing/stable/declining]
|
||||
|
||||
---
|
||||
|
||||
## Strengths & Weaknesses
|
||||
|
||||
### Strengths
|
||||
- [strength 1 — with evidence source]
|
||||
- [strength 2]
|
||||
- [strength 3]
|
||||
|
||||
### Weaknesses
|
||||
- [weakness 1 — with evidence source]
|
||||
- [weakness 2]
|
||||
- [weakness 3]
|
||||
|
||||
---
|
||||
|
||||
## Competitive Implications for [Your Product]
|
||||
|
||||
**Where they're strong vs. us**: [areas where this competitor has an advantage]
|
||||
|
||||
**Where we're strong vs. them**: [areas where you have an advantage]
|
||||
|
||||
**Opportunities**: [gaps in their offering or positioning we can exploit]
|
||||
|
||||
**Threats**: [areas where they're improving or gaining ground]
|
||||
|
||||
---
|
||||
|
||||
## Raw Data Sources
|
||||
|
||||
- Homepage scraped: [date]
|
||||
- Pricing page scraped: [date]
|
||||
- SEO data pulled: [date]
|
||||
- Review data pulled: [date, sources]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Summary Document
|
||||
|
||||
After profiling all competitors, generate a `competitor-profiles/_summary.md` that includes:
|
||||
|
||||
1. **Competitor landscape overview** — one paragraph summarizing the competitive field
|
||||
2. **Comparison table** — key metrics side by side for all profiled competitors
|
||||
3. **Positioning map** — where each competitor sits (e.g., simple↔complex, cheap↔premium)
|
||||
4. **Key takeaways** — 3-5 strategic observations from the research
|
||||
5. **Gaps and opportunities** — where the market is underserved
|
||||
|
||||
---
|
||||
|
||||
## Quick Scan vs. Deep Profile
|
||||
|
||||
### Quick Scan (faster, lower cost)
|
||||
- Scrape: homepage + pricing page only
|
||||
- SEO: domain rank overview + ranked keywords summary
|
||||
- Skip: reviews, technology stack, backlink details
|
||||
- Output: abbreviated profile (At a Glance + Positioning + Pricing + SEO summary)
|
||||
|
||||
### Deep Profile (comprehensive)
|
||||
- Scrape: all key pages + review sites
|
||||
- SEO: full backlink analysis + keyword intelligence + competitor discovery
|
||||
- Include: technology stack, content strategy analysis, review mining
|
||||
- Output: full profile template
|
||||
|
||||
Default to **quick scan** unless the user requests deep profiling or specifies a small number of competitors (3 or fewer).
|
||||
|
||||
---
|
||||
|
||||
## Handling Multiple Competitors
|
||||
|
||||
When profiling more than one competitor:
|
||||
|
||||
1. **Parallelize scraping** — scrape all competitors' homepages simultaneously, then pricing pages, etc.
|
||||
2. **Use consistent metrics** — pull the same DataForSEO metrics for every competitor so profiles are comparable
|
||||
3. **Build the summary last** — after all individual profiles are complete
|
||||
4. **Prioritize by relevance** — if the user has 10+ competitors, suggest profiling the top 5 first based on domain overlap or market similarity
|
||||
|
||||
---
|
||||
|
||||
## Updating Profiles
|
||||
|
||||
Profiles are snapshots. When updating:
|
||||
|
||||
- Check pricing pages first (most volatile)
|
||||
- Re-pull SEO metrics (traffic and rankings shift monthly)
|
||||
- Scan changelog for product changes
|
||||
- Update the "Generated" date
|
||||
- Note what changed since last profile in a `## Change Log` section at the bottom
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
Only ask if not answered by context or input:
|
||||
|
||||
1. What competitor URLs should I profile?
|
||||
2. Quick scan or deep profile?
|
||||
3. Any specific dimensions to focus on (pricing, SEO, positioning)?
|
||||
4. Should I compare findings against your product?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **competitor-alternatives**: For creating comparison/alternative pages from these profiles
|
||||
- **customer-research**: For mining reviews and community sentiment in depth
|
||||
- **content-strategy**: For using competitor content gaps to plan your own content
|
||||
- **seo-audit**: For auditing your own site relative to competitors
|
||||
- **sales-enablement**: For turning profiles into battle cards and sales collateral
|
||||
- **paid-ads**: For analyzing competitor ad strategies
|
||||
- **pricing-strategy**: For deeper pricing analysis informed by competitor profiles
|
||||
@@ -0,0 +1,167 @@
|
||||
# Profile Templates
|
||||
|
||||
Ready-to-use templates for competitor profile sections and the summary document.
|
||||
|
||||
## Contents
|
||||
- Quick Scan Template
|
||||
- Summary Comparison Table
|
||||
- Positioning Map
|
||||
- Competitive SWOT
|
||||
- Profile Update Changelog
|
||||
|
||||
---
|
||||
|
||||
## Quick Scan Template
|
||||
|
||||
Abbreviated profile for when speed matters more than depth.
|
||||
|
||||
```markdown
|
||||
# [Competitor Name] — Quick Profile
|
||||
|
||||
**URL**: [website]
|
||||
**Generated**: [date]
|
||||
|
||||
## At a Glance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Tagline | [from homepage] |
|
||||
| Target audience | [inferred from copy] |
|
||||
| Pricing starts at | [lowest paid tier] |
|
||||
| Free tier/trial | [yes/no + details] |
|
||||
| Domain rank | [from DataForSEO] |
|
||||
| Est. organic traffic | [monthly] |
|
||||
| Organic keywords (top 10) | [count] |
|
||||
| Referring domains | [count] |
|
||||
|
||||
## Positioning
|
||||
|
||||
**Headline**: "[exact homepage headline]"
|
||||
**Subheadline**: "[exact subheadline]"
|
||||
**Positioning angle**: [1-2 sentence summary of how they position]
|
||||
|
||||
## Pricing Summary
|
||||
|
||||
| Tier | Price | Notable Inclusions |
|
||||
|------|-------|-------------------|
|
||||
| [tier] | [price] | [key items] |
|
||||
| [tier] | [price] | [key items] |
|
||||
|
||||
## Key Takeaway
|
||||
|
||||
[2-3 sentences: what makes this competitor notable, where they're strong, where they're weak]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Summary Comparison Table
|
||||
|
||||
Use after profiling all competitors to create a side-by-side view.
|
||||
|
||||
```markdown
|
||||
# Competitive Landscape Summary
|
||||
|
||||
**Generated**: [date]
|
||||
**Your product**: [name]
|
||||
**Competitors profiled**: [count]
|
||||
|
||||
## Side-by-Side Comparison
|
||||
|
||||
| Dimension | [Your Product] | [Competitor 1] | [Competitor 2] | [Competitor 3] |
|
||||
|-----------|---------------|----------------|----------------|----------------|
|
||||
| **Tagline** | [yours] | [theirs] | [theirs] | [theirs] |
|
||||
| **Target audience** | [yours] | [theirs] | [theirs] | [theirs] |
|
||||
| **Positioning** | [angle] | [angle] | [angle] | [angle] |
|
||||
| **Starting price** | $[X]/mo | $[X]/mo | $[X]/mo | $[X]/mo |
|
||||
| **Free tier** | [yes/no] | [yes/no] | [yes/no] | [yes/no] |
|
||||
| **Domain rank** | [score] | [score] | [score] | [score] |
|
||||
| **Est. organic traffic** | [number] | [number] | [number] | [number] |
|
||||
| **Referring domains** | [count] | [count] | [count] | [count] |
|
||||
| **G2 rating** | [score] | [score] | [score] | [score] |
|
||||
| **Key strength** | [one-liner] | [one-liner] | [one-liner] | [one-liner] |
|
||||
| **Key weakness** | [one-liner] | [one-liner] | [one-liner] | [one-liner] |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Positioning Map
|
||||
|
||||
Visual representation of where competitors sit along two key dimensions. Choose the two axes most relevant to your market.
|
||||
|
||||
### Common Axis Pairs
|
||||
|
||||
| Market Type | X-Axis | Y-Axis |
|
||||
|-------------|--------|--------|
|
||||
| SaaS tools | Simple → Complex | Cheap → Expensive |
|
||||
| Developer tools | Low-code → Code-first | Individual → Team |
|
||||
| B2B platforms | SMB-focused → Enterprise-focused | Point solution → Platform |
|
||||
| Content tools | Template-driven → Custom | Self-serve → Managed |
|
||||
|
||||
### Format
|
||||
|
||||
```markdown
|
||||
## Positioning Map
|
||||
|
||||
**Axes**: [X-axis label] vs. [Y-axis label]
|
||||
|
||||
[Y-axis high label]
|
||||
│
|
||||
│
|
||||
[Competitor A] │ [Competitor B]
|
||||
│
|
||||
───────────────────────┼───────────────────────
|
||||
[X-axis low] │ [X-axis high]
|
||||
│
|
||||
[Your Product] │ [Competitor C]
|
||||
│
|
||||
[Y-axis low label]
|
||||
|
||||
### Interpretation
|
||||
- [1-2 sentences about what the map reveals]
|
||||
- [where the whitespace / opportunity is]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Competitive SWOT
|
||||
|
||||
Per-competitor SWOT relative to your product.
|
||||
|
||||
```markdown
|
||||
## SWOT: [Competitor] vs. [Your Product]
|
||||
|
||||
### Strengths (theirs vs. ours)
|
||||
- [Where they genuinely outperform us — be honest]
|
||||
|
||||
### Weaknesses (theirs vs. ours)
|
||||
- [Where they fall short compared to us — with evidence]
|
||||
|
||||
### Opportunities (for us)
|
||||
- [Gaps in their offering we can exploit]
|
||||
- [Segments they're ignoring]
|
||||
- [Messaging angles they're missing]
|
||||
|
||||
### Threats (from them)
|
||||
- [Areas where they're improving fast]
|
||||
- [Features they're building that overlap with us]
|
||||
- [Market moves that could shift perception]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Profile Update Changelog
|
||||
|
||||
Append to the bottom of any profile when updating it.
|
||||
|
||||
```markdown
|
||||
---
|
||||
|
||||
## Change Log
|
||||
|
||||
| Date | What Changed | Source |
|
||||
|------|-------------|--------|
|
||||
| [date] | Pricing increased from $X to $Y | Pricing page re-scrape |
|
||||
| [date] | Launched [feature] | Changelog scrape |
|
||||
| [date] | Domain rank changed from X to Y | DataForSEO re-pull |
|
||||
| [date] | Added [integration] | Integrations page re-scrape |
|
||||
```
|
||||
@@ -0,0 +1,179 @@
|
||||
# MCP Tool Reference for Competitor Profiling
|
||||
|
||||
Quick reference for the Firecrawl and DataForSEO MCP tools used in competitor profiling.
|
||||
|
||||
## Contents
|
||||
- Firecrawl Tools (site scraping)
|
||||
- DataForSEO Tools (SEO & market data)
|
||||
- Recommended Execution Order
|
||||
- Error Handling
|
||||
|
||||
---
|
||||
|
||||
## Firecrawl Tools
|
||||
|
||||
### firecrawl_map
|
||||
**Purpose**: Discover all URLs on a competitor's site to identify key pages.
|
||||
**When to use**: First step for every competitor — before scraping individual pages.
|
||||
**Key output**: List of URLs with their page types/paths.
|
||||
**Tip**: Look for paths containing `/pricing`, `/features`, `/about`, `/customers`, `/integrations`, `/blog`, `/changelog`.
|
||||
|
||||
### firecrawl_scrape
|
||||
**Purpose**: Extract content from a single page as clean markdown.
|
||||
**When to use**: After mapping, scrape each key page individually.
|
||||
**Key output**: Page content in markdown format — headlines, body text, structured data.
|
||||
**Tip**: Scrape homepage first — it reveals positioning, audience, and social proof in one shot.
|
||||
|
||||
### firecrawl_search
|
||||
**Purpose**: Search the web for specific content about a competitor.
|
||||
**When to use**: Finding review pages, press coverage, or competitor mentions not on their own site.
|
||||
**Example queries**:
|
||||
- `"[Competitor Name]" site:g2.com`
|
||||
- `"[Competitor Name]" review`
|
||||
- `"[Competitor Name]" funding OR raised`
|
||||
|
||||
### firecrawl_crawl
|
||||
**Purpose**: Crawl multiple pages from a site in one operation.
|
||||
**When to use**: Deep profiles where you want to analyze many pages (e.g., all feature pages, all blog posts). More expensive — use selectively.
|
||||
**Tip**: Set page limits to avoid crawling entire sites. Target specific URL patterns.
|
||||
|
||||
### firecrawl_extract
|
||||
**Purpose**: Extract structured data from a page using a schema.
|
||||
**When to use**: When you need specific data points in a consistent format (e.g., pricing tier details, feature lists).
|
||||
**Tip**: Define a clear schema for what you want extracted — more reliable than parsing raw markdown.
|
||||
|
||||
---
|
||||
|
||||
## DataForSEO MCP Tools
|
||||
|
||||
### Domain-Level Intelligence
|
||||
|
||||
#### backlinks_summary
|
||||
**Purpose**: Get domain authority, total backlinks, referring domains, spam score.
|
||||
**Input**: Target domain (e.g., `competitor.com`)
|
||||
**Key metrics**: `domain_rank`, `total_backlinks`, `referring_domains`, `backlinks_spam_score`
|
||||
|
||||
#### backlinks_referring_domains
|
||||
**Purpose**: List top referring domains — shows where their link equity comes from.
|
||||
**Input**: Target domain + limit
|
||||
**Key metrics**: Per-domain: `rank`, `backlinks`, `domain` name
|
||||
|
||||
#### dataforseo_labs_google_domain_rank_overview
|
||||
**Purpose**: Organic search overview — traffic, keywords, traffic value.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `organic_count` (keywords), `organic_traffic` (estimated monthly), `organic_cost` (traffic value in $)
|
||||
|
||||
#### dataforseo_labs_google_ranked_keywords
|
||||
**Purpose**: What keywords a domain ranks for, with positions.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: Per-keyword: `keyword`, `position`, `search_volume`, `url` (ranking page)
|
||||
**Tip**: Sort by traffic to find their highest-value keywords.
|
||||
|
||||
#### dataforseo_labs_google_keywords_for_site
|
||||
**Purpose**: Keywords relevant to a domain — broader than ranked keywords, includes opportunities.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `keyword`, `search_volume`, `competition`, `cpc`
|
||||
|
||||
### Competitive Analysis
|
||||
|
||||
#### dataforseo_labs_google_competitors_domain
|
||||
**Purpose**: Find a domain's closest organic competitors by keyword overlap.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `domain`, `avg_position`, `intersections` (shared keywords), `full_domain_rank`
|
||||
**Tip**: May reveal competitors the user hasn't considered.
|
||||
|
||||
#### dataforseo_labs_google_domain_intersection
|
||||
**Purpose**: Find keywords where two domains both rank — shows direct competition.
|
||||
**Input**: Two target domains
|
||||
**Key metrics**: `keyword`, position for each domain, `search_volume`
|
||||
**Tip**: Use this to compare the user's domain vs. each competitor.
|
||||
|
||||
#### dataforseo_labs_google_relevant_pages
|
||||
**Purpose**: Find a domain's most important pages by organic traffic.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `page`, `metrics` (traffic, keywords per page)
|
||||
**Tip**: Reveals their content strategy — which pages drive the most value.
|
||||
|
||||
### Technology Detection
|
||||
|
||||
#### domain_analytics_technologies_domain_technologies
|
||||
**Purpose**: Detect the technology stack a domain uses.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: Technologies grouped by category (CMS, analytics, marketing, payments, etc.)
|
||||
|
||||
### Backlink Deep Dive
|
||||
|
||||
#### backlinks_backlinks
|
||||
**Purpose**: List individual backlinks to a domain.
|
||||
**Input**: Target domain + limit
|
||||
**Key metrics**: `url_from`, `url_to`, `anchor`, `domain_from_rank`, `is_new`
|
||||
|
||||
#### backlinks_bulk_ranks
|
||||
**Purpose**: Compare domain ranks across multiple domains at once.
|
||||
**Input**: Array of target domains
|
||||
**Key metrics**: `domain_rank` per domain
|
||||
**Tip**: Use this for the summary comparison table.
|
||||
|
||||
---
|
||||
|
||||
## Recommended Execution Order
|
||||
|
||||
### Quick Scan (per competitor)
|
||||
|
||||
```
|
||||
1. firecrawl_map → get site URLs
|
||||
2. In parallel:
|
||||
a. firecrawl_scrape → homepage
|
||||
b. firecrawl_scrape → pricing page
|
||||
c. dataforseo_labs_google_domain_rank_overview → organic metrics
|
||||
d. backlinks_summary → domain authority
|
||||
3. Synthesize into abbreviated profile
|
||||
```
|
||||
|
||||
### Deep Profile (per competitor)
|
||||
|
||||
```
|
||||
1. firecrawl_map → get site URLs
|
||||
2. In parallel (batch 1 — scraping):
|
||||
a. firecrawl_scrape → homepage
|
||||
b. firecrawl_scrape → pricing page
|
||||
c. firecrawl_scrape → features page(s)
|
||||
d. firecrawl_scrape → about page
|
||||
e. firecrawl_scrape → customers/case studies page
|
||||
f. firecrawl_scrape → integrations page
|
||||
3. In parallel (batch 2 — SEO data):
|
||||
a. dataforseo_labs_google_domain_rank_overview
|
||||
b. dataforseo_labs_google_ranked_keywords
|
||||
c. backlinks_summary
|
||||
d. backlinks_referring_domains
|
||||
e. dataforseo_labs_google_relevant_pages
|
||||
f. dataforseo_labs_google_competitors_domain
|
||||
4. In parallel (batch 3 — optional extras):
|
||||
a. domain_analytics_technologies_domain_technologies
|
||||
b. firecrawl_search → G2/Capterra reviews
|
||||
c. dataforseo_labs_google_domain_intersection (vs. user's domain)
|
||||
5. Synthesize into full profile
|
||||
```
|
||||
|
||||
### Multi-Competitor (3+ competitors)
|
||||
|
||||
```
|
||||
1. Map all competitor sites in parallel
|
||||
2. Scrape all homepages in parallel, then pricing pages in parallel
|
||||
3. Pull domain_rank_overview for all in parallel
|
||||
4. Pull backlinks_bulk_ranks for all at once
|
||||
5. Build profiles in sequence (synthesis requires focus)
|
||||
6. Build summary comparison last
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Issue | Action |
|
||||
|-------|--------|
|
||||
| Firecrawl scrape returns empty/blocked | Try with `firecrawl_browser_create` for JS-heavy sites |
|
||||
| Pricing page not found in map | Search for `/pricing`, `/plans`, `/packages` — some sites use different paths |
|
||||
| DataForSEO returns no data for domain | Domain may be too new or too small — note "insufficient data" in profile |
|
||||
| Rate limits hit | Space out requests; prioritize highest-value data first |
|
||||
| Review page scraping blocked | Use `firecrawl_search` to find cached or alternative review sources |
|
||||
@@ -0,0 +1,365 @@
|
||||
---
|
||||
name: content-strategy
|
||||
description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social-content.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Content Strategy
|
||||
|
||||
You are a content strategist. Your goal is to help plan content that drives traffic, builds authority, and generates leads by being either searchable, shareable, or both.
|
||||
|
||||
## Before Planning
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Business Context
|
||||
- What does the company do?
|
||||
- Who is the ideal customer?
|
||||
- What's the primary goal for content? (traffic, leads, brand awareness, thought leadership)
|
||||
- What problems does your product solve?
|
||||
|
||||
### 2. Customer Research
|
||||
- What questions do customers ask before buying?
|
||||
- What objections come up in sales calls?
|
||||
- What topics appear repeatedly in support tickets?
|
||||
- What language do customers use to describe their problems?
|
||||
|
||||
### 3. Current State
|
||||
- Do you have existing content? What's working?
|
||||
- What resources do you have? (writers, budget, time)
|
||||
- What content formats can you produce? (written, video, audio)
|
||||
|
||||
### 4. Competitive Landscape
|
||||
- Who are your main competitors?
|
||||
- What content gaps exist in your market?
|
||||
|
||||
---
|
||||
|
||||
## Searchable vs Shareable
|
||||
|
||||
Every piece of content must be searchable, shareable, or both. Prioritize in that order—search traffic is the foundation.
|
||||
|
||||
**Searchable content** captures existing demand. Optimized for people actively looking for answers.
|
||||
|
||||
**Shareable content** creates demand. Spreads ideas and gets people talking.
|
||||
|
||||
### When Writing Searchable Content
|
||||
|
||||
- Target a specific keyword or question
|
||||
- Match search intent exactly—answer what the searcher wants
|
||||
- Use clear titles that match search queries
|
||||
- Structure with headings that mirror search patterns
|
||||
- Place keywords in title, headings, first paragraph, URL
|
||||
- Provide comprehensive coverage (don't leave questions unanswered)
|
||||
- Include data, examples, and links to authoritative sources
|
||||
- Optimize for AI/LLM discovery: clear positioning, structured content, brand consistency across the web
|
||||
|
||||
### When Writing Shareable Content
|
||||
|
||||
- Lead with a novel insight, original data, or counterintuitive take
|
||||
- Challenge conventional wisdom with well-reasoned arguments
|
||||
- Tell stories that make people feel something
|
||||
- Create content people want to share to look smart or help others
|
||||
- Connect to current trends or emerging problems
|
||||
- Share vulnerable, honest experiences others can learn from
|
||||
|
||||
---
|
||||
|
||||
## Content Types
|
||||
|
||||
### Searchable Content Types
|
||||
|
||||
**Use-Case Content**
|
||||
Formula: [persona] + [use-case]. Targets long-tail keywords.
|
||||
- "Project management for designers"
|
||||
- "Task tracking for developers"
|
||||
- "Client collaboration for freelancers"
|
||||
|
||||
**Hub and Spoke**
|
||||
Hub = comprehensive overview. Spokes = related subtopics.
|
||||
```
|
||||
/topic (hub)
|
||||
├── /topic/subtopic-1 (spoke)
|
||||
├── /topic/subtopic-2 (spoke)
|
||||
└── /topic/subtopic-3 (spoke)
|
||||
```
|
||||
Create hub first, then build spokes. Interlink strategically.
|
||||
|
||||
**Note:** Most content works fine under `/blog`. Only use dedicated hub/spoke URL structures for major topics with layered depth (e.g., Atlassian's `/agile` guide). For typical blog posts, `/blog/post-title` is sufficient.
|
||||
|
||||
**Template Libraries**
|
||||
High-intent keywords + product adoption.
|
||||
- Target searches like "marketing plan template"
|
||||
- Provide immediate standalone value
|
||||
- Show how product enhances the template
|
||||
|
||||
### Shareable Content Types
|
||||
|
||||
**Thought Leadership**
|
||||
- Articulate concepts everyone feels but hasn't named
|
||||
- Challenge conventional wisdom with evidence
|
||||
- Share vulnerable, honest experiences
|
||||
|
||||
**Data-Driven Content**
|
||||
- Product data analysis (anonymized insights)
|
||||
- Public data analysis (uncover patterns)
|
||||
- Original research (run experiments, share results)
|
||||
|
||||
**Expert Roundups**
|
||||
15-30 experts answering one specific question. Built-in distribution.
|
||||
|
||||
**Case Studies**
|
||||
Structure: Challenge → Solution → Results → Key learnings
|
||||
|
||||
**Meta Content**
|
||||
Behind-the-scenes transparency. "How We Got Our First $5k MRR," "Why We Chose Debt Over VC."
|
||||
|
||||
For programmatic content at scale, see **programmatic-seo** skill.
|
||||
|
||||
---
|
||||
|
||||
## Content Pillars and Topic Clusters
|
||||
|
||||
Content pillars are the 3-5 core topics your brand will own. Each pillar spawns a cluster of related content.
|
||||
|
||||
Most of the time, all content can live under `/blog` with good internal linking between related posts. Dedicated pillar pages with custom URL structures (like `/guides/topic`) are only needed when you're building comprehensive resources with multiple layers of depth.
|
||||
|
||||
### How to Identify Pillars
|
||||
|
||||
1. **Product-led**: What problems does your product solve?
|
||||
2. **Audience-led**: What does your ICP need to learn?
|
||||
3. **Search-led**: What topics have volume in your space?
|
||||
4. **Competitor-led**: What are competitors ranking for?
|
||||
|
||||
### Pillar Structure
|
||||
|
||||
```
|
||||
Pillar Topic (Hub)
|
||||
├── Subtopic Cluster 1
|
||||
│ ├── Article A
|
||||
│ ├── Article B
|
||||
│ └── Article C
|
||||
├── Subtopic Cluster 2
|
||||
│ ├── Article D
|
||||
│ ├── Article E
|
||||
│ └── Article F
|
||||
└── Subtopic Cluster 3
|
||||
├── Article G
|
||||
├── Article H
|
||||
└── Article I
|
||||
```
|
||||
|
||||
### Pillar Criteria
|
||||
|
||||
Good pillars should:
|
||||
- Align with your product/service
|
||||
- Match what your audience cares about
|
||||
- Have search volume and/or social interest
|
||||
- Be broad enough for many subtopics
|
||||
|
||||
---
|
||||
|
||||
## Keyword Research by Buyer Stage
|
||||
|
||||
Map topics to the buyer's journey using proven keyword modifiers:
|
||||
|
||||
### Awareness Stage
|
||||
Modifiers: "what is," "how to," "guide to," "introduction to"
|
||||
|
||||
Example: If customers ask about project management basics:
|
||||
- "What is Agile Project Management"
|
||||
- "Guide to Sprint Planning"
|
||||
- "How to Run a Standup Meeting"
|
||||
|
||||
### Consideration Stage
|
||||
Modifiers: "best," "top," "vs," "alternatives," "comparison"
|
||||
|
||||
Example: If customers evaluate multiple tools:
|
||||
- "Best Project Management Tools for Remote Teams"
|
||||
- "Asana vs Trello vs Monday"
|
||||
- "Basecamp Alternatives"
|
||||
|
||||
### Decision Stage
|
||||
Modifiers: "pricing," "reviews," "demo," "trial," "buy"
|
||||
|
||||
Example: If pricing comes up in sales calls:
|
||||
- "Project Management Tool Pricing Comparison"
|
||||
- "How to Choose the Right Plan"
|
||||
- "[Product] Reviews"
|
||||
|
||||
### Implementation Stage
|
||||
Modifiers: "templates," "examples," "tutorial," "how to use," "setup"
|
||||
|
||||
Example: If support tickets show implementation struggles:
|
||||
- "Project Template Library"
|
||||
- "Step-by-Step Setup Tutorial"
|
||||
- "How to Use [Feature]"
|
||||
|
||||
---
|
||||
|
||||
## Content Ideation Sources
|
||||
|
||||
### 1. Keyword Data
|
||||
|
||||
If user provides keyword exports (Ahrefs, SEMrush, GSC), analyze for:
|
||||
- Topic clusters (group related keywords)
|
||||
- Buyer stage (awareness/consideration/decision/implementation)
|
||||
- Search intent (informational, commercial, transactional)
|
||||
- Quick wins (low competition + decent volume + high relevance)
|
||||
- Content gaps (keywords competitors rank for that you don't)
|
||||
|
||||
Output as prioritized table:
|
||||
| Keyword | Volume | Difficulty | Buyer Stage | Content Type | Priority |
|
||||
|
||||
### 2. Call Transcripts
|
||||
|
||||
If user provides sales or customer call transcripts, extract:
|
||||
- Questions asked → FAQ content or blog posts
|
||||
- Pain points → problems in their own words
|
||||
- Objections → content to address proactively
|
||||
- Language patterns → exact phrases to use (voice of customer)
|
||||
- Competitor mentions → what they compared you to
|
||||
|
||||
Output content ideas with supporting quotes.
|
||||
|
||||
### 3. Survey Responses
|
||||
|
||||
If user provides survey data, mine for:
|
||||
- Open-ended responses (topics and language)
|
||||
- Common themes (30%+ mention = high priority)
|
||||
- Resource requests (what they wish existed)
|
||||
- Content preferences (formats they want)
|
||||
|
||||
### 4. Forum Research
|
||||
|
||||
Use web search to find content ideas:
|
||||
|
||||
**Reddit:** `site:reddit.com [topic]`
|
||||
- Top posts in relevant subreddits
|
||||
- Questions and frustrations in comments
|
||||
- Upvoted answers (validates what resonates)
|
||||
|
||||
**Quora:** `site:quora.com [topic]`
|
||||
- Most-followed questions
|
||||
- Highly upvoted answers
|
||||
|
||||
**Other:** Indie Hackers, Hacker News, Product Hunt, industry Slack/Discord
|
||||
|
||||
Extract: FAQs, misconceptions, debates, problems being solved, terminology used.
|
||||
|
||||
### 5. Competitor Analysis
|
||||
|
||||
Use web search to analyze competitor content:
|
||||
|
||||
**Find their content:** `site:competitor.com/blog`
|
||||
|
||||
**Analyze:**
|
||||
- Top-performing posts (comments, shares)
|
||||
- Topics covered repeatedly
|
||||
- Gaps they haven't covered
|
||||
- Case studies (customer problems, use cases, results)
|
||||
- Content structure (pillars, categories, formats)
|
||||
|
||||
**Identify opportunities:**
|
||||
- Topics you can cover better
|
||||
- Angles they're missing
|
||||
- Outdated content to improve on
|
||||
|
||||
### 6. Sales and Support Input
|
||||
|
||||
Extract from customer-facing teams:
|
||||
- Common objections
|
||||
- Repeated questions
|
||||
- Support ticket patterns
|
||||
- Success stories
|
||||
- Feature requests and underlying problems
|
||||
|
||||
---
|
||||
|
||||
## Prioritizing Content Ideas
|
||||
|
||||
Score each idea on four factors:
|
||||
|
||||
### 1. Customer Impact (40%)
|
||||
- How frequently did this topic come up in research?
|
||||
- What percentage of customers face this challenge?
|
||||
- How emotionally charged was this pain point?
|
||||
- What's the potential LTV of customers with this need?
|
||||
|
||||
### 2. Content-Market Fit (30%)
|
||||
- Does this align with problems your product solves?
|
||||
- Can you offer unique insights from customer research?
|
||||
- Do you have customer stories to support this?
|
||||
- Will this naturally lead to product interest?
|
||||
|
||||
### 3. Search Potential (20%)
|
||||
- What's the monthly search volume?
|
||||
- How competitive is this topic?
|
||||
- Are there related long-tail opportunities?
|
||||
- Is search interest growing or declining?
|
||||
|
||||
### 4. Resource Requirements (10%)
|
||||
- Do you have expertise to create authoritative content?
|
||||
- What additional research is needed?
|
||||
- What assets (graphics, data, examples) will you need?
|
||||
|
||||
### Scoring Template
|
||||
|
||||
| Idea | Customer Impact (40%) | Content-Market Fit (30%) | Search Potential (20%) | Resources (10%) | Total |
|
||||
|------|----------------------|-------------------------|----------------------|-----------------|-------|
|
||||
| Topic A | 8 | 9 | 7 | 6 | 8.0 |
|
||||
| Topic B | 6 | 7 | 9 | 8 | 7.1 |
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When creating a content strategy, provide:
|
||||
|
||||
### 1. Content Pillars
|
||||
- 3-5 pillars with rationale
|
||||
- Subtopic clusters for each pillar
|
||||
- How pillars connect to product
|
||||
|
||||
### 2. Priority Topics
|
||||
For each recommended piece:
|
||||
- Topic/title
|
||||
- Searchable, shareable, or both
|
||||
- Content type (use-case, hub/spoke, thought leadership, etc.)
|
||||
- Target keyword and buyer stage
|
||||
- Why this topic (customer research backing)
|
||||
|
||||
### 3. Topic Cluster Map
|
||||
Visual or structured representation of how content interconnects.
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What patterns emerge from your last 10 customer conversations?
|
||||
2. What questions keep coming up in sales calls?
|
||||
3. Where are competitors' content efforts falling short?
|
||||
4. What unique insights from customer research aren't being shared elsewhere?
|
||||
5. Which existing content drives the most conversions, and why?
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- **[Headless CMS Guide](references/headless-cms.md)**: CMS selection, content modeling for marketing, editorial workflows, platform comparison (Sanity, Contentful, Strapi)
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **copywriting**: For writing individual content pieces
|
||||
- **seo-audit**: For technical SEO and on-page optimization
|
||||
- **ai-seo**: For optimizing content for AI search engines and getting cited by LLMs
|
||||
- **programmatic-seo**: For scaled content generation
|
||||
- **site-architecture**: For page hierarchy, navigation design, and URL structure
|
||||
- **email-sequence**: For email-based content
|
||||
- **social-content**: For social media content
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "content-strategy",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Help me build a content strategy for our B2B SaaS product. We sell expense management software to finance teams at companies with 50-500 employees. We currently have no blog and want to start from scratch.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should establish content pillars (3-5 core topic areas). Should map content types by buyer stage (awareness → consideration → decision → implementation). Should identify keyword research opportunities by buyer stage. Should recommend a mix of searchable (SEO-driven) and shareable (thought leadership, data) content. Should use the prioritization scoring framework (customer impact 40%, content-market fit 30%, search potential 20%, resources 10%). Should provide an initial content calendar or publishing cadence. Should recommend content types appropriate for starting from scratch.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Establishes 3-5 content pillars",
|
||||
"Maps content by buyer stage (awareness through implementation)",
|
||||
"Includes keyword research by buyer stage",
|
||||
"Recommends mix of searchable and shareable content",
|
||||
"Uses prioritization scoring framework",
|
||||
"Provides publishing cadence or calendar",
|
||||
"Recommends appropriate starting content types"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "We have 200+ blog posts but traffic has been flat for a year. Our content feels random — no clear strategy. How do we fix this?",
|
||||
"expected_output": "Should diagnose the 'random content' problem. Should recommend a content audit process to evaluate existing posts. Should introduce content pillars and topical clustering to organize the existing library. Should identify hub-and-spoke opportunities from existing content. Should recommend which posts to update, consolidate, or retire. Should use the prioritization framework to plan next steps. Should address topical authority building through clusters.",
|
||||
"assertions": [
|
||||
"Diagnoses the 'random content' problem",
|
||||
"Recommends content audit for existing posts",
|
||||
"Introduces content pillars and topical clustering",
|
||||
"Identifies hub-and-spoke opportunities",
|
||||
"Recommends update, consolidate, or retire decisions",
|
||||
"Uses prioritization framework",
|
||||
"Addresses topical authority building"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "what kind of content should we be creating? we're a developer tool (API testing platform) and our audience is backend developers and QA engineers",
|
||||
"expected_output": "Should trigger on casual phrasing. Should recommend content types appropriate for a developer audience: technical tutorials, documentation-style guides, use-case content, template/example libraries, data-driven benchmarks. Should note that developer audiences prefer depth, accuracy, and practical value over marketing fluff. Should suggest content pillars aligned with developer interests. Should use the ideation sources framework (keyword data, community forums like Stack Overflow/Reddit, competitor gaps).",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Recommends content types for developer audience",
|
||||
"Emphasizes technical depth and practical value",
|
||||
"Notes developers prefer substance over marketing",
|
||||
"Suggests content pillars for developer tool",
|
||||
"Uses ideation sources framework",
|
||||
"Mentions developer community channels"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "How should we prioritize which content to create first? We have a list of 50 blog post ideas but limited resources — one content marketer writing 2 posts per week.",
|
||||
"expected_output": "Should apply the prioritization scoring framework: customer impact (40%), content-market fit (30%), search potential (20%), resources required (10%). Should help score or rank the content ideas using this framework. Should recommend focusing on high-impact, lower-effort content first. Should consider the buyer stage distribution (don't write only top-of-funnel). Should provide a practical workflow for the single content marketer to use going forward.",
|
||||
"assertions": [
|
||||
"Applies prioritization scoring framework with weights",
|
||||
"Explains each scoring dimension",
|
||||
"Recommends focusing on high-impact, lower-effort first",
|
||||
"Considers buyer stage distribution",
|
||||
"Provides practical workflow for limited resources"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "We want to build topical authority in 'employee engagement.' What does a content cluster look like for this topic?",
|
||||
"expected_output": "Should apply the hub-and-spoke content cluster model. Should design a pillar page for 'employee engagement' (comprehensive, 3000+ word guide). Should identify 8-15 supporting spoke articles targeting long-tail keywords related to employee engagement. Should map the internal linking structure between hub and spokes. Should address keyword research for the cluster. Should recommend content types for each piece (guide, how-to, template, data-driven, etc.).",
|
||||
"assertions": [
|
||||
"Applies hub-and-spoke content cluster model",
|
||||
"Designs a pillar page for the core topic",
|
||||
"Identifies 8-15 supporting spoke articles",
|
||||
"Maps internal linking between hub and spokes",
|
||||
"Addresses keyword research for the cluster",
|
||||
"Recommends content types for each piece"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Can you write a blog post about remote work best practices for our HR software blog?",
|
||||
"expected_output": "Should recognize this is a copywriting/content creation task, not a content strategy task. Should defer to or cross-reference the copywriting skill for writing individual pieces of content. May provide strategic context (where this fits in the content strategy, keyword targeting, audience) but should make clear that copywriting is the right skill for writing the actual content.",
|
||||
"assertions": [
|
||||
"Recognizes this as content creation, not strategy",
|
||||
"References or defers to copywriting skill",
|
||||
"Does not attempt to write the full blog post",
|
||||
"May provide strategic context for the piece"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
# Headless CMS Guide
|
||||
|
||||
Reference for choosing, modeling, and implementing a headless CMS for marketing content.
|
||||
|
||||
## When to Use This Reference
|
||||
|
||||
Use this when selecting a CMS for a new project, designing content models for marketing sites, setting up editorial workflows, or connecting CMS content to programmatic pages.
|
||||
|
||||
---
|
||||
|
||||
## Headless vs Traditional CMS
|
||||
|
||||
A headless CMS separates content management from presentation. Content is stored in a structured backend and delivered via API to any frontend.
|
||||
|
||||
### When Headless Makes Sense
|
||||
|
||||
- Multiple frontends consume the same content (web, mobile, email)
|
||||
- Developers want full control over the frontend stack
|
||||
- Content needs to be reused across channels
|
||||
- You're building with a modern framework (Next.js, Remix, Astro)
|
||||
- Marketing needs structured, reusable content blocks
|
||||
|
||||
### When Traditional Works Better
|
||||
|
||||
- Small team with no dedicated developers
|
||||
- Simple blog or brochure site
|
||||
- WYSIWYG editing is a hard requirement
|
||||
- Budget is tight and WordPress/Webflow does the job
|
||||
|
||||
### Decision Checklist
|
||||
|
||||
| Factor | Headless | Traditional |
|
||||
|--------|----------|-------------|
|
||||
| Multi-channel delivery | Yes | Limited |
|
||||
| Developer control | Full | Constrained |
|
||||
| Non-technical editing | Requires setup | Built-in |
|
||||
| Time to launch | Longer | Faster |
|
||||
| Content reuse | Native | Manual |
|
||||
| Hosting flexibility | Any frontend | Platform-dependent |
|
||||
|
||||
---
|
||||
|
||||
## Content Modeling for Marketing
|
||||
|
||||
### Core Principles
|
||||
|
||||
1. **Think in types, not pages.** A "Landing Page" is a content type with fields — not an HTML file. This lets you reuse components across pages.
|
||||
2. **Separate content from presentation.** Store the headline text, not the styled headline. Presentation belongs in the frontend.
|
||||
3. **Design for reuse.** If testimonials appear on 5 pages, create a Testimonial type and reference it — don't duplicate.
|
||||
4. **Keep models flat.** Deeply nested structures are hard to query and maintain. Prefer references over nesting.
|
||||
|
||||
### Common Marketing Content Types
|
||||
|
||||
| Type | Key Fields | Notes |
|
||||
|------|-----------|-------|
|
||||
| **Landing Page** | title, slug, hero, sections[], seo | Modular sections for flexibility |
|
||||
| **Blog Post** | title, slug, body, author, category, tags, publishedAt, seo | Rich text or Portable Text body |
|
||||
| **Case Study** | title, customer, challenge, solution, results, metrics[], logo | Link to related products/features |
|
||||
| **Testimonial** | quote, author, role, company, avatar, rating | Reference from landing pages |
|
||||
| **FAQ** | question, answer, category | Group by category for programmatic pages |
|
||||
| **Author** | name, bio, avatar, social links | Reference from blog posts |
|
||||
| **CTA Block** | heading, body, buttonText, buttonUrl, variant | Reusable across pages |
|
||||
|
||||
### SEO Fields Checklist
|
||||
|
||||
Every page-level content type needs:
|
||||
|
||||
- `metaTitle` — 50-60 characters
|
||||
- `metaDescription` — 150-160 characters
|
||||
- `ogImage` — 1200x630px social preview
|
||||
- `slug` — URL path segment
|
||||
- `canonicalUrl` — optional override
|
||||
- `noIndex` — boolean for excluding from search
|
||||
- `structuredData` — optional JSON-LD override
|
||||
|
||||
---
|
||||
|
||||
## Editorial Workflows
|
||||
|
||||
### Draft → Review → Publish Cycle
|
||||
|
||||
1. **Draft** — Author creates or edits content
|
||||
2. **Review** — Editor reviews for accuracy, brand voice, SEO
|
||||
3. **Approve** — Stakeholder signs off
|
||||
4. **Schedule** — Set publish date/time
|
||||
5. **Publish** — Content goes live via API
|
||||
|
||||
### Preview APIs
|
||||
|
||||
All major headless CMS platforms support draft previews:
|
||||
|
||||
- **Sanity**: Real-time preview with `useLiveQuery` or Presentation tool
|
||||
- **Contentful**: Preview API (`preview.contentful.com`) with separate access token
|
||||
- **Strapi**: Draft & Publish system with `status=draft` query parameter (v5; replaces v4's `publicationState`)
|
||||
|
||||
Set up a preview route in your frontend (e.g., `/api/preview`) that authenticates and renders draft content.
|
||||
|
||||
### Roles and Permissions
|
||||
|
||||
| Role | Can Create | Can Edit | Can Publish | Can Delete |
|
||||
|------|:----------:|:--------:|:-----------:|:----------:|
|
||||
| Author | Yes | Own | No | Own drafts |
|
||||
| Editor | Yes | All | Yes | Drafts |
|
||||
| Admin | Yes | All | Yes | All |
|
||||
|
||||
Exact permission models vary by platform. Sanity uses role-based access. Contentful has space-level roles. Strapi has granular RBAC.
|
||||
|
||||
---
|
||||
|
||||
## Platform Comparison
|
||||
|
||||
| Feature | Sanity | Contentful | Strapi |
|
||||
|---------|--------|------------|--------|
|
||||
| Hosting | Cloud (managed) | Cloud (managed) | Self-hosted or Cloud |
|
||||
| Query Language | GROQ | REST / GraphQL | REST / GraphQL |
|
||||
| Free Tier | Generous | Limited | Open source (free) |
|
||||
| Real-time Collab | Yes (built-in) | Limited | No |
|
||||
| Best For | Developer flexibility | Enterprise multi-locale | Budget / self-hosted |
|
||||
| Content Modeling | Schema-as-code | Web UI | Web UI or code |
|
||||
| Media Handling | Built-in DAM | Built-in | Plugin-based |
|
||||
|
||||
### Sanity
|
||||
|
||||
**Strengths**: GROQ query language is powerful and flexible. Schema defined in code (version-controlled). Real-time collaborative editing. Portable Text for rich content. Generous free tier.
|
||||
|
||||
**Considerations**: Steeper learning curve for non-developers. Studio customization requires React knowledge. Vendor lock-in on GROQ queries.
|
||||
|
||||
**Marketing fit**: Best when developers and marketers collaborate closely. Strong for content-heavy sites with complex models.
|
||||
|
||||
### Contentful
|
||||
|
||||
**Strengths**: Mature enterprise platform. Excellent multi-locale support. Strong ecosystem of integrations. Composable content with Studio. Well-documented APIs.
|
||||
|
||||
**Considerations**: Pricing scales with content types and locales. Two separate APIs (Delivery and Management). Rate limits can be tight on lower plans.
|
||||
|
||||
**Marketing fit**: Best for enterprises with multi-market content needs. Good when you need established vendor reliability.
|
||||
|
||||
### Strapi
|
||||
|
||||
**Strengths**: Open source, self-hosted option. Full control over data. No per-seat pricing. Customizable admin panel. Plugin ecosystem. REST by default, GraphQL via plugin.
|
||||
|
||||
**Considerations**: Self-hosting means you handle infrastructure. Smaller ecosystem than Sanity/Contentful. V5 migration can be significant from V4.
|
||||
|
||||
**Marketing fit**: Best for teams with DevOps capability who want full control and no vendor lock-in. Good for budget-conscious projects.
|
||||
|
||||
### Others Worth Knowing
|
||||
|
||||
- **Hygraph** — GraphQL-native, strong for federation and multi-source content
|
||||
- **Keystatic** — Git-based, good for developer-content hybrid workflows
|
||||
- **Payload** — TypeScript-first, self-hosted, code-configured like Sanity
|
||||
- **Builder.io** — Visual editor with headless backend, good for non-technical marketers
|
||||
- **Prismic** — Slice-based content modeling, strong Next.js integration
|
||||
|
||||
---
|
||||
|
||||
## Integration with Marketing Skills
|
||||
|
||||
### Programmatic SEO
|
||||
|
||||
Use CMS as the data source for programmatic pages. Store structured data (FAQs, comparisons, city pages) as content types and generate pages from queries. See **programmatic-seo** skill.
|
||||
|
||||
### Copywriting
|
||||
|
||||
CMS content models enforce consistent structure. Define fields that match your copy frameworks (headline, subheadline, social proof, CTA). See **copywriting** skill.
|
||||
|
||||
### Site Architecture
|
||||
|
||||
URL structure, navigation hierarchy, and internal linking all depend on how content is organized in the CMS. Plan your content model and site architecture together. See **site-architecture** skill.
|
||||
|
||||
### Email Sequences
|
||||
|
||||
Pull CMS content into email templates for consistent messaging across web and email. Case studies, testimonials, and blog posts can feed email nurture sequences. See **email-sequence** skill.
|
||||
|
||||
---
|
||||
|
||||
## Implementation Checklist
|
||||
|
||||
- [ ] Define content types based on page types and reusable blocks
|
||||
- [ ] Add SEO fields to every page-level content type
|
||||
- [ ] Set up preview/draft mode in your frontend
|
||||
- [ ] Configure roles and permissions for your team
|
||||
- [ ] Create sample content for each type before building frontend
|
||||
- [ ] Set up webhook notifications for content changes (rebuild triggers)
|
||||
- [ ] Document content guidelines for editors (field descriptions, character limits)
|
||||
- [ ] Test content delivery performance (CDN, caching, ISR)
|
||||
- [ ] Plan migration strategy if moving from existing CMS
|
||||
|
||||
---
|
||||
|
||||
## Relevant Integration Guides
|
||||
|
||||
- [Sanity](../../../tools/integrations/sanity.md) — GROQ queries, mutations, CLI
|
||||
- [Contentful](../../../tools/integrations/contentful.md) — Delivery/Management APIs, publishing
|
||||
- [Strapi](../../../tools/integrations/strapi.md) — REST CRUD, filters, document API
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: copy-editing
|
||||
description: "When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' or 'copy sweep.' This skill provides a systematic approach to editing marketing copy through multiple focused passes."
|
||||
description: "When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' 'copy sweep,' 'tighten this up,' 'this reads awkwardly,' 'clean up this text,' 'too wordy,' 'sharpen the messaging,' 'refresh this content,' 'update this page,' 'this content is outdated,' or 'content audit.' Use this when the user already has copy and wants it improved or refreshed rather than rewritten from scratch. For writing new copy, see copywriting."
|
||||
metadata:
|
||||
version: 1.3.0
|
||||
---
|
||||
|
||||
# Copy Editing
|
||||
@@ -9,6 +11,9 @@ You are an expert copy editor specializing in marketing and conversion copy. You
|
||||
|
||||
## Core Philosophy
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before editing. Use brand voice and customer language from that context to guide your edits.
|
||||
|
||||
Good copy editing isn't about rewriting—it's about enhancing. Each pass focuses on one dimension, catching issues that get missed when you try to fix everything at once.
|
||||
|
||||
**Key principles:**
|
||||
@@ -251,6 +256,57 @@ For every statement, ask "Okay, so what?" If the copy doesn't answer that questi
|
||||
|
||||
---
|
||||
|
||||
## Expert Panel Scoring
|
||||
|
||||
Use this after completing the Seven Sweeps for an additional quality gate. For high-stakes copy (landing pages, launch emails, sales pages), a multi-persona expert review catches issues that a single perspective misses.
|
||||
|
||||
### How It Works
|
||||
|
||||
1. **Assemble 3-5 expert personas** relevant to the copy type
|
||||
2. **Each persona scores the copy 1-10** on their area of expertise
|
||||
3. **Collect specific critiques** — not just scores, but what to fix
|
||||
4. **Revise based on feedback** — address the lowest-scoring areas first
|
||||
5. **Re-score after revisions** — iterate until all personas score 7+, with an average of 8+ across the panel
|
||||
|
||||
### Recommended Expert Panels
|
||||
|
||||
**Landing page copy:**
|
||||
- Conversion copywriter (clarity, CTA strength, benefit hierarchy)
|
||||
- UX writer (scannability, cognitive load, user flow)
|
||||
- Target customer persona (does this speak to me? do I trust it?)
|
||||
- Brand strategist (voice consistency, positioning accuracy)
|
||||
|
||||
**Email sequence:**
|
||||
- Email marketing specialist (subject lines, open/click optimization)
|
||||
- Copywriter (hooks, storytelling, persuasion)
|
||||
- Spam filter analyst (deliverability red flags, trigger words)
|
||||
- Target customer persona (relevance, value, unsubscribe risk)
|
||||
|
||||
**Sales page / long-form:**
|
||||
- Direct response copywriter (offer structure, objection handling, urgency)
|
||||
- Skeptical buyer persona (proof gaps, trust issues, red flags)
|
||||
- Editor (flow, readability, conciseness)
|
||||
- SEO specialist (keyword coverage, search intent alignment)
|
||||
|
||||
### Scoring Rubric
|
||||
|
||||
| Score | Meaning |
|
||||
|-------|---------|
|
||||
| 9-10 | Publish-ready. No meaningful improvements. |
|
||||
| 7-8 | Strong. Minor tweaks only. |
|
||||
| 5-6 | Functional but has clear gaps. Needs another pass. |
|
||||
| 3-4 | Significant issues. Major revision needed. |
|
||||
| 1-2 | Fundamentally broken. Rethink approach. |
|
||||
|
||||
### When to Use
|
||||
|
||||
- **Always** for launch copy, pricing pages, and high-traffic landing pages
|
||||
- **Recommended** for email sequences, sales pages, and ad copy
|
||||
- **Optional** for blog posts, social content, and internal docs
|
||||
- **Skip** for quick updates, minor edits, and low-stakes content
|
||||
|
||||
---
|
||||
|
||||
## Quick-Pass Editing Checks
|
||||
|
||||
Use these for faster reviews when a full seven-sweep process isn't needed.
|
||||
@@ -408,15 +464,28 @@ This iterative process ensures each edit doesn't create new problems while respe
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## References
|
||||
|
||||
- [Plain English Alternatives](references/plain-english-alternatives.md): Replace complex words with simpler alternatives
|
||||
- [Content Refresh](references/content-refresh.md): Full checklist, refresh vs. rewrite matrix, and cadence guide
|
||||
|
||||
---
|
||||
|
||||
## Content Refresh Editing
|
||||
|
||||
Copy editing isn't just for new content. Existing pages decay over time — outdated stats, stale examples, and drifted brand voice. Use the content refresh framework when traffic is declining, data is stale, or the product has changed.
|
||||
|
||||
**For the full refresh checklist, refresh vs. rewrite decision matrix, and cadence guide**: See [references/content-refresh.md](references/content-refresh.md)
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What's the goal of this copy? (Awareness, conversion, retention)
|
||||
2. Who's the target audience?
|
||||
3. What action should readers take?
|
||||
4. What's the brand voice? (Casual, professional, playful, authoritative)
|
||||
5. Are there specific concerns or known issues?
|
||||
6. What proof/evidence do you have available?
|
||||
2. What action should readers take?
|
||||
3. Are there specific concerns or known issues?
|
||||
4. What proof/evidence do you have available?
|
||||
5. Is this new copy or a refresh of existing content?
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"skill_name": "copy-editing",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Edit this homepage copy for us: 'Welcome to CloudSync! We are very excited to offer you an innovative, cutting-edge platform that seamlessly integrates with your existing tools. Our powerful solution helps businesses of all sizes optimize their workflows and drive meaningful results. Get started today and experience the difference!'",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply the Seven Sweeps Framework systematically. Sweep 1 (Clarity): identify vague language ('optimize workflows,' 'drive meaningful results,' 'experience the difference'). Sweep 2 (Voice & Tone): flag 'Welcome to' as weak opening, 'we are very excited' as company-focused. Sweep 3 (So What): question what specific value is being offered. Sweep 4 (Prove It): note no proof points, stats, or evidence. Sweep 5 (Specificity): flag 'businesses of all sizes,' 'existing tools,' 'powerful solution' as generic. Sweep 6 (Heightened Emotion): assess emotional impact. Sweep 7 (Zero Risk): check for trust signals. Should provide a rewritten version addressing all issues.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies Seven Sweeps Framework",
|
||||
"Identifies vague language (Clarity sweep)",
|
||||
"Flags weak opening and company-focused language (Voice & Tone sweep)",
|
||||
"Questions missing value proposition (So What sweep)",
|
||||
"Notes missing proof points (Prove It sweep)",
|
||||
"Flags generic terms (Specificity sweep)",
|
||||
"Provides a rewritten version"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Quick edit on this CTA section: 'Ready to take your business to the next level? Our team of dedicated professionals is standing by to help you achieve your goals. Click here to learn more about how we can help you succeed.'",
|
||||
"expected_output": "Should apply the quick-pass editing checks. Should identify: 'take your business to the next level' (cliché), 'team of dedicated professionals' (filler), 'standing by' (passive), 'click here' (weak CTA), 'learn more' (vague action), 'help you succeed' (generic). Should apply word-level, sentence-level, and paragraph-level checks. Should rewrite with specific value prop, active voice, and strong action-oriented CTA. Should be concise since this was requested as a 'quick edit.'",
|
||||
"assertions": [
|
||||
"Identifies clichés and filler phrases",
|
||||
"Flags 'click here' and 'learn more' as weak",
|
||||
"Applies word-level and sentence-level checks",
|
||||
"Rewrites with specific value and strong CTA",
|
||||
"Uses active voice in rewrite",
|
||||
"Keeps response concise for a quick edit"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "edit this product description, it feels too long and wordy: 'Our comprehensive project management solution provides teams with a robust set of tools that enable them to efficiently plan, execute, and monitor their projects from start to finish. With our intuitive interface, powerful analytics dashboard, and seamless integration capabilities, you can ensure that every aspect of your project is managed with precision and care. Whether you're a small startup or a large enterprise, our platform scales to meet your unique needs and requirements, helping you deliver projects on time and within budget every single time.'",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the Clarity and Specificity sweeps primarily. Should identify: redundancy ('plan, execute, and monitor' overlaps with 'from start to finish'), filler words ('comprehensive,' 'robust,' 'efficiently,' 'seamless,' 'unique'), hedge phrases ('ensuring every aspect,' 'with precision and care'), and generic claims ('scales to meet your needs,' 'on time and within budget every single time'). Should cut the copy significantly (probably by 50%+). Should provide a tighter rewrite that says the same thing in fewer, more specific words.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Identifies redundancy in the copy",
|
||||
"Identifies filler words and hedge phrases",
|
||||
"Identifies generic claims",
|
||||
"Cuts copy significantly (50%+ reduction)",
|
||||
"Provides tighter rewrite with specific language"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Review this testimonial section and improve it: 'CloudSync is great! It really helped our company. The team was very responsive and the product works well. We would recommend it to anyone looking for a solution. - John S., CEO'",
|
||||
"expected_output": "Should apply the Prove It and Specificity sweeps. Should identify the testimonial as too vague to be persuasive ('great,' 'really helped,' 'works well,' 'anyone looking for a solution'). Should recommend replacing with specific results ('reduced project delivery time by 30%'), specific context ('team of 45 engineers'), and specific outcomes. Should suggest questions to ask the customer for a better testimonial. Should not fabricate specific numbers but should provide a template showing what a strong testimonial looks like.",
|
||||
"assertions": [
|
||||
"Applies Prove It and Specificity sweeps",
|
||||
"Identifies testimonial as too vague",
|
||||
"Recommends specific results and context",
|
||||
"Suggests questions to get better testimonial",
|
||||
"Does not fabricate specific numbers",
|
||||
"Provides template for strong testimonial"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "I need you to apply the 'So What' and 'Zero Risk' sweeps to this pricing page copy: 'Our Pro plan includes unlimited projects, advanced reporting, priority support, and custom integrations. Starting at $99/month.'",
|
||||
"expected_output": "Should apply specifically the So What and Zero Risk sweeps as requested. So What: for each feature, ask 'so what does this mean for the customer?' — unlimited projects (what does that enable?), advanced reporting (what decisions can they make?), priority support (what does that mean in practice? response time?), custom integrations (which ones? what workflow does it enable?). Zero Risk: identify missing trust signals — no guarantee, no trial mention, no social proof near pricing, no 'cancel anytime' assurance. Should provide rewritten copy addressing both sweeps.",
|
||||
"assertions": [
|
||||
"Applies So What sweep to each feature",
|
||||
"Translates features to customer benefits",
|
||||
"Applies Zero Risk sweep",
|
||||
"Identifies missing trust signals",
|
||||
"Suggests guarantee, trial, or cancel-anytime language",
|
||||
"Provides rewritten copy addressing both sweeps"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Write fresh homepage copy for our new product. We're launching a CRM for real estate agents.",
|
||||
"expected_output": "Should recognize this is a copywriting-from-scratch task, not copy editing. Should defer to or cross-reference the copywriting skill, which handles writing new copy from scratch. Copy-editing is specifically for improving existing copy. Should make this distinction clear.",
|
||||
"assertions": [
|
||||
"Recognizes this as writing new copy, not editing existing copy",
|
||||
"References or defers to copywriting skill",
|
||||
"Explains that copy-editing is for improving existing copy",
|
||||
"Does not attempt to write full page copy from scratch"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
# Content Refresh Editing
|
||||
|
||||
Copy editing isn't just for new content. Existing pages and posts decay over time — outdated stats, stale examples, drifted brand voice, and missed SEO opportunities. A content refresh applies the same editing rigor to content that's already published.
|
||||
|
||||
## When to Refresh
|
||||
|
||||
- **Traffic declining** on a page that used to perform well
|
||||
- **Stats or data** are more than 12 months old
|
||||
- **Product has changed** — features, pricing, or positioning no longer match
|
||||
- **Competitors updated** their version of the same content
|
||||
- **AI search visibility** matters — outdated content gets cited less (see ai-seo skill)
|
||||
|
||||
## Content Refresh Checklist
|
||||
|
||||
1. **Freshness pass** — Update all dates, stats, and examples. Replace "in 2024" with current data. Remove references to deprecated features or tools.
|
||||
2. **Accuracy pass** — Verify all claims are still true. Check that linked resources still exist. Confirm pricing and feature descriptions match current state.
|
||||
3. **Voice pass** — Does the tone match your current brand voice? Older content often reflects an earlier stage of the company.
|
||||
4. **SEO pass** — Has search intent shifted for this topic? Are there new keywords or questions to address? Add "Last updated: [date]" prominently.
|
||||
5. **Proof pass** — Can you add newer testimonials, case studies, or data points that didn't exist when this was first published?
|
||||
6. **Structure pass** — Add comparison tables, FAQ sections, or other scannable formats that make the content easier to consume.
|
||||
|
||||
## Refresh vs. Rewrite
|
||||
|
||||
| Signal | Action |
|
||||
|--------|--------|
|
||||
| Core message still valid, details outdated | Refresh (update facts, stats, examples) |
|
||||
| Brand voice has evolved significantly | Refresh + voice rewrite |
|
||||
| Topic angle or audience has shifted | Full rewrite |
|
||||
| Page structure doesn't match current search intent | Full rewrite |
|
||||
| Just needs updated stats and links | Light refresh |
|
||||
|
||||
## Refresh Cadence
|
||||
|
||||
- **Pricing and product pages**: Every quarter, or when pricing/features change
|
||||
- **High-traffic blog posts**: Every 6 months
|
||||
- **Comparison and alternatives pages**: Every 3-6 months (competitors change fast)
|
||||
- **Evergreen guides**: Annually, unless traffic drops sooner
|
||||
- **Low-traffic pages**: Only when traffic data suggests an opportunity
|
||||
@@ -0,0 +1,394 @@
|
||||
# Plain English Alternatives
|
||||
|
||||
Replace complex or pompous words with plain English alternatives.
|
||||
|
||||
Source: Plain English Campaign A-Z of Alternative Words (2001), Australian Government Style Manual (2024), plainlanguage.gov
|
||||
|
||||
---
|
||||
|
||||
## Contents
|
||||
- A
|
||||
- B
|
||||
- C
|
||||
- D
|
||||
- E
|
||||
- F
|
||||
- G-H
|
||||
- I
|
||||
- L-M
|
||||
- N-O
|
||||
- P
|
||||
- R
|
||||
- S
|
||||
- T-U
|
||||
- V-Z
|
||||
- Phrases to Remove Entirely
|
||||
|
||||
## A
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| (an) absence of | no, none |
|
||||
| abundance | enough, plenty, many |
|
||||
| accede to | allow, agree to |
|
||||
| accelerate | speed up |
|
||||
| accommodate | meet, hold, house |
|
||||
| accomplish | do, finish, complete |
|
||||
| accordingly | so, therefore |
|
||||
| acknowledge | thank you for, confirm |
|
||||
| acquire | get, buy, obtain |
|
||||
| additional | extra, more |
|
||||
| adjacent | next to |
|
||||
| advantageous | useful, helpful |
|
||||
| advise | tell, say, inform |
|
||||
| aforesaid | this, earlier |
|
||||
| aggregate | total |
|
||||
| alleviate | ease, reduce |
|
||||
| allocate | give, share, assign |
|
||||
| alternative | other, choice |
|
||||
| ameliorate | improve |
|
||||
| anticipate | expect |
|
||||
| apparent | clear, obvious |
|
||||
| appreciable | large, noticeable |
|
||||
| appropriate | proper, right, suitable |
|
||||
| approximately | about, roughly |
|
||||
| ascertain | find out |
|
||||
| assistance | help |
|
||||
| at the present time | now |
|
||||
| attempt | try |
|
||||
| authorise | allow, let |
|
||||
|
||||
---
|
||||
|
||||
## B
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| belated | late |
|
||||
| beneficial | helpful, useful |
|
||||
| bestow | give |
|
||||
| by means of | by |
|
||||
|
||||
---
|
||||
|
||||
## C
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| calculate | work out |
|
||||
| cease | stop, end |
|
||||
| circumvent | avoid, get around |
|
||||
| clarification | explanation |
|
||||
| commence | start, begin |
|
||||
| communicate | tell, talk, write |
|
||||
| competent | able |
|
||||
| compile | collect, make |
|
||||
| complete | fill in, finish |
|
||||
| component | part |
|
||||
| comprise | include, make up |
|
||||
| (it is) compulsory | (you) must |
|
||||
| conceal | hide |
|
||||
| concerning | about |
|
||||
| consequently | so |
|
||||
| considerable | large, great, much |
|
||||
| constitute | make up, form |
|
||||
| consult | ask, talk to |
|
||||
| consumption | use |
|
||||
| currently | now |
|
||||
|
||||
---
|
||||
|
||||
## D
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| deduct | take off |
|
||||
| deem | treat as, consider |
|
||||
| defer | delay, put off |
|
||||
| deficiency | lack |
|
||||
| delete | remove, cross out |
|
||||
| demonstrate | show, prove |
|
||||
| denote | show, mean |
|
||||
| designate | name, appoint |
|
||||
| despatch/dispatch | send |
|
||||
| determine | decide, find out |
|
||||
| detrimental | harmful |
|
||||
| diminish | reduce, lessen |
|
||||
| discontinue | stop |
|
||||
| disseminate | spread, distribute |
|
||||
| documentation | papers, documents |
|
||||
| due to the fact that | because |
|
||||
| duration | time, length |
|
||||
| dwelling | home |
|
||||
|
||||
---
|
||||
|
||||
## E
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| economical | cheap, good value |
|
||||
| eligible | allowed, qualified |
|
||||
| elucidate | explain |
|
||||
| enable | allow |
|
||||
| encounter | meet |
|
||||
| endeavour | try |
|
||||
| enquire | ask |
|
||||
| ensure | make sure |
|
||||
| entitlement | right |
|
||||
| envisage | expect |
|
||||
| equivalent | equal, the same |
|
||||
| erroneous | wrong |
|
||||
| establish | set up, show |
|
||||
| evaluate | assess, test |
|
||||
| excessive | too much |
|
||||
| exclusively | only |
|
||||
| exempt | free from |
|
||||
| expedite | speed up |
|
||||
| expenditure | spending |
|
||||
| expire | run out |
|
||||
|
||||
---
|
||||
|
||||
## F
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| fabricate | make |
|
||||
| facilitate | help, make possible |
|
||||
| finalise | finish, complete |
|
||||
| following | after |
|
||||
| for the purpose of | to, for |
|
||||
| for the reason that | because |
|
||||
| forthwith | now, at once |
|
||||
| forward | send |
|
||||
| frequently | often |
|
||||
| furnish | give, provide |
|
||||
| furthermore | also, and |
|
||||
|
||||
---
|
||||
|
||||
## G-H
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| generate | produce, create |
|
||||
| henceforth | from now on |
|
||||
| hitherto | until now |
|
||||
|
||||
---
|
||||
|
||||
## I
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| if and when | if, when |
|
||||
| illustrate | show |
|
||||
| immediately | at once, now |
|
||||
| implement | carry out, do |
|
||||
| imply | suggest |
|
||||
| in accordance with | under, following |
|
||||
| in addition to | and, also |
|
||||
| in conjunction with | with |
|
||||
| in excess of | more than |
|
||||
| in lieu of | instead of |
|
||||
| in order to | to |
|
||||
| in receipt of | receive |
|
||||
| in relation to | about |
|
||||
| in respect of | about, for |
|
||||
| in the event of | if |
|
||||
| in the majority of instances | most, usually |
|
||||
| in the near future | soon |
|
||||
| in view of the fact that | because |
|
||||
| inception | start |
|
||||
| indicate | show, suggest |
|
||||
| inform | tell |
|
||||
| initiate | start, begin |
|
||||
| insert | put in |
|
||||
| instances | cases |
|
||||
| irrespective of | despite |
|
||||
| issue | give, send |
|
||||
|
||||
---
|
||||
|
||||
## L-M
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| (a) large number of | many |
|
||||
| liaise with | work with, talk to |
|
||||
| locality | place, area |
|
||||
| locate | find |
|
||||
| magnitude | size |
|
||||
| (it is) mandatory | (you) must |
|
||||
| manner | way |
|
||||
| modification | change |
|
||||
| moreover | also, and |
|
||||
|
||||
---
|
||||
|
||||
## N-O
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| negligible | small |
|
||||
| nevertheless | but, however |
|
||||
| notify | tell |
|
||||
| notwithstanding | despite, even if |
|
||||
| numerous | many |
|
||||
| objective | aim, goal |
|
||||
| (it is) obligatory | (you) must |
|
||||
| obtain | get |
|
||||
| occasioned by | caused by |
|
||||
| on behalf of | for |
|
||||
| on numerous occasions | often |
|
||||
| on receipt of | when you get |
|
||||
| on the grounds that | because |
|
||||
| operate | work, run |
|
||||
| optimum | best |
|
||||
| option | choice |
|
||||
| otherwise | or |
|
||||
| outstanding | unpaid |
|
||||
| owing to | because |
|
||||
|
||||
---
|
||||
|
||||
## P
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| partially | partly |
|
||||
| participate | take part |
|
||||
| particulars | details |
|
||||
| per annum | a year |
|
||||
| perform | do |
|
||||
| permit | let, allow |
|
||||
| personnel | staff, people |
|
||||
| peruse | read |
|
||||
| possess | have, own |
|
||||
| practically | almost |
|
||||
| predominant | main |
|
||||
| prescribe | set |
|
||||
| preserve | keep |
|
||||
| previous | earlier, before |
|
||||
| principal | main |
|
||||
| prior to | before |
|
||||
| proceed | go ahead |
|
||||
| procure | get |
|
||||
| prohibit | ban, stop |
|
||||
| promptly | quickly |
|
||||
| provide | give |
|
||||
| provided that | if |
|
||||
| provisions | rules, terms |
|
||||
| proximity | nearness |
|
||||
| purchase | buy |
|
||||
| pursuant to | under |
|
||||
|
||||
---
|
||||
|
||||
## R
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| reconsider | think again |
|
||||
| reduction | cut |
|
||||
| referred to as | called |
|
||||
| regarding | about |
|
||||
| reimburse | repay |
|
||||
| reiterate | repeat |
|
||||
| relating to | about |
|
||||
| remain | stay |
|
||||
| remainder | rest |
|
||||
| remuneration | pay |
|
||||
| render | make, give |
|
||||
| represent | stand for |
|
||||
| request | ask |
|
||||
| require | need |
|
||||
| residence | home |
|
||||
| retain | keep |
|
||||
| revised | changed, new |
|
||||
|
||||
---
|
||||
|
||||
## S
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| scrutinise | examine, check |
|
||||
| select | choose |
|
||||
| solely | only |
|
||||
| specified | given, stated |
|
||||
| state | say |
|
||||
| statutory | legal, by law |
|
||||
| subject to | depending on |
|
||||
| submit | send, give |
|
||||
| subsequent to | after |
|
||||
| subsequently | later |
|
||||
| substantial | large, much |
|
||||
| sufficient | enough |
|
||||
| supplement | add to |
|
||||
| supplementary | extra |
|
||||
|
||||
---
|
||||
|
||||
## T-U
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| terminate | end, stop |
|
||||
| thereafter | then |
|
||||
| thereby | by this |
|
||||
| thus | so |
|
||||
| to date | so far |
|
||||
| transfer | move |
|
||||
| transmit | send |
|
||||
| ultimately | in the end |
|
||||
| undertake | agree, do |
|
||||
| uniform | same |
|
||||
| utilise | use |
|
||||
|
||||
---
|
||||
|
||||
## V-Z
|
||||
|
||||
| Complex | Plain Alternative |
|
||||
|---------|-------------------|
|
||||
| variation | change |
|
||||
| virtually | almost |
|
||||
| visualise | imagine, see |
|
||||
| ways and means | ways |
|
||||
| whatsoever | any |
|
||||
| with a view to | to |
|
||||
| with effect from | from |
|
||||
| with reference to | about |
|
||||
| with regard to | about |
|
||||
| with respect to | about |
|
||||
| zone | area |
|
||||
|
||||
---
|
||||
|
||||
## Phrases to Remove Entirely
|
||||
|
||||
These phrases often add nothing. Delete them:
|
||||
|
||||
- a total of
|
||||
- absolutely
|
||||
- actually
|
||||
- all things being equal
|
||||
- as a matter of fact
|
||||
- at the end of the day
|
||||
- at this moment in time
|
||||
- basically
|
||||
- currently (when "now" or nothing works)
|
||||
- I am of the opinion that (use: I think)
|
||||
- in due course (use: soon, or say when)
|
||||
- in the final analysis
|
||||
- it should be understood
|
||||
- last but not least
|
||||
- obviously
|
||||
- of course
|
||||
- quite
|
||||
- really
|
||||
- the fact of the matter is
|
||||
- to all intents and purposes
|
||||
- very
|
||||
+93
-296
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: copywriting
|
||||
description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," or "CTA copy." For email copy, see email-sequence. For popup copy, see popup-cro.
|
||||
description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," "CTA copy," "value proposition," "tagline," "subheadline," "hero section copy," "above the fold," "this copy is weak," "make this more compelling," or "help me describe my product." Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see email-sequence. For popup copy, see popup-cro. For editing existing copy, see copy-editing.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Copywriting
|
||||
@@ -9,17 +11,18 @@ You are an expert conversion copywriter. Your goal is to write marketing copy th
|
||||
|
||||
## Before Writing
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Page Purpose
|
||||
- What type of page is this? (homepage, landing page, pricing, feature, about)
|
||||
- What type of page? (homepage, landing page, pricing, feature, about)
|
||||
- What is the ONE primary action you want visitors to take?
|
||||
- What's the secondary action (if any)?
|
||||
|
||||
### 2. Audience
|
||||
- Who is the ideal customer for this page?
|
||||
- Who is the ideal customer?
|
||||
- What problem are they trying to solve?
|
||||
- What have they already tried?
|
||||
- What objections or hesitations do they have?
|
||||
- What language do they use to describe their problem?
|
||||
|
||||
@@ -32,66 +35,49 @@ Gather this context (ask if not provided):
|
||||
### 4. Context
|
||||
- Where is traffic coming from? (ads, organic, email)
|
||||
- What do visitors already know before arriving?
|
||||
- What messaging are they seeing before this page?
|
||||
|
||||
---
|
||||
|
||||
## Copywriting Principles
|
||||
|
||||
### Clarity Over Cleverness
|
||||
- If you have to choose between clear and creative, choose clear
|
||||
- Every sentence should have one job
|
||||
- Remove words that don't add meaning
|
||||
If you have to choose between clear and creative, choose clear.
|
||||
|
||||
### Benefits Over Features
|
||||
- Features: What it does
|
||||
- Benefits: What that means for the customer
|
||||
- Always connect features to outcomes
|
||||
Features: What it does. Benefits: What that means for the customer.
|
||||
|
||||
### Specificity Over Vagueness
|
||||
- Vague: "Save time on your workflow"
|
||||
- Specific: "Cut your weekly reporting from 4 hours to 15 minutes"
|
||||
|
||||
### Customer Language Over Company Language
|
||||
- Use words your customers use
|
||||
- Avoid jargon unless your audience uses it
|
||||
- Mirror voice-of-customer from reviews, interviews, support tickets
|
||||
Use words your customers use. Mirror voice-of-customer from reviews, interviews, support tickets.
|
||||
|
||||
### One Idea Per Section
|
||||
- Don't try to say everything everywhere
|
||||
- Each section should advance one argument
|
||||
- Build a logical flow down the page
|
||||
Each section should advance one argument. Build a logical flow down the page.
|
||||
|
||||
---
|
||||
|
||||
## Writing Style Rules
|
||||
|
||||
Follow these core principles. For detailed editing checks and word-by-word polish, use the **copy-editing** skill after your initial draft.
|
||||
### Core Principles
|
||||
|
||||
### Core Style Principles
|
||||
|
||||
1. **Simple over complex** — Use everyday words. "Use" instead of "utilize," "help" instead of "facilitate."
|
||||
|
||||
2. **Specific over vague** — Avoid words like "streamline," "optimize," "innovative" that sound good but mean nothing.
|
||||
|
||||
3. **Active over passive** — "We generate reports" not "Reports are generated."
|
||||
|
||||
4. **Confident over qualified** — Remove hedging words like "almost," "very," "really."
|
||||
|
||||
5. **Show over tell** — Describe the outcome instead of using adverbs like "instantly" or "easily."
|
||||
|
||||
6. **Honest over sensational** — Never fabricate statistics, claims, or testimonials.
|
||||
1. **Simple over complex** — "Use" not "utilize," "help" not "facilitate"
|
||||
2. **Specific over vague** — Avoid "streamline," "optimize," "innovative"
|
||||
3. **Active over passive** — "We generate reports" not "Reports are generated"
|
||||
4. **Confident over qualified** — Remove "almost," "very," "really"
|
||||
5. **Show over tell** — Describe the outcome instead of using adverbs
|
||||
6. **Honest over sensational** — Fabricated statistics or testimonials erode trust and create legal liability
|
||||
|
||||
### Quick Quality Check
|
||||
|
||||
Before finalizing, scan for:
|
||||
- Jargon that could confuse outsiders
|
||||
- Sentences trying to do too much (max 3 conjunctions)
|
||||
- Passive voice constructions
|
||||
- Exclamation points (remove them)
|
||||
- Marketing buzzwords without substance
|
||||
- Jargon that could confuse outsiders?
|
||||
- Sentences trying to do too much?
|
||||
- Passive voice constructions?
|
||||
- Exclamation points? (remove them)
|
||||
- Marketing buzzwords without substance?
|
||||
|
||||
For a thorough line-by-line review, run the copy through the **copy-editing** skill's Seven Sweeps framework.
|
||||
For thorough line-by-line review, use the **copy-editing** skill after your draft.
|
||||
|
||||
---
|
||||
|
||||
@@ -106,252 +92,73 @@ Get to the point. Don't bury the value in qualifications.
|
||||
|
||||
### Use Rhetorical Questions
|
||||
Questions engage readers and make them think about their own situation.
|
||||
- "Hate returning stuff to Amazon?"
|
||||
- "Tired of chasing approvals?"
|
||||
|
||||
✅ Hate returning stuff to Amazon?
|
||||
|
||||
✅ Need to share a screenshot?
|
||||
|
||||
✅ Tired of chasing approvals?
|
||||
|
||||
### Use Analogies and Metaphors
|
||||
When appropriate, analogies make abstract concepts concrete and memorable.
|
||||
|
||||
❌ Slack lets you share files instantly, from documents to images, directly in your conversations
|
||||
|
||||
✅ Imagine Slack's file-sharing as a digital whiteboard where everyone can post files, images, and updates in real time.
|
||||
### Use Analogies When Helpful
|
||||
Analogies make abstract concepts concrete and memorable.
|
||||
|
||||
### Pepper in Humor (When Appropriate)
|
||||
Puns, wit, and humor make copy memorable—but only if it fits the brand and doesn't undermine clarity.
|
||||
Puns and wit make copy memorable—but only if it fits the brand and doesn't undermine clarity.
|
||||
|
||||
---
|
||||
|
||||
## Page Structure Framework
|
||||
|
||||
### Above the Fold (First Screen)
|
||||
### Above the Fold
|
||||
|
||||
**Headline**
|
||||
- Your single most important message
|
||||
- Should communicate core value proposition
|
||||
- Communicate core value proposition
|
||||
- Specific > generic
|
||||
|
||||
**Headline Formulas:**
|
||||
**Example formulas:**
|
||||
- "{Achieve outcome} without {pain point}"
|
||||
- "The {category} for {audience}"
|
||||
- "Never {unpleasant event} again"
|
||||
- "{Question highlighting main pain point}"
|
||||
|
||||
**{Achieve desirable outcome} without {pain point}**
|
||||
*Example: Understand how users are really experiencing your site without drowning in numbers*
|
||||
**For comprehensive headline formulas**: See [references/copy-frameworks.md](references/copy-frameworks.md)
|
||||
|
||||
**The {opposite of usual process} way to {achieve desirable outcome}**
|
||||
*Example: The easiest way to turn your passion into income*
|
||||
|
||||
**Never {unpleasant event} again**
|
||||
*Example: Never miss a sales opportunity again*
|
||||
|
||||
**{Key feature/product type} for {target audience}**
|
||||
*Example: Advanced analytics for Shopify e-commerce*
|
||||
|
||||
**{Key feature/product type} for {target audience} to {what it's used for}**
|
||||
*Example: An online whiteboard for teams to ideate and brainstorm together*
|
||||
|
||||
**You don't have to {skills or resources} to {achieve desirable outcome}**
|
||||
*Example: With Ahrefs, you don't have to be an SEO pro to rank higher and get more traffic*
|
||||
|
||||
**{Achieve desirable outcome} by {how product makes it possible}**
|
||||
*Example: Generate more leads by seeing which companies visit your site*
|
||||
|
||||
**{Key benefit of your product}**
|
||||
*Example: Sound clear in online meetings*
|
||||
|
||||
**{Question highlighting the main pain point}**
|
||||
*Example: Hate returning stuff to Amazon?*
|
||||
|
||||
**Turn {input} into {outcome}**
|
||||
*Example: Turn your hard-earned sales into repeat customers*
|
||||
|
||||
**Additional formulas:**
|
||||
- "[Achieve outcome] in [timeframe]"
|
||||
- "The [category] that [key differentiator]"
|
||||
- "Stop [pain]. Start [pleasure]."
|
||||
- "[Number] [people] use [product] to [outcome]"
|
||||
**For natural transition phrases**: See [references/natural-transitions.md](references/natural-transitions.md)
|
||||
|
||||
**Subheadline**
|
||||
- Expands on the headline
|
||||
- Adds specificity or addresses secondary concern
|
||||
- Expands on headline
|
||||
- Adds specificity
|
||||
- 1-2 sentences max
|
||||
|
||||
**Primary CTA**
|
||||
- Action-oriented button text
|
||||
- Communicate what they get, not what they do
|
||||
- "Start Free Trial" > "Sign Up"
|
||||
- "Get Your Report" > "Submit"
|
||||
- Communicate what they get: "Start Free Trial" > "Sign Up"
|
||||
|
||||
**Supporting Visual**
|
||||
- Product screenshot, demo, or hero image
|
||||
- Should reinforce the message, not distract
|
||||
### Core Sections
|
||||
|
||||
### Social Proof Section
|
||||
| Section | Purpose |
|
||||
|---------|---------|
|
||||
| Social Proof | Build credibility (logos, stats, testimonials) |
|
||||
| Problem/Pain | Show you understand their situation |
|
||||
| Solution/Benefits | Connect to outcomes (3-5 key benefits) |
|
||||
| How It Works | Reduce perceived complexity (3-4 steps) |
|
||||
| Objection Handling | FAQ, comparisons, guarantees |
|
||||
| Final CTA | Recap value, repeat CTA, risk reversal |
|
||||
|
||||
Options (use 1-2):
|
||||
- Customer logos (recognizable > many)
|
||||
- Key metric ("10,000+ teams")
|
||||
- Short testimonial with attribution
|
||||
- Star rating with review count
|
||||
|
||||
### Problem/Pain Section
|
||||
|
||||
- Articulate the problem better than they can
|
||||
- Show you understand their situation
|
||||
- Create recognition ("that's exactly my problem")
|
||||
|
||||
Structure:
|
||||
- "You know the feeling..." or "If you're like most [role]..."
|
||||
- Describe the specific frustrations
|
||||
- Hint at the cost of not solving it
|
||||
|
||||
### Solution/Benefits Section
|
||||
|
||||
- Bridge from problem to your solution
|
||||
- Focus on 3-5 key benefits (not 10)
|
||||
- Each benefit: headline + short explanation + proof point if available
|
||||
|
||||
Format options:
|
||||
- Benefit blocks with icons
|
||||
- Before/after comparison
|
||||
- Feature → Benefit → Proof structure
|
||||
|
||||
### How It Works Section
|
||||
|
||||
- Reduce perceived complexity
|
||||
- 3-4 step process
|
||||
- Each step: simple action + outcome
|
||||
|
||||
Example:
|
||||
1. "Connect your tools (2 minutes)"
|
||||
2. "Set your preferences"
|
||||
3. "Get automated reports every Monday"
|
||||
|
||||
### Social Proof (Detailed)
|
||||
|
||||
- Full testimonials with:
|
||||
- Specific results
|
||||
- Customer name, role, company
|
||||
- Photo if possible
|
||||
- Case study snippets
|
||||
- Logos section (if not above)
|
||||
|
||||
### Objection Handling
|
||||
|
||||
Common objections to address:
|
||||
- "Is this right for my situation?"
|
||||
- "What if it doesn't work?"
|
||||
- "Is it hard to set up?"
|
||||
- "How is this different from X?"
|
||||
|
||||
Formats:
|
||||
- FAQ section
|
||||
- Comparison table
|
||||
- Guarantee/promise section
|
||||
- "Built for [specific audience]" section
|
||||
|
||||
### Final CTA Section
|
||||
|
||||
- Recap the value proposition
|
||||
- Repeat the primary CTA
|
||||
- Add urgency if genuine (deadline, limited availability)
|
||||
- Risk reversal (guarantee, free trial, no credit card)
|
||||
|
||||
---
|
||||
|
||||
## Landing Page Section Variety
|
||||
|
||||
A great landing page isn't just a list of features. Use a variety of section types to create an engaging, persuasive narrative. Mix and match from these:
|
||||
|
||||
### Section Types to Include
|
||||
|
||||
**How It Works (Numbered Steps)**
|
||||
Walk users through the process in 3-4 clear steps. Reduces perceived complexity and shows the path to value.
|
||||
|
||||
**Alternative/Competitor Comparison**
|
||||
Show how you stack up against the status quo or competitors. Tables, side-by-side comparisons, or "Unlike X, we..." sections.
|
||||
|
||||
**Founder Manifesto / Our Story**
|
||||
Share why you built this and what you believe. Creates emotional connection and differentiates from faceless competitors.
|
||||
|
||||
**Testimonials**
|
||||
Customer quotes with names, photos, and specific results. Multiple formats: quote cards, video testimonials, tweet embeds.
|
||||
|
||||
**Case Studies**
|
||||
Deeper stories of customer success. Problem → Solution → Results format with specific metrics.
|
||||
|
||||
**Use Cases**
|
||||
Show different ways the product is used. Helps visitors self-identify: "This is for people like me."
|
||||
|
||||
**Personas / "Built For" Sections**
|
||||
Explicitly call out who the product is for: "Perfect for marketers," "Built for agencies," etc.
|
||||
|
||||
**Stats and Social Proof**
|
||||
Key metrics that build credibility: "10,000+ customers," "4.9/5 rating," "$2M saved for customers."
|
||||
|
||||
**Demo / Product Tour**
|
||||
Interactive demos, video walkthroughs, or GIF previews showing the product in action.
|
||||
|
||||
**FAQ Section**
|
||||
Address common objections and questions. Good for SEO and reducing support burden.
|
||||
|
||||
**Integrations / Partners**
|
||||
Show what tools you connect with. Logos build credibility and answer "Will this work with my stack?"
|
||||
|
||||
**Pricing Preview**
|
||||
Even on non-pricing pages, a pricing teaser can move decision-makers forward.
|
||||
|
||||
**Guarantee / Risk Reversal**
|
||||
Money-back guarantee, free trial terms, or "cancel anytime" messaging reduces friction.
|
||||
|
||||
### Recommended Section Mix
|
||||
|
||||
For a landing page, aim for variety. Don't just stack features:
|
||||
|
||||
**Typical Feature-Heavy Page (Weak):**
|
||||
1. Hero
|
||||
2. Feature 1
|
||||
3. Feature 2
|
||||
4. Feature 3
|
||||
5. Feature 4
|
||||
6. CTA
|
||||
|
||||
**Varied, Engaging Page (Strong):**
|
||||
1. Hero with clear value prop
|
||||
2. Social proof bar (logos or stats)
|
||||
3. Problem/pain section
|
||||
4. How it works (3 steps)
|
||||
5. Key benefits (2-3, not 10)
|
||||
6. Testimonial
|
||||
7. Use cases or personas
|
||||
8. Comparison to alternatives
|
||||
9. Case study snippet
|
||||
10. FAQ
|
||||
11. Final CTA with guarantee
|
||||
**For detailed section types and page templates**: See [references/copy-frameworks.md](references/copy-frameworks.md)
|
||||
|
||||
---
|
||||
|
||||
## CTA Copy Guidelines
|
||||
|
||||
**Weak CTAs (avoid):**
|
||||
- Submit
|
||||
- Sign Up
|
||||
- Learn More
|
||||
- Click Here
|
||||
- Get Started
|
||||
- Submit, Sign Up, Learn More, Click Here, Get Started
|
||||
|
||||
**Strong CTAs (use):**
|
||||
- Start Free Trial
|
||||
- Get [Specific Thing]
|
||||
- See [Product] in Action
|
||||
- Create Your First [Thing]
|
||||
- Book My Demo
|
||||
- Download the Guide
|
||||
- Try It Free
|
||||
|
||||
**CTA formula:**
|
||||
[Action Verb] + [What They Get] + [Qualifier if needed]
|
||||
**Formula:** [Action Verb] + [What They Get] + [Qualifier if needed]
|
||||
|
||||
Examples:
|
||||
- "Start My Free Trial"
|
||||
@@ -360,72 +167,36 @@ Examples:
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When writing copy, provide:
|
||||
|
||||
### Page Copy
|
||||
Organized by section with clear labels:
|
||||
- Headline
|
||||
- Subheadline
|
||||
- CTA
|
||||
- Section headers
|
||||
- Body copy
|
||||
- Secondary CTAs
|
||||
|
||||
### Annotations
|
||||
For key elements, explain:
|
||||
- Why you made this choice
|
||||
- What principle it applies
|
||||
- Alternatives considered
|
||||
|
||||
### Alternatives
|
||||
For headlines and CTAs, provide 2-3 options:
|
||||
- Option A: [copy] — [rationale]
|
||||
- Option B: [copy] — [rationale]
|
||||
- Option C: [copy] — [rationale]
|
||||
|
||||
### Meta Content (if relevant)
|
||||
- Page title (for SEO)
|
||||
- Meta description
|
||||
|
||||
---
|
||||
|
||||
## Page-Specific Guidance
|
||||
|
||||
### Homepage Copy
|
||||
### Homepage
|
||||
- Serve multiple audiences without being generic
|
||||
- Lead with broadest value proposition
|
||||
- Provide clear paths for different visitor intents
|
||||
- Balance "ready to buy" and "still researching"
|
||||
|
||||
### Landing Page Copy
|
||||
### Landing Page
|
||||
- Single message, single CTA
|
||||
- Match headline to ad/traffic source
|
||||
- Complete argument on one page
|
||||
- Remove distractions (often no nav)
|
||||
|
||||
### Pricing Page Copy
|
||||
### Pricing Page
|
||||
- Help visitors choose the right plan
|
||||
- Clarify what's included at each level
|
||||
- Address "which is right for me?" anxiety
|
||||
- Make recommended plan obvious
|
||||
|
||||
### Feature Page Copy
|
||||
- Connect feature to benefit to outcome
|
||||
### Feature Page
|
||||
- Connect feature → benefit → outcome
|
||||
- Show use cases and examples
|
||||
- Differentiate from competitors' versions
|
||||
- Clear path to try or buy
|
||||
|
||||
### About Page Copy
|
||||
### About Page
|
||||
- Tell the story of why you exist
|
||||
- Connect company mission to customer benefit
|
||||
- Build trust through transparency
|
||||
- Still include a CTA (it's still a marketing page)
|
||||
- Connect mission to customer benefit
|
||||
- Still include a CTA
|
||||
|
||||
---
|
||||
|
||||
## Voice and Tone Considerations
|
||||
## Voice and Tone
|
||||
|
||||
Before writing, establish:
|
||||
|
||||
@@ -439,17 +210,43 @@ Before writing, establish:
|
||||
- Bold or understated?
|
||||
- Technical or accessible?
|
||||
|
||||
Maintain consistency throughout, but adjust intensity:
|
||||
Maintain consistency, but adjust intensity:
|
||||
- Headlines can be bolder
|
||||
- Body copy should be clearer
|
||||
- CTAs should be action-oriented
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When writing copy, provide:
|
||||
|
||||
### Page Copy
|
||||
Organized by section:
|
||||
- Headline, Subheadline, CTA
|
||||
- Section headers and body copy
|
||||
- Secondary CTAs
|
||||
|
||||
### Annotations
|
||||
For key elements, explain:
|
||||
- Why you made this choice
|
||||
- What principle it applies
|
||||
|
||||
### Alternatives
|
||||
For headlines and CTAs, provide 2-3 options:
|
||||
- Option A: [copy] — [rationale]
|
||||
- Option B: [copy] — [rationale]
|
||||
|
||||
### Meta Content (if relevant)
|
||||
- Page title (for SEO)
|
||||
- Meta description
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **copy-editing**: For polishing and improving existing copy (use after writing your first draft)
|
||||
- **page-cro**: If the page structure/strategy needs work, not just copy
|
||||
- **copy-editing**: For polishing existing copy (use after your draft)
|
||||
- **page-cro**: If page structure/strategy needs work, not just copy
|
||||
- **email-sequence**: For email copywriting
|
||||
- **popup-cro**: For popup and modal copy
|
||||
- **ab-test-setup**: To test copy variations properly
|
||||
- **ab-test-setup**: To test copy variations
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"skill_name": "copywriting",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Write homepage copy for a SaaS tool that automates employee onboarding. Target audience is HR directors at mid-size companies (200-2000 employees). Main differentiator is that it integrates with all major HRIS systems and cuts onboarding time from 2 weeks to 2 days.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should write full page copy organized by section: Headline, Subheadline, CTA (above the fold), then Social Proof, Problem/Pain, Solution/Benefits, How It Works, Objection Handling, and Final CTA. Should follow copywriting principles: clarity over cleverness, benefits over features, specificity (use the '2 weeks to 2 days' stat), customer language. Headline should communicate core value proposition. CTAs should be action-oriented ('Start Free Trial' not 'Submit'). Should provide 2-3 headline alternatives with rationale. Should include annotations explaining key copy choices. Should include meta content (SEO page title and meta description).",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Writes full page copy organized by section",
|
||||
"Includes Headline, Subheadline, and CTA above the fold",
|
||||
"Includes Social Proof, Problem/Pain, Solution/Benefits, How It Works sections",
|
||||
"Uses the '2 weeks to 2 days' specificity in copy",
|
||||
"CTAs are action-oriented, not generic",
|
||||
"Provides 2-3 headline alternatives with rationale",
|
||||
"Includes annotations explaining copy choices",
|
||||
"Includes meta content (SEO title and meta description)"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Rewrite this headline: 'An Innovative AI-Powered Platform for Streamlined Business Operations' — it's for a B2B SaaS tool that helps small businesses manage invoicing and payments.",
|
||||
"expected_output": "Should identify problems: jargon ('innovative,' 'AI-powered,' 'streamlined,' 'business operations'), too vague, company language not customer language. Should apply copywriting principles — specificity over vagueness, benefits over features, customer language over company language. Should provide 2-3 alternative headlines using formulas like '{Achieve outcome} without {pain point}' or 'The {category} for {audience}'. Each alternative should include rationale. Should also suggest a subheadline that adds specificity.",
|
||||
"assertions": [
|
||||
"Identifies jargon in original headline",
|
||||
"Identifies vagueness as a problem",
|
||||
"Identifies company language vs customer language issue",
|
||||
"Provides 2-3 alternative headlines",
|
||||
"Alternatives use headline formulas from the skill",
|
||||
"Each alternative includes rationale",
|
||||
"Suggests a subheadline"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "i need copy for my pricing page. we have three plans: starter ($29/mo), pro ($79/mo), business ($199/mo). it's a social media scheduling tool for marketers",
|
||||
"expected_output": "Should trigger on the casual phrasing. Should ask or infer audience context. Should apply Pricing Page guidance: help visitors choose the right plan, address 'which is right for me?' anxiety, make recommended plan obvious. Should write plan names, descriptions, feature lists with benefit-oriented copy (not just feature names). Should include a page headline that addresses the pricing decision. CTAs should be specific per plan. Should handle objection handling (FAQ copy). Should provide alternatives for key elements.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Applies Pricing Page guidance",
|
||||
"Addresses 'which plan is right for me' anxiety",
|
||||
"Makes recommended plan obvious",
|
||||
"Writes benefit-oriented feature copy, not just feature names",
|
||||
"Includes page headline",
|
||||
"CTAs are specific per plan",
|
||||
"Includes FAQ or objection handling copy",
|
||||
"Provides alternatives for key elements"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Write copy for our About page. We're a 3-person startup that built a developer tool for database migrations. Founded because we kept losing data during migrations at our last jobs. Tone should be professional but human.",
|
||||
"expected_output": "Should apply About Page guidance: tell the story of why you exist, connect mission to customer benefit, still include a CTA. Should adapt voice and tone to 'professional but human' as specified. Should tell the founder origin story authentically. Should connect the personal pain to the customer's pain. Should include a CTA even on the About page. Copy should follow style rules: active voice, confident, specific. Should NOT be overly corporate or generic.",
|
||||
"assertions": [
|
||||
"Applies About Page guidance",
|
||||
"Tells the story of why the company exists",
|
||||
"Connects mission to customer benefit",
|
||||
"Includes a CTA",
|
||||
"Adapts tone to professional but human",
|
||||
"Uses the founder origin story",
|
||||
"Connects personal pain to customer pain",
|
||||
"Uses active voice",
|
||||
"Avoids corporate jargon"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "Can you improve this CTA? We currently have 'Learn More' on our feature page for our analytics dashboard product.",
|
||||
"expected_output": "Should immediately identify 'Learn More' as a weak CTA per the guidelines. Should apply the CTA formula: [Action Verb] + [What They Get] + [Qualifier]. Should provide 2-3 strong alternatives like 'See the Dashboard in Action,' 'Start Your Free Trial,' or 'Explore Analytics Features.' Each alternative should include rationale and context for when it works best. Should also consider CTA hierarchy — whether this is a primary or secondary CTA, and suggest complementary CTAs if relevant.",
|
||||
"assertions": [
|
||||
"Identifies 'Learn More' as a weak CTA",
|
||||
"Applies the CTA formula from the skill",
|
||||
"Provides 2-3 strong alternatives",
|
||||
"Each alternative includes rationale",
|
||||
"Considers CTA hierarchy (primary vs secondary)",
|
||||
"Suggests complementary CTAs"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Write me a 5-email welcome sequence for new trial users of our project management tool.",
|
||||
"expected_output": "Should recognize this is an email copywriting task, not page copywriting. Should defer to or cross-reference the email-sequence skill, which specifically handles email sequences, drip campaigns, and lifecycle emails. May provide brief general guidance but should make clear that email-sequence is the right skill for this task.",
|
||||
"assertions": [
|
||||
"Recognizes this as email sequence work",
|
||||
"References or defers to email-sequence skill",
|
||||
"Does not attempt to write a full email sequence using page copywriting patterns"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"prompt": "Review this copy and tell me what's wrong: 'We are extremely excited to announce our revolutionary, cutting-edge platform that will totally transform how businesses optimize their workflows! Sign up now!!'",
|
||||
"expected_output": "Should apply the Quick Quality Check. Should identify: exclamation points (remove them), marketing buzzwords without substance ('revolutionary,' 'cutting-edge,' 'totally transform,' 'optimize'), passive/weak constructions ('we are excited to announce'), vague language ('workflows'). Should apply writing style rules: simple over complex, specific over vague, confident over qualified, show over tell. Should rewrite the copy following these principles. Should provide 2-3 alternatives.",
|
||||
"assertions": [
|
||||
"Identifies exclamation point overuse",
|
||||
"Identifies marketing buzzwords without substance",
|
||||
"Identifies vague language",
|
||||
"Applies writing style rules",
|
||||
"Rewrites the copy following principles",
|
||||
"Provides alternatives",
|
||||
"Result is specific, clear, and jargon-free"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,344 @@
|
||||
# Copy Frameworks Reference
|
||||
|
||||
Headline formulas, page section types, and structural templates.
|
||||
|
||||
## Contents
|
||||
- Headline Formulas (outcome-focused, problem-focused, audience-focused, differentiation-focused, proof-focused, additional formulas)
|
||||
- Landing Page Section Types (core sections, supporting sections)
|
||||
- Page Structure Templates (feature-heavy page, varied engaging page, compact landing page, enterprise/B2B landing page, product launch page)
|
||||
- Section Writing Tips (problem section, benefits section, how it works section, testimonial selection)
|
||||
|
||||
## Headline Formulas
|
||||
|
||||
### Outcome-Focused
|
||||
|
||||
**{Achieve desirable outcome} without {pain point}**
|
||||
> Understand how users are really experiencing your site without drowning in numbers
|
||||
|
||||
**{Achieve desirable outcome} by {how product makes it possible}**
|
||||
> Generate more leads by seeing which companies visit your site
|
||||
|
||||
**Turn {input} into {outcome}**
|
||||
> Turn your hard-earned sales into repeat customers
|
||||
|
||||
**[Achieve outcome] in [timeframe]**
|
||||
> Get your tax refund in 10 days
|
||||
|
||||
---
|
||||
|
||||
### Problem-Focused
|
||||
|
||||
**Never {unpleasant event} again**
|
||||
> Never miss a sales opportunity again
|
||||
|
||||
**{Question highlighting the main pain point}**
|
||||
> Hate returning stuff to Amazon?
|
||||
|
||||
**Stop [pain]. Start [pleasure].**
|
||||
> Stop chasing invoices. Start getting paid on time.
|
||||
|
||||
---
|
||||
|
||||
### Audience-Focused
|
||||
|
||||
**{Key feature/product type} for {target audience}**
|
||||
> Advanced analytics for Shopify e-commerce
|
||||
|
||||
**{Key feature/product type} for {target audience} to {what it's used for}**
|
||||
> An online whiteboard for teams to ideate and brainstorm together
|
||||
|
||||
**You don't have to {skills or resources} to {achieve desirable outcome}**
|
||||
> With Ahrefs, you don't have to be an SEO pro to rank higher and get more traffic
|
||||
|
||||
---
|
||||
|
||||
### Differentiation-Focused
|
||||
|
||||
**The {opposite of usual process} way to {achieve desirable outcome}**
|
||||
> The easiest way to turn your passion into income
|
||||
|
||||
**The [category] that [key differentiator]**
|
||||
> The CRM that updates itself
|
||||
|
||||
---
|
||||
|
||||
### Proof-Focused
|
||||
|
||||
**[Number] [people] use [product] to [outcome]**
|
||||
> 50,000 marketers use Drip to send better emails
|
||||
|
||||
**{Key benefit of your product}**
|
||||
> Sound clear in online meetings
|
||||
|
||||
---
|
||||
|
||||
### Additional Formulas
|
||||
|
||||
**The simple way to {outcome}**
|
||||
> The simple way to track your time
|
||||
|
||||
**Finally, {category} that {benefit}**
|
||||
> Finally, accounting software that doesn't suck
|
||||
|
||||
**{Outcome} without {common pain}**
|
||||
> Build your website without writing code
|
||||
|
||||
**Get {benefit} from your {thing}**
|
||||
> Get more revenue from your existing traffic
|
||||
|
||||
**{Action verb} your {thing} like {admirable example}**
|
||||
> Market your SaaS like a Fortune 500
|
||||
|
||||
**What if you could {desirable outcome}?**
|
||||
> What if you could close deals 30% faster?
|
||||
|
||||
**Everything you need to {outcome}**
|
||||
> Everything you need to launch your course
|
||||
|
||||
**The {adjective} {category} built for {audience}**
|
||||
> The lightweight CRM built for startups
|
||||
|
||||
---
|
||||
|
||||
## Landing Page Section Types
|
||||
|
||||
### Core Sections
|
||||
|
||||
**Hero (Above the Fold)**
|
||||
- Headline + subheadline
|
||||
- Primary CTA
|
||||
- Supporting visual (product screenshot, hero image)
|
||||
- Optional: Social proof bar
|
||||
|
||||
**Social Proof Bar**
|
||||
- Customer logos (recognizable > many)
|
||||
- Key metric ("10,000+ teams")
|
||||
- Star rating with review count
|
||||
- Short testimonial snippet
|
||||
|
||||
**Problem/Pain Section**
|
||||
- Articulate their problem better than they can
|
||||
- Create recognition ("that's exactly my situation")
|
||||
- Hint at cost of not solving it
|
||||
|
||||
**Solution/Benefits Section**
|
||||
- Bridge from problem to your solution
|
||||
- 3-5 key benefits (not 10)
|
||||
- Each: headline + explanation + proof if available
|
||||
|
||||
**How It Works**
|
||||
- 3-4 numbered steps
|
||||
- Reduces perceived complexity
|
||||
- Each step: action + outcome
|
||||
|
||||
**Final CTA Section**
|
||||
- Recap value proposition
|
||||
- Repeat primary CTA
|
||||
- Risk reversal (guarantee, free trial)
|
||||
|
||||
---
|
||||
|
||||
### Supporting Sections
|
||||
|
||||
**Testimonials**
|
||||
- Full quotes with names, roles, companies
|
||||
- Photos when possible
|
||||
- Specific results over vague praise
|
||||
- Formats: quote cards, video, tweet embeds
|
||||
|
||||
**Case Studies**
|
||||
- Problem → Solution → Results
|
||||
- Specific metrics and outcomes
|
||||
- Customer name and context
|
||||
- Can be snippets with "Read more" links
|
||||
|
||||
**Use Cases**
|
||||
- Different ways product is used
|
||||
- Helps visitors self-identify
|
||||
- "For marketers who need X" format
|
||||
|
||||
**Personas / "Built For" Sections**
|
||||
- Explicitly call out target audience
|
||||
- "Perfect for [role]" blocks
|
||||
- Addresses "Is this for me?" question
|
||||
|
||||
**FAQ Section**
|
||||
- Address common objections
|
||||
- Good for SEO
|
||||
- Reduces support burden
|
||||
- 5-10 most common questions
|
||||
|
||||
**Comparison Section**
|
||||
- vs. competitors (name them or don't)
|
||||
- vs. status quo (spreadsheets, manual processes)
|
||||
- Tables or side-by-side format
|
||||
|
||||
**Integrations / Partners**
|
||||
- Logos of tools you connect with
|
||||
- "Works with your stack" messaging
|
||||
- Builds credibility
|
||||
|
||||
**Founder Story / Manifesto**
|
||||
- Why you built this
|
||||
- What you believe
|
||||
- Emotional connection
|
||||
- Differentiates from faceless competitors
|
||||
|
||||
**Demo / Product Tour**
|
||||
- Interactive demos
|
||||
- Video walkthroughs
|
||||
- GIF previews
|
||||
- Shows product in action
|
||||
|
||||
**Pricing Preview**
|
||||
- Teaser even on non-pricing pages
|
||||
- Starting price or "from $X/mo"
|
||||
- Moves decision-makers forward
|
||||
|
||||
**Guarantee / Risk Reversal**
|
||||
- Money-back guarantee
|
||||
- Free trial terms
|
||||
- "Cancel anytime"
|
||||
- Reduces friction
|
||||
|
||||
**Stats Section**
|
||||
- Key metrics that build credibility
|
||||
- "10,000+ customers"
|
||||
- "4.9/5 rating"
|
||||
- "$2M saved for customers"
|
||||
|
||||
---
|
||||
|
||||
## Page Structure Templates
|
||||
|
||||
### Feature-Heavy Page (Weak)
|
||||
|
||||
```
|
||||
1. Hero
|
||||
2. Feature 1
|
||||
3. Feature 2
|
||||
4. Feature 3
|
||||
5. Feature 4
|
||||
6. CTA
|
||||
```
|
||||
|
||||
This is a list, not a persuasive narrative.
|
||||
|
||||
---
|
||||
|
||||
### Varied, Engaging Page (Strong)
|
||||
|
||||
```
|
||||
1. Hero with clear value prop
|
||||
2. Social proof bar (logos or stats)
|
||||
3. Problem/pain section
|
||||
4. How it works (3 steps)
|
||||
5. Key benefits (2-3, not 10)
|
||||
6. Testimonial
|
||||
7. Use cases or personas
|
||||
8. Comparison to alternatives
|
||||
9. Case study snippet
|
||||
10. FAQ
|
||||
11. Final CTA with guarantee
|
||||
```
|
||||
|
||||
This tells a story and addresses objections.
|
||||
|
||||
---
|
||||
|
||||
### Compact Landing Page
|
||||
|
||||
```
|
||||
1. Hero (headline, subhead, CTA, image)
|
||||
2. Social proof bar
|
||||
3. 3 key benefits with icons
|
||||
4. Testimonial
|
||||
5. How it works (3 steps)
|
||||
6. Final CTA with guarantee
|
||||
```
|
||||
|
||||
Good for ad landing pages where brevity matters.
|
||||
|
||||
---
|
||||
|
||||
### Enterprise/B2B Landing Page
|
||||
|
||||
```
|
||||
1. Hero (outcome-focused headline)
|
||||
2. Logo bar (recognizable companies)
|
||||
3. Problem section (business pain)
|
||||
4. Solution overview
|
||||
5. Use cases by role/department
|
||||
6. Security/compliance section
|
||||
7. Integration logos
|
||||
8. Case study with metrics
|
||||
9. ROI/value section
|
||||
10. Contact/demo CTA
|
||||
```
|
||||
|
||||
Addresses enterprise buyer concerns.
|
||||
|
||||
---
|
||||
|
||||
### Product Launch Page
|
||||
|
||||
```
|
||||
1. Hero with launch announcement
|
||||
2. Video demo or walkthrough
|
||||
3. Feature highlights (3-5)
|
||||
4. Before/after comparison
|
||||
5. Early testimonials
|
||||
6. Launch pricing or early access offer
|
||||
7. CTA with urgency
|
||||
```
|
||||
|
||||
Good for ProductHunt, launches, or announcements.
|
||||
|
||||
---
|
||||
|
||||
## Section Writing Tips
|
||||
|
||||
### Problem Section
|
||||
|
||||
Start with phrases like:
|
||||
- "You know the feeling..."
|
||||
- "If you're like most [role]..."
|
||||
- "Every day, [audience] struggles with..."
|
||||
- "We've all been there..."
|
||||
|
||||
Then describe:
|
||||
- The specific frustration
|
||||
- The time/money wasted
|
||||
- The impact on their work/life
|
||||
|
||||
### Benefits Section
|
||||
|
||||
For each benefit, include:
|
||||
- **Headline**: The outcome they get
|
||||
- **Body**: How it works (1-2 sentences)
|
||||
- **Proof**: Number, testimonial, or example (optional)
|
||||
|
||||
### How It Works Section
|
||||
|
||||
Each step should be:
|
||||
- **Numbered**: Creates sense of progress
|
||||
- **Simple verb**: "Connect," "Set up," "Get"
|
||||
- **Outcome-oriented**: What they get from this step
|
||||
|
||||
Example:
|
||||
1. Connect your tools (takes 2 minutes)
|
||||
2. Set your preferences
|
||||
3. Get automated reports every Monday
|
||||
|
||||
### Testimonial Selection
|
||||
|
||||
Best testimonials include:
|
||||
- Specific results ("increased conversions by 32%")
|
||||
- Before/after context ("We used to spend hours...")
|
||||
- Role + company for credibility
|
||||
- Something quotable and specific
|
||||
|
||||
Avoid testimonials that just say:
|
||||
- "Great product!"
|
||||
- "Love it!"
|
||||
- "Easy to use!"
|
||||
@@ -0,0 +1,272 @@
|
||||
# Natural Transitions
|
||||
|
||||
Transitional phrases to guide readers through your content. Good signposting improves readability, user engagement, and helps search engines understand content structure.
|
||||
|
||||
Adapted from: University of Manchester Academic Phrasebank (2023), Plain English Campaign, web content best practices
|
||||
|
||||
---
|
||||
|
||||
## Contents
|
||||
- Previewing Content Structure
|
||||
- Introducing a New Topic
|
||||
- Referring Back
|
||||
- Moving Between Sections
|
||||
- Indicating Addition
|
||||
- Indicating Contrast
|
||||
- Indicating Similarity
|
||||
- Indicating Cause and Effect
|
||||
- Giving Examples
|
||||
- Emphasising Key Points
|
||||
- Providing Evidence (neutral attribution, expert quotes, supporting claims)
|
||||
- Summarising Sections
|
||||
- Concluding Content
|
||||
- Question-Based Transitions
|
||||
- List Introductions
|
||||
- Hedging Language
|
||||
- Best Practice Guidelines
|
||||
- Transitions to Avoid (AI Tells)
|
||||
|
||||
## Previewing Content Structure
|
||||
|
||||
Use to orient readers and set expectations:
|
||||
|
||||
- Here's what we'll cover...
|
||||
- This guide walks you through...
|
||||
- Below, you'll find...
|
||||
- We'll start with X, then move to Y...
|
||||
- First, let's look at...
|
||||
- Let's break this down step by step.
|
||||
- The sections below explain...
|
||||
|
||||
---
|
||||
|
||||
## Introducing a New Topic
|
||||
|
||||
- When it comes to X,...
|
||||
- Regarding X,...
|
||||
- Speaking of X,...
|
||||
- Now let's talk about X.
|
||||
- Another key factor is...
|
||||
- X is worth exploring because...
|
||||
|
||||
---
|
||||
|
||||
## Referring Back
|
||||
|
||||
Use to connect ideas and reinforce key points:
|
||||
|
||||
- As mentioned earlier,...
|
||||
- As we covered above,...
|
||||
- Remember when we discussed X?
|
||||
- Building on that point,...
|
||||
- Going back to X,...
|
||||
- Earlier, we explained that...
|
||||
|
||||
---
|
||||
|
||||
## Moving Between Sections
|
||||
|
||||
- Now let's look at...
|
||||
- Next up:...
|
||||
- Moving on to...
|
||||
- With that covered, let's turn to...
|
||||
- Now that you understand X, here's Y.
|
||||
- That brings us to...
|
||||
|
||||
---
|
||||
|
||||
## Indicating Addition
|
||||
|
||||
- Also,...
|
||||
- Plus,...
|
||||
- On top of that,...
|
||||
- What's more,...
|
||||
- Another benefit is...
|
||||
- Beyond that,...
|
||||
- In addition,...
|
||||
- There's also...
|
||||
|
||||
**Note:** Use "moreover" and "furthermore" sparingly. They can sound AI-generated when overused.
|
||||
|
||||
---
|
||||
|
||||
## Indicating Contrast
|
||||
|
||||
- However,...
|
||||
- But,...
|
||||
- That said,...
|
||||
- On the flip side,...
|
||||
- In contrast,...
|
||||
- Unlike X, Y...
|
||||
- While X is true, Y...
|
||||
- Despite this,...
|
||||
|
||||
---
|
||||
|
||||
## Indicating Similarity
|
||||
|
||||
- Similarly,...
|
||||
- Likewise,...
|
||||
- In the same way,...
|
||||
- Just like X, Y also...
|
||||
- This mirrors...
|
||||
- The same applies to...
|
||||
|
||||
---
|
||||
|
||||
## Indicating Cause and Effect
|
||||
|
||||
- So,...
|
||||
- This means...
|
||||
- As a result,...
|
||||
- That's why...
|
||||
- Because of this,...
|
||||
- This leads to...
|
||||
- The outcome?...
|
||||
- Here's what happens:...
|
||||
|
||||
---
|
||||
|
||||
## Giving Examples
|
||||
|
||||
- For example,...
|
||||
- For instance,...
|
||||
- Here's an example:...
|
||||
- Take X, for instance.
|
||||
- Consider this:...
|
||||
- A good example is...
|
||||
- To illustrate,...
|
||||
- Like when...
|
||||
- Say you want to...
|
||||
|
||||
---
|
||||
|
||||
## Emphasising Key Points
|
||||
|
||||
- Here's the key takeaway:...
|
||||
- The important thing is...
|
||||
- What matters most is...
|
||||
- Don't miss this:...
|
||||
- Pay attention to...
|
||||
- This is critical:...
|
||||
- The bottom line?...
|
||||
|
||||
---
|
||||
|
||||
## Providing Evidence
|
||||
|
||||
Use when citing sources, data, or expert opinions:
|
||||
|
||||
### Neutral attribution
|
||||
- According to [Source],...
|
||||
- [Source] reports that...
|
||||
- Research shows that...
|
||||
- Data from [Source] indicates...
|
||||
- A study by [Source] found...
|
||||
|
||||
### Expert quotes
|
||||
- As [Expert] puts it,...
|
||||
- [Expert] explains,...
|
||||
- In the words of [Expert],...
|
||||
- [Expert] notes that...
|
||||
|
||||
### Supporting claims
|
||||
- This is backed by...
|
||||
- Evidence suggests...
|
||||
- The numbers confirm...
|
||||
- This aligns with findings from...
|
||||
|
||||
---
|
||||
|
||||
## Summarising Sections
|
||||
|
||||
- To recap,...
|
||||
- Here's the short version:...
|
||||
- In short,...
|
||||
- The takeaway?...
|
||||
- So what does this mean?...
|
||||
- Let's pull this together:...
|
||||
- Quick summary:...
|
||||
|
||||
---
|
||||
|
||||
## Concluding Content
|
||||
|
||||
- Wrapping up,...
|
||||
- The bottom line is...
|
||||
- Here's what to do next:...
|
||||
- To sum up,...
|
||||
- Final thoughts:...
|
||||
- Ready to get started?...
|
||||
- Now it's your turn.
|
||||
|
||||
**Note:** Avoid "In conclusion" at the start of a paragraph. It's overused and signals AI writing.
|
||||
|
||||
---
|
||||
|
||||
## Question-Based Transitions
|
||||
|
||||
Useful for conversational tone and featured snippet optimization:
|
||||
|
||||
- So what does this mean for you?
|
||||
- But why does this matter?
|
||||
- How do you actually do this?
|
||||
- What's the catch?
|
||||
- Sound complicated? It's not.
|
||||
- Wondering where to start?
|
||||
- Still not sure? Here's the breakdown.
|
||||
|
||||
---
|
||||
|
||||
## List Introductions
|
||||
|
||||
For numbered lists and step-by-step content:
|
||||
|
||||
- Here's how to do it:
|
||||
- Follow these steps:
|
||||
- The process is straightforward:
|
||||
- Here's what you need to know:
|
||||
- Key things to consider:
|
||||
- The main factors are:
|
||||
|
||||
---
|
||||
|
||||
## Hedging Language
|
||||
|
||||
For claims that need qualification or aren't absolute:
|
||||
|
||||
- may, might, could
|
||||
- tends to, generally
|
||||
- often, usually, typically
|
||||
- in most cases
|
||||
- it appears that
|
||||
- evidence suggests
|
||||
- this can help
|
||||
- many experts believe
|
||||
|
||||
---
|
||||
|
||||
## Best Practice Guidelines
|
||||
|
||||
1. **Match tone to audience**: B2B content can be slightly more formal; B2C often benefits from conversational transitions
|
||||
2. **Vary your transitions**: Repeating the same phrase gets noticed (and not in a good way)
|
||||
3. **Don't over-signpost**: Trust your reader; every sentence doesn't need a transition
|
||||
4. **Use for scannability**: Transitions at paragraph starts help skimmers navigate
|
||||
5. **Keep it natural**: Read aloud; if it sounds forced, simplify
|
||||
6. **Front-load key info**: Put the important word or phrase early in the transition
|
||||
|
||||
---
|
||||
|
||||
## Transitions to Avoid (AI Tells)
|
||||
|
||||
These phrases are overused in AI-generated content:
|
||||
|
||||
- "That being said,..."
|
||||
- "It's worth noting that..."
|
||||
- "At its core,..."
|
||||
- "In today's digital landscape,..."
|
||||
- "When it comes to the realm of..."
|
||||
- "This begs the question..."
|
||||
- "Let's delve into..."
|
||||
|
||||
See the seo-audit skill's `references/ai-writing-detection.md` for a complete list of AI writing tells.
|
||||
@@ -0,0 +1,270 @@
|
||||
---
|
||||
name: customer-research
|
||||
description: When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer research," "ICP research," "talk to customers," "analyze transcripts," "customer interviews," "survey analysis," "support ticket analysis," "voice of customer," "VOC," "build personas," "customer personas," "jobs to be done," "JTBD," "what do customers say," "what are customers struggling with," "Reddit mining," "G2 reviews," "review mining," "digital watering holes," "community research," "forum research," "competitor reviews," "customer sentiment," or "find out why customers churn/convert/buy." Use for both analyzing existing research assets AND gathering new research from online sources. For writing copy informed by research, see copywriting. For acting on research to improve pages, see page-cro.
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Customer Research
|
||||
|
||||
You are an expert customer researcher. Your goal is to help uncover what customers actually think, feel, say, and struggle with — so that everything from positioning to product to copy is grounded in reality rather than assumption.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context to skip questions already answered.
|
||||
|
||||
---
|
||||
|
||||
## Two Modes of Research
|
||||
|
||||
### Mode 1: Analyze Existing Assets
|
||||
You have raw research material (transcripts, surveys, reviews, tickets). Your job is to extract signal.
|
||||
|
||||
### Mode 2: Go Find Research
|
||||
You need to gather intel from online sources (Reddit, G2, forums, communities, review sites). Your job is to know where to look and what to extract.
|
||||
|
||||
Most engagements combine both. Establish which mode applies before proceeding.
|
||||
|
||||
---
|
||||
|
||||
## Mode 1: Analyzing Existing Research Assets
|
||||
|
||||
### Asset Types
|
||||
|
||||
**Customer interview / sales call transcripts**
|
||||
- Extract: pains, triggers, desired outcomes, language used, objections, alternatives considered
|
||||
- Look for: the moment they decided to look for a solution, what they tried before, what success looks like to them
|
||||
|
||||
**Survey results**
|
||||
- Segment responses by customer tier, use case, or tenure before drawing conclusions
|
||||
- Flag: what open-ended answers say vs. what multiple-choice answers say (they often conflict)
|
||||
- Identify: the 20% of responses that contain the most useful signal
|
||||
|
||||
**Customer support conversations**
|
||||
- Mine for: recurring complaints, confusion points, feature requests, and "I wish it could…" language
|
||||
- Categorize tickets before analyzing — don't treat all tickets as equal signal
|
||||
- Separate bugs from confusion from missing features from expectation mismatches
|
||||
|
||||
**Win/loss interviews and churned customer notes**
|
||||
- Wins: what tipped the decision? What almost made them choose a competitor?
|
||||
- Losses and churn: was it price, features, fit, timing, or something else?
|
||||
- Segment by reason — don't average across different churn causes
|
||||
|
||||
**NPS responses**
|
||||
- Passives and detractors are higher signal than promoters for improvement work
|
||||
- Pair scores with verbatims — a 9 with a specific complaint beats a 10 with no comment
|
||||
|
||||
### Extraction Framework
|
||||
|
||||
For each asset, extract:
|
||||
|
||||
1. **Jobs to Be Done** — what outcome is the customer trying to achieve?
|
||||
- Functional job: the task itself
|
||||
- Emotional job: how they want to feel
|
||||
- Social job: how they want to be perceived
|
||||
|
||||
2. **Pain Points** — what's frustrating, broken, or inadequate about their current situation?
|
||||
- Prioritize pains mentioned unprompted and with emotional language
|
||||
|
||||
3. **Trigger Events** — what changed that made them seek a solution?
|
||||
- Common triggers: team growth, new hire, missed target, embarrassing incident, competitor doing something
|
||||
|
||||
4. **Desired Outcomes** — what does success look like in their words?
|
||||
- Capture exact quotes, not paraphrases
|
||||
|
||||
5. **Language and Vocabulary** — exact words and phrases customers use
|
||||
- This is gold for copy. "We were drowning in spreadsheets" > "manual process inefficiency"
|
||||
|
||||
6. **Alternatives Considered** — what else did they look at or try?
|
||||
- Includes doing nothing, hiring someone, or building internally
|
||||
|
||||
### Synthesis Steps
|
||||
|
||||
After extracting from individual assets:
|
||||
|
||||
1. **Cluster by theme** — group similar pains, outcomes, and triggers across assets
|
||||
2. **Frequency + intensity scoring** — how often does a theme appear, and how strongly is it felt?
|
||||
3. **Segment by customer profile** — do patterns differ by company size, role, use case, or tenure?
|
||||
4. **Identify the "money quotes"** — 5-10 verbatim quotes that best represent each theme
|
||||
5. **Flag contradictions** — where do customers say one thing but do another?
|
||||
|
||||
### Research Quality Guardrails
|
||||
|
||||
Label every insight with a confidence level before presenting it:
|
||||
|
||||
| Confidence | Criteria |
|
||||
|------------|----------|
|
||||
| **High** | Theme appears in 3+ independent sources; mentioned unprompted; consistent across segments |
|
||||
| **Medium** | Theme appears in 2 sources, or only prompted, or limited to one segment |
|
||||
| **Low** | Single source; could be an outlier; needs validation |
|
||||
|
||||
**Recency window**: Weight sources from the last 12 months more heavily. Markets shift — a 3-year-old transcript may reflect a different product and buyer.
|
||||
|
||||
**Sample bias checks**:
|
||||
- Online reviewers skew toward power users and people with strong opinions
|
||||
- Support tickets skew toward problems, not value
|
||||
- Reddit skews technical and skeptical vs. mainstream buyers
|
||||
- Factor this in when drawing conclusions about "all customers"
|
||||
|
||||
**Minimum viable sample**: Don't build personas or draw messaging conclusions from fewer than 5 independent data points per segment.
|
||||
|
||||
---
|
||||
|
||||
## Mode 2: Digital Watering Hole Research
|
||||
|
||||
Online communities are where customers speak without a filter. The goal is to find authentic, unmoderated language about the problem space.
|
||||
|
||||
### Where to Look
|
||||
|
||||
Choose sources based on your ICP type — then read `references/source-guides.md` for detailed playbooks, search operators, and per-platform extraction tips.
|
||||
|
||||
| ICP Type | Primary Sources |
|
||||
|----------|----------------|
|
||||
| B2B SaaS / technical buyers | Reddit (role-specific subs), G2/Capterra, Hacker News, LinkedIn, Indie Hackers, SparkToro |
|
||||
| SMB / founders | Reddit (r/entrepreneur, r/smallbusiness), Indie Hackers, Product Hunt, Facebook Groups, SparkToro |
|
||||
| Developer / DevOps | r/devops, r/programming, Hacker News, Stack Overflow, Discord servers |
|
||||
| B2C / consumer | App store reviews (1-3 star), Reddit hobby/lifestyle subs, YouTube comments, TikTok/Instagram comments |
|
||||
| Enterprise | LinkedIn, industry analyst reports, G2 Enterprise filter, job postings, SparkToro |
|
||||
|
||||
**Quick decision guide:**
|
||||
- Have a product category? → Start with G2/Capterra reviews (yours + competitors)
|
||||
- Need to know where your audience spends time? → SparkToro (reveals podcasts, YouTube, subreddits, websites, social accounts)
|
||||
- Need raw language? → Reddit and YouTube comments
|
||||
- Need trigger events? → LinkedIn posts, job postings, Hacker News "Ask HN" threads
|
||||
- Need competitive intel? → Competitor 4-star reviews on G2; Product Hunt discussions; SparkToro competitor audience analysis
|
||||
|
||||
### What to Extract from Each Source
|
||||
|
||||
For every piece of content you find:
|
||||
|
||||
| Field | What to Capture |
|
||||
|-------|----------------|
|
||||
| Source | Platform, thread URL, date |
|
||||
| Verbatim quote | Exact words — don't paraphrase |
|
||||
| Context | What prompted the comment? |
|
||||
| Sentiment | Positive / negative / neutral / frustrated |
|
||||
| Theme tag | Pain / trigger / outcome / alternative / language |
|
||||
| Customer profile signals | Role, company size, industry hints from the post |
|
||||
|
||||
### Research Synthesis Template
|
||||
|
||||
After gathering from multiple sources, synthesize into:
|
||||
|
||||
```
|
||||
## Top Themes (ranked by frequency × intensity)
|
||||
|
||||
### Theme 1: [Name]
|
||||
**Summary**: [1-2 sentences]
|
||||
**Frequency**: Appeared in X of Y sources
|
||||
**Intensity**: High / Medium / Low (based on emotional language used)
|
||||
**Representative quotes**:
|
||||
- "[exact quote]" — [source, date]
|
||||
- "[exact quote]" — [source, date]
|
||||
**Implications**: What this means for messaging / product / positioning
|
||||
|
||||
### Theme 2: ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Persona Generation
|
||||
|
||||
Personas should be built from research, not invented. Don't create a persona until you have at least 5-10 data points (interviews, reviews, or community posts) from a consistent segment.
|
||||
|
||||
### Persona Structure
|
||||
|
||||
```
|
||||
## [Persona Name] — [Role/Title]
|
||||
|
||||
**Profile**
|
||||
- Title range: [e.g., "Marketing Manager to VP of Marketing"]
|
||||
- Company size: [e.g., "50–500 employees, Series A–C SaaS"]
|
||||
- Industry: [if narrow]
|
||||
- Reports to: [who]
|
||||
- Team size managed: [if relevant]
|
||||
|
||||
**Primary Job to Be Done**
|
||||
[One sentence: what outcome are they trying to achieve in their role?]
|
||||
|
||||
**Trigger Events**
|
||||
What causes them to start looking for a solution like yours?
|
||||
- [trigger 1]
|
||||
- [trigger 2]
|
||||
|
||||
**Top Pains**
|
||||
1. [Pain — in their words if possible]
|
||||
2. [Pain]
|
||||
3. [Pain]
|
||||
|
||||
**Desired Outcomes**
|
||||
- [What success looks like to them]
|
||||
- [How they measure it]
|
||||
- [How it makes them look to their boss/team]
|
||||
|
||||
**Objections and Fears**
|
||||
- [What makes them hesitate to buy or switch]
|
||||
|
||||
**Alternatives They Consider**
|
||||
- [Competitor, DIY, do nothing, hire someone]
|
||||
|
||||
**Key Vocabulary**
|
||||
Words and phrases they actually use (sourced from research):
|
||||
- "[phrase]"
|
||||
- "[phrase]"
|
||||
|
||||
**How to Reach Them**
|
||||
- Channels: [where they spend time]
|
||||
- Content they consume: [formats, topics]
|
||||
- Influencers/communities they trust: [specific names if known]
|
||||
```
|
||||
|
||||
### Persona Anti-Patterns
|
||||
|
||||
- **Don't name them cutely** ("Marketing Mary") unless your team finds it helpful — it's often a distraction
|
||||
- **Don't average across segments** — a persona that represents everyone represents no one
|
||||
- **Don't invent details** — if you don't have data on something, leave it blank rather than filling it in
|
||||
- **Revisit quarterly** — personas decay as your market and product evolve
|
||||
|
||||
---
|
||||
|
||||
## Deliverable Formats
|
||||
|
||||
Depending on what the user needs, offer:
|
||||
|
||||
1. **Research synthesis report** — themes, quotes, patterns, and implications
|
||||
2. **VOC quote bank** — organized verbatim quotes by theme, for use in copy
|
||||
3. **Persona document** — 1-3 personas built from the research
|
||||
4. **Jobs-to-be-done map** — functional, emotional, and social jobs by segment
|
||||
5. **Competitive intelligence summary** — what customers say about competitors vs. you
|
||||
6. **Research gap analysis** — what you still don't know and how to find it
|
||||
|
||||
Ask the user which deliverable(s) they need before generating output.
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask Before Proceeding
|
||||
|
||||
If context is unclear:
|
||||
|
||||
1. **What's the goal?** Improve messaging? Build personas? Find product gaps? Understand churn?
|
||||
2. **What do you already have?** (transcripts, surveys, tickets, G2 reviews, nothing)
|
||||
3. **Who is the target segment?** (all customers, a specific tier, churned users, prospects who didn't buy)
|
||||
4. **What's your product?** (if not in the product marketing context file)
|
||||
5. **What do you want delivered?** (synthesis report, persona, quote bank, competitive intel)
|
||||
|
||||
Don't ask all five at once — lead with #1 and #2, then follow up as needed.
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
| When to hand off | Skill |
|
||||
|-----------------|-------|
|
||||
| Writing copy informed by the research | `copywriting` |
|
||||
| Optimizing a page using VOC insights | `page-cro` |
|
||||
| Building a competitor comparison page | `competitor-alternatives` |
|
||||
| Creating a churn prevention strategy from churn research | `churn-prevention` |
|
||||
| Planning paid ads informed by research | `paid-ads` |
|
||||
| Writing cold email using research on pain/trigger | `cold-email` |
|
||||
| Planning content based on discovered topics | `content-strategy` |
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"skill_name": "customer-research",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "I have 20 customer interview transcripts. Help me analyze them.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should ask about the goal before analyzing (improve messaging, build personas, find product gaps, etc.). Should apply the extraction framework: jobs to be done, pain points, trigger events, desired outcomes, language/vocabulary, alternatives considered. Should recommend clustering by theme, frequency + intensity scoring, and identifying money quotes. Should ask which deliverable is needed.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Asks about the goal before diving in (improve messaging, build personas, find gaps, etc.)",
|
||||
"Mentions extracting jobs to be done, pain points, and desired outcomes",
|
||||
"Suggests organizing quotes by theme",
|
||||
"References frequency and intensity scoring",
|
||||
"Asks which deliverable is needed"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "I want to do ICP research but I don't have any customer interviews yet.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should recommend digital watering hole research as a starting point. Should mention Reddit, G2, Capterra, forums, or niche communities as sources. Should offer to plan a research approach and explain what to extract from online sources. Should note this is Mode 2 and ask what product/category to research.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Recommends digital watering hole research as an alternative",
|
||||
"Mentions Reddit, G2, or review sites as starting points",
|
||||
"Asks what product or category to research",
|
||||
"Offers to help extract insights from online sources"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "Mine Reddit and G2 to understand what people hate about project management software.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should identify relevant subreddits (r/projectmanagement, r/productivity, r/agile) and search strategies. Should recommend reading 3-star and 1-star G2 reviews and competitor 4-star reviews. Should plan to extract verbatim quotes, pain themes, and switching triggers. Should apply the extraction table (source, quote, context, sentiment, theme tag, profile signals).",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Identifies relevant subreddits or search strategies for project management",
|
||||
"Suggests reading 3-star and 1-star G2 reviews",
|
||||
"Recommends competitor 4-star reviews for buried complaints",
|
||||
"Plans to extract verbatim quotes and pain themes",
|
||||
"Mentions what to look for: complaints, workarounds, switching triggers"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Build me a customer persona for a marketing manager at a B2B SaaS company.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should ask if there is existing research to build from before generating a persona. Should warn against inventing details without data. Should use the persona structure: profile, primary JTBD, trigger events, top pains, desired outcomes, objections, alternatives, key vocabulary, how to reach them. Should note that personas should be built from at least 5-10 data points.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Asks if there is existing research to build from before inventing details",
|
||||
"Warns against creating personas without data",
|
||||
"Includes jobs to be done, pains, triggers, and desired outcomes in persona structure",
|
||||
"Mentions the need to capture actual customer vocabulary",
|
||||
"Notes minimum data threshold (5-10 data points)"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "I have 6 months of customer support tickets. What insights can I pull from them?",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should recommend categorizing tickets before analyzing (bugs vs. confusion vs. feature requests vs. expectation mismatches). Should warn against treating all tickets as equal signal. Should suggest extracting recurring language, patterns, and 'I wish it could…' phrases. Should ask about the goal — product improvement, messaging, reducing support load, or something else.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Recommends categorizing tickets before analyzing (bugs vs confusion vs feature requests)",
|
||||
"Warns against treating all tickets as equal signal",
|
||||
"Mentions extracting recurring language and patterns",
|
||||
"Asks about the goal — product improvement, messaging, or something else"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "What are customers saying about my competitors on review sites?",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should ask which competitors to research. Should recommend G2 and Capterra as primary sources. Should specifically call out reading competitor 4-star reviews for buried complaints. Should describe what to extract: what they love (battlecard intel), what frustrates them (opportunities), unmet needs. Should use the review mining template.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Recommends reading competitor 4-star reviews specifically for buried complaints",
|
||||
"Mentions G2 or Capterra as sources",
|
||||
"Describes what to extract: what they love, what frustrates them, unmet needs",
|
||||
"Frames as competitive intelligence input"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"prompt": "Help me do voice of customer research for a new SaaS in the HR space.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should ask about the specific ICP segment within HR (recruiter, HR generalist, CHRO, etc.). Should suggest relevant digital watering holes: r/humanresources, r/recruiting, HR Slack communities, G2 HR category, LinkedIn. Should plan to extract verbatim language for copy use. Should offer to produce a VOC quote bank as a deliverable.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Asks about target ICP segment within HR",
|
||||
"Suggests relevant digital watering holes (subreddits, G2 categories, communities)",
|
||||
"Plans to extract verbatim language for copy use",
|
||||
"Mentions organizing findings into a VOC quote bank"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"prompt": "I want to understand why customers churn. I have exit survey results.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should recommend segmenting churn reasons before analyzing — do not average across different causes. Should suggest pairing open-ended responses with quantitative data. Should ask if win/loss interview data or support tickets are also available. Should apply confidence labels (high/med/low) based on sample size and source consistency.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Recommends segmenting churn reasons before analyzing",
|
||||
"Warns against averaging across different churn causes",
|
||||
"Suggests pairing open-ended responses with quantitative data",
|
||||
"Asks if win/loss interview data is also available"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"prompt": "Find the digital watering holes where DevOps engineers talk shop.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should identify specific relevant communities: r/devops, r/sysadmin, Hacker News, DevOps-focused Discord/Slack groups, LinkedIn, Stack Overflow. Should suggest what to search for in those communities. Should describe what signal to extract from each source type and reference source-guides.md for detailed playbooks.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Mentions specific relevant communities (r/devops, Hacker News, LinkedIn, Discord)",
|
||||
"Suggests what to search for in those communities",
|
||||
"Describes what signal to extract from each source type"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"prompt": "Turn my customer research into messaging I can use on my homepage.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should extract VOC language and top themes before moving to copy. Should identify the highest-signal quotes and language patterns. Should produce a VOC summary or quote bank, then hand off to the copywriting skill for the actual copy writing step rather than writing homepage copy directly.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Extracts the VOC language and themes first before jumping to copy",
|
||||
"Identifies the highest-signal quotes for messaging",
|
||||
"References the copywriting skill for the actual copy writing step"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"prompt": "I run a mobile fitness app and want to understand why users drop off after week 2.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should recognize this as a B2C research scenario. Should suggest B2C-appropriate sources: app store reviews (1-3 star), Reddit fitness communities, YouTube comment sections on fitness apps, TikTok/Instagram comments. Should also recommend in-app surveys and analyzing support tickets/reviews. Should frame around activation and habit formation research.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Recognizes this as a B2C research scenario",
|
||||
"Suggests app store reviews as a primary source",
|
||||
"Mentions Reddit or community sources relevant to fitness/consumer apps",
|
||||
"Frames around understanding drop-off triggers and desired outcomes"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"prompt": "I have no existing research and don't know who my best customers are yet.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should treat this as a bootstrap research scenario. Should recommend starting with hypothesis formation before gathering data. Should suggest a minimum viable research plan: 5-10 customer interviews + digital watering hole scan. Should provide interview recruiting tips and what questions to ask. Should warn against building personas before collecting any data.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Recognizes this as a zero-research bootstrap scenario",
|
||||
"Recommends forming hypotheses before gathering data",
|
||||
"Suggests a minimum viable research plan (interviews + online sources)",
|
||||
"Warns against building personas without any data"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,401 @@
|
||||
# Customer Research — Source Guides
|
||||
|
||||
Detailed, source-by-source playbooks for gathering customer intelligence from online watering holes.
|
||||
|
||||
---
|
||||
|
||||
## Reddit Research
|
||||
|
||||
### Finding the Right Subreddits
|
||||
|
||||
Start by identifying where your ICP spends time, not where your product is discussed.
|
||||
|
||||
**Discovery methods:**
|
||||
- Search `site:reddit.com "[job title] tools"` or `site:reddit.com "[problem category] software"`
|
||||
- Use [subreddit search tools](https://www.reddit.com/subreddits/search) with problem-space keywords
|
||||
- Look at what subreddits show up in Google results when you search ICP problems
|
||||
- Check what subreddits competitors' customers mention in reviews
|
||||
|
||||
**Common high-value subreddits by category:**
|
||||
- B2B SaaS: r/sales, r/marketing, r/entrepreneur, r/startups, r/smallbusiness
|
||||
- Dev tools: r/programming, r/devops, r/webdev, r/cscareerquestions
|
||||
- Analytics/data: r/analytics, r/dataengineering, r/BusinessIntelligence
|
||||
- Marketing: r/PPC, r/SEO, r/emailmarketing, r/content_marketing
|
||||
- HR/recruiting: r/recruiting, r/humanresources, r/jobs
|
||||
- Finance/ops: r/accounting, r/financialplanning, r/projectmanagement
|
||||
|
||||
### Search Operators
|
||||
|
||||
```
|
||||
site:reddit.com/r/[subreddit] "[keyword]"
|
||||
site:reddit.com "[problem]" "recommend" OR "suggestion" OR "alternative"
|
||||
site:reddit.com "[competitor name]" "vs" OR "alternative" OR "switched"
|
||||
```
|
||||
|
||||
### What to Look For
|
||||
|
||||
**High-signal post types:**
|
||||
- "What tools do you use for X?" → reveals alternatives and vocab
|
||||
- "Frustrated with [competitor], looking for alternatives" → reveals pain and switching triggers
|
||||
- "How do you handle X?" → reveals workflow and workarounds
|
||||
- "Is [your category] worth it?" → reveals objections and evaluation criteria
|
||||
- Complaint threads about competitors → reveals gaps you might fill
|
||||
|
||||
**What to extract:**
|
||||
- The exact problem described in the post
|
||||
- Top-voted solutions (what do practitioners actually recommend?)
|
||||
- Complaints about existing solutions in comments
|
||||
- The language used — note specific words and phrases
|
||||
- Upvote patterns — consensus vs. controversy
|
||||
|
||||
### Tools
|
||||
- Reddit's native search (limited but fast)
|
||||
- Google: `site:reddit.com [query]` (better results)
|
||||
- Pullpush.io — search archived Reddit posts (good for older threads)
|
||||
|
||||
---
|
||||
|
||||
## G2 and Review Site Mining
|
||||
|
||||
### Your Own Product Reviews
|
||||
|
||||
Read in this order for maximum signal:
|
||||
|
||||
1. **3-star reviews** — these are the most honest. Customer liked it enough to stay but felt something was missing.
|
||||
2. **1-star reviews** — understand the failure modes. Separate product issues from support/onboarding issues.
|
||||
3. **5-star reviews** — extract the "what they love" language. These are your proof points.
|
||||
4. **4-star reviews** — often contain "the only thing I wish…" buried in praise.
|
||||
|
||||
**What to extract:**
|
||||
- What they say they use it *for* (the job to be done)
|
||||
- What they say is hardest or most frustrating
|
||||
- What they compare it to ("coming from [X]", "better than [Y]")
|
||||
- Industry and role signals in reviewer profiles
|
||||
|
||||
### Competitor Reviews on G2
|
||||
|
||||
The 4-star competitor reviews are gold — customers who like the product but still have complaints.
|
||||
|
||||
**G2 structure to exploit:**
|
||||
- "What do you like best?" → their strengths (your battlecard intel)
|
||||
- "What do you dislike?" → their weaknesses (your opportunities)
|
||||
- "What problems are you solving?" → the job to be done
|
||||
|
||||
**Capterra** has similar structure. **Trustpilot** skews B2C. **AppSumo** reviews are useful for SMB/prosumer SaaS.
|
||||
|
||||
### Review Mining Template
|
||||
|
||||
For each competitor's 4-star reviews, extract:
|
||||
|
||||
| Category | Notes |
|
||||
|----------|-------|
|
||||
| Job to be done | Why do they use the product? |
|
||||
| Top praise | What do they love (and might be hard for you to match)? |
|
||||
| Top complaint | What frustrates them? |
|
||||
| Switching context | Did they mention switching from something else? |
|
||||
| Unmet need | "I wish it could…" or "It would be better if…" |
|
||||
|
||||
---
|
||||
|
||||
## Indie Hackers and Product Hunt
|
||||
|
||||
### Indie Hackers
|
||||
|
||||
Strong signal for founder/builder/SMB ICP.
|
||||
|
||||
**Where to look:**
|
||||
- "Ask IH" posts: questions about problems your product solves
|
||||
- Milestone posts: when founders describe their stack, they reveal tool preferences and pain
|
||||
- Comment threads on product launches in your category
|
||||
|
||||
**Search:** `site:indiehackers.com "[problem]"` or use IH's native search.
|
||||
|
||||
### Product Hunt
|
||||
|
||||
**Discussion tabs** on competing products are a research goldmine:
|
||||
- Questions asked = pre-sales concerns = objections
|
||||
- Comments = early adopter reactions = leading indicators of reception
|
||||
- "Alternatives to X" collections reveal the competitive landscape as users see it
|
||||
|
||||
---
|
||||
|
||||
## Hacker News
|
||||
|
||||
Strong signal for technical/developer ICP. Skews toward builders and skeptics.
|
||||
|
||||
**High-value searches:**
|
||||
- `site:news.ycombinator.com "[competitor or category]"`
|
||||
- HN "Ask HN: best tools for X" threads
|
||||
- "Show HN" posts for competitors — read the skeptical comments
|
||||
|
||||
**What's different about HN:**
|
||||
- Users are more likely to critique underlying architecture and business model
|
||||
- Strong opinions about pricing models (especially anything subscription-based)
|
||||
- First principles objections you might not hear elsewhere
|
||||
|
||||
---
|
||||
|
||||
## LinkedIn Research
|
||||
|
||||
### Posts and Comments
|
||||
|
||||
Search for posts by practitioners describing their workflows:
|
||||
- "[Role] at [company size]" + problem keyword
|
||||
- "We used to [old way] but now we [new way]" stories
|
||||
- Posts asking for tool recommendations get comments from active buyers
|
||||
|
||||
### Job Postings
|
||||
|
||||
A job posting is a company's admission of a pain point.
|
||||
|
||||
**What to look for:**
|
||||
- What tools are listed as "nice to have" vs. "required"? (reveals stack and adjacent tools)
|
||||
- What metrics and outcomes are mentioned in the role description?
|
||||
- What does the role spend most of its time doing? (reveals the job to be done)
|
||||
|
||||
**Search:** `site:linkedin.com/jobs "[role title]" "[relevant tool or category]"`
|
||||
|
||||
---
|
||||
|
||||
## YouTube Comments
|
||||
|
||||
### Finding High-Signal Videos
|
||||
|
||||
- Tutorial videos for problems your product solves
|
||||
- "Best tools for X in [year]" roundup videos
|
||||
- Competitor product demos and walkthroughs
|
||||
|
||||
**What to look for in comments:**
|
||||
- "Does this work for [specific use case]?" → edge cases and unmet needs
|
||||
- "I tried this but…" → failure points
|
||||
- "What about [competitor]?" → active evaluation
|
||||
- Timestamps with questions → confusion points in the workflow
|
||||
|
||||
---
|
||||
|
||||
## Twitter / X Research
|
||||
|
||||
### Search Operators
|
||||
|
||||
```
|
||||
"[competitor]" -filter:replies min_faves:10
|
||||
"[problem keyword]" "anyone know" OR "recommend" OR "alternative"
|
||||
"[category] is broken" OR "frustrated with [category]"
|
||||
```
|
||||
|
||||
### What to Find
|
||||
|
||||
- Real-time complaints about competitors
|
||||
- Practitioners discussing their stack
|
||||
- Influencers/thought leaders your ICP follows (useful for distribution)
|
||||
|
||||
---
|
||||
|
||||
## Blog Post and Forum Research
|
||||
|
||||
### Comparison Content
|
||||
|
||||
Google: `"[competitor 1] vs [competitor 2]"` or `"best [category] software [year]"`
|
||||
|
||||
Read the comments on these posts — people who find comparison content are actively evaluating. Their comments are questions your sales process should answer.
|
||||
|
||||
### Niche Communities
|
||||
|
||||
- **Slack communities**: Many industries have public or semi-public Slack groups. Search "[industry] Slack community".
|
||||
- **Discord servers**: Growing for developer and creator communities.
|
||||
- **Facebook Groups**: Still strong for SMB, e-commerce, agency, and coach/consultant ICP.
|
||||
- **Circle/Mighty Networks communities**: Check if there are paid communities in your ICP's space.
|
||||
|
||||
---
|
||||
|
||||
## B2C and Consumer App Research
|
||||
|
||||
B2C research requires different sources than B2B SaaS. Consumer buyers don't congregate on LinkedIn or G2 — they leave traces in app stores, social media, and communities built around the activity your product serves.
|
||||
|
||||
### App Store Reviews (iOS App Store / Google Play)
|
||||
|
||||
One of the richest unfiltered sources for mobile/consumer products.
|
||||
|
||||
**Read in this order:**
|
||||
1. **1-2 star reviews** — failure modes, unmet expectations, frustration peaks
|
||||
2. **3-star reviews** — honest tradeoffs and "it's good but…" feedback
|
||||
3. **5-star reviews** — what they love in their own words (proof points and positioning)
|
||||
|
||||
**What to extract:**
|
||||
- What job they hired the app to do ("I use this to…")
|
||||
- The moment it stopped working for them
|
||||
- What they compared it to or switched from
|
||||
- Emotional language — "I love how…", "I'm so frustrated that…"
|
||||
|
||||
**Search tip:** Sort by "Most Recent" to get fresh signal, then "Most Critical" for pain themes.
|
||||
|
||||
### Amazon Reviews (for physical products or software with Amazon presence)
|
||||
|
||||
Same priority order as app stores: 3-star reviews first.
|
||||
|
||||
**G2 analog for consumer SaaS**: Trustpilot, Sitejabber, and product-specific review aggregators.
|
||||
|
||||
### Reddit Consumer Communities
|
||||
|
||||
B2C Reddit is highly vertical — go to the hobby/lifestyle subreddit, not the general ones.
|
||||
|
||||
**Examples by product type:**
|
||||
- Fitness apps: r/running, r/loseit, r/fitness, r/MyFitnessPal
|
||||
- Personal finance: r/personalfinance, r/financialindependence, r/ynab
|
||||
- Productivity/notes: r/productivity, r/Notion, r/ObsidianMD
|
||||
- Travel: r/travel, r/solotravel, r/digitalnomad
|
||||
- Parenting: r/Parenting, r/beyondthebump, r/daddit
|
||||
|
||||
**Search pattern:** `site:reddit.com/r/[community] "[app name OR problem]"`
|
||||
|
||||
### TikTok and Instagram Comments
|
||||
|
||||
High-signal for consumer products with visual/lifestyle appeal.
|
||||
|
||||
**How to find signal:**
|
||||
- Search TikTok for "[product name] review" or "is [product] worth it"
|
||||
- Watch the top 5-10 videos; read ALL comments — not just likes
|
||||
- On Instagram, check tagged posts from real users (not brand posts)
|
||||
|
||||
**What to extract:**
|
||||
- Questions in comments = unmet needs or unclear positioning
|
||||
- "Does this work for…?" = jobs they want to hire it for
|
||||
- "I switched from X" comments = switching triggers
|
||||
- Complaints about price, missing features, or broken promises
|
||||
|
||||
### YouTube Comments (Consumer)
|
||||
|
||||
Same approach as B2B but different video types:
|
||||
|
||||
- "X app honest review" or "X app after 6 months"
|
||||
- "Best [category] apps [year]" comparison videos
|
||||
- Unboxing or "setup" videos for hardware/physical products
|
||||
|
||||
Comments on review videos are especially valuable — these are people actively in the consideration phase.
|
||||
|
||||
### Consumer Community Platforms
|
||||
|
||||
- **Facebook Groups**: Still dominant for many consumer verticals (parenting, fitness, local services, hobbies)
|
||||
- **Discord servers**: Growing for gaming, creator tools, productivity, crypto, lifestyle communities
|
||||
- **Nextdoor**: Useful for local service businesses
|
||||
- **Quora**: Long-form questions reveal decision anxiety and evaluation criteria
|
||||
|
||||
---
|
||||
|
||||
## SparkToro (Audience Intelligence)
|
||||
|
||||
SparkToro is a behavioral audience research tool. Instead of mining individual posts and comments, it aggregates clickstream, search, and social data to show what your audience does at scale — what they read, watch, listen to, follow, and search for.
|
||||
|
||||
### When to Use SparkToro vs. Manual Research
|
||||
|
||||
- **SparkToro first** when you need to understand where your ICP spends time, what content they consume, and which influencers they follow — it answers these questions in seconds with aggregated data
|
||||
- **Manual research first** (Reddit, G2, communities) when you need raw language, exact quotes, emotional context, and the "why" behind behavior
|
||||
- **Best together**: Use SparkToro to identify which podcasts, subreddits, and websites matter, then go mine those sources manually for voice-of-customer language
|
||||
|
||||
### Key Queries to Run
|
||||
|
||||
**By competitor:**
|
||||
- "People who follow @competitor" — reveals shared audience affinities
|
||||
- "People who visit competitor.com" — shows what else they consume
|
||||
|
||||
**By audience description:**
|
||||
- "People who frequently talk about [topic]" — finds audience behaviors
|
||||
- "People whose bio contains [job title]" — profiles a role-based segment
|
||||
|
||||
**By your own audience:**
|
||||
- "People who visit yourdomain.com" — understand your actual audience
|
||||
- Compare against competitor audience profiles to find gaps
|
||||
|
||||
### What to Extract
|
||||
|
||||
| Data Type | What It Tells You | Use It For |
|
||||
|-----------|------------------|------------|
|
||||
| Top websites visited | Where your audience reads | Content partnerships, guest posting targets |
|
||||
| Top podcasts | What they listen to | Podcast guesting, sponsorship decisions |
|
||||
| Top YouTube channels | What they watch | Video content strategy, ad placements |
|
||||
| Top subreddits | Where they discuss | Community participation, Reddit ad targeting |
|
||||
| Search keywords | What they Google | SEO and content topic planning |
|
||||
| AI prompt topics | What they ask AI tools | Emerging content opportunities |
|
||||
| Social accounts followed | Who influences them | Influencer partnerships, co-marketing |
|
||||
| Demographics | Who they are | Persona building, ad targeting |
|
||||
|
||||
### Source Weighting
|
||||
|
||||
SparkToro data is aggregated and anonymized — it shows patterns, not individual opinions. Treat it as:
|
||||
- **High confidence** for behavioral data (what they visit, follow, search for)
|
||||
- **Medium confidence** for demographic data (self-reported, may be incomplete)
|
||||
- **Not a substitute** for qualitative research (doesn't capture language, emotions, or the "why")
|
||||
|
||||
### Limitations
|
||||
|
||||
- Free tier: 5 reports/month, shallow results (top 5–10)
|
||||
- No public API — all research done through web interface
|
||||
- Skews English-language, US-centric
|
||||
- Shows what audiences do, not why — pair with qualitative sources
|
||||
|
||||
See [tools/integrations/sparktoro.md](../../../tools/integrations/sparktoro.md) for full tool details and pricing.
|
||||
|
||||
---
|
||||
|
||||
## Organizing Your Research
|
||||
|
||||
Use a simple tagging system across all sources:
|
||||
|
||||
| Tag | Meaning |
|
||||
|-----|---------|
|
||||
| `#pain` | A problem or frustration |
|
||||
| `#trigger` | An event that prompted the search |
|
||||
| `#outcome` | What success looks like |
|
||||
| `#language` | Exact phrases worth using in copy |
|
||||
| `#alternative` | Another solution they considered or use |
|
||||
| `#objection` | Reason to hesitate or not buy |
|
||||
| `#competitor` | Anything about a competing product |
|
||||
|
||||
Keep a running doc with columns: Source | Date | Quote | Tags | Notes
|
||||
|
||||
After 20-30 entries, patterns will emerge. Look for quotes that appear in multiple unrelated sources — those are your highest-confidence insights.
|
||||
|
||||
---
|
||||
|
||||
## Source Reliability and Confidence Scoring
|
||||
|
||||
Not all sources carry equal weight. Use this guide when assigning confidence labels.
|
||||
|
||||
### Source Weighting
|
||||
|
||||
| Source | Signal Strength | Bias to Note |
|
||||
|--------|----------------|--------------|
|
||||
| Customer interviews (unprompted) | Very high | Small sample; selection bias toward engaged customers |
|
||||
| Win/loss interviews | High | Recent memory only; rationalization common |
|
||||
| App store / G2 reviews | High | Skews toward strong opinions (love or hate) |
|
||||
| Reddit / community posts | Medium-high | Skews technical, skeptical, vocal minorities |
|
||||
| Support tickets | Medium | Skews toward problems; silent majority not represented |
|
||||
| Survey (open-ended) | Medium | Primed by question framing |
|
||||
| Survey (multiple choice) | Low-medium | Artifacts of the options you provided |
|
||||
| NPS verbatims | Medium | Correlates with score; prompted by the survey moment |
|
||||
| YouTube/TikTok comments | Medium | Skews toward engaged viewers; social performance |
|
||||
| SparkToro audience data | Medium-high | Aggregated behavioral data; strong for "what" but not "why" |
|
||||
| Job postings | Low-medium | Aspirational, not necessarily reflective of current pain |
|
||||
|
||||
### Confidence Labels in Practice
|
||||
|
||||
When presenting insights, lead with confidence:
|
||||
|
||||
```
|
||||
[HIGH CONFIDENCE] Customers feel overwhelmed by manual reporting — appears in 12 of 20 interviews,
|
||||
4 Reddit threads, and is the #1 complaint in 3-star G2 reviews. Consistent across SMB and mid-market.
|
||||
|
||||
[MEDIUM CONFIDENCE] Customers compare us to spreadsheets more than to direct competitors —
|
||||
mentioned in 6 interviews and 3 Reddit threads, but not yet seen in review data.
|
||||
|
||||
[LOW CONFIDENCE] Enterprise buyers may have procurement concerns — mentioned by 2 interviewees
|
||||
from companies 500+. Needs more signal before acting on it.
|
||||
```
|
||||
|
||||
### Recency Window
|
||||
|
||||
- **Use as primary source**: Data from the last 12 months
|
||||
- **Use with caution**: 12-24 months (product and market may have shifted)
|
||||
- **Use only for baseline context**: 2+ years old
|
||||
|
||||
When a theme appears consistently across old and new data, that's a durable signal worth acting on.
|
||||
@@ -0,0 +1,375 @@
|
||||
---
|
||||
name: directory-submissions
|
||||
description: When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery. Also use when the user mentions "directory submissions," "submit to directories," "backlinks from directories," "list my product," "submit to Product Hunt," "BetaList," "TAAFT," "Futurepedia," "G2 listing," "Capterra listing," "AlternativeTo," "SaaSHub," "AI directories," "MCP registry," "agent directory," "dofollow backlinks," "launch directories," or "directory tracker." Use this whenever someone is planning the directory layer of a product launch or an ongoing backlink campaign. For the broader launch moment, see launch-strategy. For programmatic SEO pages that should live behind these backlinks, see programmatic-seo. For AI citation optimization, see ai-seo.
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Directory Submissions
|
||||
|
||||
You are an expert in directory-driven distribution for software products. Your goal is to help the user build a compounding backlink + discovery foundation by submitting to the right directories, in the right order, with the right positioning — and to make sure that foundation actually produces leads instead of vanity backlinks.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
---
|
||||
|
||||
## Core Philosophy
|
||||
|
||||
Directory submissions are the **foundation layer** of distribution — never the whole strategy. They do three things well:
|
||||
|
||||
1. **Pass dofollow backlinks** from high domain-rating sites into your marketing pages. This raises your DR, which makes your entire site easier to rank for competitive keywords.
|
||||
2. **Create discovery surface area** — people browsing AI/SaaS directories are in-market buyers, not random traffic.
|
||||
3. **Get cited by AI engines** — ChatGPT, Claude, Perplexity, and Google AI Overviews all pull heavily from high-DR directories when answering "what's the best [category]?" queries. AI-referred traffic converts **6–27× higher** than traditional search traffic.
|
||||
|
||||
But directories alone will not generate meaningful leads. They exist to pass link equity into the pages that DO generate leads — template galleries, comparison pages, alternative pages, blog posts. **Build the destination pages first, then submit to directories so the link equity has somewhere useful to land.**
|
||||
|
||||
The full directory catalog lives in `references/directory-list.md`. The positioning variant library lives in `references/positioning-variations.md`. The submission tracker template lives in `references/submission-tracker-template.csv`.
|
||||
|
||||
---
|
||||
|
||||
## The Three Hard Rules
|
||||
|
||||
### Rule 1: Foundation before submission
|
||||
Never submit to a directory until the landing page it will link to is live, indexed, and has:
|
||||
- A single `<h1>` and sequential heading hierarchy — pages with clean hierarchy have **2.8× higher AI citation rates**, and 87% of ChatGPT-cited pages use a single H1.
|
||||
- A real pricing page (even "free while in beta" counts — most Tier 1 directories require one).
|
||||
- Privacy policy + terms.
|
||||
- Logo assets in PNG + SVG + square 1024×1024 + favicon.
|
||||
- 5–8 real product screenshots at 1920×1080 (not marketing mockups).
|
||||
- A 60–90 second demo video — products with video on Product Hunt get **2.7× more upvotes**.
|
||||
- FAQ schema markup (AI engines heavily weight `FAQPage` JSON-LD for answer extraction).
|
||||
- Structured data: `Organization`, `Product`, `SoftwareApplication`.
|
||||
|
||||
### Rule 2: Destination pages before directories
|
||||
Directories are the *source* of link equity. You need *destinations* that can convert the resulting traffic. Minimum destinations before submitting to anything:
|
||||
- 3–5 competitor alternative pages (`/alternatives/[competitor]`) targeting "[competitor] alternative" keywords. Comparison/alternative pages convert at **5–15%** vs 0.5–2% for generic content.
|
||||
- 3–5 use-case pages (`/for/[audience]` or `/use-cases/[use-case]`).
|
||||
- Template gallery with 20+ entries (if applicable — this was Typeform's largest SEO growth driver, generating 30K non-branded signups and $3M/year LTV).
|
||||
- 1 "best of" blog post you wrote yourself about your own category, including honest coverage of competitors.
|
||||
|
||||
### Rule 3: Positioning varies by directory type
|
||||
Never copy-paste the same description everywhere. AI engines penalize duplicate content, and each directory audience responds to different framing. See `references/positioning-variations.md` for the full variant library. Short version:
|
||||
|
||||
| Surface | Lead with | Why |
|
||||
|---|---|---|
|
||||
| Startup directories | **Outcome** | Audience is other founders. They care what it does. |
|
||||
| SaaS directories | **Alternative framing** | People search "[competitor] alternative" — meet them there. |
|
||||
| AI directories | **AI-first architecture** | TAAFT/Futurepedia audiences explicitly want AI tools. |
|
||||
| Agent/MCP directories | **Agent/MCP angle** | Niche but high-intent. A real moat. |
|
||||
| No-code directories | **Ease + power** | Audience values speed-to-build over depth. |
|
||||
| Dev directories | **Technical depth** | Dev audiences reward technical substance. |
|
||||
| B2B review sites | **ROI + use case** | Buyers want outcomes and case studies. |
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Readiness assessment (Phase 0)
|
||||
|
||||
Ask the user these 9 questions. If any are "no", they're not ready — help them build the missing piece first.
|
||||
|
||||
1. Is the product publicly accessible (no password wall)?
|
||||
2. Is there a pricing page (even "free while in beta")?
|
||||
3. Are privacy policy + terms live?
|
||||
4. Logo assets in PNG + SVG + square + favicon?
|
||||
5. 5–8 real screenshots + 60–90s demo video?
|
||||
6. Landing pages GEO-ready (single H1, sequential hierarchy, FAQ schema, structured data)?
|
||||
7. At least 3 alternative pages and 3 use-case pages live and indexed?
|
||||
8. Template gallery or lead magnet asset (if applicable to category)?
|
||||
9. At least 20 beta/early users who could leave a review on G2?
|
||||
|
||||
A "no" on any of 1–7 is a hard block. A "no" on 8–9 is a soft block: you can launch but will lose Tier 2 review value and Typeform-style compounding.
|
||||
|
||||
### Step 2: Choose the tiers
|
||||
|
||||
Full catalog in `references/directory-list.md`. Summary:
|
||||
|
||||
| Tier | When | Examples | Typical count |
|
||||
|---|---|---|---|
|
||||
| **Tier 1 — Flagship launch** | Launch week only | Product Hunt (anchor), BetaList, HN Show HN, Fazier, DevHunt | ~15 |
|
||||
| **Tier 2 — Startup/SaaS** | Week 1 + rolling | AlternativeTo, SaaSHub, G2, Capterra, F6S, SourceForge, Slashdot | ~15 |
|
||||
| **Tier 3 — AI directories** | Week 1–3 | TAAFT, Futurepedia, Toolify, Future Tools, aitools.inc, AIStage | ~25 |
|
||||
| **Tier 4 — Agent/MCP registries** | Week 1–3 (if MCP) | Glama, APITracker, LF MCP Registry, AI Agents List | ~10 |
|
||||
| **Tier 5 — No-code directories** | Week 1–3 (if no-code) | NoCodeFinder, No Code MBA, We Are No Code | ~6 |
|
||||
| **Tier 6 — "Best of" listicles** | Rolling outreach | Cold outreach to DR 40+ blog posts | ~10 inclusions |
|
||||
| **Tier 7 — Integration marketplaces** | When integrations ship | Zapier, HubSpot, Slack, Airtable, Notion | ~5 |
|
||||
|
||||
**Triage rule:** Only submit where the product is a genuine fit. Forcing a listing into the wrong category burns the first-submission advantage and gets rejected by moderators.
|
||||
|
||||
### Step 3: Prepare asset variations
|
||||
|
||||
For each tier, prep a distinct description variant (pulled from `references/positioning-variations.md`):
|
||||
- **Tagline** under 10 words
|
||||
- **Short description** at 60 chars
|
||||
- **Long description** at 150 words
|
||||
- **5–8 category tags**
|
||||
- **Logo** assets
|
||||
- **Screenshots** + demo video URL
|
||||
- **Founder story** (2–3 sentences)
|
||||
|
||||
**Critical:** Don't copy-paste the same long description into every directory. Vary the opening sentence, the feature emphasis, and the audience framing per tier. AI engines cross-reference and down-weight duplicate content.
|
||||
|
||||
### Step 4: Batch submit
|
||||
|
||||
Set up the tracker spreadsheet (`references/submission-tracker-template.csv`). Work left-to-right through it. 2–3 hours per batch is realistic.
|
||||
|
||||
Per submission:
|
||||
1. Copy the tier-appropriate positioning variant.
|
||||
2. Fill in the form.
|
||||
3. Upload assets.
|
||||
4. Submit.
|
||||
5. Log: date, URL, status, moderator notes.
|
||||
6. Once live, verify the backlink exists and is dofollow: `curl -sIL https://directory.com/your-listing | grep -i rel=`. If absent, the link is dofollow.
|
||||
|
||||
---
|
||||
|
||||
## Product Hunt Deep Dive (The Anchor Event)
|
||||
|
||||
Product Hunt is the single highest-leverage submission but also the most easily wasted. The 2026 PH algorithm weights **comment quality** more than upvote count — a post with 50 upvotes + 30 genuine comments ranks above one with 200 upvotes + 5 comments. **80% of failed launches** fail because they launched without a warm audience OR asked for upvotes instead of feedback.
|
||||
|
||||
### 3-week prep timeline
|
||||
|
||||
- **Day -21 to -14:** Warm up hunter account. Upvote + thoughtfully comment on 3 launches/day. Follow 100+ active makers. Build history so your account looks real to the algorithm.
|
||||
- **Day -14:** Create "Upcoming" page on PH. Drive traffic to it to collect "notify on launch" subscribers.
|
||||
- **Day -10:** (Optional) book a hunter. Don't pay cash — trade a feature, shoutout, or intro. A known hunter adds ~15% to day-one momentum but isn't required.
|
||||
- **Day -7:** Draft launch-day assets: gallery images (1270×760), tagline, 260-char description, first comment from you, first comment from a customer.
|
||||
- **Day -3:** Email list warm-up. "We're launching Tuesday. Here's what to expect. Reply if you want a heads up."
|
||||
- **Day -1:** Final check — product works in incognito, video autoplays, CTA goes to signup, PH listing preview looks right.
|
||||
|
||||
### Launch day execution
|
||||
|
||||
- **Launch at 12:01 AM Pacific Time.** Tuesday, Wednesday, or Thursday only — weekend launches get 60–70% less traffic. The 12:01 AM PT start maximizes your 24-hour window.
|
||||
- **First 2 hours are everything.** Need 50+ supporters in the first 2 hours to trigger algorithmic distribution.
|
||||
- **Post the first comment yourself** with the story: why you built it, what's different, what to try first.
|
||||
- **Reply to every comment** in under 30 minutes. PH measures maker responsiveness.
|
||||
- **Share the link to:** Twitter/X thread, LinkedIn long-form post, personal Slack/Discord communities, your email list, Indie Hackers, every power user via DM.
|
||||
- **Never ask for upvotes.** Ask for **feedback**. "Would love your honest take on the positioning" converts 3× better than "support us!" and doesn't trigger the algorithm's anti-manipulation filters.
|
||||
- **Don't message strangers.** The community flags this and moderators will hide your post.
|
||||
|
||||
### Post-launch
|
||||
|
||||
- Write a launch recap blog post with numbers + lessons. Honest, not bragging. Publish on day 2.
|
||||
- Cross-post the recap to Indie Hackers and r/SaaS (where promotion is allowed).
|
||||
- Only submit to Show HN if you have a *technical* angle to share (architecture, DSL, novel approach). A generic "we launched a SaaS" post will get flagged to death.
|
||||
|
||||
---
|
||||
|
||||
## Reviews Playbook (G2 / Capterra / TrustRadius)
|
||||
|
||||
G2 and Capterra (now owned by G2 as of Feb 2026) listings are **worthless without reviews**. 10 reviews is the magic threshold for Grid appearance. Run the 10-in-30 protocol during launch month.
|
||||
|
||||
### The 10-in-30 protocol
|
||||
|
||||
1. **Day 1 post-launch:** Identify 20 users who have completed a meaningful action with the product.
|
||||
2. **Send each a personal email** with a direct review URL (reduces friction by ~70%). No forms, no landing pages — direct link.
|
||||
3. **Offer a modest thank-you.** G2 and TrustRadius explicitly allow small incentives like a $25 Amazon gift card.
|
||||
4. **Follow up once** after 5 days. Don't follow up twice — it becomes annoying and damages the relationship.
|
||||
5. **Target:** 50% conversion → 10 reviews from 20 asks.
|
||||
|
||||
### Critical deadlines
|
||||
|
||||
- **G2 Summer reports:** cut off ~April 28. Plan review drives to land before this.
|
||||
- **G2 Fall reports:** cut off ~July 28.
|
||||
- Missing a cutoff means waiting 3 months for the next grid update.
|
||||
|
||||
### Badges and paid plans
|
||||
|
||||
- **"Users Love Us" badge** is still free: requires 20 reviews at 4.0+ average.
|
||||
- **Grid, Momentum, Index, and Award badges** require a paid G2 plan ($2,999+/year starting Summer 2025).
|
||||
- **Do not spend on paid G2 in year one.** The free listing + Users Love Us badge is sufficient.
|
||||
|
||||
### Cross-platform
|
||||
|
||||
- TrustRadius follows similar mechanics but smaller volume.
|
||||
- Capterra auto-syncs from Gartner Digital Markets in some categories — may populate without direct action.
|
||||
|
||||
---
|
||||
|
||||
## Destination Pages Strategy (What the Backlinks Point At)
|
||||
|
||||
Directories are useless if the backlinks land on a generic homepage. Build these destination pages *before* submitting:
|
||||
|
||||
### 1. Alternative pages (highest ROI)
|
||||
|
||||
Competitor alternative pages convert at **5–15%**, often hitting 15–30% for bottom-of-funnel queries. One page per top competitor:
|
||||
|
||||
- `/alternatives/[competitor-1]`
|
||||
- `/alternatives/[competitor-2]`
|
||||
- `/alternatives/[competitor-3]`
|
||||
- `/alternatives/[competitor-4]`
|
||||
|
||||
Each page needs: honest feature comparison table, "when to choose X over us," "when to choose us over X," pricing comparison, 3–5 use-case examples, strong FAQ with schema.
|
||||
|
||||
**Critical:** Be honest. AI engines cross-reference competitor feature claims and de-rank pages that lie.
|
||||
|
||||
### 2. Use-case / ICP pages
|
||||
|
||||
Every ICP gets a dedicated landing page:
|
||||
- `/for/[audience]` — coaches, agencies, ecommerce, SaaS, consultants, etc.
|
||||
- `/use-cases/[use-case]` — lead qualification, onboarding, product recommendations, etc.
|
||||
|
||||
### 3. Template / asset gallery (if applicable)
|
||||
|
||||
Typeform's template library generated **30,000 non-branded organic signups and $3M/year LTV**. The pattern:
|
||||
- One indexable page per template at `/templates/[slug]`.
|
||||
- H1 with the keyword, 150+ word description, screenshot, "when to use this," "use this template" CTA.
|
||||
- Related templates at the bottom of each page (internal linking = SEO compounding).
|
||||
- 100 templates by day 30, 300 by day 90 is the realistic target.
|
||||
|
||||
### 4. "Best of" listicles you wrote yourself
|
||||
|
||||
Write honest roundups of your own category: `/blog/best-[category]-tools-2026`. Include yourself + 10 competitors with real reviews. These rank for category queries AND serve as canonical references AI engines cite.
|
||||
|
||||
### 5. Integration pages (when integrations ship)
|
||||
|
||||
Every integration = one landing page at `/integrations/[partner]`. Follows the Zapier playbook: Zapier gets **~2.6M monthly organic visits** from programmatic integration pages (~15% of their total organic traffic).
|
||||
|
||||
---
|
||||
|
||||
## GEO (Generative Engine Optimization)
|
||||
|
||||
In 2026, 30–50% of "research a tool" queries happen inside ChatGPT, Claude, Perplexity, or Google AI Overviews without ever touching a traditional search page. Directories matter here too — AI engines pull heavily from high-DR directories when generating answers. But the *destination pages* also need to be GEO-optimized.
|
||||
|
||||
### Tactics that get pages cited
|
||||
|
||||
1. **One H1 per page, sequential heading hierarchy.** 2.8× higher citation rate. 87% of cited pages use a single H1.
|
||||
2. **Dense, factual content with citable stats.** AI engines prefer specific numbers ("3× faster than X") over vague claims.
|
||||
3. **FAQ schema on every landing page.** AI engines heavily weight `FAQPage` JSON-LD for answer extraction.
|
||||
4. **Comparison tables.** Extractable, structured — exactly what an AI answer needs.
|
||||
5. **Explicit "what it is" paragraph in the first 100 words.**
|
||||
6. **Get cited on Reddit and Hacker News.** Claude and Perplexity index these heavily. Genuine mentions on r/SaaS and HN count as training fuel.
|
||||
7. **Publish original research.** "We analyzed 10,000 [things] and found X" becomes the primary citation for anyone writing about that topic.
|
||||
8. **Claim Crunchbase, LinkedIn company page, and Wikidata entries.** All three feed AI training corpora.
|
||||
9. **If applicable, list on MCP registries with A/B grades** (Glama in particular). LLMs pull from these when answering MCP questions.
|
||||
|
||||
### Measurement
|
||||
|
||||
Manually check monthly: ask ChatGPT, Claude, and Perplexity "what are the best [category] tools?" and log where the product appears. Free GEO tracking tools (GeoTracker, llmrefs) automate this.
|
||||
|
||||
---
|
||||
|
||||
## Community & Ongoing Distribution
|
||||
|
||||
Directories are one-shot. Community is ongoing. Both feed the same funnel.
|
||||
|
||||
### Reddit (90/10 rule)
|
||||
|
||||
90% of activity must be genuinely helpful; only 10% promotional. Violating this gets shadowbanned.
|
||||
|
||||
**High-value subs (ranked):**
|
||||
- **r/SideProject** (200K+) — friendly to promo, launch announcements welcome.
|
||||
- **r/SaaS** (300K+) — "Share Your SaaS" threads are explicit promo windows.
|
||||
- **r/startups** (1.7M) — Feedback Friday thread.
|
||||
- **r/Entrepreneur** (3.5M) — weekly promo thread.
|
||||
- **r/nocode**, **r/IndieHackers**, **r/alphaandbetausers** — friendly.
|
||||
- **r/webdev**, **r/artificial**, **r/LocalLLaMA** — strict, technical only.
|
||||
|
||||
**What wins:** real numbers (MRR, signups, churn), screenshots, "what I tried / what happened / what I'd do differently" structure, mini case studies with a clear lesson. **What fails:** hype, vague claims, "check out my new tool" posts, asking for upvotes.
|
||||
|
||||
### LinkedIn (B2B primary channel)
|
||||
|
||||
80% of B2B social leads come from LinkedIn. Cadence: **3–5 posts/week** — fewer loses momentum, more causes fatigue.
|
||||
|
||||
Content types ranked by 2026 engagement:
|
||||
1. Personal stories with business lessons (1.5–2× avg engagement)
|
||||
2. Original data / research (1.3–1.5×)
|
||||
3. Contrarian industry takes (1.2–1.5×)
|
||||
4. Document carousels with 8–12 slides (1.3–1.8×)
|
||||
|
||||
### Twitter/X (indie hacker + dev channel)
|
||||
|
||||
Build-in-public threads on architecture, revenue, decisions. Technical deep-dives get indexed by Google + Claude + Perplexity → indirect GEO.
|
||||
|
||||
### Indie Hackers
|
||||
|
||||
- Launch a build-in-public thread on PH launch day.
|
||||
- Post weekly updates: revenue, ships, lessons. Zero-revenue posts work if the lesson is honest.
|
||||
- Comment 10× more than you post to build karma before your own links.
|
||||
|
||||
### Dev.to + Hashnode
|
||||
|
||||
Every substantial technical post = dofollow backlink + dev audience reach. Cross-post with canonical URL back to main blog.
|
||||
|
||||
---
|
||||
|
||||
## KPIs & Tracking
|
||||
|
||||
Track weekly. If a number isn't moving, investigate — don't just submit more directories.
|
||||
|
||||
| Metric | Day 0 | Day 30 target | Day 90 target |
|
||||
|---|---|---|---|
|
||||
| Domain Rating (DR) | 0 | 20 | 30+ |
|
||||
| Referring domains | 0 | 30 | 80+ |
|
||||
| Indexed pages | — | 50 | 200+ |
|
||||
| Organic clicks/day | 0 | 30 | 200+ |
|
||||
| Directory listings live | 0 | 50 | 70+ |
|
||||
| G2 reviews | 0 | 10 | 25 |
|
||||
| Capterra reviews | 0 | 5 | 15 |
|
||||
| AI citations (manual check) | 0 | 3 | 15+ |
|
||||
| Signups from directory referrals | 0 | 50 | 300 |
|
||||
| Signups from alt/use-case pages | 0 | 20 | 300 |
|
||||
|
||||
---
|
||||
|
||||
## What NOT to Do
|
||||
|
||||
1. **Don't pay for directory submission services** ($60–$200 packages). The whole point is these are free. It's an afternoon of copy-paste.
|
||||
2. **Don't submit to spam directories** (DR under 10, no traffic, no editorial quality). They dilute your backlink profile and Google's spam detection can penalize you.
|
||||
3. **Don't submit with the wrong positioning.** Re-read the positioning table per tier. Generic descriptions waste the listing.
|
||||
4. **Don't treat directories as your entire GTM.** They're the foundation. Content + community + reviews are what actually convert.
|
||||
5. **Don't skip reviews on G2/Capterra.** Zero-review listings are dead. Run the 10-in-30 protocol or don't submit.
|
||||
6. **Don't ask for upvotes on Product Hunt.** The 2026 algorithm penalizes it. Ask for **feedback**.
|
||||
7. **Don't amend old directory listings every week.** Submit once, check quarterly.
|
||||
8. **Don't submit before the destination page exists.** Link equity needs a destination.
|
||||
9. **Don't duplicate descriptions across directories.** AI engines penalize duplicate content.
|
||||
10. **Don't lie on comparison pages.** AI engines cross-reference and de-rank lies.
|
||||
11. **Don't over-index on launch-day spike.** The flywheel is templates + alternatives + reviews + ongoing content — not one day of PH.
|
||||
12. **Don't forget Crunchbase, LinkedIn company page, and Wikidata.** These feed AI training corpora and matter for GEO.
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. **What are you launching?** (Category changes tier mix — AI vs traditional SaaS vs no-code vs dev tool.)
|
||||
2. **When is launch day?** (Phase 0 assets need 7 days of prep.)
|
||||
3. **Do you have destination pages built?** (Alternatives, use cases, templates — if not, build first.)
|
||||
4. **Product Hunt hunter lined up?** (Optional but adds ~15% day-one lift. 3-week warm-up required regardless.)
|
||||
5. **How many beta users can you ask for reviews?** (Need 20 to hit 10.)
|
||||
6. **Do you have an MCP or agent angle?** (If yes, Tier 4 registries are a real moat.)
|
||||
7. **Existing integrations?** (If yes, Tier 7 marketplaces are the highest-DR backlinks available.)
|
||||
8. **Email list size?** (Needed for PH launch day warm traffic — 100+ is the minimum.)
|
||||
9. **Current DR and referring domain count?** (Baseline for measuring the compounding effect.)
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When the user asks for a directory plan, return:
|
||||
|
||||
1. **Readiness assessment** — which Phase 0 items are missing, which block submission
|
||||
2. **Tier selection** — which tiers apply, which to skip, why
|
||||
3. **Submission order** — week 1 / week 2 / week 3 batches
|
||||
4. **Destination page list** — what to build first if missing
|
||||
5. **Positioning variants** — the actual copy per tier (from `references/positioning-variations.md`)
|
||||
6. **PH 3-week prep timeline** — mapped to calendar dates if launch day known
|
||||
7. **Reviews 10-in-30 plan** — who to ask, when, how
|
||||
8. **Weekly targets** — directories submitted, reviews, DR movement
|
||||
9. **Tracker** — link to or include the CSV from `references/submission-tracker-template.csv`
|
||||
|
||||
Keep the plan actionable. Every item should be something the user can do today.
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **launch-strategy** — broader launch moment, ORB framework, five-phase approach
|
||||
- **programmatic-seo** — destination pages (alternatives, integrations, templates) that backlinks should flow into
|
||||
- **competitor-alternatives** — `/alternatives/[tool]` page pattern
|
||||
- **ai-seo** — GEO optimization for AI citation
|
||||
- **content-strategy** — editorial content that attracts "best of" listicle inclusions
|
||||
- **free-tool-strategy** — lead magnets for destination pages
|
||||
- **community-marketing** — Reddit, Indie Hackers, Slack community mechanics
|
||||
- **schema-markup** — FAQ + Product + Organization JSON-LD for GEO
|
||||
@@ -0,0 +1,181 @@
|
||||
# Directory List — Full Reference
|
||||
|
||||
Canonical list of directories organized by tier. DR values are approximate and drift over time — verify via Ahrefs or Moz before building a plan around them.
|
||||
|
||||
**Column legend:**
|
||||
- **DR** — Domain Rating (Ahrefs). Higher = more link equity passed.
|
||||
- **Dofollow** — Whether the backlink passes SEO value. Nofollow listings still matter for referral traffic and brand signals.
|
||||
- **Cost** — Free unless noted.
|
||||
|
||||
---
|
||||
|
||||
## Tier 1 — Flagship Launch Platforms
|
||||
|
||||
Submit only during launch week. These are time-sensitive with limited re-submission windows.
|
||||
|
||||
| Directory | DR | Dofollow | Cost | Notes |
|
||||
|---|---|---|---|---|
|
||||
| **Product Hunt** | 91 | Yes | Free | The anchor event. Requires 3-week warm-up. 2026 algorithm weights comment quality over upvotes. Launch Tue/Wed/Thu at 12:01 AM PT. |
|
||||
| **Hacker News (Show HN)** | 91 | Nofollow | Free | Only if you have a genuine technical angle. Post title format: "Show HN: [Product] — [hook]". Moderator death penalty for hype. |
|
||||
| **BetaList** | 64 | Yes | Free (paid expedite ~$99) | Best for pre-launch waitlist building. Submission → 2–4 week queue unless expedited. |
|
||||
| **Launching Next** | ~30 | Yes | Free | Editorial curation — needs a compelling story. |
|
||||
| **Fazier** | ~30 | Yes | Free | Daily ranking with much lower competition than PH. Achievable #1. |
|
||||
| **Uneed** | ~40 | Yes | Free | Curated, smaller audience, quality backlink. |
|
||||
| **Microlaunch** | ~30 | Yes | Free | Month-long visibility vs one-day spike. |
|
||||
| **OpenHunts** | ~25 | Yes | Free | Indie-maker friendly, reports 14%+ conversion rates. |
|
||||
| **DevHunt** | ~35 | Yes | Free | Dev-focused. Best fit for developer tools and technical products. |
|
||||
| **PeerPush** | ~25 | Yes | Free | Similar to Fazier. Low competition. |
|
||||
| **LaunchVault** | ~20 | Yes | Free | Anti-VC positioning. Good for bootstrapped narrative. |
|
||||
| **What Launched Today** | ~20 | Yes | Free | Guaranteed visibility on launch day regardless of votes. |
|
||||
| **Firsto** | ~25 | Yes | Free tier | Sustained discovery, not one-day spike. |
|
||||
| **GetByte** | ~20 | Yes | Free | Lightweight listing + promotional support. |
|
||||
| **Best of Web** | ~30 | Yes | Free | Easy fast submission, free dofollow. |
|
||||
| **Tiny Launch** | ~20 | Yes | Free | Lightweight, fast approval. |
|
||||
| **PitchWall** | ~25 | Yes | Free | Indie-hacker friendly. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 2 — Startup / SaaS / Software Directories
|
||||
|
||||
Submit during launch week and continue rolling submissions thereafter.
|
||||
|
||||
| Directory | DR | Dofollow | Cost | Notes |
|
||||
|---|---|---|---|---|
|
||||
| **AlternativeTo** | 79 | Nofollow | Free | Massive SEO value despite nofollow. Submit as alternative to your top 4 competitors. |
|
||||
| **SaaSHub** | 77 | Yes | Free | Ranks well for "[tool] alternatives" queries. High intent. |
|
||||
| **G2** | 92 | Yes | Free listing | 10 reviews required for Grid appearance. Paid badges start at $2,999/yr. |
|
||||
| **Capterra** | 93 | Yes | Free listing | Owned by G2 (acquired Feb 2026). Reviews drive everything. |
|
||||
| **GetApp** | 78 | Yes | Free | Auto-syncs from Capterra in some cases. Owned by G2. |
|
||||
| **SourceForge** | 92 | Yes | Free | Legacy but still high DR. Trivial to list. |
|
||||
| **Slashdot** | ~88 | Yes | Free | Legacy but high DR. Company profile submission. |
|
||||
| **Startup Stash** | ~50 | Yes | Free | Curated, organized by startup need. |
|
||||
| **SideProjectors** | ~35 | Yes | Free | Discovery + marketplace. Community-driven. |
|
||||
| **F6S** | 65 | Yes | Free | Startup platform used by accelerators. |
|
||||
| **Stackshare** | ~60 | Yes | Free | Dev-centric. Show your tech stack. |
|
||||
| **Resource.fyi** | ~40 | Yes | Free | Curated for designers/devs/marketers. |
|
||||
| **Shipybara** | ~30 | Yes | Free | Shows which companies use your tool. |
|
||||
| **TrustRadius** | 72 | Yes | Free | Smaller but respected B2B review platform. |
|
||||
| **Crozdesk** | ~55 | Yes | Free | Feeds into Gartner ecosystem. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 3 — AI Tool Directories
|
||||
|
||||
Relevant only for AI-native products. Submit during weeks 1–3.
|
||||
|
||||
### Tier 3A — Flagship AI directories
|
||||
|
||||
| Directory | DR | Monthly Traffic | Notes |
|
||||
|---|---|---|---|
|
||||
| **There's An AI For That (TAAFT)** | 76 | 2M+ | Largest AI directory. Task-based search. Worth the effort to list well. |
|
||||
| **Futurepedia** | 70 | 1M+ | 5,000+ tools, 54 categories. Matt Wolfe YouTube (2M+ subs) drives traffic. |
|
||||
| **Toolify.ai** | 71 | 500K+ | 26K+ tools, 450+ categories. Tracks traffic trends. |
|
||||
| **Future Tools (futuretools.io)** | 69 | 400K+ | Curated by Matt Wolfe. Smaller but influential. |
|
||||
| **AI Tools Neilpatel** | 91 | n/a | Highest DR free AI directory. |
|
||||
| **Good AI Tools** | 66 | n/a | Curated, quality over quantity. |
|
||||
| **NewTools.site** | 51 | n/a | Dofollow backlink for every approved submission. |
|
||||
|
||||
### Tier 3B — Mid-tier AI directories
|
||||
|
||||
| Directory | Est. DR | Notes |
|
||||
|---|---|---|
|
||||
| **aitools.inc** | ~66 | "10x your output" positioning. |
|
||||
| **AIStage** | ~66 | Includes open source + news. |
|
||||
| **AItrendytools** | ~69 | Comprehensive listing. |
|
||||
| **Grabon AI Directory** | ~70 | High DR, broad audience. |
|
||||
| **TopAI.tools** | ~60 | Task-based search similar to TAAFT. |
|
||||
| **Supertools** | ~61 | Clean interface, good categorization. |
|
||||
| **AI Tools Directory** (aitoolsdirectory.com) | ~55 | Curated; featured placement available. |
|
||||
| **AI Tools Love** | ~25 | Comparison-focused. |
|
||||
| **AIChief** | ~35 | Business-focused. |
|
||||
| **LogicBalls** | ~40 | 3,500+ verified tools. |
|
||||
| **SaasAITools** | ~30 | SaaS + AI crossover. |
|
||||
| **PoweredByAI** | ~35 | Growing directory with newsletter reach. |
|
||||
| **TheAISurf** | ~30 | Newer, actively promoting submissions. |
|
||||
| **Aixyz** | ~30 | 1,500+ tools, smart filters. |
|
||||
| **AI Pedia Hub** | ~40 | "Largest directory, updated daily." |
|
||||
| **Dofollow.Tools** | ~30 | Explicitly free dofollow backlinks. |
|
||||
| **AIBacklinkList** | ~25 | Aggregated list of 2500+ AI backlink opportunities. |
|
||||
| **AI Scout** | ~25 | Emerging, less competition. |
|
||||
| **AiMatchPro** | ~20 | Use-case search. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 4 — AI Agent & MCP Server Registries
|
||||
|
||||
Relevant only if the product exposes agent capabilities or MCP servers. These are a real moat for AI-native tools — traditional SaaS products cannot list here.
|
||||
|
||||
| Directory | Category | Notes |
|
||||
|---|---|---|
|
||||
| **AI Agents List (aiagentslist.com)** | Agents | Hosts the 593+ MCP server directory. |
|
||||
| **Glama.ai MCP servers** | MCP | 20K+ security-graded MCP servers. A/B/C/F grades matter — optimize for a good grade. |
|
||||
| **APITracker MCP directory** | MCP | 110+ servers, 90 official integrations. |
|
||||
| **Linux Foundation MCP Registry** | MCP | Canonical registry (PR-based submission, low volume but high signal). Anthropic donated MCP to LF in Dec 2025. |
|
||||
| **AI Agent Store** | Agents | Compare agents, platforms, frameworks. |
|
||||
| **AI Agents Base** | Agents | All-in-one directory. |
|
||||
| **AI Agents Directory** | Agents | Specialized, updated daily. |
|
||||
| **AI Agents Verse** | Agents | Curated directory. |
|
||||
| **AgentHunter** | Agents | "Discover the best AI agents." |
|
||||
| **Add AI Directory** | Agents | Catalogs agents + tools. |
|
||||
| **AI Agents Live** | Agents | Discovery + sharing. |
|
||||
| **AI Agents Marketplace** | Agents | Organized by 300+ human role equivalents. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 5 — No-Code Directories
|
||||
|
||||
Relevant for no-code platforms and builder tools.
|
||||
|
||||
| Directory | Est. DR | Notes |
|
||||
|---|---|---|
|
||||
| **NoCodeFinder** | ~45 | Accepts submissions. |
|
||||
| **No Code MBA Tools Directory** | ~55 | Categorized by project type. |
|
||||
| **We Are No Code Tools Repository** | ~40 | Curated. |
|
||||
| **NoCodeList** | ~30 | — |
|
||||
| **NoCodeDevs** | ~25 | — |
|
||||
| **NoCode.Tech** | ~35 | — |
|
||||
|
||||
---
|
||||
|
||||
## Tier 6 — "Best of" Listicles (Editorial Outreach)
|
||||
|
||||
Not directories per se — these are blog posts on high-DR domains that you get included in via cold outreach. Often more valuable than directories because they combine a dofollow backlink with editorial trust + in-market buyer traffic + AI citation weight.
|
||||
|
||||
**Search patterns to find opportunities:**
|
||||
- `"best [category] tools" 2026`
|
||||
- `"best [competitor] alternative"`
|
||||
- `"top AI [category]"`
|
||||
- `"[category] tools review"`
|
||||
|
||||
**Outreach template (short):**
|
||||
> Hey [name], saw your post on [best X tools]. We launched [product] recently — thought it might be worth a mention. Happy to give you a free account + credits for readers. Here's a 60s demo: [link]. No worries if not a fit.
|
||||
|
||||
**Target:** 10 inclusions in 30 days. Each = dofollow backlink from DR 40–70 + referral traffic + AI citation fuel.
|
||||
|
||||
---
|
||||
|
||||
## Tier 7 — Integration Marketplaces
|
||||
|
||||
Only relevant once the product has integrations. These are the highest-DR backlinks available — worth engineering effort just to land them.
|
||||
|
||||
| Directory | DR | Notes |
|
||||
|---|---|---|
|
||||
| **Zapier App Directory** | 91 | Requires working Zapier integration. |
|
||||
| **HubSpot App Marketplace** | 93 | Requires HubSpot app. |
|
||||
| **Slack App Directory** | 89 | Requires Slack integration. |
|
||||
| **Airtable Marketplace** | 82 | Requires Airtable integration. |
|
||||
| **Notion Integrations Gallery** | 88 | Requires Notion integration. |
|
||||
| **Make (Integromat)** | ~70 | Requires Make module. |
|
||||
| **Pipedream** | ~70 | Requires Pipedream action. |
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
After any submission goes live, verify the backlink exists and is dofollow. You can:
|
||||
|
||||
1. **Manual:** Open the listing, right-click your product link, "Inspect" → check for `rel="nofollow"` or `rel="ugc"`. If absent, the link is dofollow.
|
||||
2. **curl:** `curl -sIL https://directory.com/your-listing | grep -i link`
|
||||
3. **SEO tools:** Ahrefs Site Explorer → Backlinks → filter by this directory's domain.
|
||||
|
||||
**Re-verify quarterly.** Directories sometimes change all outbound links to nofollow without warning — if DR stops moving, check whether your biggest inbound links have silently flipped.
|
||||
@@ -0,0 +1,232 @@
|
||||
# Positioning Variations Library
|
||||
|
||||
Directory audiences respond to different framings. Never copy-paste the same description everywhere — AI engines penalize duplicate content, and each directory type rewards a different opener.
|
||||
|
||||
Use this library to generate per-tier variants. Swap `[product]`, `[category]`, `[competitors]`, `[use-case]`, and `[audience]` with the real values.
|
||||
|
||||
---
|
||||
|
||||
## Framework: Lead Sentence Varies by Tier
|
||||
|
||||
| Tier | Lead sentence pattern | Why |
|
||||
|---|---|---|
|
||||
| Startup / launch | "[Product] is the easiest way to [outcome] for [audience]." | Founders scan for outcome clarity. |
|
||||
| SaaS directory | "[Product] is the [differentiator] alternative to [competitors]." | Catches "[competitor] alternative" search intent. |
|
||||
| AI directory | "[Product] uses [AI capability] to [outcome]." | TAAFT/Futurepedia audiences explicitly want AI. |
|
||||
| Agent / MCP | "[Product] is an MCP-native / agent-native [category]." | Niche but high-intent. Ruling-out competitors. |
|
||||
| No-code | "[Product] lets you build [output] without code." | Audience values speed, not technical depth. |
|
||||
| Dev tool | "[Product] is a [technical category] with [differentiator]." | Devs want substance upfront. |
|
||||
| B2B review | "[Product] helps [audience] [measurable business outcome]." | Reviewers want ROI language. |
|
||||
|
||||
---
|
||||
|
||||
## Template: Startup / Launch Directories
|
||||
|
||||
**Target:** Product Hunt, BetaList, Fazier, Uneed, DevHunt, Microlaunch, OpenHunts, LaunchVault, Firsto, PitchWall
|
||||
|
||||
**Tagline (under 10 words):**
|
||||
> The [differentiator] way to [outcome] for [audience].
|
||||
|
||||
**Short description (60 chars):**
|
||||
> [Outcome-focused one-liner with product name]
|
||||
|
||||
**Long description (150 words):**
|
||||
> [Product] is the easiest way to [outcome] for [audience]. Built for teams who [pain point], [product] removes [friction] by [how].
|
||||
>
|
||||
> Unlike [competitor category], [product] [key differentiator 1] and [key differentiator 2]. You can [action 1] in under [timeframe], [action 2] without [limitation], and [action 3] that would normally require [cost or technical skill].
|
||||
>
|
||||
> We built [product] because [founder origin story in one sentence]. It's now used by [audience examples] to [use case examples].
|
||||
>
|
||||
> Try it free at [url]. No credit card, no setup.
|
||||
|
||||
**Tags:** [product category], [audience type], [use case 1], [use case 2], [differentiator], [tech]
|
||||
|
||||
---
|
||||
|
||||
## Template: SaaS / Software Directories
|
||||
|
||||
**Target:** AlternativeTo, SaaSHub, G2, Capterra, GetApp, SourceForge, Slashdot, Startup Stash, F6S
|
||||
|
||||
**Tagline:**
|
||||
> The [differentiator] alternative to [top competitors].
|
||||
|
||||
**Long description:**
|
||||
> [Product] is a [differentiator] alternative to [competitor 1], [competitor 2], and [competitor 3] — built for [audience] who need [gap the competitors don't fill].
|
||||
>
|
||||
> Where [competitor 1] [limitation 1] and [competitor 2] [limitation 2], [product] [solves]. You get [feature 1], [feature 2], and [feature 3] in a single workspace, at [pricing relative to competitors].
|
||||
>
|
||||
> Key features:
|
||||
> • [Feature 1] — [benefit]
|
||||
> • [Feature 2] — [benefit]
|
||||
> • [Feature 3] — [benefit]
|
||||
> • [Feature 4] — [benefit]
|
||||
> • [Integration 1], [Integration 2], [Integration 3] integrations
|
||||
>
|
||||
> Trusted by [audience examples]. Start free at [url].
|
||||
|
||||
**Tags:** [competitor] alternative, [category], [audience], [differentiator], [top 3 features]
|
||||
|
||||
---
|
||||
|
||||
## Template: AI Directories
|
||||
|
||||
**Target:** TAAFT, Futurepedia, Toolify, Future Tools, aitools.inc, AIStage, LogicBalls, SaasAITools
|
||||
|
||||
**Tagline:**
|
||||
> AI-powered [category] for [audience].
|
||||
|
||||
**Long description:**
|
||||
> [Product] is an AI-powered [category] that [core AI capability]. It uses [specific models / techniques] to [outcome] — so [audience] can [job to be done] in a fraction of the time.
|
||||
>
|
||||
> What makes it AI-first:
|
||||
> • [AI feature 1] — [what it does] using [model/approach]
|
||||
> • [AI feature 2] — [what it does]
|
||||
> • [AI feature 3] — [what it does]
|
||||
> • [AI feature 4] — [what it does]
|
||||
>
|
||||
> [Product] is built on [tech stack] and supports [models/providers]. Use cases: [use case 1], [use case 2], [use case 3], [use case 4].
|
||||
>
|
||||
> Free tier available. No API keys required to start.
|
||||
|
||||
**Tags:** AI [category], [AI capability 1], [AI capability 2], AI for [audience], [use case 1], [use case 2], [LLM provider], [differentiator]
|
||||
|
||||
---
|
||||
|
||||
## Template: Agent / MCP Registries
|
||||
|
||||
**Target:** Glama, APITracker, Linux Foundation MCP Registry, AI Agents List, AI Agent Store, AgentHunter
|
||||
|
||||
**Tagline:**
|
||||
> MCP-native [category] for AI agents.
|
||||
|
||||
**Long description:**
|
||||
> [Product] is an MCP-native [category] that lets AI agents [capability]. It exposes [MCP server capabilities] via the Model Context Protocol, so agents in Claude, ChatGPT, Cursor, and any MCP-compatible client can [actions].
|
||||
>
|
||||
> MCP capabilities:
|
||||
> • [Tool 1] — [what the agent can do]
|
||||
> • [Tool 2] — [what the agent can do]
|
||||
> • [Tool 3] — [what the agent can do]
|
||||
> • [Resource 1] — [context surfaced]
|
||||
> • [Prompt 1] — [pre-built prompt]
|
||||
>
|
||||
> Authentication: [auth method]. Transports: stdio, HTTP, SSE. Security: [security posture].
|
||||
>
|
||||
> Installation: [one-line install command]. Docs: [docs URL].
|
||||
|
||||
**Tags:** MCP, MCP server, AI agent, agent [category], Claude integration, Model Context Protocol, [domain], [auth type]
|
||||
|
||||
---
|
||||
|
||||
## Template: No-Code Directories
|
||||
|
||||
**Target:** NoCodeFinder, No Code MBA Tools Directory, We Are No Code, NoCode.Tech
|
||||
|
||||
**Tagline:**
|
||||
> Build [output] without code.
|
||||
|
||||
**Long description:**
|
||||
> [Product] lets you build [output] without writing code. Drag, drop, or describe what you want and [product] handles the rest — [technical concept 1] and [technical concept 2] are automatic.
|
||||
>
|
||||
> What you can build:
|
||||
> • [Example project 1] — built in [timeframe]
|
||||
> • [Example project 2] — built in [timeframe]
|
||||
> • [Example project 3] — built in [timeframe]
|
||||
>
|
||||
> No-code friendly features:
|
||||
> • [Visual feature 1]
|
||||
> • [Visual feature 2]
|
||||
> • [AI-assisted feature]
|
||||
> • [Pre-built templates]
|
||||
>
|
||||
> Start free. No credit card. Templates included.
|
||||
|
||||
**Tags:** no code, no-code [category], visual [tool], drag and drop, [output type], [audience type]
|
||||
|
||||
---
|
||||
|
||||
## Template: Dev / Technical Directories
|
||||
|
||||
**Target:** DevHunt, Stackshare, GitHub, Dev.to, Hacker News Show HN
|
||||
|
||||
**Tagline:**
|
||||
> [Technical category] with [technical differentiator].
|
||||
|
||||
**Long description:**
|
||||
> [Product] is a [technical category] built on [tech stack]. It solves [technical problem] by [technical approach].
|
||||
>
|
||||
> Architecture:
|
||||
> • [Component 1] — [tech used]
|
||||
> • [Component 2] — [tech used]
|
||||
> • [Component 3] — [tech used]
|
||||
>
|
||||
> Why it's different: [technical insight or novel approach]. We chose [trade-off] because [reason].
|
||||
>
|
||||
> Open source: [yes/no/partial]. Self-hostable: [yes/no]. License: [license].
|
||||
>
|
||||
> API: [REST / GraphQL / MCP / gRPC]. SDKs: [languages]. Docs: [url].
|
||||
|
||||
**Tags:** [language], [framework], [category], open source, API, [tech stack component], [architecture approach]
|
||||
|
||||
---
|
||||
|
||||
## Template: B2B Review Platforms
|
||||
|
||||
**Target:** G2, Capterra, TrustRadius, GetApp, Gartner Digital Markets, Crozdesk
|
||||
|
||||
**Tagline:**
|
||||
> [Business outcome] for [audience].
|
||||
|
||||
**Long description:**
|
||||
> [Product] helps [audience] [achieve measurable business outcome]. Teams use it to [use case 1], [use case 2], and [use case 3] — reducing [metric] by [percentage] and increasing [metric] by [percentage].
|
||||
>
|
||||
> Key benefits:
|
||||
> • [Business benefit 1] with [how measured]
|
||||
> • [Business benefit 2] with [how measured]
|
||||
> • [Business benefit 3] with [how measured]
|
||||
>
|
||||
> Integrations: [enterprise integrations — HubSpot, Salesforce, Slack, etc.]
|
||||
>
|
||||
> Security: [SOC 2 / GDPR / compliance posture]. Support: [support tier]. Pricing: [pricing range].
|
||||
>
|
||||
> Trusted by [customer logos / company size]. Case studies at [url].
|
||||
|
||||
**Tags:** [business use case], [vertical], [audience role], [compliance], enterprise [category], [integration 1]
|
||||
|
||||
---
|
||||
|
||||
## Category Tag Library
|
||||
|
||||
Pull 5–8 tags per submission from the relevant sections. Never repeat the exact same tag set across two directories in the same tier.
|
||||
|
||||
### Universal
|
||||
[category], [audience], [differentiator], [use case], AI, no-code, SaaS, [tech stack]
|
||||
|
||||
### Industry
|
||||
B2B, B2C, DTC, ecommerce, fintech, edtech, healthtech, martech, devtools, productivity, creator tools, agency tools
|
||||
|
||||
### Job-to-be-done
|
||||
lead generation, lead qualification, customer onboarding, product recommendation, sales enablement, marketing automation, survey, assessment, calculator, quiz, intake form
|
||||
|
||||
### AI-specific
|
||||
AI agent, LLM, generative AI, conversational AI, RAG, MCP, agent framework, AI form, AI quiz, AI assistant, AI automation
|
||||
|
||||
### Technical
|
||||
open source, self-hosted, API-first, webhook, Zapier, no-code, low-code, embeddable, white-label, multi-tenant, SSO, SAML
|
||||
|
||||
---
|
||||
|
||||
## Do / Don't Quick Reference
|
||||
|
||||
**DO:**
|
||||
- Vary the opening sentence across tiers
|
||||
- Use real numbers and specific differentiators
|
||||
- Match tone to audience (technical for devs, business for G2, excited for PH)
|
||||
- Include a founder/origin angle in startup directories
|
||||
- Lead with the AI-first angle in AI directories
|
||||
|
||||
**DON'T:**
|
||||
- Copy-paste the same 150-word description everywhere
|
||||
- Use vague claims ("blazing fast", "game-changing")
|
||||
- Mention every feature — pick 3–5 per tier and rotate them
|
||||
- Lie about competitor features (AI engines cross-reference and de-rank)
|
||||
- Skip the tag list — it's how moderators route you to the right category
|
||||
@@ -0,0 +1,80 @@
|
||||
Directory,Tier,URL,Category,DR,Dofollow,Submission Date,Status,Live URL,Backlink Verified,Positioning Variant Used,Tags Used,Account Email,Notes
|
||||
Product Hunt,1,https://producthunt.com/posts/new,Launch,91,Yes,,Draft,,,Startup,,,
|
||||
Hacker News (Show HN),1,https://news.ycombinator.com/submit,Launch,91,No,,Draft,,,Dev,,,
|
||||
BetaList,1,https://betalist.com/submit,Launch,64,Yes,,Draft,,,Startup,,,
|
||||
Fazier,1,https://fazier.com/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
DevHunt,1,https://devhunt.org/submit,Launch,35,Yes,,Draft,,,Dev,,,
|
||||
Uneed,1,https://uneed.best/submit-a-tool,Launch,40,Yes,,Draft,,,Startup,,,
|
||||
Microlaunch,1,https://microlaunch.net/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
OpenHunts,1,https://openhunts.com/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
LaunchVault,1,https://launchvault.com/submit,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
What Launched Today,1,https://whatlaunchedtoday.com,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
Launching Next,1,https://launchingnext.com/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
PeerPush,1,https://peerpush.net/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
Firsto,1,https://firsto.co/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
GetByte,1,https://getbyte.co/submit,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
Best of Web,1,https://bestofweb.io/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
Tiny Launch,1,https://tinylaunch.com/submit,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
PitchWall,1,https://pitchwall.co/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
AlternativeTo,2,https://alternativeto.net/software/_/add/,SaaS,79,No,,Draft,,,SaaS,,,
|
||||
SaaSHub,2,https://saashub.com/submit,SaaS,77,Yes,,Draft,,,SaaS,,,
|
||||
G2,2,https://my.g2.com/sellers/welcome,SaaS,92,Yes,,Draft,,,B2B review,,,
|
||||
Capterra,2,https://www.capterra.com/vendors,SaaS,93,Yes,,Draft,,,B2B review,,,
|
||||
GetApp,2,https://www.getapp.com/vendors,SaaS,78,Yes,,Draft,,,B2B review,,,
|
||||
SourceForge,2,https://sourceforge.net/user/register,SaaS,92,Yes,,Draft,,,SaaS,,,
|
||||
Slashdot,2,https://slashdot.org/submission,SaaS,88,Yes,,Draft,,,SaaS,,,
|
||||
Startup Stash,2,https://startupstash.com/submit,SaaS,50,Yes,,Draft,,,Startup,,,
|
||||
SideProjectors,2,https://www.sideprojectors.com/project/new,SaaS,35,Yes,,Draft,,,Startup,,,
|
||||
F6S,2,https://www.f6s.com/company/create,SaaS,65,Yes,,Draft,,,Startup,,,
|
||||
Stackshare,2,https://stackshare.io/new-product,SaaS,60,Yes,,Draft,,,Dev,,,
|
||||
TrustRadius,2,https://www.trustradius.com/vendors,SaaS,72,Yes,,Draft,,,B2B review,,,
|
||||
Crozdesk,2,https://crozdesk.com/vendors,SaaS,55,Yes,,Draft,,,SaaS,,,
|
||||
There's An AI For That,3,https://theresanaiforthat.com/submit,AI,76,Yes,,Draft,,,AI,,,
|
||||
Futurepedia,3,https://www.futurepedia.io/submit-tool,AI,70,Yes,,Draft,,,AI,,,
|
||||
Toolify.ai,3,https://www.toolify.ai/submit,AI,71,Yes,,Draft,,,AI,,,
|
||||
Future Tools,3,https://www.futuretools.io/submit-a-tool,AI,69,Yes,,Draft,,,AI,,,
|
||||
AI Tools Neilpatel,3,https://neilpatel.com/ai-tools,AI,91,Yes,,Draft,,,AI,,,
|
||||
Good AI Tools,3,https://goodaitools.com/submit,AI,66,Yes,,Draft,,,AI,,,
|
||||
NewTools.site,3,https://newtools.site/submit,AI,51,Yes,,Draft,,,AI,,,
|
||||
aitools.inc,3,https://aitools.inc/submit,AI,66,Yes,,Draft,,,AI,,,
|
||||
AIStage,3,https://aistage.net/submit,AI,66,Yes,,Draft,,,AI,,,
|
||||
AItrendytools,3,https://www.aitrendytools.com/submit,AI,69,Yes,,Draft,,,AI,,,
|
||||
Grabon AI Directory,3,https://www.grabon.in/indulge/ai-tools/submit,AI,70,Yes,,Draft,,,AI,,,
|
||||
TopAI.tools,3,https://topai.tools/submit,AI,60,Yes,,Draft,,,AI,,,
|
||||
Supertools,3,https://supertools.therundown.ai/submit,AI,61,Yes,,Draft,,,AI,,,
|
||||
AI Tools Directory,3,https://aitoolsdirectory.com/submit,AI,55,Yes,,Draft,,,AI,,,
|
||||
LogicBalls,3,https://logicballs.com/submit,AI,40,Yes,,Draft,,,AI,,,
|
||||
SaasAITools,3,https://saasaitools.com/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
PoweredByAI,3,https://poweredbyai.app/submit,AI,35,Yes,,Draft,,,AI,,,
|
||||
TheAISurf,3,https://theaisurf.com/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
Aixyz,3,https://ai.xyz/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
AI Pedia Hub,3,https://aipediahub.com/submit,AI,40,Yes,,Draft,,,AI,,,
|
||||
Dofollow.Tools,3,https://dofollow.tools/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
AI Scout,3,https://aiscout.net/submit,AI,25,Yes,,Draft,,,AI,,,
|
||||
AiMatchPro,3,https://aimatchpro.ai/submit,AI,20,Yes,,Draft,,,AI,,,
|
||||
AIChief,3,https://aichief.com/submit,AI,35,Yes,,Draft,,,AI,,,
|
||||
AI Tools Love,3,https://aitools.love/submit,AI,25,Yes,,Draft,,,AI,,,
|
||||
AI Agents List,4,https://aiagentslist.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
Glama.ai MCP,4,https://glama.ai/mcp/servers,MCP,,Yes,,Draft,,,MCP,,,
|
||||
APITracker MCP,4,https://apitracker.io/mcp-servers,MCP,,Yes,,Draft,,,MCP,,,
|
||||
Linux Foundation MCP Registry,4,https://github.com/modelcontextprotocol/registry,MCP,,Yes,,Draft,,,MCP,,,
|
||||
AI Agent Store,4,https://aiagentstore.ai/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Base,4,https://aiagentsbase.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Directory,4,https://aiagentsdirectory.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Verse,4,https://aiagentsverse.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AgentHunter,4,https://agenthunter.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Live,4,https://aiagents.live/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Marketplace,4,https://aiagentsmarketplace.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
NoCodeFinder,5,https://www.nocodefinder.com/submit,No-Code,45,Yes,,Draft,,,No-code,,,
|
||||
No Code MBA,5,https://www.nocode.mba/tools/submit,No-Code,55,Yes,,Draft,,,No-code,,,
|
||||
We Are No Code,5,https://www.wearenocode.com/submit,No-Code,40,Yes,,Draft,,,No-code,,,
|
||||
NoCodeList,5,https://nocodelist.co/submit,No-Code,30,Yes,,Draft,,,No-code,,,
|
||||
NoCodeDevs,5,https://www.nocodedevs.com/submit,No-Code,25,Yes,,Draft,,,No-code,,,
|
||||
NoCode.Tech,5,https://www.nocode.tech/submit,No-Code,35,Yes,,Draft,,,No-code,,,
|
||||
Zapier App Directory,7,https://zapier.com/developer,Integration,91,Yes,,Draft,,,Integration,,,
|
||||
HubSpot App Marketplace,7,https://ecosystem.hubspot.com/marketplace,Integration,93,Yes,,Draft,,,Integration,,,
|
||||
Slack App Directory,7,https://api.slack.com/apps,Integration,89,Yes,,Draft,,,Integration,,,
|
||||
Airtable Marketplace,7,https://airtable.com/marketplace,Integration,82,Yes,,Draft,,,Integration,,,
|
||||
Notion Integrations,7,https://www.notion.so/integrations,Integration,88,Yes,,Draft,,,Integration,,,
|
||||
Make (Integromat),7,https://www.make.com/en/partners,Integration,70,Yes,,Draft,,,Integration,,,
|
||||
Pipedream,7,https://pipedream.com/docs/components,Integration,70,Yes,,Draft,,,Integration,,,
|
||||
|
+101
-715
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: email-sequence
|
||||
description: When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," or "lifecycle emails." For in-app onboarding, see onboarding-cro.
|
||||
description: When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding-cro.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Email Sequence Design
|
||||
@@ -9,6 +11,9 @@ You are an expert in email marketing and automation. Your goal is to create emai
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Before creating a sequence, understand:
|
||||
|
||||
1. **Sequence Type**
|
||||
@@ -104,675 +109,104 @@ Consider:
|
||||
|
||||
---
|
||||
|
||||
## Sequence Templates
|
||||
## Sequence Types Overview
|
||||
|
||||
### Welcome Sequence (Post-Signup)
|
||||
**Length**: 5-7 emails over 12-14 days
|
||||
**Goal**: Activate, build trust, convert
|
||||
|
||||
**Email 1: Welcome (Immediate)**
|
||||
- Subject: Welcome to [Product] — here's your first step
|
||||
- Deliver what was promised (lead magnet, access, etc.)
|
||||
- Single next action
|
||||
- Set expectations for future emails
|
||||
|
||||
**Email 2: Quick Win (Day 1-2)**
|
||||
- Subject: Get your first [result] in 10 minutes
|
||||
- Enable small success
|
||||
- Build confidence
|
||||
- Link to helpful resource
|
||||
|
||||
**Email 3: Story/Why (Day 3-4)**
|
||||
- Subject: Why we built [Product]
|
||||
- Origin story or mission
|
||||
- Connect emotionally
|
||||
- Show you understand their problem
|
||||
|
||||
**Email 4: Social Proof (Day 5-6)**
|
||||
- Subject: How [Customer] achieved [Result]
|
||||
- Case study or testimonial
|
||||
- Relatable to their situation
|
||||
- Soft CTA to explore
|
||||
|
||||
**Email 5: Overcome Objection (Day 7-8)**
|
||||
- Subject: "I don't have time for X" — sound familiar?
|
||||
- Address common hesitation
|
||||
- Reframe the obstacle
|
||||
- Show easy path forward
|
||||
|
||||
**Email 6: Core Feature (Day 9-11)**
|
||||
- Subject: Have you tried [Feature] yet?
|
||||
- Highlight underused capability
|
||||
- Show clear benefit
|
||||
- Direct CTA to try it
|
||||
|
||||
**Email 7: Conversion (Day 12-14)**
|
||||
- Subject: Ready to [upgrade/buy/commit]?
|
||||
- Summarize value
|
||||
- Clear offer
|
||||
- Urgency if appropriate
|
||||
- Risk reversal (guarantee, trial)
|
||||
|
||||
---
|
||||
Key emails:
|
||||
1. Welcome + deliver promised value (immediate)
|
||||
2. Quick win (day 1-2)
|
||||
3. Story/Why (day 3-4)
|
||||
4. Social proof (day 5-6)
|
||||
5. Overcome objection (day 7-8)
|
||||
6. Core feature highlight (day 9-11)
|
||||
7. Conversion (day 12-14)
|
||||
|
||||
### Lead Nurture Sequence (Pre-Sale)
|
||||
**Length**: 6-8 emails over 2-3 weeks
|
||||
**Goal**: Build trust, demonstrate expertise, convert
|
||||
|
||||
**Email 1: Deliver + Introduce (Immediate)**
|
||||
- Deliver the lead magnet
|
||||
- Brief intro to who you are
|
||||
- Preview what's coming
|
||||
|
||||
**Email 2: Expand on Topic (Day 2-3)**
|
||||
- Related insight to lead magnet
|
||||
- Establish expertise
|
||||
- Light CTA to content
|
||||
|
||||
**Email 3: Problem Deep-Dive (Day 4-5)**
|
||||
- Articulate their problem deeply
|
||||
- Show you understand
|
||||
- Hint at solution
|
||||
|
||||
**Email 4: Solution Framework (Day 6-8)**
|
||||
- Your approach/methodology
|
||||
- Educational, not salesy
|
||||
- Builds toward your product
|
||||
|
||||
**Email 5: Case Study (Day 9-11)**
|
||||
- Real results from real customer
|
||||
- Specific and relatable
|
||||
- Soft CTA
|
||||
|
||||
**Email 6: Differentiation (Day 12-14)**
|
||||
- Why your approach is different
|
||||
- Address alternatives
|
||||
- Build preference
|
||||
|
||||
**Email 7: Objection Handler (Day 15-18)**
|
||||
- Common concern addressed
|
||||
- FAQ or myth-busting
|
||||
- Reduce friction
|
||||
|
||||
**Email 8: Direct Offer (Day 19-21)**
|
||||
- Clear pitch
|
||||
- Strong value proposition
|
||||
- Specific CTA
|
||||
- Urgency if available
|
||||
|
||||
---
|
||||
Key emails:
|
||||
1. Deliver lead magnet + intro (immediate)
|
||||
2. Expand on topic (day 2-3)
|
||||
3. Problem deep-dive (day 4-5)
|
||||
4. Solution framework (day 6-8)
|
||||
5. Case study (day 9-11)
|
||||
6. Differentiation (day 12-14)
|
||||
7. Objection handler (day 15-18)
|
||||
8. Direct offer (day 19-21)
|
||||
|
||||
### Re-Engagement Sequence
|
||||
**Length**: 3-4 emails over 2 weeks
|
||||
**Trigger**: 30-60 days of inactivity
|
||||
**Goal**: Win back or clean list
|
||||
|
||||
**Email 1: Check-In (Day 30-60 of inactivity)**
|
||||
- Subject: Is everything okay, [Name]?
|
||||
- Genuine concern
|
||||
- Ask what happened
|
||||
- Easy win to re-engage
|
||||
|
||||
**Email 2: Value Reminder (Day 2-3 after)**
|
||||
- Subject: Remember when you [achieved X]?
|
||||
- Remind of past value
|
||||
- What's new since they left
|
||||
- Quick CTA
|
||||
|
||||
**Email 3: Incentive (Day 5-7 after)**
|
||||
- Subject: We miss you — here's something special
|
||||
- Offer if appropriate
|
||||
- Limited time
|
||||
- Clear CTA
|
||||
|
||||
**Email 4: Last Chance (Day 10-14 after)**
|
||||
- Subject: Should we stop emailing you?
|
||||
- Honest and direct
|
||||
- One-click to stay or go
|
||||
- Clean the list if no response
|
||||
|
||||
---
|
||||
Key emails:
|
||||
1. Check-in (genuine concern)
|
||||
2. Value reminder (what's new)
|
||||
3. Incentive (special offer)
|
||||
4. Last chance (stay or unsubscribe)
|
||||
|
||||
### Onboarding Sequence (Product Users)
|
||||
**Length**: 5-7 emails over 14 days
|
||||
**Goal**: Activate, drive to aha moment, upgrade
|
||||
**Note**: Coordinate with in-app onboarding—email supports, doesn't duplicate
|
||||
|
||||
Coordinate with in-app onboarding. Email supports, doesn't duplicate.
|
||||
Key emails:
|
||||
1. Welcome + first step (immediate)
|
||||
2. Getting started help (day 1)
|
||||
3. Feature highlight (day 2-3)
|
||||
4. Success story (day 4-5)
|
||||
5. Check-in (day 7)
|
||||
6. Advanced tip (day 10-12)
|
||||
7. Upgrade/expand (day 14+)
|
||||
|
||||
**Email 1: Welcome + First Step (Immediate)**
|
||||
- Confirm signup
|
||||
- One critical action
|
||||
- Link directly to that action
|
||||
|
||||
**Email 2: Getting Started Help (Day 1)**
|
||||
- If they haven't completed step 1
|
||||
- Quick tip or video
|
||||
- Support option
|
||||
|
||||
**Email 3: Feature Highlight (Day 2-3)**
|
||||
- Key feature they should know
|
||||
- Specific use case
|
||||
- In-app link
|
||||
|
||||
**Email 4: Success Story (Day 4-5)**
|
||||
- Customer who succeeded
|
||||
- Relatable journey
|
||||
- Motivational
|
||||
|
||||
**Email 5: Check-In (Day 7)**
|
||||
- How's it going?
|
||||
- Ask for feedback
|
||||
- Offer help
|
||||
|
||||
**Email 6: Advanced Tip (Day 10-12)**
|
||||
- Power feature
|
||||
- For engaged users
|
||||
- Level-up content
|
||||
|
||||
**Email 7: Upgrade/Expand (Day 14+)**
|
||||
- For trial users: conversion push
|
||||
- For free users: upgrade prompt
|
||||
- For paid: expansion opportunity
|
||||
**For detailed templates**: See [references/sequence-templates.md](references/sequence-templates.md)
|
||||
|
||||
---
|
||||
|
||||
## Email Types Reference
|
||||
|
||||
A comprehensive guide to lifecycle and campaign emails. Use this as an audit checklist and implementation reference.
|
||||
## Email Types by Category
|
||||
|
||||
### Onboarding Emails
|
||||
|
||||
#### New Users Series
|
||||
**Trigger**: User signs up (free or trial)
|
||||
**Goal**: Activate user, drive to aha moment
|
||||
**Typical sequence**: 5-7 emails over 14 days
|
||||
|
||||
- Email 1: Welcome + single next step (immediate)
|
||||
- Email 2: Quick win / getting started (day 1)
|
||||
- Email 3: Key feature highlight (day 3)
|
||||
- Email 4: Success story / social proof (day 5)
|
||||
- Email 5: Check-in + offer help (day 7)
|
||||
- Email 6: Advanced tip (day 10)
|
||||
- Email 7: Upgrade prompt or next milestone (day 14)
|
||||
|
||||
**Key metrics**: Activation rate, feature adoption
|
||||
|
||||
---
|
||||
|
||||
#### New Customers Series
|
||||
**Trigger**: User converts to paid
|
||||
**Goal**: Reinforce purchase decision, drive adoption, reduce early churn
|
||||
**Typical sequence**: 3-5 emails over 14 days
|
||||
|
||||
- Email 1: Thank you + what's next (immediate)
|
||||
- Email 2: Getting full value — setup checklist (day 2)
|
||||
- Email 3: Pro tips for paid features (day 5)
|
||||
- Email 4: Success story from similar customer (day 7)
|
||||
- Email 5: Check-in + introduce support resources (day 14)
|
||||
|
||||
**Key point**: Different from new user series—they've committed. Focus on reinforcement and expansion, not conversion.
|
||||
|
||||
---
|
||||
|
||||
#### Key Onboarding Step Reminder
|
||||
**Trigger**: User hasn't completed critical setup step after X time
|
||||
**Goal**: Nudge completion of high-value action
|
||||
**Format**: Single email or 2-3 email mini-sequence
|
||||
|
||||
**Example triggers**:
|
||||
- Hasn't connected integration after 48 hours
|
||||
- Hasn't invited team member after 3 days
|
||||
- Hasn't completed profile after 24 hours
|
||||
|
||||
**Copy approach**:
|
||||
- Remind them what they started
|
||||
- Explain why this step matters
|
||||
- Make it easy (direct link to complete)
|
||||
- Offer help if stuck
|
||||
|
||||
---
|
||||
|
||||
#### New User Invite
|
||||
**Trigger**: Existing user invites teammate
|
||||
**Goal**: Activate the invited user
|
||||
**Recipient**: The person being invited
|
||||
|
||||
- Email 1: You've been invited (immediate)
|
||||
- Email 2: Reminder if not accepted (day 2)
|
||||
- Email 3: Final reminder (day 5)
|
||||
|
||||
**Copy approach**:
|
||||
- Personalize with inviter's name
|
||||
- Explain what they're joining
|
||||
- Single CTA to accept invite
|
||||
- Social proof optional
|
||||
|
||||
---
|
||||
- New users series
|
||||
- New customers series
|
||||
- Key onboarding step reminders
|
||||
- New user invites
|
||||
|
||||
### Retention Emails
|
||||
|
||||
#### Upgrade to Paid
|
||||
**Trigger**: Free user shows engagement, or trial ending
|
||||
**Goal**: Convert free to paid
|
||||
**Typical sequence**: 3-5 emails
|
||||
|
||||
**Trigger options**:
|
||||
- Time-based (trial day 10, 12, 14)
|
||||
- Behavior-based (hit usage limit, used premium feature)
|
||||
- Engagement-based (highly active free user)
|
||||
|
||||
**Sequence structure**:
|
||||
- Value summary: What they've accomplished
|
||||
- Feature comparison: What they're missing
|
||||
- Social proof: Who else upgraded
|
||||
- Urgency: Trial ending, limited offer
|
||||
- Final: Last chance + easy path
|
||||
|
||||
---
|
||||
|
||||
#### Upgrade to Higher Plan
|
||||
**Trigger**: User approaching plan limits or using features available on higher tier
|
||||
**Goal**: Upsell to next tier
|
||||
**Format**: Single email or 2-3 email sequence
|
||||
|
||||
**Trigger examples**:
|
||||
- 80% of seat limit reached
|
||||
- 90% of storage/usage limit
|
||||
- Tried to use higher-tier feature
|
||||
- Power user behavior patterns
|
||||
|
||||
**Copy approach**:
|
||||
- Acknowledge their growth (positive framing)
|
||||
- Show what next tier unlocks
|
||||
- Quantify value vs. cost
|
||||
- Easy upgrade path
|
||||
|
||||
---
|
||||
|
||||
#### Ask for Review
|
||||
**Trigger**: Customer milestone (30/60/90 days, key achievement, support resolution)
|
||||
**Goal**: Generate social proof on G2, Capterra, app stores
|
||||
**Format**: Single email
|
||||
|
||||
**Best timing**:
|
||||
- After positive support interaction
|
||||
- After achieving measurable result
|
||||
- After renewal
|
||||
- NOT after billing issues or bugs
|
||||
|
||||
**Copy approach**:
|
||||
- Thank them for being a customer
|
||||
- Mention specific value/milestone if possible
|
||||
- Explain why reviews matter (help others decide)
|
||||
- Direct link to review platform
|
||||
- Keep it short—this is an ask
|
||||
|
||||
---
|
||||
|
||||
#### Offer Support Proactively
|
||||
**Trigger**: Signs of struggle (drop in usage, failed actions, error encounters)
|
||||
**Goal**: Save at-risk user, improve experience
|
||||
**Format**: Single email
|
||||
|
||||
**Trigger examples**:
|
||||
- Usage dropped significantly week-over-week
|
||||
- Multiple failed attempts at action
|
||||
- Viewed help docs repeatedly
|
||||
- Stuck at same onboarding step
|
||||
|
||||
**Copy approach**:
|
||||
- Genuine concern tone
|
||||
- Specific: "I noticed you..." (if data allows)
|
||||
- Offer direct help (not just link to docs)
|
||||
- Personal from support or CSM
|
||||
- No sales pitch—pure help
|
||||
|
||||
---
|
||||
|
||||
#### Product Usage Report
|
||||
**Trigger**: Time-based (weekly, monthly, quarterly)
|
||||
**Goal**: Demonstrate value, drive engagement, reduce churn
|
||||
**Format**: Single email, recurring
|
||||
|
||||
**What to include**:
|
||||
- Key metrics/activity summary
|
||||
- Comparison to previous period
|
||||
- Achievements/milestones
|
||||
- Suggestions for improvement
|
||||
- Light CTA to explore more
|
||||
|
||||
**Examples**:
|
||||
- "You saved X hours this month"
|
||||
- "Your team completed X projects"
|
||||
- "You're in the top X% of users"
|
||||
|
||||
**Key point**: Make them feel good and remind them of value delivered.
|
||||
|
||||
---
|
||||
|
||||
#### NPS Survey
|
||||
**Trigger**: Time-based (quarterly) or event-based (post-milestone)
|
||||
**Goal**: Measure satisfaction, identify promoters and detractors
|
||||
**Format**: Single email
|
||||
|
||||
**Best practices**:
|
||||
- Keep it simple: Just the NPS question initially
|
||||
- Follow-up form for "why" based on score
|
||||
- Personal sender (CEO, founder, CSM)
|
||||
- Tell them how you'll use feedback
|
||||
|
||||
**Follow-up based on score**:
|
||||
- Promoters (9-10): Thank + ask for review/referral
|
||||
- Passives (7-8): Ask what would make it a 10
|
||||
- Detractors (0-6): Personal outreach to understand issues
|
||||
|
||||
---
|
||||
|
||||
#### Referral Program
|
||||
**Trigger**: Customer milestone, promoter NPS score, or campaign
|
||||
**Goal**: Generate referrals
|
||||
**Format**: Single email or periodic reminders
|
||||
|
||||
**Good timing**:
|
||||
- After positive NPS response
|
||||
- After customer achieves result
|
||||
- After renewal
|
||||
- Seasonal campaigns
|
||||
|
||||
**Copy approach**:
|
||||
- Remind them of their success
|
||||
- Explain the referral offer clearly
|
||||
- Make sharing easy (unique link)
|
||||
- Show what's in it for them AND referee
|
||||
|
||||
---
|
||||
- Upgrade to paid
|
||||
- Upgrade to higher plan
|
||||
- Ask for review
|
||||
- Proactive support offers
|
||||
- Product usage reports
|
||||
- NPS survey
|
||||
- Referral program
|
||||
|
||||
### Billing Emails
|
||||
|
||||
#### Switch to Annual
|
||||
**Trigger**: Monthly subscriber at renewal time or campaign
|
||||
**Goal**: Convert monthly to annual (improve LTV, reduce churn)
|
||||
**Format**: Single email or 2-email sequence
|
||||
|
||||
**Value proposition**:
|
||||
- Calculate exact savings
|
||||
- Additional benefits (if any)
|
||||
- Lock in current price messaging
|
||||
- Easy one-click switch
|
||||
|
||||
**Best timing**:
|
||||
- Around monthly renewal date
|
||||
- End of year / new year
|
||||
- After 3-6 months of loyalty
|
||||
- Price increase announcement (lock in old rate)
|
||||
|
||||
---
|
||||
|
||||
#### Failed Payment Recovery
|
||||
**Trigger**: Payment fails
|
||||
**Goal**: Recover revenue, retain customer
|
||||
**Typical sequence**: 3-4 emails over 7-14 days
|
||||
|
||||
**Sequence structure**:
|
||||
- Email 1 (Day 0): Friendly notice, update payment link
|
||||
- Email 2 (Day 3): Reminder, service may be interrupted
|
||||
- Email 3 (Day 7): Urgent, account will be suspended
|
||||
- Email 4 (Day 10-14): Final notice, what they'll lose
|
||||
|
||||
**Copy approach**:
|
||||
- Assume it's an accident (card expired, etc.)
|
||||
- Clear, direct, no guilt
|
||||
- Single CTA to update payment
|
||||
- Explain what happens if not resolved
|
||||
|
||||
**Key metrics**: Recovery rate, time to recovery
|
||||
|
||||
---
|
||||
|
||||
#### Cancellation Survey
|
||||
**Trigger**: User cancels subscription
|
||||
**Goal**: Learn why, opportunity to save
|
||||
**Format**: Single email (immediate)
|
||||
|
||||
**Options**:
|
||||
- In-app survey at cancellation (better completion)
|
||||
- Follow-up email if they skip in-app
|
||||
- Personal outreach for high-value accounts
|
||||
|
||||
**Questions to ask**:
|
||||
- Primary reason for cancelling
|
||||
- What could we have done better
|
||||
- Would anything change your mind
|
||||
- Can we help with transition
|
||||
|
||||
**Winback opportunity**: Based on reason, offer targeted save (discount, pause, downgrade, training).
|
||||
|
||||
---
|
||||
|
||||
#### Upcoming Renewal Reminder
|
||||
**Trigger**: X days before renewal (14 or 30 days typical)
|
||||
**Goal**: No surprise charges, opportunity to expand
|
||||
**Format**: Single email
|
||||
|
||||
**What to include**:
|
||||
- Renewal date and amount
|
||||
- What's included in renewal
|
||||
- How to update payment/plan
|
||||
- Changes to pricing/features (if any)
|
||||
- Optional: Upsell opportunity
|
||||
|
||||
**Required for**: Annual subscriptions, high-value contracts
|
||||
|
||||
---
|
||||
- Switch to annual
|
||||
- Failed payment recovery
|
||||
- Cancellation survey
|
||||
- Upcoming renewal reminders
|
||||
|
||||
### Usage Emails
|
||||
|
||||
#### Daily/Weekly/Monthly Summary
|
||||
**Trigger**: Time-based
|
||||
**Goal**: Drive engagement, demonstrate value
|
||||
**Format**: Single email, recurring
|
||||
|
||||
**Content by frequency**:
|
||||
- **Daily**: Notifications, quick stats (for high-engagement products)
|
||||
- **Weekly**: Activity summary, highlights, suggestions
|
||||
- **Monthly**: Comprehensive report, achievements, ROI if calculable
|
||||
|
||||
**Structure**:
|
||||
- Key metrics at a glance
|
||||
- Notable achievements
|
||||
- Activity breakdown
|
||||
- Suggestions / what to try next
|
||||
- CTA to dive deeper
|
||||
|
||||
**Personalization**: Must be relevant to their actual usage. Empty reports are worse than no report.
|
||||
|
||||
---
|
||||
|
||||
#### Key Event or Milestone Notifications
|
||||
**Trigger**: Specific achievement or event
|
||||
**Goal**: Celebrate, drive continued engagement
|
||||
**Format**: Single email per event
|
||||
|
||||
**Milestone examples**:
|
||||
- First [action] completed
|
||||
- 10th/100th [thing] created
|
||||
- Goal achieved
|
||||
- Team collaboration milestone
|
||||
- Usage streak
|
||||
|
||||
**Copy approach**:
|
||||
- Celebration tone
|
||||
- Specific achievement
|
||||
- Context (compared to others, compared to before)
|
||||
- What's next / next milestone
|
||||
|
||||
---
|
||||
- Daily/weekly/monthly summaries
|
||||
- Key event notifications
|
||||
- Milestone celebrations
|
||||
|
||||
### Win-Back Emails
|
||||
|
||||
#### Expired Trials
|
||||
**Trigger**: Trial ended without conversion
|
||||
**Goal**: Convert or re-engage
|
||||
**Typical sequence**: 3-4 emails over 30 days
|
||||
|
||||
**Sequence structure**:
|
||||
- Email 1 (Day 1 post-expiry): Trial ended, here's what you're missing
|
||||
- Email 2 (Day 7): What held you back? (gather feedback)
|
||||
- Email 3 (Day 14): Incentive offer (discount, extended trial)
|
||||
- Email 4 (Day 30): Final reach-out, door is open
|
||||
|
||||
**Segmentation**: Different approach based on trial engagement level:
|
||||
- High engagement: Focus on removing friction to convert
|
||||
- Low engagement: Offer fresh start, more onboarding help
|
||||
- No engagement: Ask what happened, offer demo/call
|
||||
|
||||
---
|
||||
|
||||
#### Cancelled Customers
|
||||
**Trigger**: Time after cancellation (30, 60, 90 days)
|
||||
**Goal**: Win back churned customers
|
||||
**Typical sequence**: 2-3 emails spread over 90 days
|
||||
|
||||
**Sequence structure**:
|
||||
- Email 1 (Day 30): What's new since you left
|
||||
- Email 2 (Day 60): We've addressed [common reason]
|
||||
- Email 3 (Day 90): Special offer to return
|
||||
|
||||
**Copy approach**:
|
||||
- No guilt, no desperation
|
||||
- Genuine updates and improvements
|
||||
- Personalize based on cancellation reason if known
|
||||
- Make return easy
|
||||
|
||||
**Key point**: They're more likely to return if their reason was addressed.
|
||||
|
||||
---
|
||||
- Expired trials
|
||||
- Cancelled customers
|
||||
|
||||
### Campaign Emails
|
||||
- Monthly roundup / newsletter
|
||||
- Seasonal promotions
|
||||
- Product updates
|
||||
- Industry news roundup
|
||||
- Pricing updates
|
||||
|
||||
#### Monthly Roundup / Newsletter
|
||||
**Trigger**: Time-based (monthly)
|
||||
**Goal**: Engagement, brand presence, content distribution
|
||||
**Format**: Single email, recurring
|
||||
|
||||
**Content mix**:
|
||||
- Product updates and tips
|
||||
- Customer stories
|
||||
- Educational content
|
||||
- Company news
|
||||
- Industry insights
|
||||
|
||||
**Best practices**:
|
||||
- Consistent send day/time
|
||||
- Scannable format
|
||||
- Mix of content types
|
||||
- One primary CTA focus
|
||||
- Unsubscribe is okay—keeps list healthy
|
||||
|
||||
---
|
||||
|
||||
#### Seasonal Promotions
|
||||
**Trigger**: Calendar events (Black Friday, New Year, etc.)
|
||||
**Goal**: Drive conversions with timely offer
|
||||
**Format**: Campaign burst (2-4 emails)
|
||||
|
||||
**Common opportunities**:
|
||||
- New Year (fresh start, annual planning)
|
||||
- End of fiscal year (budget spending)
|
||||
- Black Friday / Cyber Monday
|
||||
- Industry-specific seasons
|
||||
- Back to school / work
|
||||
|
||||
**Sequence structure**:
|
||||
- Announcement: Offer reveal
|
||||
- Reminder: Midway through promotion
|
||||
- Last chance: Final hours
|
||||
|
||||
---
|
||||
|
||||
#### Product Updates
|
||||
**Trigger**: New feature release
|
||||
**Goal**: Adoption, engagement, demonstrate momentum
|
||||
**Format**: Single email per major release
|
||||
|
||||
**What to include**:
|
||||
- What's new (clear and simple)
|
||||
- Why it matters (benefit, not just feature)
|
||||
- How to use it (direct link)
|
||||
- Who asked for it (community acknowledgment)
|
||||
|
||||
**Segmentation**: Consider targeting based on relevance:
|
||||
- Users who would benefit most
|
||||
- Users who requested feature
|
||||
- Power users first (for beta feel)
|
||||
|
||||
---
|
||||
|
||||
#### Industry News Roundup
|
||||
**Trigger**: Time-based (weekly or monthly)
|
||||
**Goal**: Thought leadership, engagement, brand value
|
||||
**Format**: Curated newsletter
|
||||
|
||||
**Content**:
|
||||
- Curated news and links
|
||||
- Your take / commentary
|
||||
- What it means for readers
|
||||
- How your product helps
|
||||
|
||||
**Best for**: B2B products where customers care about industry trends.
|
||||
|
||||
---
|
||||
|
||||
#### Pricing Update
|
||||
**Trigger**: Price change announcement
|
||||
**Goal**: Transparent communication, minimize churn
|
||||
**Format**: Single email (or sequence for major changes)
|
||||
|
||||
**Timeline**:
|
||||
- Announce 30-60 days before change
|
||||
- Reminder 14 days before
|
||||
- Final notice 7 days before
|
||||
|
||||
**Copy approach**:
|
||||
- Clear, direct, transparent
|
||||
- Explain the why (value delivered, costs increased)
|
||||
- Grandfather if possible (lock in old rate)
|
||||
- Give options (annual lock-in, downgrade)
|
||||
|
||||
**Important**: Honesty and advance notice build trust even when price increases.
|
||||
|
||||
---
|
||||
|
||||
## Email Audit Checklist
|
||||
|
||||
Use this to audit your current email program:
|
||||
|
||||
### Onboarding
|
||||
- [ ] New users series
|
||||
- [ ] New customers series
|
||||
- [ ] Key onboarding step reminders
|
||||
- [ ] New user invite sequence
|
||||
|
||||
### Retention
|
||||
- [ ] Upgrade to paid sequence
|
||||
- [ ] Upgrade to higher plan triggers
|
||||
- [ ] Ask for review (timed properly)
|
||||
- [ ] Proactive support outreach
|
||||
- [ ] Product usage reports
|
||||
- [ ] NPS survey
|
||||
- [ ] Referral program emails
|
||||
|
||||
### Billing
|
||||
- [ ] Switch to annual campaign
|
||||
- [ ] Failed payment recovery sequence
|
||||
- [ ] Cancellation survey
|
||||
- [ ] Upcoming renewal reminders
|
||||
|
||||
### Usage
|
||||
- [ ] Daily/weekly/monthly summaries
|
||||
- [ ] Key event notifications
|
||||
- [ ] Milestone celebrations
|
||||
|
||||
### Win-Back
|
||||
- [ ] Expired trial sequence
|
||||
- [ ] Cancelled customer sequence
|
||||
|
||||
### Campaigns
|
||||
- [ ] Monthly roundup / newsletter
|
||||
- [ ] Seasonal promotion calendar
|
||||
- [ ] Product update announcements
|
||||
- [ ] Pricing update communications
|
||||
**For detailed email type reference**: See [references/email-types.md](references/email-types.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -796,84 +230,20 @@ Use this to audit your current email program:
|
||||
- Conversational, not formal
|
||||
- First-person (I/we) and second-person (you)
|
||||
- Active voice
|
||||
- Match your brand but lean friendly
|
||||
- Read it out loud—does it sound human?
|
||||
|
||||
### Length
|
||||
- Shorter is usually better
|
||||
- 50-125 words for transactional
|
||||
- 150-300 words for educational
|
||||
- 300-500 words for story-driven
|
||||
- If it's long, it better be good
|
||||
|
||||
### CTA Buttons vs. Links
|
||||
- Buttons: Primary actions, high-visibility
|
||||
- Links: Secondary actions, in-text
|
||||
### CTA Guidelines
|
||||
- Buttons for primary actions
|
||||
- Links for secondary actions
|
||||
- One clear primary CTA per email
|
||||
- Button text: Action + outcome
|
||||
|
||||
---
|
||||
|
||||
## Personalization
|
||||
|
||||
### Merge Fields
|
||||
- First name (fallback to "there" or "friend")
|
||||
- Company name (B2B)
|
||||
- Relevant data (usage, plan, etc.)
|
||||
|
||||
### Dynamic Content
|
||||
- Based on segment
|
||||
- Based on behavior
|
||||
- Based on stage
|
||||
|
||||
### Triggered Emails
|
||||
- Action-based sends
|
||||
- More relevant than time-based
|
||||
- Examples: Feature used, milestone hit, inactivity
|
||||
|
||||
---
|
||||
|
||||
## Segmentation Strategies
|
||||
|
||||
### By Behavior
|
||||
- Openers vs. non-openers
|
||||
- Clickers vs. non-clickers
|
||||
- Active vs. inactive
|
||||
|
||||
### By Stage
|
||||
- Trial vs. paid
|
||||
- New vs. long-term
|
||||
- Engaged vs. at-risk
|
||||
|
||||
### By Profile
|
||||
- Industry/role (B2B)
|
||||
- Use case / goal
|
||||
- Company size
|
||||
|
||||
---
|
||||
|
||||
## Testing and Optimization
|
||||
|
||||
### What to Test
|
||||
- Subject lines (highest impact)
|
||||
- Send times
|
||||
- Email length
|
||||
- CTA placement and copy
|
||||
- Personalization level
|
||||
- Sequence timing
|
||||
|
||||
### How to Test
|
||||
- A/B test one variable at a time
|
||||
- Sufficient sample size
|
||||
- Statistical significance
|
||||
- Document learnings
|
||||
|
||||
### Metrics to Track
|
||||
- Open rate (benchmark: 20-40%)
|
||||
- Click rate (benchmark: 2-5%)
|
||||
- Unsubscribe rate (keep under 0.5%)
|
||||
- Conversion rate (specific to sequence goal)
|
||||
- Revenue per email (if applicable)
|
||||
**For detailed copy, personalization, and testing guidelines**: See [references/copy-guidelines.md](references/copy-guidelines.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -905,21 +275,37 @@ What to measure and benchmarks
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What triggers entry to this sequence?
|
||||
2. What's the primary goal/conversion action?
|
||||
3. Who is the audience?
|
||||
4. What do they already know about you?
|
||||
5. What other emails are they receiving?
|
||||
6. What's your current email performance?
|
||||
3. What do they already know about you?
|
||||
4. What other emails are they receiving?
|
||||
5. What's your current email performance?
|
||||
|
||||
---
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
For implementation, see the [tools registry](../../tools/REGISTRY.md). Key email tools:
|
||||
|
||||
| Tool | Best For | MCP | Guide |
|
||||
|------|----------|:---:|-------|
|
||||
| **Customer.io** | Behavior-based automation | - | [customer-io.md](../../tools/integrations/customer-io.md) |
|
||||
| **Mailchimp** | SMB email marketing | ✓ | [mailchimp.md](../../tools/integrations/mailchimp.md) |
|
||||
| **Nitrosend** | AI-native email (sequences via prompts) | ✓ | [nitrosend.md](../../tools/integrations/nitrosend.md) |
|
||||
| **Resend** | Developer-friendly transactional | ✓ | [resend.md](../../tools/integrations/resend.md) |
|
||||
| **SendGrid** | Transactional email at scale | - | [sendgrid.md](../../tools/integrations/sendgrid.md) |
|
||||
| **Kit** | Creator/newsletter focused | - | [kit.md](../../tools/integrations/kit.md) |
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **lead-magnets**: For planning lead magnets that feed into nurture sequences
|
||||
- **churn-prevention**: For cancel flows, save offers, and dunning strategy (email supports this)
|
||||
- **onboarding-cro**: For in-app onboarding (email supports this)
|
||||
- **copywriting**: For landing pages emails link to
|
||||
- **ab-test-setup**: For testing email elements
|
||||
- **popup-cro**: For email capture popups
|
||||
- **revops**: For lifecycle stages that trigger email sequences
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"skill_name": "email-sequence",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Create a welcome email sequence for new users who sign up for our project management tool's free trial. The trial is 14 days. We want to get them to their aha moment (creating their first project and inviting a team member).",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should create a welcome sequence (5-7 emails) following the core principles: one email one job, value before ask. Should map each email to a specific goal in the 14-day trial journey. Should include timing/delays between emails. Each email should follow the email copy structure: hook → context → value → CTA → sign-off. Should include subject lines following the subject line strategy. Should align sequence with the aha moment (first project + team invite). Output should follow the structured format with sequence overview and per-email specs.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Creates 5-7 email welcome sequence",
|
||||
"Follows one email one job principle",
|
||||
"Maps emails to trial timeline (14 days)",
|
||||
"Includes timing between emails",
|
||||
"Each email has hook, context, value, CTA",
|
||||
"Includes subject lines for each email",
|
||||
"Aligns with stated aha moment",
|
||||
"Output follows structured per-email format"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "We need a lead nurture sequence for people who download our 'State of DevOps 2024' report. Goal is to get them to book a demo of our CI/CD platform.",
|
||||
"expected_output": "Should create a lead nurture sequence (6-8 emails). Should follow value before ask — first emails should provide related value, not immediately push for demo. Should map the sequence from awareness (report download) through consideration (related content, case studies) to decision (demo request). Should include timing between emails. Each email should have clear subject line, hook, single CTA. Should gradually increase commitment asks across the sequence.",
|
||||
"assertions": [
|
||||
"Creates 6-8 email lead nurture sequence",
|
||||
"Follows value before ask principle",
|
||||
"Maps from awareness through consideration to decision",
|
||||
"Includes timing between emails",
|
||||
"Each email has clear subject line and single CTA",
|
||||
"Gradually increases commitment asks",
|
||||
"Connects to original download topic"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "our email open rates have tanked. used to be 35% now we're at 18%. what's going on and how do we fix our subject lines?",
|
||||
"expected_output": "Should trigger on casual phrasing. Should diagnose potential causes of declining open rates: sender reputation, list hygiene, subject line quality, sending frequency, deliverability issues. Should apply the subject line strategy from the skill: test curiosity vs benefit vs urgency patterns, personalization, optimal length. Should recommend a re-engagement campaign to clean the list. Should provide specific subject line formulas and examples. Should suggest testing framework for subject lines.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Diagnoses potential causes beyond just subject lines",
|
||||
"Addresses sender reputation and deliverability",
|
||||
"Recommends list hygiene or re-engagement",
|
||||
"Applies subject line strategy with specific patterns",
|
||||
"Provides subject line formulas and examples",
|
||||
"Suggests testing framework"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Build a re-engagement sequence for subscribers who haven't opened any emails in 90 days. We have about 5,000 inactive subscribers.",
|
||||
"expected_output": "Should create a re-engagement sequence (3-4 emails). Should follow the re-engagement pattern: first email acknowledges absence and offers value, middle emails escalate with compelling reasons to re-engage, final email is a clear 'last chance' before removal. Should recommend aggressive subject lines to break through. Should include a sunset policy (remove non-responders after sequence completes). Should address the impact on deliverability of keeping inactive subscribers.",
|
||||
"assertions": [
|
||||
"Creates 3-4 email re-engagement sequence",
|
||||
"Acknowledges absence in first email",
|
||||
"Escalates through the sequence",
|
||||
"Includes 'last chance' final email",
|
||||
"Recommends sunset policy for non-responders",
|
||||
"Addresses deliverability impact of inactive subscribers",
|
||||
"Uses compelling subject lines"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "What's the ideal timing for our onboarding email sequence? We send the first email immediately after signup, but we're not sure about the rest.",
|
||||
"expected_output": "Should provide timing guidance for onboarding sequences. Should reference the timing and delays framework: immediate first email (welcome/confirmation), then suggest data-driven timing based on user behavior triggers vs fixed time delays. Should recommend behavior-triggered emails when possible (user completed action → next email) with time-based fallbacks. Should provide typical timing patterns for SaaS onboarding (day 0, day 1, day 3, day 5, day 7, etc.). Should note that optimal timing depends on product complexity and trial length.",
|
||||
"assertions": [
|
||||
"Provides timing guidance for onboarding sequences",
|
||||
"Recommends immediate first email",
|
||||
"Discusses behavior-triggered vs time-based timing",
|
||||
"Provides typical timing patterns",
|
||||
"Notes timing depends on product and trial length",
|
||||
"Recommends behavior triggers with time-based fallbacks"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Help me optimize our post-signup onboarding experience. Users sign up but 60% never complete setup.",
|
||||
"expected_output": "Should recognize this is an in-app onboarding optimization task, not an email sequence task. Should defer to or cross-reference the onboarding-cro skill, which handles in-app onboarding flows, checklists, and activation optimization. May offer to help with the email component of onboarding but should make clear that onboarding-cro is the primary skill for this task.",
|
||||
"assertions": [
|
||||
"Recognizes this as in-app onboarding optimization",
|
||||
"References or defers to onboarding-cro skill",
|
||||
"Does not attempt full onboarding redesign using email patterns",
|
||||
"May offer email component support"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
# Email Copy Guidelines
|
||||
|
||||
## Contents
|
||||
- Structure
|
||||
- Formatting
|
||||
- Tone
|
||||
- Length
|
||||
- CTA Buttons vs. Links
|
||||
- Personalization (merge fields, dynamic content, triggered emails)
|
||||
- Segmentation Strategies (by behavior, by stage, by profile)
|
||||
- Testing and Optimization (what to test, how to test, metrics to track)
|
||||
|
||||
## Structure
|
||||
|
||||
1. **Hook**: First line grabs attention
|
||||
2. **Context**: Why this matters to them
|
||||
3. **Value**: The useful content
|
||||
4. **CTA**: What to do next
|
||||
5. **Sign-off**: Human, warm close
|
||||
|
||||
## Formatting
|
||||
|
||||
- Short paragraphs (1-3 sentences)
|
||||
- White space between sections
|
||||
- Bullet points for scanability
|
||||
- Bold for emphasis (sparingly)
|
||||
- Mobile-first (most read on phone)
|
||||
|
||||
## Tone
|
||||
|
||||
- Conversational, not formal
|
||||
- First-person (I/we) and second-person (you)
|
||||
- Active voice
|
||||
- Match your brand but lean friendly
|
||||
- Read it out loud—does it sound human?
|
||||
|
||||
## Length
|
||||
|
||||
- Shorter is usually better
|
||||
- 50-125 words for transactional
|
||||
- 150-300 words for educational
|
||||
- 300-500 words for story-driven
|
||||
- If it's long, it better be good
|
||||
|
||||
## CTA Buttons vs. Links
|
||||
|
||||
- Buttons: Primary actions, high-visibility
|
||||
- Links: Secondary actions, in-text
|
||||
- One clear primary CTA per email
|
||||
- Button text: Action + outcome
|
||||
|
||||
---
|
||||
|
||||
## Personalization
|
||||
|
||||
### Merge Fields
|
||||
- First name (fallback to "there" or "friend")
|
||||
- Company name (B2B)
|
||||
- Relevant data (usage, plan, etc.)
|
||||
|
||||
### Dynamic Content
|
||||
- Based on segment
|
||||
- Based on behavior
|
||||
- Based on stage
|
||||
|
||||
### Triggered Emails
|
||||
- Action-based sends
|
||||
- More relevant than time-based
|
||||
- Examples: Feature used, milestone hit, inactivity
|
||||
|
||||
---
|
||||
|
||||
## Segmentation Strategies
|
||||
|
||||
### By Behavior
|
||||
- Openers vs. non-openers
|
||||
- Clickers vs. non-clickers
|
||||
- Active vs. inactive
|
||||
|
||||
### By Stage
|
||||
- Trial vs. paid
|
||||
- New vs. long-term
|
||||
- Engaged vs. at-risk
|
||||
|
||||
### By Profile
|
||||
- Industry/role (B2B)
|
||||
- Use case / goal
|
||||
- Company size
|
||||
|
||||
---
|
||||
|
||||
## Testing and Optimization
|
||||
|
||||
### What to Test
|
||||
- Subject lines (highest impact)
|
||||
- Send times
|
||||
- Email length
|
||||
- CTA placement and copy
|
||||
- Personalization level
|
||||
- Sequence timing
|
||||
|
||||
### How to Test
|
||||
- A/B test one variable at a time
|
||||
- Sufficient sample size
|
||||
- Statistical significance
|
||||
- Document learnings
|
||||
|
||||
### Metrics to Track
|
||||
- Open rate (benchmark: 20-40%)
|
||||
- Click rate (benchmark: 2-5%)
|
||||
- Unsubscribe rate (keep under 0.5%)
|
||||
- Conversion rate (specific to sequence goal)
|
||||
- Revenue per email (if applicable)
|
||||
@@ -0,0 +1,515 @@
|
||||
# Email Types Reference
|
||||
|
||||
A comprehensive guide to lifecycle and campaign emails. Use this as an audit checklist and implementation reference.
|
||||
|
||||
## Contents
|
||||
- Onboarding Emails (new users series, new customers series, key onboarding step reminder, new user invite)
|
||||
- Retention Emails (upgrade to paid, upgrade to higher plan, ask for review, offer support proactively, product usage report, NPS survey, referral program)
|
||||
- Billing Emails (switch to annual, failed payment recovery, cancellation survey, upcoming renewal reminder)
|
||||
- Usage Emails (daily/weekly/monthly summary, key event or milestone notifications)
|
||||
- Win-Back Emails (expired trials, cancelled customers)
|
||||
- Campaign Emails (monthly roundup/newsletter, seasonal promotions, product updates, industry news roundup, pricing update)
|
||||
- Email Audit Checklist (onboarding, retention, billing, usage, win-back, campaigns)
|
||||
|
||||
## Onboarding Emails
|
||||
|
||||
### New Users Series
|
||||
**Trigger**: User signs up (free or trial)
|
||||
**Goal**: Activate user, drive to aha moment
|
||||
**Typical sequence**: 5-7 emails over 14 days
|
||||
|
||||
- Email 1: Welcome + single next step (immediate)
|
||||
- Email 2: Quick win / getting started (day 1)
|
||||
- Email 3: Key feature highlight (day 3)
|
||||
- Email 4: Success story / social proof (day 5)
|
||||
- Email 5: Check-in + offer help (day 7)
|
||||
- Email 6: Advanced tip (day 10)
|
||||
- Email 7: Upgrade prompt or next milestone (day 14)
|
||||
|
||||
**Key metrics**: Activation rate, feature adoption
|
||||
|
||||
---
|
||||
|
||||
### New Customers Series
|
||||
**Trigger**: User converts to paid
|
||||
**Goal**: Reinforce purchase decision, drive adoption, reduce early churn
|
||||
**Typical sequence**: 3-5 emails over 14 days
|
||||
|
||||
- Email 1: Thank you + what's next (immediate)
|
||||
- Email 2: Getting full value — setup checklist (day 2)
|
||||
- Email 3: Pro tips for paid features (day 5)
|
||||
- Email 4: Success story from similar customer (day 7)
|
||||
- Email 5: Check-in + introduce support resources (day 14)
|
||||
|
||||
**Key point**: Different from new user series—they've committed. Focus on reinforcement and expansion, not conversion.
|
||||
|
||||
---
|
||||
|
||||
### Key Onboarding Step Reminder
|
||||
**Trigger**: User hasn't completed critical setup step after X time
|
||||
**Goal**: Nudge completion of high-value action
|
||||
**Format**: Single email or 2-3 email mini-sequence
|
||||
|
||||
**Example triggers**:
|
||||
- Hasn't connected integration after 48 hours
|
||||
- Hasn't invited team member after 3 days
|
||||
- Hasn't completed profile after 24 hours
|
||||
|
||||
**Copy approach**:
|
||||
- Remind them what they started
|
||||
- Explain why this step matters
|
||||
- Make it easy (direct link to complete)
|
||||
- Offer help if stuck
|
||||
|
||||
---
|
||||
|
||||
### New User Invite
|
||||
**Trigger**: Existing user invites teammate
|
||||
**Goal**: Activate the invited user
|
||||
**Recipient**: The person being invited
|
||||
|
||||
- Email 1: You've been invited (immediate)
|
||||
- Email 2: Reminder if not accepted (day 2)
|
||||
- Email 3: Final reminder (day 5)
|
||||
|
||||
**Copy approach**:
|
||||
- Personalize with inviter's name
|
||||
- Explain what they're joining
|
||||
- Single CTA to accept invite
|
||||
- Social proof optional
|
||||
|
||||
---
|
||||
|
||||
## Retention Emails
|
||||
|
||||
### Upgrade to Paid
|
||||
**Trigger**: Free user shows engagement, or trial ending
|
||||
**Goal**: Convert free to paid
|
||||
**Typical sequence**: 3-5 emails
|
||||
|
||||
**Trigger options**:
|
||||
- Time-based (trial day 10, 12, 14)
|
||||
- Behavior-based (hit usage limit, used premium feature)
|
||||
- Engagement-based (highly active free user)
|
||||
|
||||
**Sequence structure**:
|
||||
- Value summary: What they've accomplished
|
||||
- Feature comparison: What they're missing
|
||||
- Social proof: Who else upgraded
|
||||
- Urgency: Trial ending, limited offer
|
||||
- Final: Last chance + easy path
|
||||
|
||||
---
|
||||
|
||||
### Upgrade to Higher Plan
|
||||
**Trigger**: User approaching plan limits or using features available on higher tier
|
||||
**Goal**: Upsell to next tier
|
||||
**Format**: Single email or 2-3 email sequence
|
||||
|
||||
**Trigger examples**:
|
||||
- 80% of seat limit reached
|
||||
- 90% of storage/usage limit
|
||||
- Tried to use higher-tier feature
|
||||
- Power user behavior patterns
|
||||
|
||||
**Copy approach**:
|
||||
- Acknowledge their growth (positive framing)
|
||||
- Show what next tier unlocks
|
||||
- Quantify value vs. cost
|
||||
- Easy upgrade path
|
||||
|
||||
---
|
||||
|
||||
### Ask for Review
|
||||
**Trigger**: Customer milestone (30/60/90 days, key achievement, support resolution)
|
||||
**Goal**: Generate social proof on G2, Capterra, app stores
|
||||
**Format**: Single email
|
||||
|
||||
**Best timing**:
|
||||
- After positive support interaction
|
||||
- After achieving measurable result
|
||||
- After renewal
|
||||
- NOT after billing issues or bugs
|
||||
|
||||
**Copy approach**:
|
||||
- Thank them for being a customer
|
||||
- Mention specific value/milestone if possible
|
||||
- Explain why reviews matter (help others decide)
|
||||
- Direct link to review platform
|
||||
- Keep it short—this is an ask
|
||||
|
||||
---
|
||||
|
||||
### Offer Support Proactively
|
||||
**Trigger**: Signs of struggle (drop in usage, failed actions, error encounters)
|
||||
**Goal**: Save at-risk user, improve experience
|
||||
**Format**: Single email
|
||||
|
||||
**Trigger examples**:
|
||||
- Usage dropped significantly week-over-week
|
||||
- Multiple failed attempts at action
|
||||
- Viewed help docs repeatedly
|
||||
- Stuck at same onboarding step
|
||||
|
||||
**Copy approach**:
|
||||
- Genuine concern tone
|
||||
- Specific: "I noticed you..." (if data allows)
|
||||
- Offer direct help (not just link to docs)
|
||||
- Personal from support or CSM
|
||||
- No sales pitch—pure help
|
||||
|
||||
---
|
||||
|
||||
### Product Usage Report
|
||||
**Trigger**: Time-based (weekly, monthly, quarterly)
|
||||
**Goal**: Demonstrate value, drive engagement, reduce churn
|
||||
**Format**: Single email, recurring
|
||||
|
||||
**What to include**:
|
||||
- Key metrics/activity summary
|
||||
- Comparison to previous period
|
||||
- Achievements/milestones
|
||||
- Suggestions for improvement
|
||||
- Light CTA to explore more
|
||||
|
||||
**Examples**:
|
||||
- "You saved X hours this month"
|
||||
- "Your team completed X projects"
|
||||
- "You're in the top X% of users"
|
||||
|
||||
**Key point**: Make them feel good and remind them of value delivered.
|
||||
|
||||
---
|
||||
|
||||
### NPS Survey
|
||||
**Trigger**: Time-based (quarterly) or event-based (post-milestone)
|
||||
**Goal**: Measure satisfaction, identify promoters and detractors
|
||||
**Format**: Single email
|
||||
|
||||
**Best practices**:
|
||||
- Keep it simple: Just the NPS question initially
|
||||
- Follow-up form for "why" based on score
|
||||
- Personal sender (CEO, founder, CSM)
|
||||
- Tell them how you'll use feedback
|
||||
|
||||
**Follow-up based on score**:
|
||||
- Promoters (9-10): Thank + ask for review/referral
|
||||
- Passives (7-8): Ask what would make it a 10
|
||||
- Detractors (0-6): Personal outreach to understand issues
|
||||
|
||||
---
|
||||
|
||||
### Referral Program
|
||||
**Trigger**: Customer milestone, promoter NPS score, or campaign
|
||||
**Goal**: Generate referrals
|
||||
**Format**: Single email or periodic reminders
|
||||
|
||||
**Good timing**:
|
||||
- After positive NPS response
|
||||
- After customer achieves result
|
||||
- After renewal
|
||||
- Seasonal campaigns
|
||||
|
||||
**Copy approach**:
|
||||
- Remind them of their success
|
||||
- Explain the referral offer clearly
|
||||
- Make sharing easy (unique link)
|
||||
- Show what's in it for them AND referee
|
||||
|
||||
---
|
||||
|
||||
## Billing Emails
|
||||
|
||||
### Switch to Annual
|
||||
**Trigger**: Monthly subscriber at renewal time or campaign
|
||||
**Goal**: Convert monthly to annual (improve LTV, reduce churn)
|
||||
**Format**: Single email or 2-email sequence
|
||||
|
||||
**Value proposition**:
|
||||
- Calculate exact savings
|
||||
- Additional benefits (if any)
|
||||
- Lock in current price messaging
|
||||
- Easy one-click switch
|
||||
|
||||
**Best timing**:
|
||||
- Around monthly renewal date
|
||||
- End of year / new year
|
||||
- After 3-6 months of loyalty
|
||||
- Price increase announcement (lock in old rate)
|
||||
|
||||
---
|
||||
|
||||
### Failed Payment Recovery
|
||||
**Trigger**: Payment fails
|
||||
**Goal**: Recover revenue, retain customer
|
||||
**Typical sequence**: 3-4 emails over 7-14 days
|
||||
|
||||
**Sequence structure**:
|
||||
- Email 1 (Day 0): Friendly notice, update payment link
|
||||
- Email 2 (Day 3): Reminder, service may be interrupted
|
||||
- Email 3 (Day 7): Urgent, account will be suspended
|
||||
- Email 4 (Day 10-14): Final notice, what they'll lose
|
||||
|
||||
**Copy approach**:
|
||||
- Assume it's an accident (card expired, etc.)
|
||||
- Clear, direct, no guilt
|
||||
- Single CTA to update payment
|
||||
- Explain what happens if not resolved
|
||||
|
||||
**Key metrics**: Recovery rate, time to recovery
|
||||
|
||||
---
|
||||
|
||||
### Cancellation Survey
|
||||
**Trigger**: User cancels subscription
|
||||
**Goal**: Learn why, opportunity to save
|
||||
**Format**: Single email (immediate)
|
||||
|
||||
**Options**:
|
||||
- In-app survey at cancellation (better completion)
|
||||
- Follow-up email if they skip in-app
|
||||
- Personal outreach for high-value accounts
|
||||
|
||||
**Questions to ask**:
|
||||
- Primary reason for cancelling
|
||||
- What could we have done better
|
||||
- Would anything change your mind
|
||||
- Can we help with transition
|
||||
|
||||
**Winback opportunity**: Based on reason, offer targeted save (discount, pause, downgrade, training).
|
||||
|
||||
---
|
||||
|
||||
### Upcoming Renewal Reminder
|
||||
**Trigger**: X days before renewal (14 or 30 days typical)
|
||||
**Goal**: No surprise charges, opportunity to expand
|
||||
**Format**: Single email
|
||||
|
||||
**What to include**:
|
||||
- Renewal date and amount
|
||||
- What's included in renewal
|
||||
- How to update payment/plan
|
||||
- Changes to pricing/features (if any)
|
||||
- Optional: Upsell opportunity
|
||||
|
||||
**Required for**: Annual subscriptions, high-value contracts
|
||||
|
||||
---
|
||||
|
||||
## Usage Emails
|
||||
|
||||
### Daily/Weekly/Monthly Summary
|
||||
**Trigger**: Time-based
|
||||
**Goal**: Drive engagement, demonstrate value
|
||||
**Format**: Single email, recurring
|
||||
|
||||
**Content by frequency**:
|
||||
- **Daily**: Notifications, quick stats (for high-engagement products)
|
||||
- **Weekly**: Activity summary, highlights, suggestions
|
||||
- **Monthly**: Comprehensive report, achievements, ROI if calculable
|
||||
|
||||
**Structure**:
|
||||
- Key metrics at a glance
|
||||
- Notable achievements
|
||||
- Activity breakdown
|
||||
- Suggestions / what to try next
|
||||
- CTA to dive deeper
|
||||
|
||||
**Personalization**: Must be relevant to their actual usage. Empty reports are worse than no report.
|
||||
|
||||
---
|
||||
|
||||
### Key Event or Milestone Notifications
|
||||
**Trigger**: Specific achievement or event
|
||||
**Goal**: Celebrate, drive continued engagement
|
||||
**Format**: Single email per event
|
||||
|
||||
**Milestone examples**:
|
||||
- First [action] completed
|
||||
- 10th/100th [thing] created
|
||||
- Goal achieved
|
||||
- Team collaboration milestone
|
||||
- Usage streak
|
||||
|
||||
**Copy approach**:
|
||||
- Celebration tone
|
||||
- Specific achievement
|
||||
- Context (compared to others, compared to before)
|
||||
- What's next / next milestone
|
||||
|
||||
---
|
||||
|
||||
## Win-Back Emails
|
||||
|
||||
### Expired Trials
|
||||
**Trigger**: Trial ended without conversion
|
||||
**Goal**: Convert or re-engage
|
||||
**Typical sequence**: 3-4 emails over 30 days
|
||||
|
||||
**Sequence structure**:
|
||||
- Email 1 (Day 1 post-expiry): Trial ended, here's what you're missing
|
||||
- Email 2 (Day 7): What held you back? (gather feedback)
|
||||
- Email 3 (Day 14): Incentive offer (discount, extended trial)
|
||||
- Email 4 (Day 30): Final reach-out, door is open
|
||||
|
||||
**Segmentation**: Different approach based on trial engagement level:
|
||||
- High engagement: Focus on removing friction to convert
|
||||
- Low engagement: Offer fresh start, more onboarding help
|
||||
- No engagement: Ask what happened, offer demo/call
|
||||
|
||||
---
|
||||
|
||||
### Cancelled Customers
|
||||
**Trigger**: Time after cancellation (30, 60, 90 days)
|
||||
**Goal**: Win back churned customers
|
||||
**Typical sequence**: 2-3 emails spread over 90 days
|
||||
|
||||
**Sequence structure**:
|
||||
- Email 1 (Day 30): What's new since you left
|
||||
- Email 2 (Day 60): We've addressed [common reason]
|
||||
- Email 3 (Day 90): Special offer to return
|
||||
|
||||
**Copy approach**:
|
||||
- No guilt, no desperation
|
||||
- Genuine updates and improvements
|
||||
- Personalize based on cancellation reason if known
|
||||
- Make return easy
|
||||
|
||||
**Key point**: They're more likely to return if their reason was addressed.
|
||||
|
||||
---
|
||||
|
||||
## Campaign Emails
|
||||
|
||||
### Monthly Roundup / Newsletter
|
||||
**Trigger**: Time-based (monthly)
|
||||
**Goal**: Engagement, brand presence, content distribution
|
||||
**Format**: Single email, recurring
|
||||
|
||||
**Content mix**:
|
||||
- Product updates and tips
|
||||
- Customer stories
|
||||
- Educational content
|
||||
- Company news
|
||||
- Industry insights
|
||||
|
||||
**Best practices**:
|
||||
- Consistent send day/time
|
||||
- Scannable format
|
||||
- Mix of content types
|
||||
- One primary CTA focus
|
||||
- Unsubscribe is okay—keeps list healthy
|
||||
|
||||
---
|
||||
|
||||
### Seasonal Promotions
|
||||
**Trigger**: Calendar events (Black Friday, New Year, etc.)
|
||||
**Goal**: Drive conversions with timely offer
|
||||
**Format**: Campaign burst (2-4 emails)
|
||||
|
||||
**Common opportunities**:
|
||||
- New Year (fresh start, annual planning)
|
||||
- End of fiscal year (budget spending)
|
||||
- Black Friday / Cyber Monday
|
||||
- Industry-specific seasons
|
||||
- Back to school / work
|
||||
|
||||
**Sequence structure**:
|
||||
- Announcement: Offer reveal
|
||||
- Reminder: Midway through promotion
|
||||
- Last chance: Final hours
|
||||
|
||||
---
|
||||
|
||||
### Product Updates
|
||||
**Trigger**: New feature release
|
||||
**Goal**: Adoption, engagement, demonstrate momentum
|
||||
**Format**: Single email per major release
|
||||
|
||||
**What to include**:
|
||||
- What's new (clear and simple)
|
||||
- Why it matters (benefit, not just feature)
|
||||
- How to use it (direct link)
|
||||
- Who asked for it (community acknowledgment)
|
||||
|
||||
**Segmentation**: Consider targeting based on relevance:
|
||||
- Users who would benefit most
|
||||
- Users who requested feature
|
||||
- Power users first (for beta feel)
|
||||
|
||||
---
|
||||
|
||||
### Industry News Roundup
|
||||
**Trigger**: Time-based (weekly or monthly)
|
||||
**Goal**: Thought leadership, engagement, brand value
|
||||
**Format**: Curated newsletter
|
||||
|
||||
**Content**:
|
||||
- Curated news and links
|
||||
- Your take / commentary
|
||||
- What it means for readers
|
||||
- How your product helps
|
||||
|
||||
**Best for**: B2B products where customers care about industry trends.
|
||||
|
||||
---
|
||||
|
||||
### Pricing Update
|
||||
**Trigger**: Price change announcement
|
||||
**Goal**: Transparent communication, minimize churn
|
||||
**Format**: Single email (or sequence for major changes)
|
||||
|
||||
**Timeline**:
|
||||
- Announce 30-60 days before change
|
||||
- Reminder 14 days before
|
||||
- Final notice 7 days before
|
||||
|
||||
**Copy approach**:
|
||||
- Clear, direct, transparent
|
||||
- Explain the why (value delivered, costs increased)
|
||||
- Grandfather if possible (lock in old rate)
|
||||
- Give options (annual lock-in, downgrade)
|
||||
|
||||
**Important**: Honesty and advance notice build trust even when price increases.
|
||||
|
||||
---
|
||||
|
||||
## Email Audit Checklist
|
||||
|
||||
Use this to audit your current email program:
|
||||
|
||||
### Onboarding
|
||||
- [ ] New users series
|
||||
- [ ] New customers series
|
||||
- [ ] Key onboarding step reminders
|
||||
- [ ] New user invite sequence
|
||||
|
||||
### Retention
|
||||
- [ ] Upgrade to paid sequence
|
||||
- [ ] Upgrade to higher plan triggers
|
||||
- [ ] Ask for review (timed properly)
|
||||
- [ ] Proactive support outreach
|
||||
- [ ] Product usage reports
|
||||
- [ ] NPS survey
|
||||
- [ ] Referral program emails
|
||||
|
||||
### Billing
|
||||
- [ ] Switch to annual campaign
|
||||
- [ ] Failed payment recovery sequence
|
||||
- [ ] Cancellation survey
|
||||
- [ ] Upcoming renewal reminders
|
||||
|
||||
### Usage
|
||||
- [ ] Daily/weekly/monthly summaries
|
||||
- [ ] Key event notifications
|
||||
- [ ] Milestone celebrations
|
||||
|
||||
### Win-Back
|
||||
- [ ] Expired trial sequence
|
||||
- [ ] Cancelled customer sequence
|
||||
|
||||
### Campaigns
|
||||
- [ ] Monthly roundup / newsletter
|
||||
- [ ] Seasonal promotion calendar
|
||||
- [ ] Product update announcements
|
||||
- [ ] Pricing update communications
|
||||
@@ -0,0 +1,168 @@
|
||||
# Email Sequence Templates
|
||||
|
||||
Detailed templates for common email sequences.
|
||||
|
||||
## Contents
|
||||
- Welcome Sequence (Post-Signup)
|
||||
- Lead Nurture Sequence (Pre-Sale)
|
||||
- Re-Engagement Sequence
|
||||
- Onboarding Sequence (Product Users)
|
||||
|
||||
## Welcome Sequence (Post-Signup)
|
||||
|
||||
**Email 1: Welcome (Immediate)**
|
||||
- Subject: Welcome to [Product] — here's your first step
|
||||
- Deliver what was promised (lead magnet, access, etc.)
|
||||
- Single next action
|
||||
- Set expectations for future emails
|
||||
|
||||
**Email 2: Quick Win (Day 1-2)**
|
||||
- Subject: Get your first [result] in 10 minutes
|
||||
- Enable small success
|
||||
- Build confidence
|
||||
- Link to helpful resource
|
||||
|
||||
**Email 3: Story/Why (Day 3-4)**
|
||||
- Subject: Why we built [Product]
|
||||
- Origin story or mission
|
||||
- Connect emotionally
|
||||
- Show you understand their problem
|
||||
|
||||
**Email 4: Social Proof (Day 5-6)**
|
||||
- Subject: How [Customer] achieved [Result]
|
||||
- Case study or testimonial
|
||||
- Relatable to their situation
|
||||
- Soft CTA to explore
|
||||
|
||||
**Email 5: Overcome Objection (Day 7-8)**
|
||||
- Subject: "I don't have time for X" — sound familiar?
|
||||
- Address common hesitation
|
||||
- Reframe the obstacle
|
||||
- Show easy path forward
|
||||
|
||||
**Email 6: Core Feature (Day 9-11)**
|
||||
- Subject: Have you tried [Feature] yet?
|
||||
- Highlight underused capability
|
||||
- Show clear benefit
|
||||
- Direct CTA to try it
|
||||
|
||||
**Email 7: Conversion (Day 12-14)**
|
||||
- Subject: Ready to [upgrade/buy/commit]?
|
||||
- Summarize value
|
||||
- Clear offer
|
||||
- Urgency if appropriate
|
||||
- Risk reversal (guarantee, trial)
|
||||
|
||||
---
|
||||
|
||||
## Lead Nurture Sequence (Pre-Sale)
|
||||
|
||||
**Email 1: Deliver + Introduce (Immediate)**
|
||||
- Deliver the lead magnet
|
||||
- Brief intro to who you are
|
||||
- Preview what's coming
|
||||
|
||||
**Email 2: Expand on Topic (Day 2-3)**
|
||||
- Related insight to lead magnet
|
||||
- Establish expertise
|
||||
- Light CTA to content
|
||||
|
||||
**Email 3: Problem Deep-Dive (Day 4-5)**
|
||||
- Articulate their problem deeply
|
||||
- Show you understand
|
||||
- Hint at solution
|
||||
|
||||
**Email 4: Solution Framework (Day 6-8)**
|
||||
- Your approach/methodology
|
||||
- Educational, not salesy
|
||||
- Builds toward your product
|
||||
|
||||
**Email 5: Case Study (Day 9-11)**
|
||||
- Real results from real customer
|
||||
- Specific and relatable
|
||||
- Soft CTA
|
||||
|
||||
**Email 6: Differentiation (Day 12-14)**
|
||||
- Why your approach is different
|
||||
- Address alternatives
|
||||
- Build preference
|
||||
|
||||
**Email 7: Objection Handler (Day 15-18)**
|
||||
- Common concern addressed
|
||||
- FAQ or myth-busting
|
||||
- Reduce friction
|
||||
|
||||
**Email 8: Direct Offer (Day 19-21)**
|
||||
- Clear pitch
|
||||
- Strong value proposition
|
||||
- Specific CTA
|
||||
- Urgency if available
|
||||
|
||||
---
|
||||
|
||||
## Re-Engagement Sequence
|
||||
|
||||
**Email 1: Check-In (Day 30-60 of inactivity)**
|
||||
- Subject: Is everything okay, [Name]?
|
||||
- Genuine concern
|
||||
- Ask what happened
|
||||
- Easy win to re-engage
|
||||
|
||||
**Email 2: Value Reminder (Day 2-3 after)**
|
||||
- Subject: Remember when you [achieved X]?
|
||||
- Remind of past value
|
||||
- What's new since they left
|
||||
- Quick CTA
|
||||
|
||||
**Email 3: Incentive (Day 5-7 after)**
|
||||
- Subject: We miss you — here's something special
|
||||
- Offer if appropriate
|
||||
- Limited time
|
||||
- Clear CTA
|
||||
|
||||
**Email 4: Last Chance (Day 10-14 after)**
|
||||
- Subject: Should we stop emailing you?
|
||||
- Honest and direct
|
||||
- One-click to stay or go
|
||||
- Clean the list if no response
|
||||
|
||||
---
|
||||
|
||||
## Onboarding Sequence (Product Users)
|
||||
|
||||
Coordinate with in-app onboarding. Email supports, doesn't duplicate.
|
||||
|
||||
**Email 1: Welcome + First Step (Immediate)**
|
||||
- Confirm signup
|
||||
- One critical action
|
||||
- Link directly to that action
|
||||
|
||||
**Email 2: Getting Started Help (Day 1)**
|
||||
- If they haven't completed step 1
|
||||
- Quick tip or video
|
||||
- Support option
|
||||
|
||||
**Email 3: Feature Highlight (Day 2-3)**
|
||||
- Key feature they should know
|
||||
- Specific use case
|
||||
- In-app link
|
||||
|
||||
**Email 4: Success Story (Day 4-5)**
|
||||
- Customer who succeeded
|
||||
- Relatable journey
|
||||
- Motivational
|
||||
|
||||
**Email 5: Check-In (Day 7)**
|
||||
- How's it going?
|
||||
- Ask for feedback
|
||||
- Offer help
|
||||
|
||||
**Email 6: Advanced Tip (Day 10-12)**
|
||||
- Power feature
|
||||
- For engaged users
|
||||
- Level-up content
|
||||
|
||||
**Email 7: Upgrade/Expand (Day 14+)**
|
||||
- For trial users: conversion push
|
||||
- For free users: upgrade prompt
|
||||
- For paid: expansion opportunity
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: form-cro
|
||||
description: When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," or "contact form." For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.
|
||||
description: When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," "contact form," "nobody fills out our form," "form abandonment," "too many fields," "demo request form," or "lead form isn't converting." Use this for any non-signup form that captures information. For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Form CRO
|
||||
@@ -9,6 +11,9 @@ You are an expert in form optimization. Your goal is to maximize form completion
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Before providing recommendations, identify:
|
||||
|
||||
1. **Form Type**
|
||||
@@ -115,7 +120,7 @@ For each field, ask:
|
||||
4. Logical grouping if many fields
|
||||
|
||||
### Labels and Placeholders
|
||||
- Labels: Always visible (not just placeholder)
|
||||
- Labels: Keep visible (not just placeholder) — placeholders disappear when typing, leaving users unsure what they're filling in
|
||||
- Placeholders: Examples, not labels
|
||||
- Help text: Only when genuinely helpful
|
||||
|
||||
@@ -405,9 +410,8 @@ Ideas to A/B test with expected outcomes
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What's your current form completion rate?
|
||||
2. Do you have field-level analytics?
|
||||
3. What happens with the data after submission?
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "form-cro",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Audit our demo request form. It currently has these fields: First Name, Last Name, Work Email, Phone Number, Company Name, Company Size, Job Title, Industry, Current Solution, Budget Range, and a 'Tell us about your needs' textarea. Our conversion rate is 3.1% and we want to improve it.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply the 'every field has a cost' principle — 11 fields is excessive for a demo form. Should reference the field cost data (3 fields baseline, 7+ fields = 25-50% conversion reduction). Should evaluate each field: which are essential for demo prep, which can be collected later or inferred. Should recommend cutting to essential fields (likely Work Email, Company Name, and maybe one qualifier). Should provide audit findings in the structured format (Issue, Impact, Fix, Priority). Should recommend Quick Wins, High-Impact Changes, and Test Ideas.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies 'every field has a cost' principle",
|
||||
"References field count impact data",
|
||||
"Evaluates each field for necessity",
|
||||
"Recommends cutting to essential fields",
|
||||
"Provides findings in structured format (Issue, Impact, Fix, Priority)",
|
||||
"Includes Quick Wins, High-Impact Changes, Test Ideas"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Our contact form just has Name, Email, and Message fields but we're getting a lot of spam submissions and low-quality leads. How do we fix this without adding too much friction?",
|
||||
"expected_output": "Should apply the contact form type guidance. Should address spam with non-friction solutions first: honeypot fields, reCAPTCHA, server-side validation. Should then address lead quality: suggest adding one qualifying field (company name or budget range) to filter without excessive friction. Should apply the error handling guidance for validation. Should recommend form layout and submit button optimization. Should balance quality vs quantity in recommendations.",
|
||||
"assertions": [
|
||||
"Applies contact form type guidance",
|
||||
"Recommends anti-spam solutions (honeypot, reCAPTCHA)",
|
||||
"Suggests minimal qualifying fields for lead quality",
|
||||
"Balances quality vs quantity",
|
||||
"Addresses error handling and validation",
|
||||
"Recommends non-friction solutions first"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "should we use a single-step or multi-step form for our quote request? we need company info, project details, timeline, and budget.",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the multi-step form guidance — with this many required data types, multi-step is likely better. Should reference the threshold: multi-step recommended when more than 5-6 fields. Should recommend grouping by type (contact info → project details → budget/timeline). Should include progress indicator recommendation. Should apply best practices: easy questions first, save progress, allow back navigation. Should note that multi-step often increases completion for longer forms.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Recommends multi-step based on field count",
|
||||
"References the 5-6 field threshold for multi-step",
|
||||
"Suggests logical field grouping",
|
||||
"Recommends progress indicator",
|
||||
"Applies multi-step best practices",
|
||||
"Notes multi-step increases completion for longer forms"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "How should we handle form errors? Users keep getting frustrated and abandoning our lead capture form when they hit validation errors.",
|
||||
"expected_output": "Should apply the error handling guidance. Should recommend inline validation (not just on submit). Should provide specific error message examples (helpful, not generic). Should recommend: don't clear the form on error, focus on the problem field, show requirements upfront not after failure. Should address common validation UX issues: email format, phone format, required field indicators. Should provide examples of good vs bad error messages.",
|
||||
"assertions": [
|
||||
"Applies error handling guidance",
|
||||
"Recommends inline validation",
|
||||
"Provides specific error message examples",
|
||||
"Recommends not clearing form on error",
|
||||
"Recommends showing requirements upfront",
|
||||
"Provides good vs bad error message examples",
|
||||
"Addresses common validation UX issues"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "We need to optimize our form for mobile. Over 60% of our traffic is mobile but our form conversion rate on mobile is half of desktop.",
|
||||
"expected_output": "Should apply the mobile optimization guidance. Should recommend: larger touch targets (44px+ height), appropriate keyboard types (email, tel), autofill support, single column layout, sticky CTA button, reduce typing (use dropdowns, toggles). Should address mobile-specific form issues: viewport, font size, button placement, scroll behavior. Should recommend testing with actual devices.",
|
||||
"assertions": [
|
||||
"Applies mobile optimization guidance",
|
||||
"Recommends larger touch targets (44px+)",
|
||||
"Recommends appropriate keyboard types",
|
||||
"Recommends autofill support",
|
||||
"Recommends single column layout",
|
||||
"Addresses mobile-specific issues",
|
||||
"Recommends testing with actual devices"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Our signup form has too many fields and people keep abandoning it halfway through. Can you help optimize it?",
|
||||
"expected_output": "Should recognize this is about signup/registration form optimization, not general form CRO. Should defer to or cross-reference the signup-flow-cro skill, which specifically handles signup, registration, and account creation flows. May provide general form friction advice but should make clear that signup-flow-cro is the right skill for signup forms.",
|
||||
"assertions": [
|
||||
"Recognizes this as signup flow optimization",
|
||||
"References or defers to signup-flow-cro skill",
|
||||
"Does not attempt full signup form optimization using general form CRO patterns"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: free-tool-strategy
|
||||
description: When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," or "free resource." This skill bridges engineering and marketing — useful for founders and technical marketers.
|
||||
description: When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," "free resource," "ROI calculator," "grader tool," "audit tool," "should I build a free tool," or "tools for lead gen." Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For downloadable content lead magnets (ebooks, checklists, templates), see lead-magnets.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Free Tool Strategy (Engineering as Marketing)
|
||||
@@ -9,23 +11,16 @@ You are an expert in engineering-as-marketing strategy. Your goal is to help pla
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Before designing a tool strategy, understand:
|
||||
|
||||
1. **Business Context**
|
||||
- What's the core product/service?
|
||||
- Who is the target audience?
|
||||
- What problems do they have?
|
||||
1. **Business Context** - What's the core product? Who is the target audience? What problems do they have?
|
||||
|
||||
2. **Goals**
|
||||
- Lead generation primary goal?
|
||||
- SEO/traffic acquisition?
|
||||
- Brand awareness?
|
||||
- Product education?
|
||||
2. **Goals** - Lead generation? SEO/traffic? Brand awareness? Product education?
|
||||
|
||||
3. **Resources**
|
||||
- Technical capacity to build?
|
||||
- Ongoing maintenance bandwidth?
|
||||
- Budget for promotion?
|
||||
3. **Resources** - Technical capacity to build? Ongoing maintenance bandwidth? Budget for promotion?
|
||||
|
||||
---
|
||||
|
||||
@@ -48,114 +43,21 @@ Before designing a tool strategy, understand:
|
||||
|
||||
### 4. Worth the Investment
|
||||
- Lead value × expected leads > build cost + maintenance
|
||||
- Consider SEO value
|
||||
- Consider brand halo effect
|
||||
|
||||
---
|
||||
|
||||
## Tool Types
|
||||
## Tool Types Overview
|
||||
|
||||
### Calculators
|
||||
| Type | Examples | Best For |
|
||||
|------|----------|----------|
|
||||
| Calculators | ROI, savings, pricing estimators | Decisions involving numbers |
|
||||
| Generators | Templates, policies, names | Creating something quickly |
|
||||
| Analyzers | Website graders, SEO auditors | Evaluating existing work |
|
||||
| Testers | Meta tag preview, speed tests | Checking if something works |
|
||||
| Libraries | Icon sets, templates, snippets | Reference material |
|
||||
| Interactive | Tutorials, playgrounds, quizzes | Learning/understanding |
|
||||
|
||||
**Best for**: Decisions involving numbers, comparisons, estimates
|
||||
|
||||
**Examples**:
|
||||
- ROI calculator
|
||||
- Savings calculator
|
||||
- Cost comparison tool
|
||||
- Salary calculator
|
||||
- Tax estimator
|
||||
|
||||
**Why they work**:
|
||||
- Personalized output
|
||||
- High perceived value
|
||||
- Share-worthy results
|
||||
- Clear problem → solution
|
||||
|
||||
### Generators
|
||||
|
||||
**Best for**: Creating something useful quickly
|
||||
|
||||
**Examples**:
|
||||
- Policy generator
|
||||
- Template generator
|
||||
- Name/tagline generator
|
||||
- Email subject line generator
|
||||
- Resume builder
|
||||
|
||||
**Why they work**:
|
||||
- Tangible output
|
||||
- Saves time
|
||||
- Easily shared
|
||||
- Repeat usage
|
||||
|
||||
### Analyzers/Auditors
|
||||
|
||||
**Best for**: Evaluating existing work or assets
|
||||
|
||||
**Examples**:
|
||||
- Website grader
|
||||
- SEO analyzer
|
||||
- Email subject tester
|
||||
- Headline analyzer
|
||||
- Security checker
|
||||
|
||||
**Why they work**:
|
||||
- Curiosity-driven
|
||||
- Personalized insights
|
||||
- Creates awareness of problems
|
||||
- Natural lead to solution
|
||||
|
||||
### Testers/Validators
|
||||
|
||||
**Best for**: Checking if something works
|
||||
|
||||
**Examples**:
|
||||
- Meta tag preview
|
||||
- Email rendering test
|
||||
- Accessibility checker
|
||||
- Mobile-friendly test
|
||||
- Speed test
|
||||
|
||||
**Why they work**:
|
||||
- Immediate utility
|
||||
- Bookmark-worthy
|
||||
- Repeat usage
|
||||
- Professional necessity
|
||||
|
||||
### Libraries/Resources
|
||||
|
||||
**Best for**: Reference material
|
||||
|
||||
**Examples**:
|
||||
- Icon library
|
||||
- Template library
|
||||
- Code snippet library
|
||||
- Example gallery
|
||||
- Directory
|
||||
|
||||
**Why they work**:
|
||||
- High SEO value
|
||||
- Ongoing traffic
|
||||
- Establishes authority
|
||||
- Linkable asset
|
||||
|
||||
### Interactive Educational
|
||||
|
||||
**Best for**: Learning/understanding
|
||||
|
||||
**Examples**:
|
||||
- Interactive tutorials
|
||||
- Code playgrounds
|
||||
- Visual explainers
|
||||
- Quizzes/assessments
|
||||
- Simulators
|
||||
|
||||
**Why they work**:
|
||||
- Engages deeply
|
||||
- Demonstrates expertise
|
||||
- Shareable
|
||||
- Memory-creating
|
||||
**For detailed tool types and examples**: See [references/tool-types.md](references/tool-types.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -163,277 +65,84 @@ Before designing a tool strategy, understand:
|
||||
|
||||
### Start with Pain Points
|
||||
|
||||
1. **What problems does your audience Google?**
|
||||
- Search query research
|
||||
- Common questions
|
||||
- "How to" searches
|
||||
1. **What problems does your audience Google?** - Search query research, common questions
|
||||
|
||||
2. **What manual processes are tedious?**
|
||||
- Tasks done in spreadsheets
|
||||
- Repetitive calculations
|
||||
- Copy-paste workflows
|
||||
2. **What manual processes are tedious?** - Spreadsheet tasks, repetitive calculations
|
||||
|
||||
3. **What do they need before buying your product?**
|
||||
- Assessments of current state
|
||||
- Planning/scoping
|
||||
- Comparisons
|
||||
3. **What do they need before buying your product?** - Assessments, planning, comparisons
|
||||
|
||||
4. **What information do they wish they had?**
|
||||
- Data they can't easily access
|
||||
- Personalized insights
|
||||
- Industry benchmarks
|
||||
4. **What information do they wish they had?** - Data they can't easily access, benchmarks
|
||||
|
||||
### Validate the Idea
|
||||
|
||||
**Search demand:**
|
||||
- Is there search volume for this problem?
|
||||
- What keywords would rank?
|
||||
- How competitive?
|
||||
- **Search demand**: Is there search volume? How competitive?
|
||||
- **Uniqueness**: What exists? How can you be 10x better?
|
||||
- **Lead quality**: Does this audience match buyers?
|
||||
- **Build feasibility**: How complex? Can you scope an MVP?
|
||||
|
||||
**Uniqueness:**
|
||||
- What exists already?
|
||||
- How can you be 10x better or different?
|
||||
- What's your unique angle?
|
||||
---
|
||||
|
||||
**Lead quality:**
|
||||
- Does this problem-audience match buyers?
|
||||
- Will users be your target customers?
|
||||
- Is there a natural path to your product?
|
||||
## Lead Capture Strategy
|
||||
|
||||
**Build feasibility:**
|
||||
- How complex to build?
|
||||
- Can you scope an MVP?
|
||||
- Ongoing maintenance burden?
|
||||
### Gating Options
|
||||
|
||||
| Approach | Pros | Cons |
|
||||
|----------|------|------|
|
||||
| Fully gated | Maximum capture | Lower usage |
|
||||
| Partially gated | Balance of both | Common pattern |
|
||||
| Ungated + optional | Maximum reach | Lower capture |
|
||||
| Ungated entirely | Pure SEO/brand | No direct leads |
|
||||
|
||||
### Lead Capture Best Practices
|
||||
- Value exchange clear: "Get your full report"
|
||||
- Minimal friction: Email only
|
||||
- Show preview of what they'll get
|
||||
- Optional: Segment by asking one qualifying question
|
||||
|
||||
---
|
||||
|
||||
## SEO Considerations
|
||||
|
||||
### Keyword Strategy
|
||||
**Tool landing page**: "[thing] calculator", "[thing] generator", "free [tool type]"
|
||||
|
||||
**Tool landing page:**
|
||||
- "[thing] calculator"
|
||||
- "[thing] generator"
|
||||
- "free [tool type]"
|
||||
- "[industry] [tool type]"
|
||||
|
||||
**Supporting content:**
|
||||
- "How to [use case]"
|
||||
- "What is [concept tool helps with]"
|
||||
- Blog posts that link to tool
|
||||
**Supporting content**: "How to [use case]", "What is [concept]"
|
||||
|
||||
### Link Building
|
||||
|
||||
Free tools attract links because:
|
||||
- Genuinely useful (people reference them)
|
||||
- Unique (can't link to just any page)
|
||||
- Shareable (social amplification)
|
||||
|
||||
**Outreach opportunities:**
|
||||
- Roundup posts ("best free tools for X")
|
||||
- Resource pages
|
||||
- Industry publications
|
||||
- Blogs writing about the problem
|
||||
|
||||
### Technical SEO
|
||||
|
||||
- Fast load time critical
|
||||
- Mobile-friendly essential
|
||||
- Crawlable content (not just JS app)
|
||||
- Proper meta tags
|
||||
- Schema markup if applicable
|
||||
|
||||
---
|
||||
|
||||
## Lead Capture Strategy
|
||||
|
||||
### When to Gate
|
||||
|
||||
**Fully gated (email required to use):**
|
||||
- High-value, unique tools
|
||||
- Personalized reports
|
||||
- Risk: Lower usage
|
||||
|
||||
**Partially gated (email for full results):**
|
||||
- Show preview, gate details
|
||||
- Better balance
|
||||
- Most common pattern
|
||||
|
||||
**Ungated with optional capture:**
|
||||
- Tool is free to use
|
||||
- Email to save/share results
|
||||
- Highest usage, lower capture
|
||||
|
||||
**Ungated entirely:**
|
||||
- Pure SEO/brand play
|
||||
- No direct leads
|
||||
- Maximum reach
|
||||
|
||||
### Lead Capture Best Practices
|
||||
|
||||
- Value exchange clear: "Get your full report"
|
||||
- Minimal friction: Email only
|
||||
- Show preview of what they'll get
|
||||
- Optional: Segment by asking one qualifying question
|
||||
|
||||
### Post-Capture
|
||||
|
||||
- Immediate email with results/link
|
||||
- Nurture sequence relevant to tool topic
|
||||
- Clear path to main product
|
||||
- Don't spam—provide value
|
||||
|
||||
---
|
||||
|
||||
## Build vs. Buy vs. Embed
|
||||
## Build vs. Buy
|
||||
|
||||
### Build Custom
|
||||
|
||||
**When:**
|
||||
- Unique concept, nothing exists
|
||||
- Core to brand/product
|
||||
- High strategic value
|
||||
- Have development capacity
|
||||
|
||||
**Consider:**
|
||||
- Development time
|
||||
- Ongoing maintenance
|
||||
- Hosting costs
|
||||
- Bug fixes
|
||||
When: Unique concept, core to brand, high strategic value, have dev capacity
|
||||
|
||||
### Use No-Code Tools
|
||||
|
||||
**Options:**
|
||||
- Outgrow, Involve.me (calculators/quizzes)
|
||||
- Typeform, Tally (forms/quizzes)
|
||||
- Notion, Coda (databases)
|
||||
- Bubble, Webflow (apps)
|
||||
|
||||
**When:**
|
||||
- Speed to market
|
||||
- Limited dev resources
|
||||
- Testing concept viability
|
||||
Options: Outgrow, Involve.me, Typeform, Tally, Bubble, Webflow
|
||||
When: Speed to market, limited dev resources, testing concept
|
||||
|
||||
### Embed Existing
|
||||
|
||||
**When:**
|
||||
- Something good already exists
|
||||
- White-label options available
|
||||
- Not core differentiator
|
||||
|
||||
**Consider:**
|
||||
- Branding limitations
|
||||
- Dependency on third party
|
||||
- Cost vs. build
|
||||
When: Something good exists, white-label available, not core differentiator
|
||||
|
||||
---
|
||||
|
||||
## MVP Scope
|
||||
|
||||
### Minimum Viable Tool
|
||||
|
||||
1. **Core functionality only**
|
||||
- Does the one thing
|
||||
- No bells and whistles
|
||||
- Works reliably
|
||||
|
||||
2. **Essential UX**
|
||||
- Clear input
|
||||
- Obvious output
|
||||
- Mobile works
|
||||
|
||||
3. **Basic lead capture**
|
||||
- Email collection works
|
||||
- Leads go somewhere useful
|
||||
- Follow-up exists
|
||||
1. Core functionality only—does the one thing, works reliably
|
||||
2. Essential UX—clear input, obvious output, mobile works
|
||||
3. Basic lead capture—email collection, leads go somewhere useful
|
||||
|
||||
### What to Skip Initially
|
||||
|
||||
- Account creation
|
||||
- Saving results
|
||||
- Advanced features
|
||||
- Perfect design
|
||||
- Every edge case
|
||||
|
||||
### Iterate Based on Use
|
||||
|
||||
- Track where users drop off
|
||||
- See what questions they have
|
||||
- Add features that get requested
|
||||
- Improve based on data
|
||||
Account creation, saving results, advanced features, perfect design, every edge case
|
||||
|
||||
---
|
||||
|
||||
## Promotion Strategy
|
||||
|
||||
### Launch
|
||||
|
||||
**Owned channels:**
|
||||
- Email list announcement
|
||||
- Blog post / landing page
|
||||
- Social media
|
||||
- Product hunt (if applicable)
|
||||
|
||||
**Outreach:**
|
||||
- Relevant newsletters
|
||||
- Industry publications
|
||||
- Bloggers in space
|
||||
- Social influencers
|
||||
|
||||
### Ongoing
|
||||
|
||||
**SEO:**
|
||||
- Target tool-related keywords
|
||||
- Supporting content
|
||||
- Link building
|
||||
|
||||
**Social:**
|
||||
- Share interesting results (anonymized)
|
||||
- Use case examples
|
||||
- Tips for using the tool
|
||||
|
||||
**Product integration:**
|
||||
- Mention in sales process
|
||||
- Link from related product features
|
||||
- Include in email sequences
|
||||
|
||||
---
|
||||
|
||||
## Measurement
|
||||
|
||||
### Metrics to Track
|
||||
|
||||
**Acquisition:**
|
||||
- Traffic to tool
|
||||
- Traffic sources
|
||||
- Keyword rankings
|
||||
- Backlinks acquired
|
||||
|
||||
**Engagement:**
|
||||
- Tool usage/completions
|
||||
- Time spent
|
||||
- Return visitors
|
||||
- Shares
|
||||
|
||||
**Conversion:**
|
||||
- Email captures
|
||||
- Lead quality score
|
||||
- MQLs generated
|
||||
- Pipeline influenced
|
||||
- Customers attributed
|
||||
|
||||
### Attribution
|
||||
|
||||
- UTM parameters for paid promotion
|
||||
- Separate landing page for organic
|
||||
- Track lead source through funnel
|
||||
- Survey new customers
|
||||
|
||||
---
|
||||
|
||||
## Evaluation Framework
|
||||
|
||||
### Tool Idea Scorecard
|
||||
## Evaluation Scorecard
|
||||
|
||||
Rate each factor 1-5:
|
||||
|
||||
@@ -441,136 +150,30 @@ Rate each factor 1-5:
|
||||
|--------|-------|
|
||||
| Search demand exists | ___ |
|
||||
| Audience match to buyers | ___ |
|
||||
| Uniqueness vs. existing tools | ___ |
|
||||
| Uniqueness vs. existing | ___ |
|
||||
| Natural path to product | ___ |
|
||||
| Build feasibility | ___ |
|
||||
| Maintenance burden (inverse) | ___ |
|
||||
| Link-building potential | ___ |
|
||||
| Share-worthiness | ___ |
|
||||
|
||||
**25+**: Strong candidate
|
||||
**15-24**: Promising, needs refinement
|
||||
**<15**: Reconsider or scope differently
|
||||
|
||||
### ROI Projection
|
||||
|
||||
```
|
||||
Estimated monthly leads: [X]
|
||||
Lead-to-customer rate: [Y%]
|
||||
Average customer value: [$Z]
|
||||
|
||||
Monthly value: X × Y% × $Z = $___
|
||||
|
||||
Build cost: $___
|
||||
Monthly maintenance: $___
|
||||
|
||||
Payback period: Build cost / (Monthly value - Monthly maintenance)
|
||||
```
|
||||
**25+**: Strong candidate | **15-24**: Promising | **<15**: Reconsider
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
## Task-Specific Questions
|
||||
|
||||
### Tool Strategy Document
|
||||
|
||||
```
|
||||
# Free Tool Strategy: [Tool Name]
|
||||
|
||||
## Concept
|
||||
[What it does in one paragraph]
|
||||
|
||||
## Target Audience
|
||||
[Who uses it, what problem it solves]
|
||||
|
||||
## Lead Generation Fit
|
||||
[How this connects to your product/sales]
|
||||
|
||||
## SEO Opportunity
|
||||
- Target keywords: [list]
|
||||
- Search volume: [estimate]
|
||||
- Competition: [assessment]
|
||||
|
||||
## Build Approach
|
||||
- Custom / No-code / Embed
|
||||
- MVP scope: [core features]
|
||||
- Estimated effort: [time/cost]
|
||||
|
||||
## Lead Capture Strategy
|
||||
- Gating approach: [Full/Partial/Ungated]
|
||||
- Capture mechanism: [description]
|
||||
- Follow-up sequence: [outline]
|
||||
|
||||
## Success Metrics
|
||||
- [Metric 1]: [Target]
|
||||
- [Metric 2]: [Target]
|
||||
|
||||
## Promotion Plan
|
||||
- Launch: [channels]
|
||||
- Ongoing: [strategy]
|
||||
|
||||
## Timeline
|
||||
- Phase 1: [scope] - [timeframe]
|
||||
- Phase 2: [scope] - [timeframe]
|
||||
```
|
||||
|
||||
### Implementation Spec
|
||||
If moving forward with build
|
||||
|
||||
### Promotion Plan
|
||||
Detailed launch and ongoing strategy
|
||||
|
||||
---
|
||||
|
||||
## Example Tool Concepts by Business Type
|
||||
|
||||
### SaaS Product
|
||||
- Product ROI calculator
|
||||
- Competitor comparison tool
|
||||
- Readiness assessment quiz
|
||||
- Template library for use case
|
||||
|
||||
### Agency/Services
|
||||
- Industry benchmark tool
|
||||
- Project scoping calculator
|
||||
- Portfolio review tool
|
||||
- Cost estimator
|
||||
|
||||
### E-commerce
|
||||
- Product finder quiz
|
||||
- Comparison tool
|
||||
- Size/fit calculator
|
||||
- Savings calculator
|
||||
|
||||
### Developer Tools
|
||||
- Code snippet library
|
||||
- Testing/preview tool
|
||||
- Documentation generator
|
||||
- Interactive tutorials
|
||||
|
||||
### Finance
|
||||
- Financial calculators
|
||||
- Investment comparison
|
||||
- Budget planner
|
||||
- Tax estimator
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
|
||||
If you need more context:
|
||||
1. What's your core product/service?
|
||||
2. What problems does your audience commonly face?
|
||||
3. What existing tools do they use for workarounds?
|
||||
4. How do you currently generate leads?
|
||||
5. What technical resources are available?
|
||||
6. What's the timeline and budget?
|
||||
1. What existing tools does your audience use for workarounds?
|
||||
2. How do you currently generate leads?
|
||||
3. What technical resources are available?
|
||||
4. What's the timeline and budget?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **lead-magnets**: For downloadable content lead magnets (ebooks, checklists, templates)
|
||||
- **page-cro**: For optimizing the tool's landing page
|
||||
- **seo-audit**: For SEO-optimizing the tool
|
||||
- **analytics-tracking**: For measuring tool usage
|
||||
- **email-sequence**: For nurturing leads from the tool
|
||||
- **programmatic-seo**: For building tool-based pages at scale
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "free-tool-strategy",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "We want to build a free tool to drive leads for our SEO software. We're thinking about an SEO audit tool or a keyword research tool. Which would be better and how should we approach it?",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply the evaluation scorecard to compare both tool ideas across dimensions (audience alignment, lead quality, build effort, SEO value, maintenance burden, competitive differentiation). Should reference the tool types from the skill (analyzers, testers). Should recommend the stronger option with rationale. Should discuss lead capture gating strategy (what's free vs what requires email). Should address MVP scope — what's the minimum valuable version. Should provide implementation recommendations.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies evaluation scorecard to compare options",
|
||||
"References tool types from the skill",
|
||||
"Recommends one option with clear rationale",
|
||||
"Discusses lead capture gating strategy",
|
||||
"Addresses MVP scope",
|
||||
"Provides implementation recommendations"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "I want to build a free ROI calculator for our HR software. Users input their company size and current processes, and it shows how much time and money they'd save.",
|
||||
"expected_output": "Should identify this as a calculator tool type. Should apply the ideation framework to validate the concept. Should discuss lead capture strategy: should the basic result be free and detailed report gated? Should address the build vs buy decision. Should recommend MVP scope (what inputs, what outputs, what formula). Should discuss SEO considerations for the tool page. Should reference the evaluation scorecard to score the idea.",
|
||||
"assertions": [
|
||||
"Identifies as calculator tool type",
|
||||
"Applies ideation framework to validate",
|
||||
"Discusses lead capture gating strategy",
|
||||
"Addresses build vs buy decision",
|
||||
"Recommends MVP scope (inputs, outputs, formula)",
|
||||
"Discusses SEO considerations",
|
||||
"References evaluation scorecard"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "give me some ideas for free tools we could build. we sell email marketing software for e-commerce brands.",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the ideation framework to generate tool ideas relevant to email marketing + e-commerce. Should provide 5-8 ideas across different tool types (calculators, generators, analyzers, testers). Examples: email subject line tester, email deliverability checker, email ROI calculator, email template generator, spam score checker. Should briefly score each against the evaluation dimensions. Should recommend top 2-3 to pursue.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Applies ideation framework",
|
||||
"Generates ideas across multiple tool types",
|
||||
"Ideas are relevant to email marketing + e-commerce",
|
||||
"Provides 5-8 ideas",
|
||||
"Briefly evaluates each idea",
|
||||
"Recommends top 2-3 to pursue"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "We built a free website speed test tool 6 months ago but it's barely getting any traffic. What went wrong and how do we fix it?",
|
||||
"expected_output": "Should diagnose why the tool isn't getting traffic. Should investigate: SEO strategy for the tool page (target keywords, on-page optimization), distribution strategy (was it launched and forgotten?), competitive landscape (are there dominant free tools already?), tool quality and UX (does it provide unique value?). Should apply the engineering as marketing principles. Should recommend a recovery plan: SEO improvements, content marketing around the tool, product improvements for differentiation.",
|
||||
"assertions": [
|
||||
"Diagnoses potential traffic issues",
|
||||
"Investigates SEO strategy for the tool",
|
||||
"Assesses competitive landscape",
|
||||
"Questions unique value proposition",
|
||||
"Applies engineering as marketing principles",
|
||||
"Recommends recovery plan with specific actions"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "Should we gate our free tool behind an email capture or make it completely free? We want leads but don't want to kill usage.",
|
||||
"expected_output": "Should apply the lead capture gating strategy framework. Should present the spectrum: fully ungated → partial gating (basic results free, detailed report gated) → fully gated. Should recommend partial gating as the typical best approach — give enough value to demonstrate the tool's worth, gate the detailed/actionable output. Should discuss tradeoffs: ungated = more SEO value and usage, gated = more leads but fewer users. Should provide specific gating recommendations based on tool type.",
|
||||
"assertions": [
|
||||
"Applies lead capture gating strategy",
|
||||
"Presents gating spectrum (ungated to fully gated)",
|
||||
"Recommends partial gating approach",
|
||||
"Discusses tradeoffs of each approach",
|
||||
"Provides specific gating recommendations",
|
||||
"Addresses SEO impact of gating decisions"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "How do I optimize the landing page for our free tool to get more signups? The tool itself is great but nobody finds it.",
|
||||
"expected_output": "Should recognize this is a landing page conversion optimization task, not a free tool strategy task. Should defer to or cross-reference the page-cro skill for optimizing the tool's landing page conversion rate. May provide free-tool-specific context (gating strategy, value demonstration) but should make clear that page-cro is the right skill for page conversion optimization.",
|
||||
"assertions": [
|
||||
"Recognizes this as page CRO, not free tool strategy",
|
||||
"References or defers to page-cro skill",
|
||||
"May provide free-tool-specific context",
|
||||
"Does not attempt full page CRO using free tool strategy patterns"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
# Free Tool Types Reference
|
||||
|
||||
Detailed guide to each type of marketing tool you can build.
|
||||
|
||||
## Contents
|
||||
- Calculators
|
||||
- Generators
|
||||
- Analyzers/Auditors
|
||||
- Testers/Validators
|
||||
- Libraries/Resources
|
||||
- Interactive Educational
|
||||
- Tool Concept Examples by Industry (SaaS product, agency/services, e-commerce, developer tools, finance)
|
||||
|
||||
## Calculators
|
||||
|
||||
**Best for**: Decisions involving numbers, comparisons, estimates
|
||||
|
||||
**Examples**:
|
||||
- ROI calculator
|
||||
- Savings calculator
|
||||
- Cost comparison tool
|
||||
- Salary calculator
|
||||
- Tax estimator
|
||||
- Pricing estimator
|
||||
- Compound interest calculator
|
||||
- Break-even calculator
|
||||
|
||||
**Why they work**:
|
||||
- Personalized output
|
||||
- High perceived value
|
||||
- Share-worthy results
|
||||
- Clear problem → solution
|
||||
|
||||
**Implementation tips**:
|
||||
- Keep inputs simple
|
||||
- Show calculations transparently
|
||||
- Make results shareable
|
||||
- Add "powered by" branding
|
||||
|
||||
---
|
||||
|
||||
## Generators
|
||||
|
||||
**Best for**: Creating something useful quickly
|
||||
|
||||
**Examples**:
|
||||
- Policy generator (privacy, terms)
|
||||
- Template generator
|
||||
- Name/tagline generator
|
||||
- Email subject line generator
|
||||
- Resume builder
|
||||
- Color palette generator
|
||||
- Logo maker
|
||||
- Contract generator
|
||||
|
||||
**Why they work**:
|
||||
- Tangible output
|
||||
- Saves time
|
||||
- Easily shared
|
||||
- Repeat usage
|
||||
|
||||
**Implementation tips**:
|
||||
- Output should be immediately usable
|
||||
- Allow customization
|
||||
- Offer download/export options
|
||||
- Include email gating for premium outputs
|
||||
|
||||
---
|
||||
|
||||
## Analyzers/Auditors
|
||||
|
||||
**Best for**: Evaluating existing work or assets
|
||||
|
||||
**Examples**:
|
||||
- Website grader
|
||||
- SEO analyzer
|
||||
- Email subject tester
|
||||
- Headline analyzer
|
||||
- Security checker
|
||||
- Performance auditor
|
||||
- Accessibility checker
|
||||
- Code quality analyzer
|
||||
|
||||
**Why they work**:
|
||||
- Curiosity-driven
|
||||
- Personalized insights
|
||||
- Creates awareness of problems
|
||||
- Natural lead to solution
|
||||
|
||||
**Implementation tips**:
|
||||
- Score or grade for gamification
|
||||
- Benchmark against averages
|
||||
- Provide actionable recommendations
|
||||
- Follow up with improvement offers
|
||||
|
||||
---
|
||||
|
||||
## Testers/Validators
|
||||
|
||||
**Best for**: Checking if something works
|
||||
|
||||
**Examples**:
|
||||
- Meta tag preview
|
||||
- Email rendering test
|
||||
- Mobile-friendly test
|
||||
- Speed test
|
||||
- DNS checker
|
||||
- SSL certificate checker
|
||||
- Redirect checker
|
||||
- Broken link finder
|
||||
|
||||
**Why they work**:
|
||||
- Immediate utility
|
||||
- Bookmark-worthy
|
||||
- Repeat usage
|
||||
- Professional necessity
|
||||
|
||||
**Implementation tips**:
|
||||
- Fast results are essential
|
||||
- Show pass/fail clearly
|
||||
- Provide fix instructions
|
||||
- Integrate with your product where relevant
|
||||
|
||||
---
|
||||
|
||||
## Libraries/Resources
|
||||
|
||||
**Best for**: Reference material
|
||||
|
||||
**Examples**:
|
||||
- Icon library
|
||||
- Template library
|
||||
- Code snippet library
|
||||
- Example gallery
|
||||
- Industry directory
|
||||
- Resource list
|
||||
- Swipe file collection
|
||||
- Font pairing tool
|
||||
|
||||
**Why they work**:
|
||||
- High SEO value
|
||||
- Ongoing traffic
|
||||
- Establishes authority
|
||||
- Linkable asset
|
||||
|
||||
**Implementation tips**:
|
||||
- Make searchable/filterable
|
||||
- Allow easy copying/downloading
|
||||
- Update regularly
|
||||
- Accept community submissions
|
||||
|
||||
---
|
||||
|
||||
## Interactive Educational
|
||||
|
||||
**Best for**: Learning/understanding
|
||||
|
||||
**Examples**:
|
||||
- Interactive tutorials
|
||||
- Code playgrounds
|
||||
- Visual explainers
|
||||
- Quizzes/assessments
|
||||
- Simulators
|
||||
- Comparison tools
|
||||
- Decision trees
|
||||
- Configurators
|
||||
|
||||
**Why they work**:
|
||||
- Engages deeply
|
||||
- Demonstrates expertise
|
||||
- Shareable
|
||||
- Memory-creating
|
||||
|
||||
**Implementation tips**:
|
||||
- Make it hands-on
|
||||
- Show immediate feedback
|
||||
- Lead to deeper resources
|
||||
- Capture engaged users
|
||||
|
||||
---
|
||||
|
||||
## Tool Concept Examples by Industry
|
||||
|
||||
### SaaS Product
|
||||
- Product ROI calculator
|
||||
- Competitor comparison tool
|
||||
- Readiness assessment quiz
|
||||
- Template library for use case
|
||||
- Feature configurator
|
||||
|
||||
### Agency/Services
|
||||
- Industry benchmark tool
|
||||
- Project scoping calculator
|
||||
- Portfolio review tool
|
||||
- Cost estimator
|
||||
- Proposal generator
|
||||
|
||||
### E-commerce
|
||||
- Product finder quiz
|
||||
- Comparison tool
|
||||
- Size/fit calculator
|
||||
- Savings calculator
|
||||
- Gift finder
|
||||
|
||||
### Developer Tools
|
||||
- Code snippet library
|
||||
- Testing/preview tool
|
||||
- Documentation generator
|
||||
- Interactive tutorials
|
||||
- API playground
|
||||
|
||||
### Finance
|
||||
- Financial calculators
|
||||
- Investment comparison
|
||||
- Budget planner
|
||||
- Tax estimator
|
||||
- Loan calculator
|
||||
@@ -0,0 +1,335 @@
|
||||
---
|
||||
name: image
|
||||
description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'Ideogram,' 'Gemini image,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Image
|
||||
|
||||
You are an expert visual content producer who helps create marketing images using AI generation models, design tools, and optimization best practices. Your goal is to help users produce professional visual assets efficiently — from blog heroes and social graphics to product mockups and profile banners.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Image Goal
|
||||
- What type of image? (Blog hero, social graphic, product mockup, banner, brand asset, OG image)
|
||||
- What platform or placement? (Website, social, directory listing, app store, email)
|
||||
- What dimensions do you need?
|
||||
|
||||
### 2. Production Approach
|
||||
- Do you have existing brand assets? (Logo, colors, fonts, style guide)
|
||||
- Do you need photorealistic or illustrative style?
|
||||
- Is this a one-off or a template for repeated use?
|
||||
|
||||
### 3. Technical Context
|
||||
- Do you have API keys for any image tools? (Gemini, Replicate/Flux, Ideogram)
|
||||
- Budget constraints? (Some tools charge per image)
|
||||
- Do you need the image optimized for web performance?
|
||||
|
||||
---
|
||||
|
||||
## Choosing Your Approach
|
||||
|
||||
Pick the right tool for the job:
|
||||
|
||||
| Approach | Best For | Tools | When to Use |
|
||||
|----------|----------|-------|-------------|
|
||||
| **AI Generation** | Original images from text prompts | Gemini/Nano Banana, Flux, Ideogram | Blog heroes, social graphics, lifestyle scenes |
|
||||
| **AI Editing** | Modify existing images | Gemini, Flux Flex | Background removal, style changes, variations |
|
||||
| **Design Tools** | Templated, brand-consistent assets | Canva, Figma | Profile banners, social templates, presentations |
|
||||
| **Screenshot + Overlay** | Product UI showcases | Browser screenshot + code overlay | Product mockups, feature announcements |
|
||||
| **Stock Photography** | Generic business/lifestyle scenes | Unsplash, Pexels | When speed matters more than uniqueness |
|
||||
|
||||
---
|
||||
|
||||
## AI Image Generation
|
||||
|
||||
Generate original images from text prompts. The fastest way to create unique marketing visuals.
|
||||
|
||||
### Model Comparison
|
||||
|
||||
| Model | Best For | Text in Images | API | Cost |
|
||||
|-------|----------|:-:|-----|------|
|
||||
| **Gemini Image** (Google) | All-around, editing, text rendering | Good | [Gemini API](https://ai.google.dev/gemini-api/docs/image-generation) | Check [pricing](https://ai.google.dev/gemini-api/docs/pricing) |
|
||||
| **Flux** (Black Forest Labs) | Photorealism, brand consistency, batch | Limited | [BFL API](https://docs.bfl.ai/), Replicate, fal.ai | Check [pricing](https://docs.bfl.ai/quick_start/pricing) |
|
||||
| **Ideogram** | Typography, branded graphics | Best | [Ideogram API](https://developer.ideogram.ai/) | Check [pricing](https://about.ideogram.ai/api-pricing) |
|
||||
| **GPT Image** (OpenAI) | General purpose, ChatGPT integration | Good | [OpenAI API](https://platform.openai.com/docs/guides/image-generation) | Check [pricing](https://platform.openai.com/docs/pricing) |
|
||||
| **Midjourney** | Artistic, high-aesthetic | Poor | No official API | Subscription-based |
|
||||
| **Stable Diffusion** | Self-hosted, customizable | Varies | Open source | Free (GPU costs) |
|
||||
|
||||
**Note:** DALL-E 3 is deprecated. OpenAI's current image models are the GPT Image family (`gpt-image-1`, etc.).
|
||||
|
||||
### When to Use Which
|
||||
|
||||
```
|
||||
Need text/headlines in the image?
|
||||
├── Yes → Ideogram (best), Gemini (good), GPT Image (decent)
|
||||
└── No ↓
|
||||
|
||||
Need product/brand consistency across images?
|
||||
├── Yes → Flux (multi-image reference)
|
||||
└── No ↓
|
||||
|
||||
Need to edit an existing image?
|
||||
├── Yes → Gemini (native editing), Flux Flex
|
||||
└── No ↓
|
||||
|
||||
Need highest visual quality?
|
||||
├── Yes → Flux Pro, Midjourney
|
||||
└── No ↓
|
||||
|
||||
Need volume at low cost?
|
||||
└── Flux Klein, Gemini Flash
|
||||
```
|
||||
|
||||
### Prompting Basics
|
||||
|
||||
A strong image prompt follows: **Subject + Setting + Style + Lighting + Composition + Technical**
|
||||
|
||||
```
|
||||
A laptop on a minimal white desk showing a dashboard UI,
|
||||
soft directional lighting from the left, shallow depth of field,
|
||||
clean commercial photography style, 16:9 aspect ratio, 4K
|
||||
```
|
||||
|
||||
**Common mistakes:**
|
||||
- Too vague ("a business image") — add specific details
|
||||
- Forgetting aspect ratio — always specify dimensions
|
||||
- Requesting complex text — use overlays instead for anything beyond short headlines
|
||||
- No style direction — "photorealistic," "flat illustration," "3D render"
|
||||
|
||||
For detailed prompting guides per model, see [references/ai-image-prompting.md](references/ai-image-prompting.md).
|
||||
|
||||
---
|
||||
|
||||
## Design Tools
|
||||
|
||||
For templated, brand-consistent work where AI generation is overkill or too unpredictable.
|
||||
|
||||
### Canva
|
||||
|
||||
Best for non-designers who need polished output fast.
|
||||
|
||||
- **Strengths:** Massive template library, brand kit, Magic Resize (one design → all sizes), team collaboration
|
||||
- **Best for:** Social graphics, presentations, email headers, simple banners
|
||||
- **Limitations:** Less control than Figma, templates can look generic
|
||||
- **Agent-friendliness:** Has an API but limited — better as a human-in-the-loop tool
|
||||
|
||||
### Figma
|
||||
|
||||
Best for teams with design systems or pixel-perfect needs.
|
||||
|
||||
- **Strengths:** Design system components, auto layout, developer handoff, plugins
|
||||
- **Best for:** OG images via templates, design system assets, complex layouts
|
||||
- **Limitations:** Steeper learning curve, requires design skill
|
||||
- **Agent-friendliness:** Has an API and MCP server for reading designs
|
||||
|
||||
### When to Use Design Tools vs. AI Generation
|
||||
|
||||
| Scenario | Design Tool | AI Generation |
|
||||
|----------|:-:|:-:|
|
||||
| Exact brand guidelines must be followed | Yes | Maybe (with strong ref images) |
|
||||
| Need 20 size variants of one design | Yes (Canva Magic Resize) | No |
|
||||
| Unique hero image for a blog post | No | Yes |
|
||||
| Recurring social media template | Yes | No |
|
||||
| Product mockup with real UI | No (use screenshots) | No (hallucinated UI) |
|
||||
| Abstract/creative visual | No | Yes |
|
||||
|
||||
---
|
||||
|
||||
## Marketing Image Workflows
|
||||
|
||||
### Blog & Article Hero Images
|
||||
|
||||
The image at the top of every post. Sets tone, improves shareability, required for OG/social previews.
|
||||
|
||||
1. **Define the concept** — what visual metaphor represents the topic?
|
||||
2. **Generate with AI** — use Flux or Gemini for photorealistic, Ideogram if text needed
|
||||
3. **Specify 1200x630** (works for both hero and OG image) or **1920x1080** for full-width
|
||||
4. **Optimize** — compress to <200KB, serve as WebP with JPEG fallback
|
||||
|
||||
**Prompt pattern:**
|
||||
```
|
||||
[Visual metaphor for topic], clean modern style,
|
||||
bright natural lighting, shallow depth of field,
|
||||
professional blog header aesthetic, 1200x630
|
||||
```
|
||||
|
||||
### Social Media Graphics
|
||||
|
||||
Platform-specific images for organic posts.
|
||||
|
||||
| Platform | Primary Size | Aspect Ratio | Notes |
|
||||
|----------|-------------|:---:|-------|
|
||||
| Twitter/X | 1200x675 | 16:9 | Large image card |
|
||||
| LinkedIn | 1200x627 | 1.91:1 | Feed image |
|
||||
| Instagram Feed | 1080x1080 | 1:1 | Square; 1080x1350 (4:5) also strong |
|
||||
| Instagram Stories | 1080x1920 | 9:16 | Full screen vertical |
|
||||
| Facebook | 1200x630 | 1.91:1 | Link share image |
|
||||
|
||||
**Workflow:**
|
||||
1. Create the hero concept at highest resolution needed
|
||||
2. Use Canva Magic Resize or manual crop for platform variants
|
||||
3. Add text overlays programmatically (Ideogram or post-processing) if needed
|
||||
4. Export at platform-specific dimensions
|
||||
|
||||
### Product Mockups & Screenshots
|
||||
|
||||
Showcase your product UI in context. AI models hallucinate UI — don't use them for this.
|
||||
|
||||
1. **Capture real screenshots** of your product at 2x resolution
|
||||
2. **Frame in device mockups** — use browser frame, laptop, or phone templates
|
||||
3. **Add context** — callout arrows, feature labels, before/after comparisons
|
||||
4. **Annotate with code** — Hyperframes or HTML/CSS for programmatic overlays
|
||||
|
||||
**Tools:** Browser DevTools (screenshot), Shottr (Mac), CleanShot X, or `screencapture` CLI.
|
||||
|
||||
### Profile & Listing Banners
|
||||
|
||||
Banners for profiles, directory listings, and marketplace pages. Often the first visual impression.
|
||||
|
||||
| Platform | Size | Notes |
|
||||
|----------|------|-------|
|
||||
| LinkedIn personal cover | 1584x396 | 4:1, safe zone center |
|
||||
| LinkedIn company cover | 1128x191 | 5.9:1; LinkedIn recommends up to 4200x700 |
|
||||
| Twitter/X header | 1500x500 | 3:1, partially obscured by avatar |
|
||||
| Product Hunt gallery | 1270x760 | 5:3, up to 6 images |
|
||||
| G2 profile | 1280x720 | 16:9, product screenshots preferred |
|
||||
| GitHub social preview | 1280x640 | 2:1, shows in link cards |
|
||||
| App Store screenshots | Varies by device | See aso-audit skill for full specs |
|
||||
| Google Play feature graphic | 1024x500 | ~2:1, required for store listing |
|
||||
|
||||
**Best practices:**
|
||||
- **Keep text minimal** — banners are seen at small sizes on mobile
|
||||
- **Center critical content** — edges get cropped differently per device
|
||||
- **Show the product** — real UI screenshots outperform abstract graphics on directory listings
|
||||
- **Match your brand** — use consistent colors, fonts, logo placement
|
||||
- **Update seasonally** — stale banners signal an inactive product
|
||||
|
||||
**Workflow:**
|
||||
1. Pick the platform(s) and note exact dimensions
|
||||
2. For directories (Product Hunt, G2): use real product screenshots with light annotation
|
||||
3. For profiles (LinkedIn, Twitter): use brand colors + tagline + optional product shot
|
||||
4. Generate with Canva/Figma templates or Ideogram (if text-heavy)
|
||||
5. Test at actual display size — zoom out to check readability
|
||||
|
||||
### Brand Assets
|
||||
|
||||
Logos, icons, and illustrations. AI generation has limits here.
|
||||
|
||||
| Asset | AI Generation | Design Tool | Notes |
|
||||
|-------|:-:|:-:|-------|
|
||||
| Logo | Poor — inconsistent, not vector | Yes (Figma) | Always design or commission logos |
|
||||
| App icon | Decent starting point | Yes (Figma) | Generate concepts, refine manually |
|
||||
| Illustrations | Good for style exploration | Depends | AI for concepts, finalize in design tool |
|
||||
| Favicons | No | Yes | Derive from logo |
|
||||
| Social icons | No | Yes | Use platform-provided assets |
|
||||
|
||||
---
|
||||
|
||||
## Image Optimization
|
||||
|
||||
Every image on your site affects page speed, which affects SEO and conversions.
|
||||
|
||||
### Format Guide
|
||||
|
||||
| Format | Best For | Compression | Browser Support |
|
||||
|--------|----------|-------------|:---:|
|
||||
| **WebP** | Photos, graphics — default choice | Lossy + lossless | ~96% |
|
||||
| **AVIF** | Highest compression, newest | Better than WebP | ~94% |
|
||||
| **JPEG** | Fallback for older browsers | Lossy only | Universal |
|
||||
| **PNG** | Transparency, screenshots | Lossless | Universal |
|
||||
| **SVG** | Logos, icons, illustrations | Vector (scales) | Universal |
|
||||
|
||||
### Optimization Checklist
|
||||
|
||||
- [ ] **Serve WebP** with JPEG/PNG fallback (`<picture>` element or CDN auto-format)
|
||||
- [ ] **Resize to display size** — don't serve 4000px images in 800px containers
|
||||
- [ ] **Compress** — target quality 75-85% for photos, near-lossless for screenshots
|
||||
- [ ] **Lazy load** below-the-fold images (`loading="lazy"`)
|
||||
- [ ] **Set explicit dimensions** — `width` and `height` attributes prevent layout shift (CLS)
|
||||
- [ ] **Use a CDN** with auto-optimization (Cloudflare, Vercel, Imgix, Cloudinary)
|
||||
- [ ] **Add alt text** — descriptive, keyword-relevant, not stuffed
|
||||
|
||||
### Quick Optimization Commands
|
||||
|
||||
```bash
|
||||
# Convert to WebP (using cwebp)
|
||||
cwebp -q 80 input.png -o output.webp
|
||||
|
||||
# Batch convert with ImageMagick
|
||||
mogrify -format webp -quality 80 *.png
|
||||
|
||||
# Optimize JPEG (using jpegoptim)
|
||||
jpegoptim --max=80 --strip-all *.jpg
|
||||
|
||||
# Check image sizes on a page
|
||||
curl -s https://yoursite.com | grep -oP 'src="[^"]+\.(jpg|png|webp)"' | head -20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## OG & Social Preview Images
|
||||
|
||||
The image that appears when your URL is shared on social media, Slack, Discord, etc.
|
||||
|
||||
### Required Meta Tags
|
||||
|
||||
```html
|
||||
<meta property="og:image" content="https://yoursite.com/og/page-name.jpg" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://yoursite.com/og/page-name.jpg" />
|
||||
```
|
||||
|
||||
### Dynamic OG Images
|
||||
|
||||
Generate OG images programmatically for pages with dynamic content (blog posts, user profiles):
|
||||
|
||||
- **Vercel OG** (`@vercel/og`) — generates images at the edge using JSX
|
||||
- **Satori** — converts HTML/CSS to SVG (powers Vercel OG)
|
||||
- **Cloudinary** — URL-based text overlay on template images
|
||||
|
||||
**Best for programmatic SEO:** Generate unique OG images per page using templates + dynamic data.
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
1. **Using AI for product UI screenshots** — models hallucinate interfaces; capture real screenshots
|
||||
2. **Skipping image optimization** — unoptimized images are the #1 page speed killer
|
||||
3. **No OG image** — shared links look broken without a preview image
|
||||
4. **Wrong aspect ratio** — always check platform specs before generating
|
||||
5. **Text-heavy images without Ideogram** — most AI models butcher text; use Ideogram or add text in post
|
||||
6. **Generating without style direction** — "photorealistic," "flat illustration," "3D render" drastically changes output
|
||||
7. **Inconsistent brand visuals** — use Flux multi-reference or design templates for consistency
|
||||
8. **Huge images on landing pages** — compress, resize, lazy load
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What type of image do you need? (Blog hero, social graphic, mockup, banner, brand asset)
|
||||
2. What platform or placement? (This determines dimensions)
|
||||
3. Do you have brand assets to match? (Colors, fonts, logo, style guide)
|
||||
4. Is this a one-off or a repeatable template?
|
||||
5. Do you have API keys for any image generation tools?
|
||||
6. Does this need to be optimized for web performance?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **ad-creative**: For paid ad image creative, platform-specific ad specs, and scaled ad production
|
||||
- **video**: For AI video production and programmatic video
|
||||
- **social-content**: For what to post and content strategy
|
||||
- **page-cro**: For image placement and conversion optimization on landing pages
|
||||
- **seo-audit**: For image SEO (alt text, file names, lazy loading)
|
||||
- **aso-audit**: For app store screenshot specs and optimization
|
||||
- **directory-submissions**: For Product Hunt gallery images and directory listing visuals
|
||||
@@ -0,0 +1,229 @@
|
||||
# AI Image Prompting Guide
|
||||
|
||||
How to write effective prompts for AI image generation models (Gemini/Nano Banana, Flux, Ideogram, DALL-E, Midjourney).
|
||||
|
||||
---
|
||||
|
||||
## Prompt Structure
|
||||
|
||||
A strong image prompt follows this formula:
|
||||
|
||||
```
|
||||
[Subject] + [Setting/context] + [Visual style] + [Lighting] + [Composition] + [Technical specs]
|
||||
```
|
||||
|
||||
### Example Prompts by Use Case
|
||||
|
||||
**Blog hero — SaaS product:**
|
||||
```
|
||||
A clean workspace with a laptop displaying a colorful analytics dashboard,
|
||||
minimalist desk with a coffee cup and notebook,
|
||||
bright natural window lighting from the right,
|
||||
shallow depth of field, commercial photography style,
|
||||
1200x630, high resolution
|
||||
```
|
||||
|
||||
**Social media graphic — announcement:**
|
||||
```
|
||||
Abstract flowing gradient in deep purple and electric blue,
|
||||
geometric shapes forming a network pattern,
|
||||
dramatic rim lighting on edges,
|
||||
modern tech aesthetic, clean and minimal,
|
||||
1080x1080, vibrant colors
|
||||
```
|
||||
|
||||
**Product lifestyle shot:**
|
||||
```
|
||||
A person in a modern office smiling while looking at a tablet,
|
||||
showing a project management interface on screen,
|
||||
warm candid photography, natural lighting,
|
||||
medium shot, shallow depth of field, editorial style
|
||||
```
|
||||
|
||||
**Profile banner — professional:**
|
||||
```
|
||||
Wide panoramic abstract background in navy blue and teal,
|
||||
subtle geometric grid pattern with soft gradient,
|
||||
clean corporate aesthetic, muted lighting,
|
||||
1584x396, no text, space for logo overlay on left third
|
||||
```
|
||||
|
||||
**Directory listing — Product Hunt:**
|
||||
```
|
||||
Product screenshot on a clean gradient background,
|
||||
soft shadow underneath, slight 3D perspective tilt,
|
||||
modern SaaS product presentation style,
|
||||
1270x760, bright and professional
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Style Keywords
|
||||
|
||||
### Photorealistic
|
||||
- "commercial photography"
|
||||
- "shot on Canon EOS R5"
|
||||
- "editorial style"
|
||||
- "natural lighting"
|
||||
- "shallow depth of field"
|
||||
|
||||
### Clean/Corporate
|
||||
- "clean modern aesthetic"
|
||||
- "minimal design"
|
||||
- "professional corporate style"
|
||||
- "bright and airy"
|
||||
- "white background"
|
||||
|
||||
### Illustrative
|
||||
- "flat vector illustration"
|
||||
- "isometric 3D render"
|
||||
- "hand-drawn sketch style"
|
||||
- "watercolor illustration"
|
||||
- "line art"
|
||||
|
||||
### Abstract/Brand
|
||||
- "flowing gradient"
|
||||
- "geometric pattern"
|
||||
- "abstract data visualization"
|
||||
- "particle effects"
|
||||
- "holographic iridescent"
|
||||
|
||||
### Tech/SaaS
|
||||
- "dark mode UI aesthetic"
|
||||
- "neon accent lighting"
|
||||
- "glassmorphism"
|
||||
- "futuristic minimal"
|
||||
- "developer-focused"
|
||||
|
||||
---
|
||||
|
||||
## Lighting Keywords
|
||||
|
||||
| Term | Effect | Best For |
|
||||
|------|--------|----------|
|
||||
| **Natural light** | Warm, organic feel | Lifestyle, editorial |
|
||||
| **Studio lighting** | Even, controlled | Product shots |
|
||||
| **Rim lighting** | Edge highlights, dramatic | Hero images, abstract |
|
||||
| **Soft directional** | Gentle shadows, dimensional | Blog headers |
|
||||
| **Volumetric** | Light rays, atmospheric | Dramatic, cinematic |
|
||||
| **Flat/even** | No shadows, clean | Icons, diagrams |
|
||||
| **Golden hour** | Warm orange tones | Lifestyle, outdoor |
|
||||
| **High key** | Bright, minimal shadows | Clean, corporate |
|
||||
|
||||
---
|
||||
|
||||
## Composition Keywords
|
||||
|
||||
| Term | Effect | Best For |
|
||||
|------|--------|----------|
|
||||
| **Rule of thirds** | Subject off-center | Editorial, lifestyle |
|
||||
| **Centered** | Subject in middle | Product shots, icons |
|
||||
| **Wide/panoramic** | Expansive view | Banners, headers |
|
||||
| **Close-up/macro** | Detail focus | Texture, product detail |
|
||||
| **Bird's eye/overhead** | Top-down view | Desk setups, flat lays |
|
||||
| **Negative space** | Room for text overlay | Blog headers, banners |
|
||||
| **Symmetrical** | Balanced, formal | Corporate, luxury |
|
||||
|
||||
---
|
||||
|
||||
## Model-Specific Tips
|
||||
|
||||
### Gemini Image (Google)
|
||||
|
||||
- Best all-around for marketing images — good quality, reasonable cost
|
||||
- Supports **image editing** — upload an existing image and describe changes
|
||||
- Decent text rendering — can handle short headlines
|
||||
- Specify "high resolution" for best output
|
||||
- Works well with detailed, descriptive prompts
|
||||
- Same API as text generation — easy to integrate
|
||||
|
||||
### Flux (Black Forest Labs)
|
||||
|
||||
- **Multi-image reference** is the killer feature — upload product screenshots, brand assets, or style references
|
||||
- Best for **brand consistency** across a set of images
|
||||
- Use Flux Pro for final assets, Flux Dev for rapid iteration
|
||||
- Flux Klein for high-volume batch generation (cheapest)
|
||||
- Style transfer via reference images > style keywords in prompt
|
||||
- Prompts can be shorter than other models — the references do heavy lifting
|
||||
|
||||
### Ideogram
|
||||
|
||||
- **Best text rendering** of any model (industry-leading accuracy)
|
||||
- Use when you need headlines, taglines, or brand names in the image
|
||||
- Style reference system (up to 3 images) for brand consistency
|
||||
- Supports "Magic Prompt" auto-enhancement
|
||||
- Keep text requests simple — 3-5 words max for reliability
|
||||
- Best for social graphics and banners that need text baked in
|
||||
|
||||
### GPT Image (OpenAI)
|
||||
|
||||
- Current models: `gpt-image-1` and variants (DALL-E 3 is deprecated)
|
||||
- Integrated with ChatGPT — conversational image generation
|
||||
- Good at following detailed prompts
|
||||
- Decent text rendering (behind Ideogram, comparable to Gemini)
|
||||
- Automatic prompt rewriting — may deviate from exact request
|
||||
- Best for quick one-offs through ChatGPT interface
|
||||
- API gives more control than ChatGPT interface
|
||||
|
||||
### Midjourney
|
||||
|
||||
- Highest aesthetic quality for artistic/editorial images
|
||||
- No official API — Discord-based or web interface
|
||||
- **Not agent-friendly** — use for manual creative exploration only
|
||||
- Style flags: `--style raw` for less stylized, `--ar 16:9` for aspect ratio
|
||||
- Best for hero images where pure visual quality matters most
|
||||
- V6+ has improved text rendering but still unreliable
|
||||
|
||||
---
|
||||
|
||||
## Common Prompt Mistakes
|
||||
|
||||
| Mistake | Why It Fails | Fix |
|
||||
|---------|-------------|-----|
|
||||
| "A professional image" | No visual detail | Describe subject, setting, style, lighting |
|
||||
| Long paragraph of text in image | Models can't render paragraphs | 3-5 words max; add text in post |
|
||||
| "Make it look good" | Not actionable | Specify style: "commercial photography, bright" |
|
||||
| 200+ word prompts | Models lose focus | 40-80 words, specific over comprehensive |
|
||||
| No aspect ratio | Random output size | Always specify dimensions or ratio |
|
||||
| "Logo in bottom right" | Unreliable placement | Add logos in post-processing |
|
||||
| "Make it viral" | Not a visual instruction | Describe the aesthetic you want |
|
||||
| Requesting UI screenshots | AI hallucinates interfaces | Capture real screenshots instead |
|
||||
|
||||
---
|
||||
|
||||
## Batch Generation Workflow
|
||||
|
||||
When you need multiple images with consistent style (e.g., a blog series or social campaign):
|
||||
|
||||
1. **Generate 3-4 test images** with different style prompts
|
||||
2. **Pick the winning style** based on brand fit
|
||||
3. **Save the exact prompt** as your template
|
||||
4. **Use Flux multi-reference** — upload the winning image as a style reference
|
||||
5. **Batch generate** variations with the same style, different subjects
|
||||
6. **Post-process** — add text overlays, logos, crop to platform sizes
|
||||
|
||||
---
|
||||
|
||||
## Aspect Ratios Quick Reference
|
||||
|
||||
| Use Case | Ratio | Pixels | Notes |
|
||||
|----------|-------|--------|-------|
|
||||
| Blog hero / OG image | 1.91:1 | 1200x630 | Universal web standard |
|
||||
| Full-width hero | 16:9 | 1920x1080 | Website headers |
|
||||
| Instagram Feed | 1:1 | 1080x1080 | Square |
|
||||
| Instagram Feed (tall) | 4:5 | 1080x1350 | More screen real estate |
|
||||
| Stories / Reels | 9:16 | 1080x1920 | Vertical full screen |
|
||||
| LinkedIn cover | 4:1 | 1584x396 | Personal profile |
|
||||
| Twitter/X header | 3:1 | 1500x500 | Profile banner |
|
||||
| Product Hunt gallery | 5:3 | 1270x760 | Launch page |
|
||||
| GitHub social preview | 2:1 | 1280x640 | Repo link card |
|
||||
|
||||
---
|
||||
|
||||
## Cost Optimization
|
||||
|
||||
- **Iterate at low quality first** — use Flux Dev or Gemini Flash for drafts, upgrade for finals
|
||||
- **Use references over long prompts** — Flux multi-reference produces more consistent results with fewer retries
|
||||
- **Batch similar requests** — generate all blog headers in one session with the same style
|
||||
- **Cache and reuse** — abstract backgrounds, patterns, and textures can be reused across multiple images
|
||||
- **Post-process instead of re-generate** — crop, overlay text, and adjust color in code rather than generating new images
|
||||
@@ -1,12 +1,21 @@
|
||||
---
|
||||
name: launch-strategy
|
||||
description: "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,' 'beta launch,' 'early access,' 'waitlist,' or 'product update.' This skill covers phased launches, channel strategy, and ongoing launch momentum."
|
||||
description: "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,' 'beta launch,' 'early access,' 'waitlist,' 'product update,' 'how do I launch this,' 'launch checklist,' 'GTM plan,' or 'we're about to ship.' Use this whenever someone is preparing to release something publicly. For ongoing marketing after launch, see marketing-ideas."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Launch Strategy
|
||||
|
||||
You are an expert in SaaS product launches and feature announcements. Your goal is to help users plan launches that build momentum, capture attention, and convert interest into users.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
---
|
||||
|
||||
## Core Philosophy
|
||||
|
||||
The best companies don't just launch once—they launch again and again. Every new feature, improvement, and update is an opportunity to capture attention and engage your audience.
|
||||
@@ -84,7 +93,7 @@ Tap into someone else's audience to shortcut the hardest part—getting noticed.
|
||||
1. List industry leaders your audience follows
|
||||
2. Pitch win-win collaborations
|
||||
3. Use tools like SparkToro or Listen Notes to find audience overlap
|
||||
4. Set up affiliate/referral incentives
|
||||
4. Set up affiliate/referral incentives (for channel partner launches, use [Introw](../../tools/integrations/introw.md) to manage deal registration and commissions)
|
||||
|
||||
**Example - TRMNL:**
|
||||
Sent a free e-ink display to YouTuber Snazzy Labs—not a paid sponsorship, just hoping he'd like it. He created an in-depth review that racked up 500K+ views and drove $500K+ in sales. They also set up an affiliate program for ongoing promotion.
|
||||
@@ -323,9 +332,8 @@ Even small changelog updates remind customers your product is evolving. This bui
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What are you launching? (New product, major feature, minor update)
|
||||
2. What's your current audience size and engagement?
|
||||
3. What owned channels do you have? (Email list size, blog traffic, community)
|
||||
@@ -342,3 +350,4 @@ If you need more context:
|
||||
- **page-cro**: For optimizing launch landing pages
|
||||
- **marketing-psychology**: For psychology behind waitlists and exclusivity
|
||||
- **programmatic-seo**: For comparison pages mentioned in post-launch
|
||||
- **sales-enablement**: For launch sales collateral and enablement materials
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"skill_name": "launch-strategy",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "We're launching a new B2B SaaS product for design teams in 6 weeks. It's a design review tool. We have a small audience (500 email subscribers, 2k Twitter followers). Help us plan the launch.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply the ORB Framework (Owned, Rented, Borrowed channels) with the user's specific resources. Owned: email list (500 subscribers), website. Rented: Twitter (2k followers). Borrowed: partnerships, communities, Product Hunt. Should recommend the five-phase launch approach with a timeline mapped to the 6-week window: Internal prep, Alpha (existing network), Beta (expanded), Early Access, Full Launch. Should provide specific tactics for each phase. Should recommend building up the audience before launch day. Should include a launch day checklist.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies ORB Framework (Owned, Rented, Borrowed)",
|
||||
"Maps to user's specific channels and audience sizes",
|
||||
"Recommends five-phase launch approach",
|
||||
"Provides timeline mapped to 6-week window",
|
||||
"Provides specific tactics for each phase",
|
||||
"Recommends audience building before launch",
|
||||
"Includes launch day checklist"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "We want to launch on Product Hunt. Any tips? We've never done it before.",
|
||||
"expected_output": "Should apply the Product Hunt strategy section. Should cover: choosing the right day and time, preparing assets (logo, gallery images, maker video), crafting the tagline and description, building a hunter network, activating supporters on launch day, engaging with comments, and post-launch follow-up. Should recommend preparation timeline (start 2-4 weeks before). Should mention common mistakes to avoid. Should set realistic expectations about outcomes.",
|
||||
"assertions": [
|
||||
"Applies Product Hunt strategy section",
|
||||
"Covers timing (day and time selection)",
|
||||
"Covers asset preparation",
|
||||
"Addresses hunter network and supporter activation",
|
||||
"Recommends preparation timeline",
|
||||
"Mentions common mistakes to avoid",
|
||||
"Sets realistic expectations"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "we just shipped a major feature update. how should we announce it? it's not a full product launch, just a big new feature.",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the ongoing launch strategy section, specifically the major/medium/minor update matrix. Should identify this as a major feature update. Should recommend appropriate channels and tactics for a feature launch (less than a full product launch but more than a changelog entry). Should include: announcement email, blog post, social media push, in-app notification, and possibly a mini Product Hunt launch. Should provide a feature announcement framework.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Applies ongoing launch strategy / update matrix",
|
||||
"Identifies as major feature update",
|
||||
"Scales tactics appropriately (not full launch)",
|
||||
"Recommends announcement channels",
|
||||
"Includes email, blog, social, and in-app notification",
|
||||
"Provides feature announcement framework"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Our launch flopped. We launched 3 weeks ago and only got 50 signups. We expected at least 500. What went wrong and what can we do now?",
|
||||
"expected_output": "Should apply the post-launch product marketing section. Should diagnose potential failure causes: insufficient audience building pre-launch, wrong channels, weak value proposition messaging, poor launch execution, targeting the wrong audience. Should recommend post-launch recovery tactics: iterate on messaging, identify which channels produced the 50 signups and double down, try new distribution channels, leverage early users for testimonials. Should provide a specific 30-day recovery plan.",
|
||||
"assertions": [
|
||||
"Applies post-launch product marketing guidance",
|
||||
"Diagnoses potential failure causes",
|
||||
"Addresses pre-launch audience building gap",
|
||||
"Recommends post-launch recovery tactics",
|
||||
"Suggests analyzing which channels produced signups",
|
||||
"Provides specific recovery plan"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "How do we leverage partnerships and borrowed audiences for our launch? We don't have a big audience of our own.",
|
||||
"expected_output": "Should focus on the Borrowed channel from the ORB Framework. Should provide specific borrowed audience tactics: podcast guest appearances, co-marketing with complementary tools, influencer partnerships, community engagement (relevant Slack groups, Discord servers, Reddit), guest posts, cross-promotions. Should recommend how to identify and approach potential partners. Should note that borrowed audience strategies take time to build and should start well before launch day.",
|
||||
"assertions": [
|
||||
"Focuses on Borrowed channel from ORB Framework",
|
||||
"Provides specific borrowed audience tactics",
|
||||
"Mentions partnerships, communities, guest content",
|
||||
"Recommends how to identify and approach partners",
|
||||
"Notes borrowed strategies take time to build",
|
||||
"Suggests starting well before launch day"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Give me some creative marketing ideas to promote our product. We're bootstrapped and don't have a big budget.",
|
||||
"expected_output": "Should recognize this is a broader marketing ideas request, not specifically a launch strategy task. Should defer to or cross-reference the marketing-ideas skill, which provides 139 marketing ideas organized by category and filtered by budget. May provide some launch-related tactical ideas but should make clear that marketing-ideas is the right skill for a broader brainstorming session.",
|
||||
"assertions": [
|
||||
"Recognizes this as broader marketing ideas request",
|
||||
"References or defers to marketing-ideas skill",
|
||||
"Does not attempt full marketing brainstorm using launch strategy patterns",
|
||||
"May provide some launch-related tactical ideas"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,310 @@
|
||||
---
|
||||
name: lead-magnets
|
||||
description: When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the user mentions "lead magnet," "gated content," "content upgrade," "downloadable," "ebook," "cheat sheet," "checklist," "template download," "opt-in," "freebie," "PDF download," "resource library," "content offer," "email capture content," "Notion template," "spreadsheet template," or "what should I give away for emails." Use this for planning what to create and how to distribute it. For interactive tools as lead magnets, see free-tool-strategy. For writing the actual content, see copywriting. For the email sequence after capture, see email-sequence.
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Lead Magnets
|
||||
|
||||
You are an expert in lead magnet strategy. Your goal is to help plan lead magnets that capture emails, generate qualified leads, and naturally lead to product adoption.
|
||||
|
||||
## Before Planning
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Business Context
|
||||
- What does the company do?
|
||||
- Who is the ideal customer?
|
||||
- What problems does your product solve?
|
||||
|
||||
### 2. Current Lead Generation
|
||||
- How do you currently capture leads?
|
||||
- What lead magnets or offers do you have?
|
||||
- What's your current conversion rate on email capture?
|
||||
|
||||
### 3. Content Assets
|
||||
- What existing content could be repurposed? (blog posts, guides, data)
|
||||
- What expertise can you package?
|
||||
- What templates or tools do you use internally?
|
||||
|
||||
### 4. Goals
|
||||
- Primary goal: email list growth, lead quality, product education?
|
||||
- Target audience stage: awareness, consideration, or decision?
|
||||
- Timeline and resource constraints?
|
||||
|
||||
---
|
||||
|
||||
## Lead Magnet Principles
|
||||
|
||||
### 1. Solve a Specific Problem
|
||||
- Address one clear pain point, not a broad topic
|
||||
- "How to write cold emails that get replies" > "Marketing guide"
|
||||
|
||||
### 2. Match the Buyer Stage
|
||||
- Awareness leads need education
|
||||
- Consideration leads need comparison and evaluation
|
||||
- Decision leads need implementation help
|
||||
|
||||
### 3. High Perceived Value, Low Time Investment
|
||||
- Should look like it's worth paying for
|
||||
- Consumable in under 30 minutes (ideally under 10)
|
||||
- Immediate, actionable takeaway
|
||||
|
||||
### 4. Natural Path to Product
|
||||
- Solves a problem your product also solves
|
||||
- Creates awareness of a gap your product fills
|
||||
- Demonstrates your expertise in the space
|
||||
|
||||
### 5. Easy to Consume
|
||||
- One clear format (don't mix ebook + video + spreadsheet)
|
||||
- Works on mobile
|
||||
- No special software required
|
||||
|
||||
---
|
||||
|
||||
## Lead Magnet Types
|
||||
|
||||
| Type | Best For | Effort | Time to Create |
|
||||
|------|----------|--------|----------------|
|
||||
| Checklist | Quick wins, process steps | Low | 1-2 hours |
|
||||
| Cheat sheet | Reference material, shortcuts | Low | 2-4 hours |
|
||||
| Template (doc/spreadsheet/Notion) | Repeatable processes, workflows | Low-Med | 2-8 hours |
|
||||
| Swipe file | Inspiration, examples | Medium | 4-8 hours |
|
||||
| Ebook/guide | Deep education, authority | High | 1-3 weeks |
|
||||
| Mini-course (email) | Education + nurture | Medium | 1-2 weeks |
|
||||
| Mini-course (video) | Education + personality | High | 2-4 weeks |
|
||||
| Quiz/assessment | Segmentation, engagement | Medium | 1-2 weeks |
|
||||
| Webinar | Authority, live engagement | Medium | 1 week prep |
|
||||
| Resource library | Ongoing value, return visits | High | Ongoing |
|
||||
| Free trial/community access | Product experience | Varies | Varies |
|
||||
|
||||
**For detailed creation guidance per format**: See [references/format-guide.md](references/format-guide.md)
|
||||
|
||||
---
|
||||
|
||||
## Matching Lead Magnets to Buyer Stage
|
||||
|
||||
### Awareness Stage
|
||||
Goal: Educate on the problem. Attract people who don't know you yet.
|
||||
|
||||
| Format | Example |
|
||||
|--------|---------|
|
||||
| Checklist | "10-Point Website Audit Checklist" |
|
||||
| Cheat sheet | "SEO Cheat Sheet for Beginners" |
|
||||
| Ebook/guide | "The Complete Guide to Email Marketing" |
|
||||
| Quiz | "What Type of Marketer Are You?" |
|
||||
|
||||
### Consideration Stage
|
||||
Goal: Help evaluate solutions. Build trust and demonstrate expertise.
|
||||
|
||||
| Format | Example |
|
||||
|--------|---------|
|
||||
| Comparison template | "CRM Comparison Spreadsheet" |
|
||||
| Assessment | "Marketing Maturity Assessment" |
|
||||
| Case study collection | "5 Companies That 3x'd Their Pipeline" |
|
||||
| Webinar | "How to Choose the Right Analytics Tool" |
|
||||
|
||||
### Decision Stage
|
||||
Goal: Help implement. Remove friction to purchase.
|
||||
|
||||
| Format | Example |
|
||||
|--------|---------|
|
||||
| Template | "Ready-to-Use Sales Email Templates" |
|
||||
| Free trial | "14-Day Free Trial" |
|
||||
| Implementation guide | "Migration Checklist: Switch in 30 Minutes" |
|
||||
| ROI calculator | "Calculate Your Savings" (→ see **free-tool-strategy**) |
|
||||
|
||||
---
|
||||
|
||||
## Gating Strategy
|
||||
|
||||
### Gating Options
|
||||
|
||||
| Approach | When to Use | Trade-off |
|
||||
|----------|-------------|-----------|
|
||||
| **Full gate** | High-value content, bottom-funnel | Max capture, lower reach |
|
||||
| **Partial gate** | Preview + full version | Balance of reach and capture |
|
||||
| **Ungated + optional** | Top-funnel education | Max reach, lower capture |
|
||||
| **Content upgrade** | Blog post + bonus | Contextual, high-intent |
|
||||
|
||||
### What to Ask For
|
||||
|
||||
- **Email only** — highest conversion, lowest friction
|
||||
- **Email + name** — enables personalization, slight friction increase
|
||||
- **Email + company/role** — better lead qualification, more friction
|
||||
- **Multi-field** — only for high-value offers (webinars, demos)
|
||||
|
||||
Rule of thumb: Ask for the minimum needed. Every extra field reduces conversion by 5-10%.
|
||||
|
||||
### How to Frame the Exchange
|
||||
|
||||
- Make the value obvious: "Get the full 25-page guide free"
|
||||
- Show a preview: table of contents, first page, sample results
|
||||
- Add social proof: "Downloaded by 5,000+ marketers"
|
||||
- Reduce risk: "No spam. Unsubscribe anytime."
|
||||
|
||||
**For form optimization**: See **form-cro** skill
|
||||
**For popup implementation**: See **popup-cro** skill
|
||||
|
||||
---
|
||||
|
||||
## Landing Page & Delivery
|
||||
|
||||
### Landing Page Structure
|
||||
|
||||
1. **Headline** — Clear benefit: what they'll get and why it matters
|
||||
2. **Preview/mockup** — Visual of the lead magnet (cover, screenshot, sample page)
|
||||
3. **What's inside** — 3-5 bullet points of key takeaways
|
||||
4. **Social proof** — Download count, testimonials, logos
|
||||
5. **Form** — Minimal fields, clear CTA button
|
||||
6. **FAQ** — Address hesitations (Is it really free? What format?)
|
||||
|
||||
**For landing page optimization**: See **page-cro** skill
|
||||
|
||||
### Delivery Methods
|
||||
|
||||
| Method | Pros | Cons |
|
||||
|--------|------|------|
|
||||
| **Instant download** | Immediate gratification | No email verification |
|
||||
| **Email delivery** | Verifies email, starts relationship | Slight delay |
|
||||
| **Thank you page + email** | Best of both—instant access + email copy | Slightly more complex |
|
||||
| **Drip delivery** | Builds habit, multiple touchpoints | Only for courses/series |
|
||||
|
||||
### Thank You Page Optimization
|
||||
|
||||
Don't waste the thank you page. After they've converted:
|
||||
- Confirm delivery ("Check your inbox")
|
||||
- Offer a next step (book a demo, start trial, join community)
|
||||
- Share on social (pre-written tweet/post)
|
||||
- Recommend related content
|
||||
|
||||
---
|
||||
|
||||
## Promotion & Distribution
|
||||
|
||||
### Blog CTAs & Content Upgrades
|
||||
|
||||
- Add relevant CTAs within blog posts (inline, end-of-post)
|
||||
- Create post-specific content upgrades (bonus checklist for a how-to post)
|
||||
- Content upgrades convert 2-5x better than generic sidebar CTAs
|
||||
|
||||
### Exit-Intent & Popups
|
||||
|
||||
- Trigger on exit intent or scroll depth
|
||||
- Match the popup offer to the page content
|
||||
- **See popup-cro** for implementation
|
||||
|
||||
### Social Media
|
||||
|
||||
- Share snippets and teasers from the lead magnet
|
||||
- Create carousel posts from key points
|
||||
- Use the lead magnet as the CTA in your bio/profile
|
||||
- **See social-content** for social strategy
|
||||
|
||||
### Paid Promotion
|
||||
|
||||
- Facebook/Instagram lead ads for top-funnel lead magnets
|
||||
- Google Ads for high-intent lead magnets (templates, tools)
|
||||
- LinkedIn for B2B lead magnets
|
||||
- Retarget blog visitors with lead magnet ads
|
||||
- **See paid-ads** for campaign strategy
|
||||
|
||||
### Partner Co-Promotion
|
||||
|
||||
- Cross-promote with complementary brands
|
||||
- Guest webinars with partner audiences
|
||||
- Include in partner newsletters
|
||||
- Bundle in resource collections
|
||||
|
||||
---
|
||||
|
||||
## Measuring Success
|
||||
|
||||
### Key Metrics
|
||||
|
||||
| Metric | What It Tells You | Benchmark |
|
||||
|--------|-------------------|-----------|
|
||||
| **Landing page conversion rate** | Offer attractiveness | 20-40% (warm traffic), 5-15% (cold) |
|
||||
| **Cost per lead** | Acquisition efficiency | Varies by channel and industry |
|
||||
| **Lead-to-customer rate** | Lead quality | 1-5% (B2B), varies widely |
|
||||
| **Email engagement** | Content relevance | 30-50% open, 2-5% click |
|
||||
| **Time to conversion** | Nurture effectiveness | Track by lead magnet source |
|
||||
|
||||
**For detailed benchmarks by format and industry**: See [references/benchmarks.md](references/benchmarks.md)
|
||||
|
||||
### A/B Testing Ideas
|
||||
|
||||
- **Headline**: Benefit-focused vs. curiosity-driven
|
||||
- **Format**: Checklist vs. guide on same topic
|
||||
- **Gate level**: Full gate vs. partial preview
|
||||
- **Form fields**: Email-only vs. email + name
|
||||
- **CTA copy**: "Download Free Guide" vs. "Get Your Copy"
|
||||
- **Delivery**: Instant download vs. email delivery
|
||||
|
||||
### Lead Quality Signals
|
||||
|
||||
Good lead magnet attracted quality leads if:
|
||||
- Higher-than-average email engagement
|
||||
- Leads progress to trial/demo at expected rates
|
||||
- Low unsubscribe rate after delivery
|
||||
- Leads match ICP demographics
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When creating a lead magnet strategy, provide:
|
||||
|
||||
### 1. Lead Magnet Recommendation
|
||||
- Format and topic
|
||||
- Target buyer stage
|
||||
- Why this format for this audience
|
||||
- Estimated creation effort
|
||||
|
||||
### 2. Content Outline
|
||||
- Key sections/components
|
||||
- Length and scope
|
||||
- What makes it unique or valuable
|
||||
|
||||
### 3. Gating & Capture Plan
|
||||
- What to gate and how
|
||||
- Form fields
|
||||
- Landing page structure
|
||||
|
||||
### 4. Distribution Plan
|
||||
- Promotion channels
|
||||
- Content upgrade opportunities
|
||||
- Paid amplification (if applicable)
|
||||
|
||||
### 5. Measurement Plan
|
||||
- KPIs and targets
|
||||
- What to A/B test first
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What existing content or expertise could you turn into a lead magnet?
|
||||
2. Where does your audience spend time online?
|
||||
3. What's the most common question prospects ask before buying?
|
||||
4. Do you have an email nurture sequence set up for new leads?
|
||||
5. What's your budget for design and promotion?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **free-tool-strategy**: For interactive tools as lead magnets (calculators, graders, quizzes)
|
||||
- **copywriting**: For writing the lead magnet content itself
|
||||
- **email-sequence**: For nurture sequences after lead capture
|
||||
- **page-cro**: For optimizing lead magnet landing pages
|
||||
- **popup-cro**: For popup-based lead capture
|
||||
- **form-cro**: For optimizing capture forms
|
||||
- **content-strategy**: For content planning and topic selection
|
||||
- **analytics-tracking**: For measuring lead magnet performance
|
||||
- **paid-ads**: For paid promotion of lead magnets
|
||||
- **social-content**: For social media promotion
|
||||
@@ -0,0 +1,129 @@
|
||||
# Lead Magnet Benchmarks
|
||||
|
||||
Reference data for planning and evaluating lead magnet performance.
|
||||
|
||||
---
|
||||
|
||||
## Conversion Rate Benchmarks
|
||||
|
||||
### By Format Type
|
||||
|
||||
| Format | Landing Page Conversion | Notes |
|
||||
|--------|------------------------|-------|
|
||||
| Checklist | 30-50% | High because low commitment |
|
||||
| Cheat sheet | 25-40% | Quick reference appeal |
|
||||
| Template | 25-45% | Immediate utility drives conversion |
|
||||
| Ebook/guide | 20-35% | Higher commitment, lower rate |
|
||||
| Quiz | 30-50% | Engagement drives completion |
|
||||
| Webinar | 20-40% (registration) | 30-50% attendance rate of registrants |
|
||||
| Mini-course | 15-30% | Higher commitment, higher quality leads |
|
||||
| Free trial | 5-15% | High intent but high friction |
|
||||
|
||||
### By Traffic Source
|
||||
|
||||
| Source | Expected Conversion | Why |
|
||||
|--------|-------------------|-----|
|
||||
| Blog content upgrade | 3-8% of post readers | Contextually relevant |
|
||||
| Dedicated landing page (organic) | 20-40% | High intent |
|
||||
| Dedicated landing page (paid) | 10-25% | Cold traffic |
|
||||
| Exit-intent popup | 2-5% of visitors | Interruption-based |
|
||||
| Sidebar/banner CTA | 0.5-2% | Low engagement |
|
||||
| Social media link | 10-20% | Warm but browsing |
|
||||
|
||||
### By Industry (Landing Page)
|
||||
|
||||
| Industry | Average Conversion |
|
||||
|----------|-------------------|
|
||||
| SaaS/Tech | 15-25% |
|
||||
| Marketing/Agency | 20-35% |
|
||||
| Finance | 10-20% |
|
||||
| E-commerce | 10-20% |
|
||||
| Education | 20-35% |
|
||||
| Health/Wellness | 15-25% |
|
||||
|
||||
---
|
||||
|
||||
## Lead Quality Indicators
|
||||
|
||||
### Signals of High-Quality Leads
|
||||
- Open first 3 emails at 40%+ rate
|
||||
- Click through to content or product pages
|
||||
- Return to site within 30 days
|
||||
- Match ICP demographics (role, company size, industry)
|
||||
- Progress to trial, demo, or purchase within 90 days
|
||||
|
||||
### Signals of Low-Quality Leads
|
||||
- Unsubscribe within first 3 emails
|
||||
- Never open beyond delivery email
|
||||
- Use disposable email addresses
|
||||
- Don't match target customer profile
|
||||
- Downloaded for the content, no product interest
|
||||
|
||||
### Quality vs. Quantity by Format
|
||||
|
||||
| Format | Lead Volume | Lead Quality | Net Value |
|
||||
|--------|-------------|-------------|-----------|
|
||||
| Generic ebook | High | Low-Medium | Medium |
|
||||
| Specific template | Medium | High | High |
|
||||
| Industry report | Medium | Medium-High | High |
|
||||
| Quiz/assessment | High | Medium (segmentable) | High |
|
||||
| Webinar | Low-Medium | High | High |
|
||||
| Checklist | High | Low-Medium | Medium |
|
||||
| Free trial | Low | Very High | Very High |
|
||||
|
||||
---
|
||||
|
||||
## Cost Benchmarks
|
||||
|
||||
### Cost Per Lead by Channel
|
||||
|
||||
| Channel | Typical CPL | Notes |
|
||||
|---------|-------------|-------|
|
||||
| Organic search | $0-5 | Lowest, but slow to build |
|
||||
| Blog content upgrade | $0-2 | Nearly free if you have traffic |
|
||||
| Facebook/Instagram Ads | $3-15 | B2C lower, B2B higher |
|
||||
| Google Ads | $10-50 | High intent, higher cost |
|
||||
| LinkedIn Ads | $25-75 | B2B, expensive but qualified |
|
||||
| Partner co-promotion | $0-5 | Depends on relationship |
|
||||
|
||||
### Creation Cost by Format
|
||||
|
||||
| Format | DIY Cost | With Designer/Freelancer |
|
||||
|--------|----------|-------------------------|
|
||||
| Checklist | Free | $100-300 |
|
||||
| Cheat sheet | Free | $200-500 |
|
||||
| Template | Free | $100-500 |
|
||||
| Ebook (10-25 pages) | Free | $500-2,000 |
|
||||
| Quiz | $0-100/mo (tool) | $500-2,000 |
|
||||
| Webinar | Free (Zoom) | $500-1,500 (production) |
|
||||
| Mini-course (email) | Free | $500-1,500 (copywriting) |
|
||||
| Video course | $0-200 (gear) | $2,000-5,000 |
|
||||
|
||||
---
|
||||
|
||||
## Timeline Expectations
|
||||
|
||||
### Time to Create
|
||||
|
||||
| Format | Solo Creator | With Team |
|
||||
|--------|-------------|-----------|
|
||||
| Checklist | 1-2 hours | Same day |
|
||||
| Cheat sheet | 2-4 hours | Same day |
|
||||
| Template | 2-8 hours | 1-2 days |
|
||||
| Swipe file | 4-8 hours | 1-2 days |
|
||||
| Ebook | 1-3 weeks | 1-2 weeks |
|
||||
| Quiz | 1-2 weeks | 1 week |
|
||||
| Webinar prep | 1 week | 3-5 days |
|
||||
| Mini-course | 1-2 weeks | 1 week |
|
||||
|
||||
### Time to See Results
|
||||
|
||||
| Phase | Timeline |
|
||||
|-------|----------|
|
||||
| First leads | Immediately with existing traffic or paid |
|
||||
| Organic traffic growth | 2-6 months (SEO) |
|
||||
| Meaningful lead volume | 1-3 months |
|
||||
| Measurable impact on pipeline | 3-6 months |
|
||||
| Full ROI assessment | 6-12 months |
|
||||
|
||||
**Note**: These benchmarks are general guidelines. Your actual results depend on audience, niche, traffic volume, and offer quality. Start measuring from day one and build your own benchmarks.
|
||||
@@ -0,0 +1,196 @@
|
||||
# Lead Magnet Format Guide
|
||||
|
||||
Detailed creation guidance for each lead magnet format.
|
||||
|
||||
## Contents
|
||||
- Ebooks & Guides
|
||||
- Checklists
|
||||
- Cheat Sheets
|
||||
- Templates & Spreadsheets
|
||||
- Swipe Files
|
||||
- Mini-Courses
|
||||
- Quizzes & Assessments
|
||||
- Webinars & Workshops
|
||||
|
||||
---
|
||||
|
||||
## Ebooks & Guides
|
||||
|
||||
**Best for**: Building authority, deep education, awareness-stage leads
|
||||
|
||||
**Structure**:
|
||||
1. Title page with professional design
|
||||
2. Table of contents
|
||||
3. Introduction — frame the problem, set expectations
|
||||
4. 3-7 chapters — one key concept per chapter
|
||||
5. Summary — recap key takeaways
|
||||
6. CTA — next step toward your product
|
||||
|
||||
**Guidelines**:
|
||||
- Ideal length: 10-25 pages (shorter is fine if valuable)
|
||||
- Include visuals: charts, diagrams, screenshots
|
||||
- Use callout boxes for key stats or quotes
|
||||
- End each chapter with a quick takeaway
|
||||
- Don't pad — density beats length
|
||||
|
||||
**Tools**: Canva, Google Docs → PDF, Notion export, Designrr, Beacon.by
|
||||
|
||||
---
|
||||
|
||||
## Checklists
|
||||
|
||||
**Best for**: Process-oriented tasks, quick wins, implementation help
|
||||
|
||||
**Structure**:
|
||||
- Title: "[Number]-Point [Topic] Checklist"
|
||||
- Numbered or checkbox items
|
||||
- Group into logical sections if 10+ items
|
||||
- Brief explanation per item (1-2 sentences)
|
||||
|
||||
**Guidelines**:
|
||||
- Keep to 1-2 pages
|
||||
- Use actionable language ("Verify X", "Set up Y", "Remove Z")
|
||||
- Order by workflow sequence or priority
|
||||
- Make it printable — clean layout, generous spacing
|
||||
- Include a "done" checkbox for each item
|
||||
|
||||
**What works**: Step-by-step processes, audit criteria, launch checklists, setup guides
|
||||
|
||||
---
|
||||
|
||||
## Cheat Sheets
|
||||
|
||||
**Best for**: Reference material, shortcuts, quick-lookup information
|
||||
|
||||
**Structure**:
|
||||
- One page (two pages max)
|
||||
- Organized by category or workflow
|
||||
- Dense but scannable
|
||||
- Visual hierarchy with headers and grouping
|
||||
|
||||
**Guidelines**:
|
||||
- Optimize for quick reference, not reading
|
||||
- Use tables, grids, or columns
|
||||
- Include formulas, shortcuts, or code snippets
|
||||
- Design for printing or saving as desktop reference
|
||||
- Bold the most important items
|
||||
|
||||
**What works**: Keyboard shortcuts, formula references, terminology glossaries, decision matrices
|
||||
|
||||
---
|
||||
|
||||
## Templates & Spreadsheets
|
||||
|
||||
**Best for**: Repeatable processes, planning, tracking
|
||||
|
||||
### Spreadsheet Templates (Google Sheets / Excel)
|
||||
- Include a "How to Use" tab with instructions
|
||||
- Pre-fill with example data
|
||||
- Use data validation for dropdown fields
|
||||
- Add conditional formatting for visual cues
|
||||
- Lock formula cells, leave input cells editable
|
||||
- Include a "Make a Copy" link (Google Sheets)
|
||||
|
||||
### Notion Templates
|
||||
- Provide a duplicate link
|
||||
- Include a getting-started guide
|
||||
- Pre-populate with example content
|
||||
- Use Notion's database features (views, filters, relations)
|
||||
- Keep it simple — don't over-engineer
|
||||
|
||||
### Document Templates
|
||||
- Provide in multiple formats (Google Doc, Word, PDF)
|
||||
- Include placeholder text with [BRACKETS] for customization
|
||||
- Add inline instructions in a different color
|
||||
- Make it immediately usable with minimal editing
|
||||
|
||||
**Key principle**: Templates should be usable within 5 minutes of downloading.
|
||||
|
||||
---
|
||||
|
||||
## Swipe Files
|
||||
|
||||
**Best for**: Inspiration, examples, learning from others
|
||||
|
||||
**Structure**:
|
||||
- Curated collection of 15-50 examples
|
||||
- Organized by category, type, or use case
|
||||
- Each example includes:
|
||||
- The example itself (screenshot, text, link)
|
||||
- Why it works (2-3 bullet annotations)
|
||||
- How to adapt it (1-2 sentences)
|
||||
|
||||
**Guidelines**:
|
||||
- Quality over quantity — curate ruthlessly
|
||||
- Add your analysis, don't just collect
|
||||
- Organize for browsing (categories, tags)
|
||||
- Update periodically with fresh examples
|
||||
- Credit original sources
|
||||
|
||||
**What works**: Email subject lines, landing pages, ad copy, CTAs, onboarding flows, pricing pages
|
||||
|
||||
---
|
||||
|
||||
## Mini-Courses
|
||||
|
||||
### Email-Based Mini-Courses
|
||||
- 3-5 emails delivered over 5-7 days
|
||||
- One lesson per email, one concept per lesson
|
||||
- Each email: teach → example → exercise
|
||||
- Progressive difficulty (build on previous lessons)
|
||||
- Final email: summary + CTA for product or next step
|
||||
|
||||
### Video-Based Mini-Courses
|
||||
- 3-5 videos, 5-15 minutes each
|
||||
- Host on unlisted YouTube, Loom, or course platform
|
||||
- Deliver links via email drip
|
||||
- Include worksheets or exercises per lesson
|
||||
- More personal — builds stronger connection
|
||||
|
||||
**Cadence**: Every 1-2 days. Don't stretch too thin or compress too tight.
|
||||
|
||||
**Key principle**: Each lesson should deliver standalone value. If someone only watches lesson 2, they should still learn something useful.
|
||||
|
||||
---
|
||||
|
||||
## Quizzes & Assessments
|
||||
|
||||
**Best for**: Engagement, segmentation, personalized results
|
||||
|
||||
**Question Design**:
|
||||
- 5-10 questions (sweet spot: 7)
|
||||
- Multiple choice only — no open-ended
|
||||
- Questions should feel insightful, not obvious
|
||||
- Progress indicator ("Question 3 of 7")
|
||||
|
||||
**Result Segmentation**:
|
||||
- 3-5 result categories
|
||||
- Each result: name, description, personalized recommendations
|
||||
- Tailor follow-up emails by result type
|
||||
- Share-worthy result format ("I got: Growth Stage Marketer!")
|
||||
|
||||
**Implementation**: Gate results behind email capture. The quiz itself is ungated — the personalized results require an email.
|
||||
|
||||
**For building interactive quizzes**: See **free-tool-strategy** skill for technical implementation guidance.
|
||||
|
||||
---
|
||||
|
||||
## Webinars & Workshops
|
||||
|
||||
### Live Webinars
|
||||
- 30-45 minutes teaching + 15 minutes Q&A
|
||||
- Structure: Hook → Teach (3 key points) → Demo/example → CTA
|
||||
- Promote 1-2 weeks in advance
|
||||
- Send 3 reminder emails (confirmation, day before, 1 hour before)
|
||||
- Record for replay (extends value)
|
||||
|
||||
### Evergreen Webinars
|
||||
- Pre-recorded, available on demand
|
||||
- Same structure as live but tighter editing
|
||||
- Always-on lead generation
|
||||
- Gate with email registration
|
||||
- Automated follow-up sequence
|
||||
|
||||
**Follow-up**: Send replay link + summary + CTA within 24 hours. Continue with nurture sequence.
|
||||
|
||||
**Key principle**: Teach something genuinely useful. A webinar that's just a sales pitch will damage trust.
|
||||
+121
-519
@@ -1,14 +1,19 @@
|
||||
---
|
||||
name: marketing-ideas
|
||||
description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' or 'ideas to grow.' This skill provides 140 proven marketing approaches organized by category."
|
||||
description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (paid-ads, social-content, email-sequence, etc.)."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Marketing Ideas for SaaS
|
||||
|
||||
You are a marketing strategist with a library of 140 proven marketing ideas. Your goal is to help users find the right marketing strategies for their specific situation, stage, and resources.
|
||||
You are a marketing strategist with a library of 139 proven marketing ideas. Your goal is to help users find the right marketing strategies for their specific situation, stage, and resources.
|
||||
|
||||
## How to Use This Skill
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
When asked for marketing ideas:
|
||||
1. Ask about their product, audience, and current stage if not clear
|
||||
2. Suggest 3-5 most relevant ideas based on their context
|
||||
@@ -17,536 +22,125 @@ When asked for marketing ideas:
|
||||
|
||||
---
|
||||
|
||||
## The 140 Marketing Ideas
|
||||
|
||||
Organized by category for easy reference.
|
||||
|
||||
---
|
||||
|
||||
## Content & SEO
|
||||
|
||||
### 3. Easy Keyword Ranking
|
||||
Target low-competition keywords where you can rank quickly. Find terms competitors overlook—niche variations, long-tail queries, emerging topics. Build authority in micro-niches before expanding.
|
||||
|
||||
### 7. SEO Audit
|
||||
Conduct comprehensive technical SEO audits of your own site and share findings publicly. Document fixes and improvements to build authority while improving your rankings.
|
||||
|
||||
### 39. Glossary Marketing
|
||||
Create comprehensive glossaries defining industry terms. Each term becomes an SEO-optimized page targeting "what is X" searches, building topical authority while capturing top-of-funnel traffic.
|
||||
|
||||
### 40. Programmatic SEO
|
||||
Build template-driven pages at scale targeting keyword patterns. Location pages, comparison pages, integration pages—any pattern with search volume can become a scalable content engine.
|
||||
|
||||
### 41. Content Repurposing
|
||||
Transform one piece of content into multiple formats. Blog post becomes Twitter thread, YouTube video, podcast episode, infographic. Maximize ROI on content creation.
|
||||
|
||||
### 56. Proprietary Data Content
|
||||
Leverage unique data from your product to create original research and reports. Data competitors can't replicate creates linkable, quotable assets.
|
||||
|
||||
### 67. Internal Linking
|
||||
Strategic internal linking distributes authority and improves crawlability. Build topical clusters connecting related content to strengthen overall SEO performance.
|
||||
|
||||
### 73. Content Refreshing
|
||||
Regularly update existing content with fresh data, examples, and insights. Refreshed content often outperforms new content and protects existing rankings.
|
||||
|
||||
### 74. Knowledge Base SEO
|
||||
Optimize help documentation for search. Support articles targeting problem-solution queries capture users actively seeking solutions.
|
||||
|
||||
### 137. Parasite SEO
|
||||
Publish content on high-authority platforms (Medium, LinkedIn, Substack) that rank faster than your own domain. Funnel that traffic back to your product.
|
||||
|
||||
---
|
||||
|
||||
## Competitor & Comparison
|
||||
|
||||
### 2. Competitor Comparison Pages
|
||||
Create detailed comparison pages positioning your product against competitors. "[Your Product] vs [Competitor]" and "[Competitor] alternatives" pages capture high-intent searchers.
|
||||
|
||||
### 4. Marketing Jiu-Jitsu
|
||||
Turn competitor weaknesses into your strengths. When competitors raise prices, launch affordability campaigns. When they have outages, emphasize your reliability.
|
||||
|
||||
### 38. Competitive Ad Research
|
||||
Study competitor advertising through tools like SpyFu or Facebook Ad Library. Learn what messaging resonates, then improve on their approach.
|
||||
|
||||
---
|
||||
|
||||
## Free Tools & Engineering
|
||||
|
||||
### 5. Side Projects as Marketing
|
||||
Build small, useful tools related to your main product. Side projects attract users who may later convert, generate backlinks, and showcase your capabilities.
|
||||
|
||||
### 30. Engineering as Marketing
|
||||
Build free tools that solve real problems for your target audience. Calculators, analyzers, generators—useful utilities that naturally lead to your paid product.
|
||||
|
||||
### 31. Importers as Marketing
|
||||
Build import tools for competitor data. "Import from [Competitor]" reduces switching friction while capturing users actively looking to leave.
|
||||
|
||||
### 92. Quiz Marketing
|
||||
Create interactive quizzes that engage users while qualifying leads. Personality quizzes, assessments, and diagnostic tools generate shares and capture emails.
|
||||
|
||||
### 93. Calculator Marketing
|
||||
Build calculators solving real problems—ROI calculators, pricing estimators, savings tools. Calculators attract links, rank well, and demonstrate value.
|
||||
|
||||
### 94. Chrome Extensions
|
||||
Create browser extensions providing standalone value. Chrome Web Store becomes another distribution channel while keeping your brand in daily view.
|
||||
|
||||
### 110. Microsites
|
||||
Build focused microsites for specific campaigns, products, or audiences. Dedicated domains can rank faster and allow bolder positioning.
|
||||
|
||||
### 117. Scanners
|
||||
Build free scanning tools that audit or analyze something for users. Website scanners, security checkers, performance analyzers—provide value while showcasing expertise.
|
||||
|
||||
### 122. Public APIs
|
||||
Open APIs enable developers to build on your platform, creating an ecosystem that attracts users and increases switching costs.
|
||||
|
||||
---
|
||||
|
||||
## Paid Advertising
|
||||
|
||||
### 18. Podcast Advertising
|
||||
Sponsor relevant podcasts to reach engaged audiences. Host-read ads perform especially well due to built-in trust.
|
||||
|
||||
### 48. Pre-targeting Ads
|
||||
Show awareness ads before launching direct response campaigns. Warm audiences convert better than cold ones.
|
||||
|
||||
### 55. Facebook Ads
|
||||
Meta's detailed targeting reaches specific audiences. Test creative variations and leverage retargeting for users who've shown interest.
|
||||
|
||||
### 57. Instagram Ads
|
||||
Visual-first advertising for products with strong imagery. Stories and Reels ads capture attention in native formats.
|
||||
|
||||
### 60. Twitter Ads
|
||||
Reach engaged professionals discussing industry topics. Promoted tweets and follower campaigns build visibility.
|
||||
|
||||
### 62. LinkedIn Ads
|
||||
Target by job title, company size, and industry. Premium CPMs justified by B2B purchase intent.
|
||||
|
||||
### 64. Reddit Ads
|
||||
Reach passionate communities with authentic messaging. Reddit users detect inauthentic ads quickly—transparency wins.
|
||||
|
||||
### 66. Quora Ads
|
||||
Target users actively asking questions your product answers. Intent-rich environment for educational ads.
|
||||
|
||||
### 68. Google Ads
|
||||
Capture high-intent search queries. Brand terms protect your name; competitor terms capture switchers; category terms reach researchers.
|
||||
|
||||
### 70. YouTube Ads
|
||||
Video ads with detailed targeting. Pre-roll and discovery ads reach users consuming related content.
|
||||
|
||||
### 72. Cross-Platform Retargeting
|
||||
Follow users across platforms with consistent messaging. Retargeting converts window shoppers into buyers.
|
||||
|
||||
### 129. Click-to-Messenger Ads
|
||||
Ads that open direct conversations rather than landing pages. Higher engagement through immediate dialogue.
|
||||
|
||||
---
|
||||
|
||||
## Social Media & Community
|
||||
|
||||
### 42. Community Marketing
|
||||
Build and nurture communities around your product or industry. Slack groups, Discord servers, Facebook groups, or forums create loyal advocates.
|
||||
|
||||
### 43. Quora Marketing
|
||||
Answer relevant questions with genuine expertise. Include product mentions where naturally appropriate.
|
||||
|
||||
### 76. Reddit Keyword Research
|
||||
Mine Reddit for real language your audience uses. Discover pain points, objections, and desires expressed naturally.
|
||||
|
||||
### 82. Reddit Marketing
|
||||
Participate authentically in relevant subreddits. Provide value first; promotional content fails without established credibility.
|
||||
|
||||
### 105. LinkedIn Audience
|
||||
Build personal brands on LinkedIn for B2B reach. Thought leadership content builds authority and drives inbound interest.
|
||||
|
||||
### 106. Instagram Audience
|
||||
Visual storytelling for products with strong aesthetics. Behind-the-scenes, user stories, and product showcases build following.
|
||||
|
||||
### 107. X Audience
|
||||
Build presence on X/Twitter through consistent value. Threads, insights, and engagement grow followings that convert.
|
||||
|
||||
### 130. Short Form Video
|
||||
TikTok, Reels, and Shorts reach new audiences with snackable content. Educational and entertaining short videos spread organically.
|
||||
|
||||
### 138. Engagement Pods
|
||||
Coordinate with peers to boost each other's content engagement. Early engagement signals help content reach wider audiences.
|
||||
|
||||
### 139. Comment Marketing
|
||||
Thoughtful comments on relevant content build visibility. Add value to discussions where your target audience pays attention.
|
||||
|
||||
---
|
||||
|
||||
## Email Marketing
|
||||
|
||||
### 17. Mistake Email Marketing
|
||||
Send "oops" emails when something genuinely goes wrong. Authenticity and transparency often generate higher engagement than polished campaigns.
|
||||
|
||||
### 25. Reactivation Emails
|
||||
Win back churned or inactive users with targeted campaigns. Remind them of value, share what's new, offer incentives.
|
||||
|
||||
### 28. Founder Welcome Email
|
||||
Personal welcome emails from founders create connection. Share your story, ask about their goals, start relationships.
|
||||
|
||||
### 36. Dynamic Email Capture
|
||||
Smart email capture that adapts to user behavior. Exit intent, scroll depth, time on page—trigger popups at the right moment.
|
||||
|
||||
### 79. Monthly Newsletters
|
||||
Consistent newsletters keep your brand top-of-mind. Curate industry news, share insights, highlight product updates.
|
||||
|
||||
### 80. Inbox Placement
|
||||
Technical email optimization for deliverability. Authentication, list hygiene, and engagement signals determine whether emails arrive.
|
||||
|
||||
### 113. Onboarding Emails
|
||||
Guide new users to activation with targeted email sequences. Behavior-triggered emails outperform time-based schedules.
|
||||
|
||||
### 115. Win-back Emails
|
||||
Re-engage churned users with compelling reasons to return. New features, improvements, or offers reignite interest.
|
||||
|
||||
### 116. Trial Reactivation
|
||||
Expired trials aren't lost causes. Targeted campaigns highlighting new value can recover abandoned trials.
|
||||
|
||||
---
|
||||
|
||||
## Partnerships & Programs
|
||||
|
||||
### 9. Affiliate Discovery Through Backlinks
|
||||
Find potential affiliates by analyzing who links to competitors. Sites already promoting similar products may welcome affiliate relationships.
|
||||
|
||||
### 27. Influencer Whitelisting
|
||||
Run ads through influencer accounts for authentic reach. Whitelisting combines influencer credibility with paid targeting.
|
||||
|
||||
### 33. Reseller Programs
|
||||
Enable agencies and service providers to resell your product. White-label options create invested distribution partners.
|
||||
|
||||
### 37. Expert Networks
|
||||
Build networks of certified experts who implement your product. Experts extend your reach while ensuring quality implementations.
|
||||
|
||||
### 50. Newsletter Swaps
|
||||
Exchange promotional mentions with complementary newsletters. Access each other's audiences without advertising costs.
|
||||
|
||||
### 51. Article Quotes
|
||||
Contribute expert quotes to journalists and publications. Tools like HARO connect experts with writers seeking sources.
|
||||
|
||||
### 77. Pixel Sharing
|
||||
Partner with complementary companies to share remarketing audiences. Expand reach through strategic data partnerships.
|
||||
|
||||
### 78. Shared Slack Channels
|
||||
Create shared channels with partners and customers. Direct communication lines strengthen relationships.
|
||||
|
||||
### 97. Affiliate Program
|
||||
Structured commission programs for referrers. Affiliates become motivated salespeople earning from successful referrals.
|
||||
|
||||
### 98. Integration Marketing
|
||||
Joint marketing with integration partners. Combined audiences and shared promotion amplify reach for both products.
|
||||
|
||||
### 99. Community Sponsorship
|
||||
Sponsor relevant communities, newsletters, or publications. Aligned sponsorships build brand awareness with target audiences.
|
||||
|
||||
---
|
||||
|
||||
## Events & Speaking
|
||||
|
||||
### 15. Live Webinars
|
||||
Educational webinars demonstrate expertise while generating leads. Interactive formats create engagement and urgency.
|
||||
|
||||
### 53. Virtual Summits
|
||||
Multi-speaker online events attract audiences through varied perspectives. Summit speakers promote to their audiences, amplifying reach.
|
||||
|
||||
### 87. Roadshows
|
||||
Take your product on the road to meet customers directly. Regional events create personal connections at scale.
|
||||
|
||||
### 90. Local Meetups
|
||||
Host or attend local meetups in key markets. In-person connections create stronger relationships than digital alone.
|
||||
|
||||
### 91. Meetup Sponsorship
|
||||
Sponsor relevant meetups to reach engaged local audiences. Food, venue, or swag sponsorships generate goodwill.
|
||||
|
||||
### 103. Conference Speaking
|
||||
Speak at industry conferences to reach engaged audiences. Presentations showcase expertise while generating leads.
|
||||
|
||||
### 126. Conferences
|
||||
Host your own conference to become the center of your industry. User conferences strengthen communities and generate content.
|
||||
|
||||
### 132. Conference Sponsorship
|
||||
Sponsor relevant conferences for brand visibility. Booth presence, speaking slots, and attendee lists justify investment.
|
||||
|
||||
---
|
||||
|
||||
## PR & Media
|
||||
|
||||
### 8. Media Acquisitions as Marketing
|
||||
Acquire newsletters, podcasts, or publications in your space. Owned media provides direct access to engaged audiences.
|
||||
|
||||
### 52. Press Coverage
|
||||
Pitch newsworthy stories to relevant publications. Launches, funding, data, and trends create press opportunities.
|
||||
|
||||
### 84. Fundraising PR
|
||||
Leverage funding announcements for press coverage. Rounds signal validation and create natural news hooks.
|
||||
|
||||
### 118. Documentaries
|
||||
Create documentary content exploring your industry or customers. Long-form storytelling builds deep connection and differentiation.
|
||||
|
||||
---
|
||||
|
||||
## Launches & Promotions
|
||||
|
||||
### 21. Black Friday Promotions
|
||||
Annual deals create urgency and acquisition spikes. Promotional periods capture deal-seekers who become long-term customers.
|
||||
|
||||
### 22. Product Hunt Launch
|
||||
Structured Product Hunt launches reach early adopters. Preparation, timing, and community engagement drive successful launches.
|
||||
|
||||
### 23. Early-Access Referrals
|
||||
Reward referrals with earlier access during launches. Waitlist referral programs create viral anticipation.
|
||||
|
||||
### 44. New Year Promotions
|
||||
New Year brings fresh budgets and goal-setting energy. Promotional timing aligned with renewal mindsets increases conversion.
|
||||
|
||||
### 54. Early Access Pricing
|
||||
Launch with discounted early access tiers. Early supporters get deals while you build testimonials and feedback.
|
||||
|
||||
### 58. Product Hunt Alternatives
|
||||
Launch on alternatives to Product Hunt—BetaList, Launching Next, AlternativeTo. Multiple launch platforms expand reach.
|
||||
|
||||
### 59. Twitter Giveaways
|
||||
Engagement-boosting giveaways that require follows, retweets, or tags. Giveaways grow following while generating buzz.
|
||||
|
||||
### 109. Giveaways
|
||||
Strategic giveaways attract attention and capture leads. Product giveaways, partner prizes, or experience rewards create engagement.
|
||||
|
||||
### 119. Vacation Giveaways
|
||||
Grand prize giveaways generate massive engagement. Dream vacation packages motivate sharing and participation.
|
||||
|
||||
### 140. Lifetime Deals
|
||||
One-time payment deals generate cash and users. Lifetime deal platforms reach deal-hunting audiences willing to pay upfront.
|
||||
|
||||
---
|
||||
|
||||
## Product-Led Growth
|
||||
|
||||
### 16. Powered By Marketing
|
||||
"Powered by [Your Product]" badges on customer output create free impressions. Every customer becomes a marketing channel.
|
||||
|
||||
### 19. Free Migrations
|
||||
Offer free migration services from competitors. Reduce switching friction while capturing users ready to leave.
|
||||
|
||||
### 20. Contract Buyouts
|
||||
Pay to exit competitor contracts. Dramatic commitment removes the final barrier for locked-in prospects.
|
||||
|
||||
### 32. One-Click Registration
|
||||
Minimize signup friction with one-click OAuth options. Pre-filled forms and instant access increase conversion.
|
||||
|
||||
### 69. In-App Upsells
|
||||
Strategic upgrade prompts within the product experience. Contextual upsells at usage limits or feature attempts convert best.
|
||||
|
||||
### 71. Newsletter Referrals
|
||||
Built-in referral programs for newsletters and content. Easy sharing mechanisms turn subscribers into promoters.
|
||||
|
||||
### 75. Viral Loops
|
||||
Product mechanics that naturally encourage sharing. Collaboration features, public outputs, or referral incentives create organic growth.
|
||||
|
||||
### 114. Offboarding Flows
|
||||
Optimize cancellation flows to retain or learn. Exit surveys, save offers, and pause options reduce churn.
|
||||
|
||||
### 124. Concierge Setup
|
||||
White-glove onboarding for high-value accounts. Personal setup assistance increases activation and retention.
|
||||
|
||||
### 127. Onboarding Optimization
|
||||
Continuous improvement of the new user experience. Faster time-to-value increases conversion and retention.
|
||||
|
||||
---
|
||||
|
||||
## Content Formats
|
||||
|
||||
### 1. Playlists as Marketing
|
||||
Create Spotify playlists for your audience—productivity playlists, work music, industry-themed collections. Daily listening touchpoints build brand affinity.
|
||||
|
||||
### 46. Template Marketing
|
||||
Offer free templates users can immediately use. Templates in your product create habit and dependency while showcasing capabilities.
|
||||
|
||||
### 49. Graphic Novel Marketing
|
||||
Transform complex stories into visual narratives. Graphic novels stand out and make abstract concepts tangible.
|
||||
|
||||
### 65. Promo Videos
|
||||
High-quality promotional videos showcase your product professionally. Invest in production value for shareable, memorable content.
|
||||
|
||||
### 81. Industry Interviews
|
||||
Interview customers, experts, and thought leaders. Interview content builds relationships while creating valuable assets.
|
||||
|
||||
### 89. Social Screenshots
|
||||
Design shareable screenshot templates for social proof. Make it easy for customers to share wins and testimonials.
|
||||
|
||||
### 101. Online Courses
|
||||
Educational courses establish authority while generating leads. Free courses attract learners; paid courses create revenue.
|
||||
|
||||
### 102. Book Marketing
|
||||
Author a book establishing expertise in your domain. Books create credibility, speaking opportunities, and media coverage.
|
||||
|
||||
### 111. Annual Reports
|
||||
Publish annual reports showcasing industry data and trends. Original research becomes a linkable, quotable reference.
|
||||
|
||||
### 120. End of Year Wraps
|
||||
Personalized year-end summaries users want to share. "Spotify Wrapped" style reports turn data into social content.
|
||||
|
||||
### 121. Podcasts
|
||||
Launch a podcast reaching audiences during commutes and workouts. Regular audio content builds intimate audience relationships.
|
||||
|
||||
### 63. Changelogs
|
||||
Public changelogs showcase product momentum. Regular updates demonstrate active development and responsiveness.
|
||||
|
||||
### 112. Public Demos
|
||||
Live product demonstrations showing real usage. Transparent demos build trust and answer questions in real-time.
|
||||
|
||||
---
|
||||
|
||||
## Unconventional & Creative
|
||||
|
||||
### 6. Awards as Marketing
|
||||
Create industry awards positioning your brand as tastemaker. Award programs attract applications, sponsors, and press coverage.
|
||||
|
||||
### 10. Challenges as Marketing
|
||||
Launch viral challenges that spread organically. Creative challenges generate user content and social sharing.
|
||||
|
||||
### 11. Reality TV Marketing
|
||||
Create reality-show style content following real customers. Documentary competition formats create engaging narratives.
|
||||
|
||||
### 12. Controversy as Marketing
|
||||
Strategic positioning against industry norms. Contrarian takes generate attention and discussion.
|
||||
|
||||
### 13. Moneyball Marketing
|
||||
Data-driven marketing finding undervalued channels and tactics. Analytics identify opportunities competitors overlook.
|
||||
|
||||
### 14. Curation as Marketing
|
||||
Curate valuable resources for your audience. Directories, lists, and collections provide value while building authority.
|
||||
|
||||
### 29. Grants as Marketing
|
||||
Offer grants to customers or community members. Grant programs generate applications, PR, and goodwill.
|
||||
|
||||
### 34. Product Competitions
|
||||
Sponsor competitions using your product. Hackathons, design contests, and challenges showcase capabilities while engaging users.
|
||||
|
||||
### 35. Cameo Marketing
|
||||
Use Cameo celebrities for personalized marketing messages. Unexpected celebrity endorsements generate buzz and shares.
|
||||
|
||||
### 83. OOH Advertising
|
||||
Out-of-home advertising—billboards, transit ads, and placements. Physical presence in key locations builds brand awareness.
|
||||
|
||||
### 125. Marketing Stunts
|
||||
Bold, attention-grabbing marketing moments. Well-executed stunts generate press coverage and social sharing.
|
||||
|
||||
### 128. Guerrilla Marketing
|
||||
Unconventional, low-cost marketing in unexpected places. Creative guerrilla tactics stand out from traditional advertising.
|
||||
|
||||
### 136. Humor Marketing
|
||||
Use humor to stand out and create memorability. Funny content gets shared and builds brand personality.
|
||||
|
||||
---
|
||||
|
||||
## Platforms & Marketplaces
|
||||
|
||||
### 24. Open Source as Marketing
|
||||
Open-source components or tools build developer goodwill. Open source creates community, contributions, and credibility.
|
||||
|
||||
### 61. App Store Optimization
|
||||
Optimize app store listings for discoverability. Keywords, screenshots, and reviews drive organic app installs.
|
||||
|
||||
### 86. App Marketplaces
|
||||
List in relevant app marketplaces and directories. Salesforce AppExchange, Shopify App Store, and similar platforms provide distribution.
|
||||
|
||||
### 95. YouTube Reviews
|
||||
Get YouTubers to review your product. Authentic reviews reach engaged audiences and create lasting content.
|
||||
|
||||
### 96. YouTube Channel
|
||||
Build a YouTube presence with tutorials, updates, and thought leadership. Video content compounds in value over time.
|
||||
|
||||
### 108. Source Platforms
|
||||
Submit to platforms that aggregate tools and products. G2, Capterra, GetApp, and similar directories drive discovery.
|
||||
|
||||
### 88. Review Sites
|
||||
Actively manage presence on review platforms. Reviews influence purchase decisions; actively request and respond to them.
|
||||
|
||||
### 100. Live Audio
|
||||
Host live audio discussions on Twitter Spaces, Clubhouse, or LinkedIn Audio. Real-time conversation creates intimate engagement.
|
||||
|
||||
---
|
||||
|
||||
## International & Localization
|
||||
|
||||
### 133. International Expansion
|
||||
Expand to new geographic markets. Localization, partnerships, and regional marketing unlock new growth.
|
||||
|
||||
### 134. Price Localization
|
||||
Adjust pricing for local purchasing power. Localized pricing increases conversion in price-sensitive markets.
|
||||
|
||||
---
|
||||
|
||||
## Developer & Technical
|
||||
|
||||
### 104. Investor Marketing
|
||||
Market to investors for downstream portfolio introductions. Investors recommend tools to their portfolio companies.
|
||||
|
||||
### 123. Certifications
|
||||
Create certification programs validating expertise. Certifications create invested advocates while generating training revenue.
|
||||
|
||||
### 131. Support as Marketing
|
||||
Turn support interactions into marketing opportunities. Exceptional support creates stories customers share.
|
||||
|
||||
### 135. Developer Relations
|
||||
Build relationships with developer communities. DevRel creates advocates who recommend your product to peers.
|
||||
|
||||
---
|
||||
|
||||
## Audience-Specific
|
||||
|
||||
### 26. Two-Sided Referrals
|
||||
Reward both referrer and referred in referral programs. Dual incentives motivate sharing while welcoming new users.
|
||||
|
||||
### 45. Podcast Tours
|
||||
Guest on multiple podcasts reaching your target audience. Podcast tours create compounding awareness across shows.
|
||||
|
||||
### 47. Customer Language
|
||||
Use the exact words your customers use. Mining reviews, support tickets, and interviews for language that resonates.
|
||||
## Ideas by Category (Quick Reference)
|
||||
|
||||
| Category | Ideas | Examples |
|
||||
|----------|-------|----------|
|
||||
| Content & SEO | 1-10 | Programmatic SEO, Glossary marketing, Content repurposing |
|
||||
| Competitor | 11-13 | Comparison pages, Marketing jiu-jitsu |
|
||||
| Free Tools | 14-22 | Calculators, Generators, Chrome extensions |
|
||||
| Paid Ads | 23-34 | LinkedIn, Google, Retargeting, Podcast ads |
|
||||
| Social & Community | 35-44 | LinkedIn audience, Reddit marketing, Short-form video |
|
||||
| Email | 45-53 | Founder emails, Onboarding sequences, Win-back |
|
||||
| Partnerships | 54-64 | Affiliate programs, Integration marketing, Newsletter swaps |
|
||||
| Events | 65-72 | Webinars, Conference speaking, Virtual summits |
|
||||
| PR & Media | 73-76 | Press coverage, Documentaries |
|
||||
| Launches | 77-86 | Product Hunt, Lifetime deals, Giveaways |
|
||||
| Product-Led | 87-96 | Viral loops, Powered-by marketing, Free migrations |
|
||||
| Content Formats | 97-109 | Podcasts, Courses, Annual reports, Year wraps |
|
||||
| Unconventional | 110-122 | Awards, Challenges, Guerrilla marketing |
|
||||
| Platforms | 123-130 | App marketplaces, Review sites, YouTube |
|
||||
| International | 131-132 | Expansion, Price localization |
|
||||
| Developer | 133-136 | DevRel, Certifications |
|
||||
| Audience-Specific | 137-139 | Referrals, Podcast tours, Customer language |
|
||||
|
||||
**For the complete list with descriptions**: See [references/ideas-by-category.md](references/ideas-by-category.md)
|
||||
|
||||
---
|
||||
|
||||
## Implementation Tips
|
||||
|
||||
When suggesting ideas, consider:
|
||||
### By Stage
|
||||
|
||||
**By Stage:**
|
||||
- Pre-launch: Waitlist referrals, early access, Product Hunt prep
|
||||
- Early stage: Content, SEO, community, founder-led sales
|
||||
- Growth stage: Paid acquisition, partnerships, events
|
||||
- Scale: Brand, international, acquisitions
|
||||
**Pre-launch:**
|
||||
- Waitlist referrals (#79)
|
||||
- Early access pricing (#81)
|
||||
- Product Hunt prep (#78)
|
||||
|
||||
**By Budget:**
|
||||
- Free: Content, SEO, community, social media
|
||||
- Low budget: Targeted ads, sponsorships, tools
|
||||
- Medium budget: Events, partnerships, PR
|
||||
- High budget: Acquisitions, conferences, brand campaigns
|
||||
**Early stage:**
|
||||
- Content & SEO (#1-10)
|
||||
- Community (#35)
|
||||
- Founder-led sales (#47)
|
||||
|
||||
**By Timeline:**
|
||||
- Quick wins: Ads, email, social posts
|
||||
- Medium-term: Content, SEO, community building
|
||||
- Long-term: Brand, thought leadership, platform effects
|
||||
**Growth stage:**
|
||||
- Paid acquisition (#23-34)
|
||||
- Partnerships (#54-64)
|
||||
- Events (#65-72)
|
||||
|
||||
**Scale:**
|
||||
- Brand campaigns
|
||||
- International (#131-132)
|
||||
- Media acquisitions (#73)
|
||||
|
||||
### By Budget
|
||||
|
||||
**Free:**
|
||||
- Content & SEO
|
||||
- Community building
|
||||
- Social media
|
||||
- Comment marketing
|
||||
|
||||
**Low budget:**
|
||||
- Targeted ads
|
||||
- Sponsorships
|
||||
- Free tools
|
||||
|
||||
**Medium budget:**
|
||||
- Events
|
||||
- Partnerships
|
||||
- PR
|
||||
|
||||
**High budget:**
|
||||
- Acquisitions
|
||||
- Conferences
|
||||
- Brand campaigns
|
||||
|
||||
### By Timeline
|
||||
|
||||
**Quick wins:**
|
||||
- Ads, email, social posts
|
||||
|
||||
**Medium-term:**
|
||||
- Content, SEO, community
|
||||
|
||||
**Long-term:**
|
||||
- Brand, thought leadership, platform effects
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Top Ideas by Use Case
|
||||
|
||||
If you need more context:
|
||||
1. What's your product and who's your target customer?
|
||||
2. What's your current stage and main growth goal?
|
||||
3. What's your marketing budget and team size?
|
||||
4. What have you already tried that worked or didn't?
|
||||
5. What are your competitors doing that you admire or want to counter?
|
||||
### Need Leads Fast
|
||||
- Google Ads (#31) - High-intent search
|
||||
- LinkedIn Ads (#28) - B2B targeting
|
||||
- Engineering as Marketing (#15) - Free tool lead gen
|
||||
|
||||
### Building Authority
|
||||
- Conference Speaking (#70)
|
||||
- Book Marketing (#104)
|
||||
- Podcasts (#107)
|
||||
|
||||
### Low Budget Growth
|
||||
- Easy Keyword Ranking (#1)
|
||||
- Reddit Marketing (#38)
|
||||
- Comment Marketing (#44)
|
||||
|
||||
### Product-Led Growth
|
||||
- Viral Loops (#93)
|
||||
- Powered By Marketing (#87)
|
||||
- In-App Upsells (#91)
|
||||
|
||||
### Enterprise Sales
|
||||
- Investor Marketing (#133)
|
||||
- Expert Networks (#57)
|
||||
- Conference Sponsorship (#72)
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When recommending ideas:
|
||||
When recommending ideas, provide for each:
|
||||
|
||||
**For each recommended idea:**
|
||||
- **Idea name**: One-line description
|
||||
- **Why it fits**: Connection to their situation
|
||||
- **How to start**: First 2-3 implementation steps
|
||||
@@ -555,11 +149,19 @@ When recommending ideas:
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What's your current stage and main growth goal?
|
||||
2. What's your marketing budget and team size?
|
||||
3. What have you already tried that worked or didn't?
|
||||
4. What competitor tactics do you admire?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **programmatic-seo**: For scaling SEO content (#40)
|
||||
- **competitor-alternatives**: For comparison pages (#2)
|
||||
- **programmatic-seo**: For scaling SEO content (#4)
|
||||
- **competitor-alternatives**: For comparison pages (#11)
|
||||
- **email-sequence**: For email marketing tactics
|
||||
- **free-tool-strategy**: For engineering as marketing (#30)
|
||||
- **page-cro**: For landing page optimization
|
||||
- **ab-test-setup**: For testing marketing experiments
|
||||
- **free-tool-strategy**: For engineering as marketing (#15)
|
||||
- **referral-program**: For viral growth (#93)
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"skill_name": "marketing-ideas",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "I need marketing ideas for my SaaS product. We're a bootstrapped team of 3, sell a $49/month analytics tool for e-commerce, and have about 200 customers. Budget is tight — maybe $500/month for marketing.",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should filter ideas by low budget and early-stage constraints. Should pull relevant ideas from the 139 marketing ideas organized by category. Should provide ideas appropriate for bootstrapped SaaS: content marketing, community building, SEO, partnerships, referral programs, social media, Product Hunt, and others that don't require large budgets. Output should follow the format: idea name, why it fits, how to start, expected outcome, resources needed. Should prioritize by likely impact given their stage.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Filters ideas by low budget constraint",
|
||||
"Provides ideas from the 139 marketing ideas catalog",
|
||||
"Ideas are appropriate for bootstrapped SaaS stage",
|
||||
"Output follows structured format per idea",
|
||||
"Includes why it fits, how to start, expected outcome",
|
||||
"Prioritizes by likely impact",
|
||||
"Includes resources needed per idea"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "What's the fastest way to get more leads? We sell enterprise security software and have a $10k/month marketing budget.",
|
||||
"expected_output": "Should apply the 'top ideas by use case' — specifically 'leads fast' recommendations. Should recommend paid channels (Google Ads, LinkedIn Ads for enterprise), outbound (cold email, LinkedIn outreach), and content-based lead magnets. Should filter for enterprise-appropriate tactics. Should provide the structured output with why each idea fits, how to start, expected timeline, and resources needed. Should note that 'fast leads' typically means paid or outbound channels.",
|
||||
"assertions": [
|
||||
"Applies 'leads fast' use case filter",
|
||||
"Recommends paid channels appropriate for enterprise",
|
||||
"Recommends outbound tactics",
|
||||
"Filters for enterprise-appropriate tactics",
|
||||
"Provides structured output per idea",
|
||||
"Notes that fast leads means paid or outbound",
|
||||
"Includes timeline expectations"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "how do we grow without spending money on ads? we're a PLG (product-led growth) company with a freemium model",
|
||||
"expected_output": "Should trigger on casual phrasing. Should apply the 'PLG' use case filter from top ideas. Should recommend PLG-specific tactics: product virality features, referral programs, community building, content marketing, SEO, free tools/calculators, open-source contributions, social proof loops. Should avoid ad-dependent ideas given the constraint. Should provide structured output with implementation guidance.",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Applies PLG use case filter",
|
||||
"Recommends PLG-specific tactics",
|
||||
"Avoids ad-dependent ideas",
|
||||
"Includes virality and referral tactics",
|
||||
"Provides structured output with implementation guidance"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "We want to build authority and thought leadership in the HR tech space. We're a newer company and nobody knows who we are yet.",
|
||||
"expected_output": "Should apply the 'authority building' use case filter. Should recommend thought leadership tactics: original research/surveys, guest posting, podcast appearances, speaking engagements, LinkedIn content, industry report publishing, expert roundups. Should note that authority building is a longer-term play. Should provide structured output with how to start each idea, expected outcomes, and timeline.",
|
||||
"assertions": [
|
||||
"Applies 'authority building' use case filter",
|
||||
"Recommends thought leadership tactics",
|
||||
"Includes original research and content",
|
||||
"Includes community and media appearances",
|
||||
"Notes authority building is longer-term",
|
||||
"Provides structured output with timelines"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "Give me 20 marketing ideas. We sell project management software.",
|
||||
"expected_output": "Should provide a curated list of ~20 ideas from the catalog. Should organize them by category or by effort/impact. Should provide brief implementation context for each. Should vary the ideas across categories (content, community, partnerships, product, paid, etc.) for a well-rounded set. Output should follow the structured format with at least idea name and brief description for each.",
|
||||
"assertions": [
|
||||
"Provides approximately 20 ideas",
|
||||
"Ideas span multiple categories",
|
||||
"Organizes by category or effort/impact",
|
||||
"Provides brief implementation context per idea",
|
||||
"Output follows structured format",
|
||||
"Ideas are relevant to project management software"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "We want to set up a referral program. How should we structure it?",
|
||||
"expected_output": "Should recognize this is specifically a referral program design request. Should defer to or cross-reference the referral-program skill, which provides detailed guidance on referral loop design, incentive structures, implementation, and optimization. May briefly mention referral programs as a marketing idea but should make clear that referral-program is the right skill for detailed program design.",
|
||||
"assertions": [
|
||||
"Recognizes this as a referral program design request",
|
||||
"References or defers to referral-program skill",
|
||||
"Does not attempt detailed referral program design",
|
||||
"May briefly mention as a marketing idea"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,366 @@
|
||||
# The 139 Marketing Ideas
|
||||
|
||||
Complete list of proven marketing approaches organized by category.
|
||||
|
||||
## Contents
|
||||
- Content & SEO (1-10)
|
||||
- Competitor & Comparison (11-13)
|
||||
- Free Tools & Engineering (14-22)
|
||||
- Paid Advertising (23-34)
|
||||
- Social Media & Community (35-44)
|
||||
- Email Marketing (45-53)
|
||||
- Partnerships & Programs (54-64)
|
||||
- Events & Speaking (65-72)
|
||||
- PR & Media (73-76)
|
||||
- Launches & Promotions (77-86)
|
||||
- Product-Led Growth (87-96)
|
||||
- Content Formats (97-109)
|
||||
- Unconventional & Creative (110-122)
|
||||
- Platforms & Marketplaces (123-130)
|
||||
- International & Localization (131-132)
|
||||
- Developer & Technical (133-136)
|
||||
- Audience-Specific (137-139)
|
||||
|
||||
## Content & SEO (1-10)
|
||||
|
||||
1. **Easy Keyword Ranking** - Target low-competition keywords where you can rank quickly. Find terms competitors overlook—niche variations, long-tail queries, emerging topics.
|
||||
|
||||
2. **SEO Audit** - Conduct comprehensive technical SEO audits of your own site and share findings publicly. Document fixes and improvements to build authority.
|
||||
|
||||
3. **Glossary Marketing** - Create comprehensive glossaries defining industry terms. Each term becomes an SEO-optimized page targeting "what is X" searches.
|
||||
|
||||
4. **Programmatic SEO** - Build template-driven pages at scale targeting keyword patterns. Location pages, comparison pages, integration pages—any pattern with search volume.
|
||||
|
||||
5. **Content Repurposing** - Transform one piece of content into multiple formats. Blog post becomes Twitter thread, YouTube video, podcast episode, infographic.
|
||||
|
||||
6. **Proprietary Data Content** - Leverage unique data from your product to create original research and reports. Data competitors can't replicate creates linkable assets.
|
||||
|
||||
7. **Internal Linking** - Strategic internal linking distributes authority and improves crawlability. Build topical clusters connecting related content.
|
||||
|
||||
8. **Content Refreshing** - Regularly update existing content with fresh data, examples, and insights. Refreshed content often outperforms new content.
|
||||
|
||||
9. **Knowledge Base SEO** - Optimize help documentation for search. Support articles targeting problem-solution queries capture users actively seeking solutions.
|
||||
|
||||
10. **Parasite SEO** - Publish content on high-authority platforms (Medium, LinkedIn, Substack) that rank faster than your own domain.
|
||||
|
||||
---
|
||||
|
||||
## Competitor & Comparison (11-13)
|
||||
|
||||
11. **Competitor Comparison Pages** - Create detailed comparison pages positioning your product against competitors. "[Your Product] vs [Competitor]" pages capture high-intent searchers.
|
||||
|
||||
12. **Marketing Jiu-Jitsu** - Turn competitor weaknesses into your strengths. When competitors raise prices, launch affordability campaigns.
|
||||
|
||||
13. **Competitive Ad Research** - Study competitor advertising through tools like SpyFu or Facebook Ad Library. Learn what messaging resonates.
|
||||
|
||||
---
|
||||
|
||||
## Free Tools & Engineering (14-22)
|
||||
|
||||
14. **Side Projects as Marketing** - Build small, useful tools related to your main product. Side projects attract users who may later convert.
|
||||
|
||||
15. **Engineering as Marketing** - Build free tools that solve real problems. Calculators, analyzers, generators—useful utilities that naturally lead to your paid product.
|
||||
|
||||
16. **Importers as Marketing** - Build import tools for competitor data. "Import from [Competitor]" reduces switching friction.
|
||||
|
||||
17. **Quiz Marketing** - Create interactive quizzes that engage users while qualifying leads. Personality quizzes, assessments, and diagnostic tools generate shares.
|
||||
|
||||
18. **Calculator Marketing** - Build calculators solving real problems—ROI calculators, pricing estimators, savings tools. Calculators attract links and rank well.
|
||||
|
||||
19. **Chrome Extensions** - Create browser extensions providing standalone value. Chrome Web Store becomes another distribution channel.
|
||||
|
||||
20. **Microsites** - Build focused microsites for specific campaigns, products, or audiences. Dedicated domains can rank faster.
|
||||
|
||||
21. **Scanners** - Build free scanning tools that audit or analyze something. Website scanners, security checkers, performance analyzers.
|
||||
|
||||
22. **Public APIs** - Open APIs enable developers to build on your platform, creating an ecosystem.
|
||||
|
||||
---
|
||||
|
||||
## Paid Advertising (23-34)
|
||||
|
||||
23. **Podcast Advertising** - Sponsor relevant podcasts to reach engaged audiences. Host-read ads perform especially well.
|
||||
|
||||
24. **Pre-targeting Ads** - Show awareness ads before launching direct response campaigns. Warm audiences convert better.
|
||||
|
||||
25. **Facebook Ads** - Meta's detailed targeting reaches specific audiences. Test creative variations and leverage retargeting.
|
||||
|
||||
26. **Instagram Ads** - Visual-first advertising for products with strong imagery. Stories and Reels ads capture attention.
|
||||
|
||||
27. **Twitter Ads** - Reach engaged professionals discussing industry topics. Promoted tweets and follower campaigns.
|
||||
|
||||
28. **LinkedIn Ads** - Target by job title, company size, and industry. Premium CPMs justified by B2B purchase intent.
|
||||
|
||||
29. **Reddit Ads** - Reach passionate communities with authentic messaging. Transparency wins on Reddit.
|
||||
|
||||
30. **Quora Ads** - Target users actively asking questions your product answers. Intent-rich environment.
|
||||
|
||||
31. **Google Ads** - Capture high-intent search queries. Brand terms, competitor terms, and category terms.
|
||||
|
||||
32. **YouTube Ads** - Video ads with detailed targeting. Pre-roll and discovery ads reach users consuming related content.
|
||||
|
||||
33. **Cross-Platform Retargeting** - Follow users across platforms with consistent messaging.
|
||||
|
||||
34. **Click-to-Messenger Ads** - Ads that open direct conversations rather than landing pages.
|
||||
|
||||
---
|
||||
|
||||
## Social Media & Community (35-44)
|
||||
|
||||
35. **Community Marketing** - Build and nurture communities around your product. Slack groups, Discord servers, Facebook groups.
|
||||
|
||||
36. **Quora Marketing** - Answer relevant questions with genuine expertise. Include product mentions where naturally appropriate.
|
||||
|
||||
37. **Reddit Keyword Research** - Mine Reddit for real language your audience uses. Discover pain points and desires.
|
||||
|
||||
38. **Reddit Marketing** - Participate authentically in relevant subreddits. Provide value first.
|
||||
|
||||
39. **LinkedIn Audience** - Build personal brands on LinkedIn for B2B reach. Thought leadership builds authority.
|
||||
|
||||
40. **Instagram Audience** - Visual storytelling for products with strong aesthetics. Behind-the-scenes and user stories.
|
||||
|
||||
41. **X Audience** - Build presence on X/Twitter through consistent value. Threads and insights grow followings.
|
||||
|
||||
42. **Short Form Video** - TikTok, Reels, and Shorts reach new audiences with snackable content.
|
||||
|
||||
43. **Engagement Pods** - Coordinate with peers to boost each other's content engagement.
|
||||
|
||||
44. **Comment Marketing** - Thoughtful comments on relevant content build visibility.
|
||||
|
||||
---
|
||||
|
||||
## Email Marketing (45-53)
|
||||
|
||||
45. **Mistake Email Marketing** - Send "oops" emails when something genuinely goes wrong. Authenticity generates engagement.
|
||||
|
||||
46. **Reactivation Emails** - Win back churned or inactive users with targeted campaigns.
|
||||
|
||||
47. **Founder Welcome Email** - Personal welcome emails from founders create connection.
|
||||
|
||||
48. **Dynamic Email Capture** - Smart email capture that adapts to user behavior. Exit intent, scroll depth triggers.
|
||||
|
||||
49. **Monthly Newsletters** - Consistent newsletters keep your brand top-of-mind.
|
||||
|
||||
50. **Inbox Placement** - Technical email optimization for deliverability. Authentication and list hygiene.
|
||||
|
||||
51. **Onboarding Emails** - Guide new users to activation with targeted sequences.
|
||||
|
||||
52. **Win-back Emails** - Re-engage churned users with compelling reasons to return.
|
||||
|
||||
53. **Trial Reactivation** - Expired trials aren't lost causes. Targeted campaigns can recover them.
|
||||
|
||||
---
|
||||
|
||||
## Partnerships & Programs (54-64)
|
||||
|
||||
54. **Affiliate Discovery Through Backlinks** - Find potential affiliates by analyzing who links to competitors.
|
||||
|
||||
55. **Influencer Whitelisting** - Run ads through influencer accounts for authentic reach.
|
||||
|
||||
56. **Reseller Programs** - Enable agencies to resell your product. White-label options create distribution partners.
|
||||
|
||||
57. **Expert Networks** - Build networks of certified experts who implement your product.
|
||||
|
||||
58. **Newsletter Swaps** - Exchange promotional mentions with complementary newsletters.
|
||||
|
||||
59. **Article Quotes** - Contribute expert quotes to journalists. HARO connects experts with writers.
|
||||
|
||||
60. **Pixel Sharing** - Partner with complementary companies to share remarketing audiences.
|
||||
|
||||
61. **Shared Slack Channels** - Create shared channels with partners and customers.
|
||||
|
||||
62. **Affiliate Program** - Structured commission programs for referrers.
|
||||
|
||||
63. **Integration Marketing** - Joint marketing with integration partners.
|
||||
|
||||
64. **Community Sponsorship** - Sponsor relevant communities, newsletters, or publications.
|
||||
|
||||
---
|
||||
|
||||
## Events & Speaking (65-72)
|
||||
|
||||
65. **Live Webinars** - Educational webinars demonstrate expertise while generating leads.
|
||||
|
||||
66. **Virtual Summits** - Multi-speaker online events attract audiences through varied perspectives.
|
||||
|
||||
67. **Roadshows** - Take your product on the road to meet customers directly.
|
||||
|
||||
68. **Local Meetups** - Host or attend local meetups in key markets.
|
||||
|
||||
69. **Meetup Sponsorship** - Sponsor relevant meetups to reach engaged local audiences.
|
||||
|
||||
70. **Conference Speaking** - Speak at industry conferences to reach engaged audiences.
|
||||
|
||||
71. **Conferences** - Host your own conference to become the center of your industry.
|
||||
|
||||
72. **Conference Sponsorship** - Sponsor relevant conferences for brand visibility.
|
||||
|
||||
---
|
||||
|
||||
## PR & Media (73-76)
|
||||
|
||||
73. **Media Acquisitions as Marketing** - Acquire newsletters, podcasts, or publications in your space.
|
||||
|
||||
74. **Press Coverage** - Pitch newsworthy stories to relevant publications.
|
||||
|
||||
75. **Fundraising PR** - Leverage funding announcements for press coverage.
|
||||
|
||||
76. **Documentaries** - Create documentary content exploring your industry or customers.
|
||||
|
||||
---
|
||||
|
||||
## Launches & Promotions (77-86)
|
||||
|
||||
77. **Black Friday Promotions** - Annual deals create urgency and acquisition spikes.
|
||||
|
||||
78. **Product Hunt Launch** - Structured Product Hunt launches reach early adopters.
|
||||
|
||||
79. **Early-Access Referrals** - Reward referrals with earlier access during launches.
|
||||
|
||||
80. **New Year Promotions** - New Year brings fresh budgets and goal-setting energy.
|
||||
|
||||
81. **Early Access Pricing** - Launch with discounted early access tiers.
|
||||
|
||||
82. **Product Hunt Alternatives** - Launch on BetaList, Launching Next, AlternativeTo.
|
||||
|
||||
83. **Twitter Giveaways** - Engagement-boosting giveaways that require follows or retweets.
|
||||
|
||||
84. **Giveaways** - Strategic giveaways attract attention and capture leads.
|
||||
|
||||
85. **Vacation Giveaways** - Grand prize giveaways generate massive engagement.
|
||||
|
||||
86. **Lifetime Deals** - One-time payment deals generate cash and users.
|
||||
|
||||
---
|
||||
|
||||
## Product-Led Growth (87-96)
|
||||
|
||||
87. **Powered By Marketing** - "Powered by [Your Product]" badges create free impressions.
|
||||
|
||||
88. **Free Migrations** - Offer free migration services from competitors.
|
||||
|
||||
89. **Contract Buyouts** - Pay to exit competitor contracts.
|
||||
|
||||
90. **One-Click Registration** - Minimize signup friction with OAuth options.
|
||||
|
||||
91. **In-App Upsells** - Strategic upgrade prompts within the product experience.
|
||||
|
||||
92. **Newsletter Referrals** - Built-in referral programs for newsletters.
|
||||
|
||||
93. **Viral Loops** - Product mechanics that naturally encourage sharing.
|
||||
|
||||
94. **Offboarding Flows** - Optimize cancellation flows to retain or learn.
|
||||
|
||||
95. **Concierge Setup** - White-glove onboarding for high-value accounts.
|
||||
|
||||
96. **Onboarding Optimization** - Continuous improvement of new user experience.
|
||||
|
||||
---
|
||||
|
||||
## Content Formats (97-109)
|
||||
|
||||
97. **Playlists as Marketing** - Create Spotify playlists for your audience.
|
||||
|
||||
98. **Template Marketing** - Offer free templates users can immediately use.
|
||||
|
||||
99. **Graphic Novel Marketing** - Transform complex stories into visual narratives.
|
||||
|
||||
100. **Promo Videos** - High-quality promotional videos showcase your product.
|
||||
|
||||
101. **Industry Interviews** - Interview customers, experts, and thought leaders.
|
||||
|
||||
102. **Social Screenshots** - Design shareable screenshot templates for social proof.
|
||||
|
||||
103. **Online Courses** - Educational courses establish authority while generating leads.
|
||||
|
||||
104. **Book Marketing** - Author a book establishing expertise in your domain.
|
||||
|
||||
105. **Annual Reports** - Publish annual reports showcasing industry data and trends.
|
||||
|
||||
106. **End of Year Wraps** - Personalized year-end summaries users want to share.
|
||||
|
||||
107. **Podcasts** - Launch a podcast reaching audiences during commutes.
|
||||
|
||||
108. **Changelogs** - Public changelogs showcase product momentum.
|
||||
|
||||
109. **Public Demos** - Live product demonstrations showing real usage.
|
||||
|
||||
---
|
||||
|
||||
## Unconventional & Creative (110-122)
|
||||
|
||||
110. **Awards as Marketing** - Create industry awards positioning your brand as tastemaker.
|
||||
|
||||
111. **Challenges as Marketing** - Launch viral challenges that spread organically.
|
||||
|
||||
112. **Reality TV Marketing** - Create reality-show style content following real customers.
|
||||
|
||||
113. **Controversy as Marketing** - Strategic positioning against industry norms.
|
||||
|
||||
114. **Moneyball Marketing** - Data-driven marketing finding undervalued channels.
|
||||
|
||||
115. **Curation as Marketing** - Curate valuable resources for your audience.
|
||||
|
||||
116. **Grants as Marketing** - Offer grants to customers or community members.
|
||||
|
||||
117. **Product Competitions** - Sponsor competitions using your product.
|
||||
|
||||
118. **Cameo Marketing** - Use Cameo celebrities for personalized messages.
|
||||
|
||||
119. **OOH Advertising** - Out-of-home advertising—billboards, transit ads.
|
||||
|
||||
120. **Marketing Stunts** - Bold, attention-grabbing marketing moments.
|
||||
|
||||
121. **Guerrilla Marketing** - Unconventional, low-cost marketing in unexpected places.
|
||||
|
||||
122. **Humor Marketing** - Use humor to stand out and create memorability.
|
||||
|
||||
---
|
||||
|
||||
## Platforms & Marketplaces (123-130)
|
||||
|
||||
123. **Open Source as Marketing** - Open-source components or tools build developer goodwill.
|
||||
|
||||
124. **App Store Optimization** - Optimize app store listings for discoverability.
|
||||
|
||||
125. **App Marketplaces** - List in Salesforce AppExchange, Shopify App Store, etc.
|
||||
|
||||
126. **YouTube Reviews** - Get YouTubers to review your product.
|
||||
|
||||
127. **YouTube Channel** - Build a YouTube presence with tutorials and thought leadership.
|
||||
|
||||
128. **Source Platforms** - Submit to G2, Capterra, GetApp, and similar directories.
|
||||
|
||||
129. **Review Sites** - Actively manage presence on review platforms.
|
||||
|
||||
130. **Live Audio** - Host Twitter Spaces, Clubhouse, or LinkedIn Audio discussions.
|
||||
|
||||
---
|
||||
|
||||
## International & Localization (131-132)
|
||||
|
||||
131. **International Expansion** - Expand to new geographic markets with localization.
|
||||
|
||||
132. **Price Localization** - Adjust pricing for local purchasing power.
|
||||
|
||||
---
|
||||
|
||||
## Developer & Technical (133-136)
|
||||
|
||||
133. **Investor Marketing** - Market to investors for portfolio introductions.
|
||||
|
||||
134. **Certifications** - Create certification programs validating expertise.
|
||||
|
||||
135. **Support as Marketing** - Exceptional support creates stories customers share.
|
||||
|
||||
136. **Developer Relations** - Build relationships with developer communities.
|
||||
|
||||
---
|
||||
|
||||
## Audience-Specific (137-139)
|
||||
|
||||
137. **Two-Sided Referrals** - Reward both referrer and referred.
|
||||
|
||||
138. **Podcast Tours** - Guest on multiple podcasts reaching your target audience.
|
||||
|
||||
139. **Customer Language** - Use the exact words your customers use in marketing.
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
name: marketing-psychology
|
||||
description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' or 'consumer behavior.' This skill provides 70+ mental models organized for marketing application."
|
||||
description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' 'consumer behavior,' 'anchoring,' 'social proof,' 'scarcity,' 'loss aversion,' 'framing,' or 'nudge.' Use this whenever someone wants to understand or leverage how people think and make decisions in a marketing context."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Marketing Psychology & Mental Models
|
||||
@@ -9,6 +11,9 @@ You are an expert in applying psychological principles and mental models to mark
|
||||
|
||||
## How to Use This Skill
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before applying mental models. Use that context to tailor recommendations to the specific product and audience.
|
||||
|
||||
Mental models are thinking tools that help you make better decisions, understand customer behavior, and create more effective marketing. When helping users:
|
||||
|
||||
1. Identify which mental models apply to their situation
|
||||
@@ -431,9 +436,8 @@ When facing a marketing challenge, consider:
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask
|
||||
## Task-Specific Questions
|
||||
|
||||
If you need more context:
|
||||
1. What specific behavior are you trying to influence?
|
||||
2. What does your customer believe before encountering your marketing?
|
||||
3. Where in the journey (awareness → consideration → decision) is this?
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"skill_name": "marketing-psychology",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "How can I use psychology to increase conversions on our pricing page? We sell a B2B SaaS tool with three tiers ($29, $79, $199/month).",
|
||||
"expected_output": "Should check for product-marketing-context.md first. Should apply relevant pricing psychology models: anchoring (show the highest plan first or use a decoy), charm pricing (consider $29 vs $30), Rule of 100 (percentage vs dollar discounts), Good-Better-Best framing, loss aversion (show what they miss on lower tiers). Should also apply broader persuasion models: social proof near pricing, scarcity for limited-time offers, default effect (pre-select recommended plan). Should provide specific, actionable recommendations tied to their price points.",
|
||||
"assertions": [
|
||||
"Checks for product-marketing-context.md",
|
||||
"Applies pricing psychology models (anchoring, charm pricing, Rule of 100)",
|
||||
"Applies Good-Better-Best framing",
|
||||
"Applies loss aversion to tier differentiation",
|
||||
"Applies social proof near pricing",
|
||||
"Provides specific recommendations for their price points",
|
||||
"References specific mental models by name"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "Explain the scarcity principle and how to use it ethically in SaaS marketing without being manipulative.",
|
||||
"expected_output": "Should explain scarcity as a mental model (limited availability increases perceived value). Should provide legitimate SaaS applications: limited beta spots, early-bird pricing with real deadlines, limited-time feature access, cohort-based launches. Should distinguish ethical scarcity (real constraints) from manufactured urgency (fake countdown timers, artificial limits). Should provide specific examples and implementation guidance. Should reference related models (urgency, FOMO, loss aversion).",
|
||||
"assertions": [
|
||||
"Explains scarcity principle clearly",
|
||||
"Provides legitimate SaaS applications",
|
||||
"Distinguishes ethical from manipulative use",
|
||||
"Provides specific examples",
|
||||
"References related mental models",
|
||||
"Addresses ethical considerations directly"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "what psychological principles should I use to write better marketing copy?",
|
||||
"expected_output": "Should trigger on casual phrasing. Should recommend copy-relevant mental models from the skill's taxonomy: social proof, reciprocity, loss aversion, anchoring, scarcity, IKEA Effect, Endowment Effect, Commitment & Consistency. For each principle, should explain what it is and provide a specific copywriting application. Should reference the quick reference table by challenge. Should organize by where in the copy each principle applies (headlines, body, CTAs, testimonials).",
|
||||
"assertions": [
|
||||
"Triggers on casual phrasing",
|
||||
"Recommends copy-relevant mental models",
|
||||
"Explains each principle briefly",
|
||||
"Provides specific copywriting application per principle",
|
||||
"Organizes by where each applies in copy",
|
||||
"References multiple model categories"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "I'm designing an onboarding flow and want to use behavioral psychology to increase activation. What models should I apply?",
|
||||
"expected_output": "Should apply design and behavioral models from the skill's taxonomy: Goal-Gradient Effect (motivation increases near goal), Hick's Law (reduce choices), IKEA Effect (let users build something), Endowment Effect (let them experience ownership), Zeigarnik Effect (incomplete tasks drive completion), Commitment & Consistency (small asks first). Should explain how each applies to onboarding specifically. Should provide actionable recommendations for each model.",
|
||||
"assertions": [
|
||||
"Applies Goal-Gradient Effect",
|
||||
"Applies Hick's Law",
|
||||
"Applies IKEA Effect or Endowment Effect",
|
||||
"Applies Zeigarnik Effect or commitment principles",
|
||||
"Explains how each applies to onboarding",
|
||||
"Provides actionable recommendations per model"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "What's the psychology behind why free trials work better than freemium for some products?",
|
||||
"expected_output": "Should apply relevant mental models: loss aversion (trial users fear losing access), endowment effect (they feel ownership after using), sunk cost (time invested during trial), Zero-Price Effect (free removes psychological barrier to start), status quo bias (inertia to keep what they have). Should explain how these models interact in trial vs freemium contexts. Should note when each model works best (trial for products with high activation effort, freemium for products with network effects).",
|
||||
"assertions": [
|
||||
"Applies loss aversion to trial context",
|
||||
"Applies endowment effect",
|
||||
"Applies Zero-Price Effect",
|
||||
"Explains how models interact in trial vs freemium",
|
||||
"Notes when each approach works best",
|
||||
"Provides clear, educational explanation"
|
||||
],
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "Help me run an A/B test on which psychological principle works better for our CTA — scarcity vs social proof.",
|
||||
"expected_output": "Should recognize this is an A/B test setup task, not a psychology task. Should defer to or cross-reference the ab-test-setup skill for the experiment design. May provide psychological context on both principles to inform the hypothesis, but should make clear that ab-test-setup is the right skill for designing and running the experiment.",
|
||||
"assertions": [
|
||||
"Recognizes this as an A/B test setup task",
|
||||
"References or defers to ab-test-setup skill",
|
||||
"May provide psychological context for hypothesis",
|
||||
"Does not attempt full test design using psychology patterns"
|
||||
],
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user