Compare commits
70 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9698318a30 | |||
| c8e2d11556 | |||
| a45a348b08 | |||
| 5d48b351be | |||
| cafdd38e58 | |||
| c38fd75ec5 | |||
| dfe912224e | |||
| 2ea0f0c2c7 | |||
| 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 | |||
| 8657fd4f78 |
@@ -12,44 +12,48 @@
|
||||
"plugins": [
|
||||
{
|
||||
"name": "marketing-skills",
|
||||
"description": "33 marketing skills for technical marketers and founders: CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more",
|
||||
"source": "./",
|
||||
"description": "38 marketing skills for technical marketers and founders: ASO, CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more",
|
||||
"source": ".",
|
||||
"strict": false,
|
||||
"skills": [
|
||||
"./skills/ab-test-setup",
|
||||
"./skills/ad-creative",
|
||||
"./skills/ai-seo",
|
||||
"./skills/analytics-tracking",
|
||||
"./skills/churn-prevention",
|
||||
"./skills/cold-email",
|
||||
"./skills/competitor-alternatives",
|
||||
"./skills/content-strategy",
|
||||
"./skills/copy-editing",
|
||||
"./skills/copywriting",
|
||||
"./skills/customer-research",
|
||||
"./skills/email-sequence",
|
||||
"./skills/form-cro",
|
||||
"./skills/free-tool-strategy",
|
||||
"./skills/launch-strategy",
|
||||
"./skills/lead-magnets",
|
||||
"./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/product-marketing-context",
|
||||
"./skills/programmatic-seo",
|
||||
"./skills/referral-program",
|
||||
"./skills/revops",
|
||||
"./skills/sales-enablement",
|
||||
"./skills/schema-markup",
|
||||
"./skills/seo-audit",
|
||||
"./skills/signup-flow-cro",
|
||||
"./skills/site-architecture",
|
||||
"./skills/social-content"
|
||||
"skills/ab-test-setup",
|
||||
"skills/ad-creative",
|
||||
"skills/ai-seo",
|
||||
"skills/analytics-tracking",
|
||||
"skills/aso-audit",
|
||||
"skills/churn-prevention",
|
||||
"skills/cold-email",
|
||||
"skills/community-marketing",
|
||||
"skills/competitor-alternatives",
|
||||
"skills/competitor-profiling",
|
||||
"skills/content-strategy",
|
||||
"skills/copy-editing",
|
||||
"skills/copywriting",
|
||||
"skills/customer-research",
|
||||
"skills/directory-submissions",
|
||||
"skills/email-sequence",
|
||||
"skills/form-cro",
|
||||
"skills/free-tool-strategy",
|
||||
"skills/launch-strategy",
|
||||
"skills/lead-magnets",
|
||||
"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/product-marketing-context",
|
||||
"skills/programmatic-seo",
|
||||
"skills/referral-program",
|
||||
"skills/revops",
|
||||
"skills/sales-enablement",
|
||||
"skills/schema-markup",
|
||||
"skills/seo-audit",
|
||||
"skills/signup-flow-cro",
|
||||
"skills/site-architecture",
|
||||
"skills/social-content"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -54,17 +54,21 @@ See each skill's **Related Skills** section for the full dependency map.
|
||||
<!-- 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. Also use when the user mentions "A/B... |
|
||||
| [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. Also use when the user mentions 'edit this... |
|
||||
| [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 — including interview transcripts, surveys, support tickets, review mining, Reddit/G2/forum research, persona generation, and voice of customer (VOC)... |
|
||||
| [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... |
|
||||
|
||||
@@ -11,6 +11,7 @@ Current versions of all skills. Agents can compare against local versions to che
|
||||
| churn-prevention | 1.2.0 | 2026-03-14 |
|
||||
| cold-email | 1.2.0 | 2026-03-14 |
|
||||
| competitor-alternatives | 1.2.0 | 2026-03-14 |
|
||||
| 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 |
|
||||
|
||||
@@ -1,8 +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," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," or "how long should I run this test." Use this whenever someone is comparing two approaches and wants to measure which performs better. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.
|
||||
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.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# A/B Test Setup
|
||||
@@ -229,6 +229,93 @@ Document every test with:
|
||||
|
||||
---
|
||||
|
||||
## Growth Experimentation Program
|
||||
|
||||
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
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
### Hypothesis Generation
|
||||
|
||||
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?
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
### Test Design
|
||||
|
||||
+47
-2
@@ -2,7 +2,7 @@
|
||||
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.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# AI SEO
|
||||
@@ -226,6 +226,50 @@ AI systems don't just cite your website — they cite where you appear.
|
||||
- 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:
|
||||
@@ -309,7 +353,7 @@ Monthly manual check:
|
||||
- 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)
|
||||
- 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
|
||||
@@ -358,6 +402,7 @@ Monthly manual check:
|
||||
- **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
|
||||
|
||||
@@ -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,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
|
||||
@@ -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 |
|
||||
@@ -1,8 +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,' 'copy sweep,' 'tighten this up,' 'this reads awkwardly,' 'clean up this text,' 'too wordy,' or 'sharpen the messaging.' Use this when the user already has copy and wants it improved rather than rewritten from scratch. For writing new copy, see copywriting."
|
||||
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.1.0
|
||||
version: 1.3.0
|
||||
---
|
||||
|
||||
# Copy Editing
|
||||
@@ -256,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.
|
||||
@@ -416,6 +467,15 @@ This iterative process ensures each edit doesn't create new problems while respe
|
||||
## 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)
|
||||
|
||||
---
|
||||
|
||||
@@ -425,6 +485,7 @@ This iterative process ensures each edit doesn't create new problems while respe
|
||||
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,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
|
||||
@@ -121,17 +121,18 @@ Choose sources based on your ICP type — then read `references/source-guides.md
|
||||
|
||||
| ICP Type | Primary Sources |
|
||||
|----------|----------------|
|
||||
| B2B SaaS / technical buyers | Reddit (role-specific subs), G2/Capterra, Hacker News, LinkedIn, Indie Hackers |
|
||||
| SMB / founders | Reddit (r/entrepreneur, r/smallbusiness), Indie Hackers, Product Hunt, Facebook Groups |
|
||||
| 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 |
|
||||
| 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
|
||||
- Need competitive intel? → Competitor 4-star reviews on G2; Product Hunt discussions; SparkToro competitor audience analysis
|
||||
|
||||
### What to Extract from Each Source
|
||||
|
||||
|
||||
@@ -282,6 +282,61 @@ Comments on review videos are especially valuable — these are people actively
|
||||
|
||||
---
|
||||
|
||||
## 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:
|
||||
@@ -319,6 +374,7 @@ Not all sources carry equal weight. Use this guide when assigning confidence lab
|
||||
| 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
|
||||
|
||||
@@ -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,,,
|
||||
|
@@ -2,7 +2,7 @@
|
||||
name: seo-audit
|
||||
description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup. For AI search optimization, see ai-seo.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# SEO Audit
|
||||
@@ -155,6 +155,80 @@ Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false
|
||||
|
||||
---
|
||||
|
||||
## International SEO & Localization
|
||||
|
||||
Check when the site serves multiple languages or regions. Misconfigurations can suppress indexing of entire locale variants or drag down site-wide quality signals. See [International SEO reference](references/international-seo.md) for evidence and source URLs.
|
||||
|
||||
### Hreflang
|
||||
|
||||
Three equivalent placement methods: HTML `<link>` in `<head>`, HTTP `Link` headers, XML sitemap `<xhtml:link>`. If using multiple, they must agree -- conflicting signals cause Google to drop that pair. For 10+ locales, prefer sitemap-based (no page weight, no per-request cost).
|
||||
|
||||
**Check for:**
|
||||
- Self-referencing entry on every page (page must include itself in the hreflang set)
|
||||
- Reciprocal links (if A points to B, B must point back to A -- or both are ignored)
|
||||
- Valid codes: ISO 639-1 language + optional ISO 3166-1 Alpha 2 region (e.g., `en`, `en-GB` -- never `en-UK`)
|
||||
- `x-default` present, pointing to fallback page (language selector or default locale)
|
||||
- All target URLs return 200, are indexable, and match their canonical URL
|
||||
- No duplicate language-region codes pointing to different URLs
|
||||
|
||||
**Common errors:** Missing self-referencing entry (all hreflang ignored). No return tag / one-directional (pair dropped). Invalid codes like `en-UK` (use `en-GB`). Hreflang target is non-canonical, 404, or blocked (cluster discarded). HTML and sitemap annotations disagree (conflicting pair dropped).
|
||||
|
||||
**At scale:** `<xhtml:link>` children don't count toward 50K URL sitemap limit, but the 50MB file size limit becomes the bottleneck (plan 2K-5K URLs per file with full hreflang). Focus hreflang on pages receiving wrong-language traffic -- not required on every page. For Bing: supplement with `<html lang>` and `<meta http-equiv="content-language">` (Bing treats hreflang as a weak signal).
|
||||
|
||||
### Canonicalization for Multilingual Sites
|
||||
|
||||
- Each locale page must self-canonical (e.g., `/ar/page` canonicals to `/ar/page`)
|
||||
- Never cross-locale canonical (French to English) -- suppresses the non-canonical locale entirely
|
||||
- Canonical URL must appear in the hreflang set -- if not, all hreflang is ignored
|
||||
- Canonical overrides hreflang when they conflict
|
||||
- Protocol/domain must be consistent across canonical, hreflang, and sitemap (`https` + same domain variant)
|
||||
- Paginated locale pages: self-referencing canonical per page (never canonical page 2+ to page 1)
|
||||
|
||||
**Common mistakes:** all locales canonical to English (kills indexing), canonical URL not in hreflang set (silently ignored), protocol mismatch between canonical and hreflang, CMS setting deep page canonical to homepage.
|
||||
|
||||
### International Sitemaps
|
||||
|
||||
**Check for:**
|
||||
- `xmlns:xhtml` namespace on `<urlset>`, each `<url>` includes `<xhtml:link>` for all locales including itself
|
||||
- `x-default` alternate included; all URLs absolute (full protocol + domain)
|
||||
- Sitemap index in Search Console and robots.txt; split by content type, not by locale
|
||||
|
||||
**Next.js caveat:** `alternates.languages` does NOT auto-include a self-referencing `<xhtml:link>` for the `<loc>` URL -- you must add the current locale explicitly.
|
||||
|
||||
### Locale URL Structure
|
||||
|
||||
**Recommended:** Subdirectories (`/en/`, `/ar/`). **Acceptable:** Subdomains or ccTLDs. **Not recommended:** URL parameters (`?lang=en`).
|
||||
|
||||
**Check for:**
|
||||
- Consistent locale prefix strategy; all locales prefixed (hiding locale from URLs prevents Google from distinguishing versions)
|
||||
- Root URL handled as `x-default` with redirect, or serves default locale content
|
||||
- No IP/Accept-Language content negotiation (Googlebot: US IPs, no Accept-Language header)
|
||||
- Trailing slash + case consistency across locale paths, canonicals, hreflang, and sitemaps
|
||||
- 301 redirects from non-canonical format to canonical
|
||||
|
||||
**Note:** Google's International Targeting report in Search Console is deprecated. Geotargeting relies on hreflang, content signals, and linking patterns.
|
||||
|
||||
### Content Quality Across Locales
|
||||
|
||||
**Translation quality:**
|
||||
- AI-translated content is not inherently spam (Google's 2025 stance), but scaled low-value translations can trigger scaled content abuse policy
|
||||
- Google uses visible content to determine language -- translate ALL page content (title, description, headings, body), not just boilerplate
|
||||
- Translating only template/nav while main content stays in original language creates duplicates
|
||||
|
||||
**Thin locale pages:**
|
||||
- Helpful content system is site-wide -- many thin locale pages can suppress rankings for strong pages too
|
||||
- Don't noindex thin locales (wastes crawl budget) or cross-locale canonical (conflicts with hreflang)
|
||||
- Best approach: don't create locale pages you cannot make genuinely helpful
|
||||
|
||||
**Check for:**
|
||||
- All locale pages have fully translated main content (not just UI chrome)
|
||||
- No near-identical content across locales ("Duplicate, Google chose different canonical" in GSC)
|
||||
- Hreflang only for locales with genuine content and search demand
|
||||
- Localized signals: currency, phone format, addresses where applicable
|
||||
- Broken hreflang links (404s, redirects) waste crawl budget AND invalidate hreflang clusters
|
||||
|
||||
---
|
||||
|
||||
## On-Page SEO Audit
|
||||
|
||||
### Title Tags
|
||||
@@ -164,7 +238,7 @@ Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false
|
||||
- Primary keyword near beginning
|
||||
- 50-60 characters (visible in SERP)
|
||||
- Compelling and click-worthy
|
||||
- No brand name placement (SERPs include brand name above title already)
|
||||
- Brand name placement (end, usually)
|
||||
|
||||
**Common issues:**
|
||||
- Duplicate titles
|
||||
@@ -325,6 +399,16 @@ Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false
|
||||
- Poor internal linking
|
||||
- Missing author pages
|
||||
|
||||
### Multilingual / Multi-Regional Sites
|
||||
- Hreflang errors (missing return tags, invalid codes, no self-reference)
|
||||
- Canonical conflicting with hreflang (cross-locale canonical suppresses indexing)
|
||||
- Thin locale pages dragging down site-wide quality signal
|
||||
- Only boilerplate translated, main content identical across locales
|
||||
- No x-default fallback declared
|
||||
- Sitemap missing hreflang alternates or missing reciprocal entries
|
||||
- IP-based redirects hiding content from Googlebot
|
||||
- Framework locale mode hiding locale from URLs
|
||||
|
||||
### Local Business
|
||||
- Inconsistent NAP
|
||||
- Missing local schema
|
||||
@@ -368,6 +452,7 @@ Same format as above
|
||||
## References
|
||||
|
||||
- [AI Writing Detection](references/ai-writing-detection.md): Common AI writing patterns to avoid (em dashes, overused phrases, filler words)
|
||||
- [International SEO](references/international-seo.md): Evidence and sources for hreflang, canonical + i18n, sitemaps, URL structure, and content quality across locales
|
||||
- For AI search optimization (AEO, GEO, LLMO, AI Overviews), see the **ai-seo** skill
|
||||
|
||||
---
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
# International SEO: Evidence & Sources
|
||||
|
||||
Detailed evidence backing the International SEO & Localization section of the SEO Audit skill. Organized by topic with source URLs and key quotes.
|
||||
|
||||
---
|
||||
|
||||
## Hreflang
|
||||
|
||||
### Placement Methods
|
||||
|
||||
Google supports three equivalent methods: HTML `<link>` in `<head>`, HTTP `Link` headers, and XML sitemap `<xhtml:link>` elements. Google confirmed no method is prioritized over another.
|
||||
|
||||
Google combines signals from both HTML and sitemaps. If the same language-region pair points to different URLs across methods, Google drops that pair rather than guessing.
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [SEJ: Google Combines Hreflang Signals](https://www.searchenginejournal.com/google-combines-hreflang-signals-from-html-sitemaps/389219/)
|
||||
|
||||
### Reciprocal Requirement
|
||||
|
||||
Google's docs: "If page X links to page Y, page Y must link back to page X. If not, those annotations may be ignored or not interpreted correctly."
|
||||
|
||||
Every page must include itself (self-referencing) in the hreflang set. Missing self-referencing is the #1 error found by Semrush audits. A study of 374,756 domains found 67% of hreflang implementations had issues.
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [Semrush: 9 Common Hreflang Errors](https://www.semrush.com/blog/hreflang-errors/)
|
||||
- [SE Land: 31% of International Websites Contain Hreflang Errors](https://searchengineland.com/study-31-of-international-websites-contain-hreflang-errors-395161)
|
||||
|
||||
### x-default
|
||||
|
||||
Introduced April 2013. Designates the fallback page for users whose language/region matches no declared variant. Can point to the same URL as one of the language-specific alternates. Must be included in the complete set of annotations on every variant page.
|
||||
|
||||
- [Google Blog: x-default hreflang](https://developers.google.com/search/blog/2013/04/x-default-hreflang-for-international-pages)
|
||||
- [Google Blog: How x-default can help you (2023)](https://developers.google.com/search/blog/2023/05/x-default)
|
||||
|
||||
### Language & Region Codes
|
||||
|
||||
Language: ISO 639-1 (2-letter). Region: ISO 3166-1 Alpha 2 (2-letter). Format: `language[-script][-region]`.
|
||||
|
||||
You cannot specify a region code alone. Common mistakes: `en-UK` (should be `en-GB`), `es-419` (not ISO 3166-1). A study found 8.9% of sites using hreflang contain invalid language codes.
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [SE Land: 31% Study](https://searchengineland.com/study-31-of-international-websites-contain-hreflang-errors-395161)
|
||||
|
||||
### Hreflang at Scale (20+ locales)
|
||||
|
||||
With 20 locales, HTML `<head>` hreflang adds ~1.5KB per page for zero user benefit. Sitemap-based hreflang has zero runtime performance impact. `<xhtml:link>` child elements do NOT count toward the 50,000 URL sitemap limit (only `<loc>` elements count).
|
||||
|
||||
John Mueller recommends focusing hreflang on pages receiving wrong-language traffic, not every page: "I wouldn't do it for any of the other pages of the site because it's so complex & hard to manage."
|
||||
|
||||
- [SERoundtable: Child Elements Don't Count](https://www.seroundtable.com/google-child-elements-dont-count-towards-sitemap-url-limit-34377.html)
|
||||
- [SERoundtable: Where To Focus Hreflang](https://www.seroundtable.com/using-hreflang-34127.html)
|
||||
- [Yoast: hreflang Ultimate Guide](https://yoast.com/hreflang-ultimate-guide/)
|
||||
|
||||
### Google vs Bing
|
||||
|
||||
Bing treats hreflang as a "weak signal." Bing relies on `content-language` meta tag, HTML `lang` attribute, ccTLDs, and server location. Yandex supports hreflang like Google.
|
||||
|
||||
For both engines: implement hreflang (Google/Yandex) + `<html lang="...">` + `<meta http-equiv="content-language">` (Bing).
|
||||
|
||||
- [Digital Ready Marketing: Bing Doesn't Use Hreflang](https://digitalreadymarketing.com/bing-doesnt-use-hreflang-annotation-what-does-it-use/)
|
||||
- [Yoast: hreflang Ultimate Guide](https://yoast.com/hreflang-ultimate-guide/)
|
||||
|
||||
---
|
||||
|
||||
## Canonicalization & i18n
|
||||
|
||||
### Self-Referencing Canonicals
|
||||
|
||||
Each locale page must canonical to itself. John Mueller: "Don't use a rel=canonical across languages/countries, only use it on a per-country/language basis."
|
||||
|
||||
Google's docs: "Specify a canonical page in the same language, or the best possible substitute language if a canonical doesn't exist for the same language."
|
||||
|
||||
- [John Mueller: hreflang canonical](https://johnmu.com/hreflang-canonical/)
|
||||
- [Google: Consolidate Duplicate URLs](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
|
||||
|
||||
### Canonical Overrides Hreflang
|
||||
|
||||
Mueller: "If your canonical is pointing somewhere else, Google will follow that and ignore your hreflang annotation." The canonical URL must be one of the URLs in the hreflang set, or all hreflang markup is ignored.
|
||||
|
||||
Google also states: "Google prefers URLs that are part of hreflang clusters for canonicalization" -- when signals align, hreflang strengthens canonical selection.
|
||||
|
||||
- [John Mueller: hreflang canonical](https://johnmu.com/hreflang-canonical/)
|
||||
- [SEJ: Hreflang Tags Are Hints](https://www.searchenginejournal.com/google-reminds-that-hreflang-tags-are-hints-not-directives/546428/)
|
||||
- [Google: Consolidate Duplicate URLs](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
|
||||
|
||||
### Near-Duplicate Regional Variants
|
||||
|
||||
Mueller (2023 Office Hours): "If the content is completely the same, and we can't tell any difference, then for simplicity and user experience we may just show one version -- even if hreflang is present."
|
||||
|
||||
Google's duplicate detection runs BEFORE hreflang evaluation. To keep both versions indexed, you need substantive content differences beyond currency symbols.
|
||||
|
||||
- [International Web Mastery: Same-Language Duplicate Pages](https://internationalwebmastery.com/blog/how-google-handles-canonicalization-of-same-language-duplicate-near-duplicate-pages/)
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
|
||||
### Pagination Across Locales
|
||||
|
||||
Google: "Don't use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL." Each paginated page in each locale gets self-referencing canonical. `rel="next/prev"` deprecated March 2019.
|
||||
|
||||
- [Google: Pagination Best Practices](https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading)
|
||||
|
||||
---
|
||||
|
||||
## International Sitemaps
|
||||
|
||||
### Structure
|
||||
|
||||
Each `<url>` entry includes `<xhtml:link>` alternates for every locale. Requires `xmlns:xhtml="http://www.w3.org/1999/xhtml"` namespace.
|
||||
|
||||
Split sitemaps by content type, not by locale. Splitting by locale creates maintenance problems because every locale sitemap must reference every other locale (reciprocal requirement).
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [Lumar: How Google Handles Hreflang](https://www.lumar.io/office-hours/hreflang/)
|
||||
|
||||
### Size Limits
|
||||
|
||||
50,000 URLs / 50MB uncompressed per sitemap. Only `<loc>` elements count toward the 50K limit. But with 20 hreflang alternates per entry, the 50MB file size limit becomes the bottleneck. Plan for 2,000-5,000 URLs per sitemap when using full hreflang.
|
||||
|
||||
- [Google: Build and Submit a Sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
|
||||
- [SERoundtable: Sitemap 50,000 Limit](https://www.seroundtable.com/google-sitemap-50-000-limit-based-on-location-urls-not-alternative-urls-33843.html)
|
||||
|
||||
### Submission
|
||||
|
||||
Submit the sitemap index in Search Console AND reference it in robots.txt. Individual child sitemaps can be submitted separately for per-sitemap reporting.
|
||||
|
||||
- [Google: Build and Submit a Sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
|
||||
|
||||
### Next.js Caveat
|
||||
|
||||
Next.js `alternates.languages` does NOT automatically include a self-referencing `<xhtml:link>` for the `<loc>` URL. You must explicitly include the `<loc>` URL's own language in the `languages` object.
|
||||
|
||||
- [Next.js Docs: sitemap.xml](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap)
|
||||
|
||||
---
|
||||
|
||||
## URL Structure
|
||||
|
||||
### Strategies Compared
|
||||
|
||||
Google treats subdirectories and subdomains equivalently. Mueller: "From our point of view...they say subdomains and subdirectories are essentially equivalent."
|
||||
|
||||
URL parameters (`?lang=en`) are explicitly "Not recommended" per Google docs.
|
||||
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
|
||||
### Default Language
|
||||
|
||||
Mueller recommends: set `/` as x-default, put each language in its own prefix. Without marking `/` as x-default, "to Google it can look like '/' is a separate page from the others."
|
||||
|
||||
- [Google Blog: x-default](https://developers.google.com/search/blog/2023/05/x-default)
|
||||
- [Google Blog: Creating the Right Homepage](https://developers.google.com/search/blog/2014/05/creating-right-homepage-for-your)
|
||||
|
||||
### Content Negotiation / IP Redirects
|
||||
|
||||
Google strongly advises against locale-adaptive pages. Googlebot crawls from US IPs and does not send Accept-Language headers. Separate URLs + hreflang are required.
|
||||
|
||||
- [Google: Locale-Adaptive Pages](https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages)
|
||||
|
||||
### Trailing Slash Consistency
|
||||
|
||||
Mueller: trailing slash is "a significant part of the URL and will change the URL if it's there or not." Pick one format for all locale paths, internal links, canonicals, hreflang, and sitemaps.
|
||||
|
||||
Mueller (2025): "Consistency is the biggest technical SEO factor."
|
||||
|
||||
- [SERoundtable: Consistency Is The Biggest Technical SEO Factor](https://www.seroundtable.com/google-consistency-seo-40427.html)
|
||||
|
||||
### Search Console Geotargeting
|
||||
|
||||
The International Targeting report is deprecated. Google now relies entirely on hreflang, content language analysis, and linking patterns. You can add subdirectory properties for per-locale reporting.
|
||||
|
||||
- [Google Support: International Targeting Deprecated](https://support.google.com/webmasters/answer/12474899?hl=en)
|
||||
|
||||
### Framework Locale Modes
|
||||
|
||||
Use `localePrefix: 'always'` (next-intl) or equivalent. Never hide locale from URLs -- Google needs unique URLs per language. Using `'never'` mode disables alternate links entirely.
|
||||
|
||||
- [next-intl: Routing Configuration](https://next-intl.dev/docs/routing/configuration)
|
||||
- [Next.js Discussion #18419](https://github.com/vercel/next.js/discussions/18419)
|
||||
|
||||
---
|
||||
|
||||
## Content Quality Across Locales
|
||||
|
||||
### Auto-Translated Content (2025 Stance)
|
||||
|
||||
Google removed longstanding guidance advising against auto-translated content in mid-2025. Current stance: "Our policies do not strictly define content that has been translated by AI as spam." The scaled content abuse policy mentions translation as a possible vector, but does not ban it.
|
||||
|
||||
Reddit scaled AI translations to 35+ languages with Google's knowledge. The key distinction is intent and quality, not the method.
|
||||
|
||||
- [Google Spam Policies](https://developers.google.com/search/docs/essentials/spam-policies)
|
||||
- [Glenn Gabe: Auto-Translating Content](https://www.gsqi.com/marketing-blog/auto-translating-content-google-scaled-content-abuse/)
|
||||
- [SE Land: Reddit AI Translations](https://searchengineland.com/google-comments-on-reddits-use-of-ai-to-translate-its-pages-456908)
|
||||
|
||||
### Thin Locale Pages
|
||||
|
||||
Google: "Localized versions of a page are only considered duplicates if the main content of the page remains untranslated." Pages with only translated boilerplate get clustered as duplicates.
|
||||
|
||||
Do NOT use noindex for unwanted locale pages (wastes crawl budget). Do NOT canonical cross-locale (conflicts with hreflang). Best approach: don't create locale pages you can't make genuinely helpful.
|
||||
|
||||
- [Google: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [Google: Crawl Budget Management](https://developers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget)
|
||||
|
||||
### Helpful Content System Impact
|
||||
|
||||
Merged into core ranking March 2024. Site-wide signal: "any content -- not just unhelpful content -- on sites determined to have relatively high amounts of unhelpful content overall is less likely to perform well in Search."
|
||||
|
||||
Low-quality translated pages can drag down the entire site. This is the strongest argument against creating locale pages that aren't genuinely helpful.
|
||||
|
||||
- [Google Blog: Helpful Content Update](https://developers.google.com/search/blog/2022/08/helpful-content-update)
|
||||
- [Amsive: What Changed in 2024](https://www.amsive.com/insights/seo/googles-helpful-content-update-ranking-system-what-happened-and-what-changed-in-2024/)
|
||||
|
||||
### Partial Translation
|
||||
|
||||
Google: "Translating only the boilerplate text of your pages while keeping the bulk of your content in a single language...can create a bad user experience." Google uses visible content (not lang attribute) to determine page language.
|
||||
|
||||
Translate ALL content on a page if you create a locale version. Untranslated metadata (title, description) in the wrong language reduces CTR.
|
||||
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
|
||||
### Crawl Budget
|
||||
|
||||
Only a concern for 1M+ pages or 10K+ pages changing daily. But alternate URLs (hreflang targets) do consume crawl budget. Broken hreflang links waste budget AND invalidate signals.
|
||||
|
||||
- [Google: Crawl Budget Management](https://developers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget)
|
||||
- [Google Blog: Crawl Budget](https://developers.google.com/search/blog/2017/01/what-crawl-budget-means-for-googlebot)
|
||||
|
||||
### Locale-Specific Signals
|
||||
|
||||
Google identifies audience via: "local addresses and phone numbers on the pages, the use of local language and currency, links from other local sites, or signals from your Business Profile."
|
||||
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
@@ -2,7 +2,7 @@
|
||||
name: social-content
|
||||
description: "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' or 'grow my following.' Use this for any social media content creation, repurposing, or scheduling task. For broader content strategy, see content-strategy."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# Social Content
|
||||
@@ -50,6 +50,8 @@ Gather this context (ask if not provided):
|
||||
|
||||
**For detailed platform strategies**: See [references/platforms.md](references/platforms.md)
|
||||
|
||||
**For hashtag limits and character counts**: See [references/platform-limits.md](references/platform-limits.md)
|
||||
|
||||
---
|
||||
|
||||
## Content Pillars Framework
|
||||
@@ -107,7 +109,7 @@ The first line determines whether anyone reads the rest.
|
||||
|
||||
## Content Repurposing System
|
||||
|
||||
Turn one piece of content into many:
|
||||
Turn one piece of content into many. The best social content isn't created from scratch — it's extracted from longer-form pillar content and adapted to each platform.
|
||||
|
||||
### Blog Post → Social Content
|
||||
|
||||
@@ -119,13 +121,61 @@ Turn one piece of content into many:
|
||||
| Instagram | Carousel with visuals |
|
||||
| Instagram | Reel summarizing the post |
|
||||
|
||||
### Podcast / Video → Social Content
|
||||
|
||||
Extract "content atoms" — self-contained moments from any long-form content that work on their own:
|
||||
|
||||
| Atom Type | What to Look For | Best Platform |
|
||||
|-----------|-----------------|---------------|
|
||||
| Quotable moment | A bold claim, hot take, or memorable line (15-60 sec) | Twitter/X, LinkedIn, TikTok |
|
||||
| Story arc | A complete mini-story with setup, conflict, resolution (60-90 sec) | Instagram Reels, TikTok, YouTube Shorts |
|
||||
| Tactical tip | A specific how-to or framework explained clearly (30-60 sec) | LinkedIn, YouTube Shorts |
|
||||
| Controversial take | A contrarian opinion that sparks debate | Twitter/X, LinkedIn |
|
||||
| Data/stat callout | A surprising number or research finding | LinkedIn carousel, Twitter/X |
|
||||
| Behind-the-scenes | Authentic, unpolished moments | Instagram Stories, TikTok |
|
||||
|
||||
**Podcast repurposing workflow:**
|
||||
1. **Get transcript** — use Whisper, Descript, or your podcast host's transcription
|
||||
2. **Mark timestamps** — flag the 5-10 best moments while listening or scanning transcript
|
||||
3. **Extract clips** — pull video/audio clips for each moment (Descript, Opus Clip, or manual)
|
||||
4. **Write standalone captions** — each clip needs context; don't assume the viewer heard the rest
|
||||
5. **Add subtitles** — most social video is watched without sound
|
||||
6. **Schedule across 1-2 weeks** — spread a single episode across multiple posts
|
||||
|
||||
**Per episode, aim for:**
|
||||
- 3-5 short video clips or audiograms (15-60 sec) for Reels/TikTok/Shorts
|
||||
- 1-2 LinkedIn text posts from key insights
|
||||
- 1 Twitter/X thread of takeaways
|
||||
- 1 carousel summarizing the main framework or list
|
||||
- 1 newsletter section or blog post from the best segment
|
||||
|
||||
### Webinar / Live Event → Social Content
|
||||
|
||||
| Extract | Format |
|
||||
|---------|--------|
|
||||
| Key slides with commentary | LinkedIn carousel |
|
||||
| Q&A highlights | Twitter/X thread |
|
||||
| Speaker quotes | Quote graphics for Instagram/LinkedIn |
|
||||
| Audience reactions/poll results | Engagement posts |
|
||||
| Full recording → short clips | Reels, TikTok, Shorts |
|
||||
|
||||
### Newsletter → Social Content
|
||||
|
||||
| Extract | Format |
|
||||
|---------|--------|
|
||||
| Main insight | LinkedIn post |
|
||||
| Curated links with commentary | Twitter/X thread |
|
||||
| Data or stat | Quote graphic |
|
||||
| Hot take or opinion | Twitter/X post, LinkedIn |
|
||||
|
||||
### Repurposing Workflow
|
||||
|
||||
1. **Create pillar content** (blog, video, podcast)
|
||||
2. **Extract key insights** (3-5 per piece)
|
||||
3. **Adapt to each platform** (format and tone)
|
||||
4. **Schedule across the week** (spread distribution)
|
||||
5. **Update and reshare** (evergreen content can repeat)
|
||||
1. **Create pillar content** (blog, video, podcast, webinar, newsletter)
|
||||
2. **Extract content atoms** (5-10 per piece — quotes, stories, tips, data)
|
||||
3. **Adapt to each platform** (format, length, and tone)
|
||||
4. **Write standalone captions** (each post must work without context)
|
||||
5. **Schedule across the week** (spread distribution, don't dump all at once)
|
||||
6. **Update and reshare** (evergreen content can repeat every 3-6 months)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
# Platform Limits Reference
|
||||
|
||||
Quick reference for hashtag limits, character counts, and visible text thresholds on each major social platform.
|
||||
|
||||
---
|
||||
|
||||
## Instagram
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | 5 (official limit) |
|
||||
| Recommended hashtags | 3 – 5 |
|
||||
| Max caption chars | 2,200 |
|
||||
| Visible before "more" | ~125 chars |
|
||||
|
||||
---
|
||||
|
||||
## Facebook
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | No official limit |
|
||||
| Recommended hashtags | 1 – 2 |
|
||||
| Max post chars | 63,206 |
|
||||
| Ideal for engagement | 40 – 80 chars |
|
||||
|
||||
---
|
||||
|
||||
## TikTok
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | 5 (since August 2025) |
|
||||
| Recommended hashtags | 3 – 5 |
|
||||
| Max caption chars | 4,000 |
|
||||
| Visible before "more" | ~150 chars |
|
||||
|
||||
---
|
||||
|
||||
## LinkedIn
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | No official limit |
|
||||
| Recommended hashtags | 3 – 5 |
|
||||
| Max post chars | 3,000 |
|
||||
| Visible before "more" | ~210 chars |
|
||||
|
||||
---
|
||||
|
||||
## Twitter/X
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | No official limit |
|
||||
| Recommended hashtags | 1 – 2 |
|
||||
| Max tweet chars | 280 (standard) / 25,000 (Premium+) |
|
||||
| Visible before "more" | Full tweet (280 standard) |
|
||||
|
||||
---
|
||||
|
||||
## YouTube
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | 15 (exceeding this causes YouTube to ignore ALL hashtags) |
|
||||
| Recommended hashtags | 3 – 5 |
|
||||
| Max title chars | 100 (visible before truncation: ~70) |
|
||||
| Max description chars | 5,000 |
|
||||
| Visible before "Show more" | ~100 chars |
|
||||
|
||||
> The first 3 hashtags in the description automatically appear above the title as clickable links. For Shorts, use 1 – 5 hashtags.
|
||||
|
||||
---
|
||||
|
||||
## Pinterest
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | 20 per pin |
|
||||
| Recommended hashtags | 2 – 5 |
|
||||
| Max pin title chars | 100 |
|
||||
| Max description chars | 500 |
|
||||
| Visible before "More" | ~50 chars (desktop) |
|
||||
|
||||
> Pinterest has deprioritized hashtags. Focus on keywords as natural sentences within the description for better SEO instead of relying on hashtags.
|
||||
|
||||
---
|
||||
|
||||
## Threads (Meta)
|
||||
|
||||
| Element | Limit |
|
||||
|---------|-------|
|
||||
| Max hashtags | 1 per post (topic tag) |
|
||||
| Recommended hashtags | 1 |
|
||||
| Max post chars | 500 |
|
||||
| Max with text attachment | 10,500 (500 + 10,000 expandable) |
|
||||
| Visible without expanding | First ~1 – 2 lines |
|
||||
|
||||
> Threads limits topic tags to one per post. The platform is not hashtag-driven — the algorithm prioritizes content from followed accounts mixed with recommendations.
|
||||
|
||||
---
|
||||
|
||||
## Usage Tips
|
||||
|
||||
- **Hashtags count against character limits** on all platforms
|
||||
- **Front-load your message** before the "more" truncation point
|
||||
- On Instagram and TikTok, fewer hashtags now outperform hashtag-stuffing
|
||||
- On LinkedIn, hashtags at the end of the post perform better than inline
|
||||
- On Facebook, hashtags have minimal impact on reach — use sparingly
|
||||
+37
-4
@@ -61,7 +61,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| meta-ads | Ads | ✓ | - | [✓](clis/meta-ads.js) | ✓ | [meta-ads.md](integrations/meta-ads.md) |
|
||||
| linkedin-ads | Ads | ✓ | - | [✓](clis/linkedin-ads.js) | - | [linkedin-ads.md](integrations/linkedin-ads.md) |
|
||||
| tiktok-ads | Ads | ✓ | - | [✓](clis/tiktok-ads.js) | ✓ | [tiktok-ads.md](integrations/tiktok-ads.md) |
|
||||
| zapier | Automation | ✓ | ✓ | [✓](clis/zapier.js) | - | [zapier.md](integrations/zapier.md) |
|
||||
| zapier | Automation | ✓ | ✓ | [✓](clis/zapier.js) | ✓ | [zapier.md](integrations/zapier.md) |
|
||||
| hotjar | CRO | ✓ | - | [✓](clis/hotjar.js) | - | [hotjar.md](integrations/hotjar.md) |
|
||||
| optimizely | A/B Testing | ✓ | - | [✓](clis/optimizely.js) | ✓ | [optimizely.md](integrations/optimizely.md) |
|
||||
| calendly | Scheduling | ✓ | - | [✓](clis/calendly.js) | - | [calendly.md](integrations/calendly.md) |
|
||||
@@ -74,6 +74,9 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| pendo | Product Analytics | ✓ | - | [✓](clis/pendo.js) | - | [pendo.md](integrations/pendo.md) |
|
||||
| similarweb | Competitive Intelligence | ✓ | - | [✓](clis/similarweb.js) | - | [similarweb.md](integrations/similarweb.md) |
|
||||
| firehose | Competitive Intelligence | ✓ | - | - | - | [firehose.md](integrations/firehose.md) |
|
||||
| sparktoro | Audience Research | - | - | - | - | [sparktoro.md](integrations/sparktoro.md) |
|
||||
| rb2b | Visitor Identification | ✓ | - | - | - | [rb2b.md](integrations/rb2b.md) |
|
||||
| gong | Revenue Intelligence | ✓ | - | - | - | [gong.md](integrations/gong.md) |
|
||||
| airops | AI Content | ✓ | - | [✓](clis/airops.js) | - | [airops.md](integrations/airops.md) |
|
||||
| buffer | Social | ✓ | - | [✓](clis/buffer.js) | - | [buffer.md](integrations/buffer.md) |
|
||||
| wistia | Video | ✓ | - | [✓](clis/wistia.js) | - | [wistia.md](integrations/wistia.md) |
|
||||
@@ -199,9 +202,9 @@ Workflow automation and integration platforms.
|
||||
|
||||
| Tool | Best For | MCP Available |
|
||||
|------|----------|:-------------:|
|
||||
| **zapier** | No-code integrations | ✓ |
|
||||
| **zapier** | No-code integrations + SDK for 8,000+ apps | ✓ |
|
||||
|
||||
**Agent recommendation**: Zapier for connecting tools without code.
|
||||
**Agent recommendation**: Zapier SDK for agents that need to interact with any app directly. Zaps for always-on automations.
|
||||
|
||||
### CRO & A/B Testing
|
||||
|
||||
@@ -340,6 +343,36 @@ Traffic analytics, competitor benchmarking, and market research.
|
||||
|
||||
**Agent recommendation**: Similarweb for competitor traffic analysis and market benchmarking.
|
||||
|
||||
### Audience Research
|
||||
|
||||
Audience intelligence and behavioral research tools.
|
||||
|
||||
| Tool | Best For | Notes |
|
||||
|------|----------|-------|
|
||||
| **sparktoro** | Audience affinities, behavioral data | Clickstream + social data |
|
||||
|
||||
**Agent recommendation**: SparkToro for discovering where your ICP spends time — what they read, watch, listen to, follow, and search for. Essential for customer research, content strategy, and media buying decisions.
|
||||
|
||||
### Visitor Identification
|
||||
|
||||
Website visitor de-anonymization for B2B sales and marketing.
|
||||
|
||||
| Tool | Best For | Notes |
|
||||
|------|----------|-------|
|
||||
| **rb2b** | Person-level visitor ID, intent signals | LinkedIn profiles, emails, page-level data |
|
||||
|
||||
**Agent recommendation**: RB2B for identifying anonymous B2B website visitors and routing high-intent visitors to outreach tools. Pairs well with Clay for enrichment and Instantly/Lemlist for cold email.
|
||||
|
||||
### Revenue Intelligence
|
||||
|
||||
Sales conversation analytics, call recording, and deal intelligence.
|
||||
|
||||
| Tool | Best For | Notes |
|
||||
|------|----------|-------|
|
||||
| **gong** | Call recording, transcript analysis, deal insights | REST API, 10k API calls/day |
|
||||
|
||||
**Agent recommendation**: Gong for mining sales call transcripts for customer research, competitive intelligence, and coaching insights. Essential for revenue attribution and win/loss analysis.
|
||||
|
||||
### AI Content
|
||||
|
||||
AI-powered content generation and optimization platforms.
|
||||
@@ -423,7 +456,7 @@ These tools have Model Context Protocol servers available, enabling direct agent
|
||||
- **mailchimp** - Email campaign management
|
||||
- **google-ads** - Ad campaign management
|
||||
- **resend** - Transactional email sending
|
||||
- **zapier** - Workflow automation
|
||||
- **zapier** - Workflow automation + SDK for 8,000+ app integrations
|
||||
- **zoominfo** - B2B contacts and intent data
|
||||
- **clay** - Data enrichment and outbound automation
|
||||
- **supermetrics** - Cross-platform marketing data
|
||||
|
||||
@@ -9,17 +9,18 @@ if (!API_KEY) {
|
||||
}
|
||||
|
||||
async function api(method, path, body) {
|
||||
const separator = path.includes('?') ? '&' : '?'
|
||||
const url = `${BASE_URL}${path}${separator}api_key=${API_KEY}`
|
||||
const url = `${BASE_URL}${path}`
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
'x-api-key': API_KEY,
|
||||
}
|
||||
if (args['dry-run']) {
|
||||
return { _dry_run: true, method, url: url.replace(API_KEY, '***'), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: body || undefined }
|
||||
return { _dry_run: true, method, url, headers: { ...headers, 'x-api-key': '***' }, body: body || undefined }
|
||||
}
|
||||
const res = await fetch(url, {
|
||||
method,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
headers,
|
||||
body: body ? JSON.stringify(body) : undefined,
|
||||
})
|
||||
const text = await res.text()
|
||||
|
||||
@@ -122,7 +122,9 @@ async function main() {
|
||||
case 'hooks':
|
||||
switch (sub) {
|
||||
case 'send': {
|
||||
// Sends a POST to a Zapier webhook catch hook URL (e.g. https://hooks.zapier.com/hooks/catch/...)
|
||||
if (!args.url) { result = { error: '--url required' }; break }
|
||||
if (!args.url.startsWith('https://')) { result = { error: '--url must use https://' }; break }
|
||||
if (!args.data) { result = { error: '--data required (JSON string)' }; break }
|
||||
let data
|
||||
try {
|
||||
|
||||
@@ -92,7 +92,14 @@ async function main() {
|
||||
break
|
||||
}
|
||||
const token = await authenticate()
|
||||
result = { jwt: token }
|
||||
if (args['show-token']) {
|
||||
result = { jwt: token }
|
||||
} else {
|
||||
const masked = token.length > 12
|
||||
? token.slice(0, 6) + '…' + token.slice(-6)
|
||||
: '***'
|
||||
result = { jwt: masked, hint: 'Use --show-token to reveal full JWT' }
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
@@ -188,7 +195,7 @@ async function main() {
|
||||
result = {
|
||||
error: 'Unknown command',
|
||||
usage: {
|
||||
auth: 'auth — authenticate and get JWT token',
|
||||
auth: 'auth [--show-token] — authenticate and get JWT token (masked by default)',
|
||||
contacts: {
|
||||
search: 'contacts search [--job-title <t>] [--company <c>] [--location <l>] [--seniority <s>] [--department <d>] [--page <n>]',
|
||||
enrich: 'contacts enrich --email <email> | --person-id <id>',
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
# Gong
|
||||
|
||||
Revenue intelligence platform that records, transcribes, and analyzes sales conversations (calls, video meetings, emails) to surface deal insights, coaching opportunities, and competitive intelligence.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API, Basic Auth or OAuth2 |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | Not available |
|
||||
| SDK | - | REST API only; community Python client via dltHub |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: Basic Auth (Access Key + Secret) or OAuth2 for published apps
|
||||
- **Get key**: Admin-only — Settings > API at https://app.gong.io
|
||||
- **Base URL**: Tenant-specific — retrieve from your Gong API settings (typically `https://{tenant}.api.gong.io/v2/`)
|
||||
- **Docs**: https://help.gong.io/docs/what-the-gong-api-provides
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Most Gong API endpoints use **POST** with JSON request bodies for filtering. Check the [official API docs](https://gong.app.gong.io/settings/api/documentation) for current endpoint availability.
|
||||
|
||||
### Calls
|
||||
|
||||
```bash
|
||||
# List calls (with date/user filters)
|
||||
POST /v2/calls/extensive
|
||||
|
||||
# Get call transcripts (batch, by call IDs)
|
||||
POST /v2/calls/transcript
|
||||
```
|
||||
|
||||
### Users & Stats
|
||||
|
||||
```bash
|
||||
# List users
|
||||
GET /v2/users
|
||||
|
||||
# Get activity stats (talk ratio, questions asked, longest monologue)
|
||||
POST /v2/stats/activity/day-by-day
|
||||
```
|
||||
|
||||
### Engagement Flows
|
||||
|
||||
```bash
|
||||
# List flows
|
||||
GET /v2/flows
|
||||
|
||||
# Get flow analytics
|
||||
GET /v2/flows/{id}/analytics
|
||||
```
|
||||
|
||||
## Key Data Points
|
||||
|
||||
### Per Call
|
||||
- Full transcript with speaker labels and timestamps
|
||||
- Talk-to-listen ratio per participant
|
||||
- Topics discussed (auto-detected)
|
||||
- Questions asked (count and content)
|
||||
- Longest monologue duration
|
||||
- Next steps mentioned
|
||||
- Competitor mentions
|
||||
- Pricing discussions flagged
|
||||
|
||||
### Per Deal
|
||||
- All associated calls and emails
|
||||
- Deal stage progression
|
||||
- Risk signals (gone dark, competitor mentioned, champion left)
|
||||
- Engagement score
|
||||
|
||||
### Per Rep
|
||||
- Talk ratio trends
|
||||
- Question frequency
|
||||
- Topic coverage vs. playbook
|
||||
- Win rate correlation with behaviors
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Extract Competitive Intelligence from Calls
|
||||
|
||||
1. Query calls mentioning competitor names
|
||||
2. Extract: objections raised, features compared, pricing discussed
|
||||
3. Synthesize into competitive battlecard updates
|
||||
4. Track competitor mention frequency over time
|
||||
|
||||
### Mine Calls for Customer Research
|
||||
|
||||
1. Pull transcripts from recent won/lost deals
|
||||
2. Extract: pain points, trigger events, decision criteria, language used
|
||||
3. Feed into persona building and messaging work
|
||||
4. Identify recurring objections for sales enablement
|
||||
|
||||
### Revenue Attribution
|
||||
|
||||
1. Pull call data alongside CRM deal data
|
||||
2. Map which content/pages were discussed in winning deals
|
||||
3. Identify which talking points correlate with closed-won
|
||||
4. Build content-to-revenue attribution reports
|
||||
|
||||
### Rep Coaching Insights
|
||||
|
||||
1. Compare top performer call patterns vs. team average
|
||||
2. Identify: talk ratio, question frequency, topic coverage gaps
|
||||
3. Surface specific call moments for coaching review
|
||||
4. Track improvement over time
|
||||
|
||||
## Rate Limits
|
||||
|
||||
- 3 API calls per second
|
||||
- 10,000 API calls per day
|
||||
- Pagination required for large result sets
|
||||
|
||||
## When to Use
|
||||
|
||||
- Mining sales call transcripts for customer research and VOC data
|
||||
- Extracting competitive intelligence from prospect conversations
|
||||
- Building revenue attribution models (content → deal influence)
|
||||
- Analyzing win/loss patterns across deal transcripts
|
||||
- Coaching sales reps based on conversation analytics
|
||||
- Identifying common objections and buying signals
|
||||
|
||||
## Limitations
|
||||
|
||||
- API access requires admin credentials
|
||||
- Transcript quality depends on call audio quality
|
||||
- Rate limits (10k/day) may constrain large-scale analysis
|
||||
- Pricing is enterprise-level (not publicly listed, typically $100+/user/month)
|
||||
- Requires team adoption — records calls via integrations, but also supports uploading calls from non-integrated telephony systems
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- customer-research
|
||||
- sales-enablement
|
||||
- competitor-alternatives
|
||||
- revops
|
||||
- cold-email
|
||||
|
||||
## Sources
|
||||
|
||||
- [Gong API overview](https://help.gong.io/docs/what-the-gong-api-provides)
|
||||
- [Gong API documentation](https://gong.app.gong.io/settings/api/documentation)
|
||||
- [Call upload support](https://help.gong.io/docs/uploading-calls-from-a-non-integrated-telephony-system)
|
||||
@@ -0,0 +1,110 @@
|
||||
# RB2B
|
||||
|
||||
Website visitor identification platform that de-anonymizes B2B website traffic, revealing the individual people visiting your site with LinkedIn profiles, emails, and company data.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | Limited | API Partner Program (separate from standard app) |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | Not available |
|
||||
| SDK | - | Not available |
|
||||
|
||||
Most teams use RB2B via its native integrations (Slack, CRM push, Zapier, webhooks) rather than direct API access. A separate [API Partner Program](https://www.rb2b.com/apis) exists for programmatic access.
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: Native integrations (no API key needed for standard use)
|
||||
- **API Partner Program**: Separate credentials via https://www.rb2b.com/apis
|
||||
- **Free tier**: Limited credits/month with Slack alerts
|
||||
|
||||
## Pricing Tiers
|
||||
|
||||
Pricing changes frequently — verify at https://www.rb2b.com/pricing.
|
||||
|
||||
| Plan | Approx. Price | Key Features |
|
||||
|------|--------------|-------------|
|
||||
| Free | $0 | Limited credits, Slack alerts, LinkedIn profiles |
|
||||
| Starter | ~$79/mo | Person-level ID, basic integrations |
|
||||
| Pro | ~$129-349/mo | CSV export, CRM push, validated emails |
|
||||
| Pro+ | ~$299+/mo | All integrations, higher credit volume |
|
||||
|
||||
## Key Integrations
|
||||
|
||||
RB2B pushes identified visitor data to 50+ tools:
|
||||
- **CRM**: Salesforce, HubSpot
|
||||
- **Outreach**: Instantly, HeyReach, Lemlist
|
||||
- **Enrichment**: Clay, Apollo, Clearbit
|
||||
- **Automation**: Zapier, Make
|
||||
- **Alerts**: Slack (real-time notifications)
|
||||
|
||||
## What RB2B Reveals Per Visitor
|
||||
|
||||
- Full name and LinkedIn profile URL
|
||||
- Job title and company
|
||||
- Validated business email (Pro+)
|
||||
- Pages visited and visit duration
|
||||
- Number of visits and return frequency
|
||||
- Company data (size, industry, location)
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Real-Time Visitor Alerts
|
||||
|
||||
Configure Slack alerts for high-intent visitors:
|
||||
- Visitors who hit pricing page
|
||||
- Visitors who return 3+ times
|
||||
- Visitors from target account list
|
||||
- Visitors matching ICP job titles
|
||||
|
||||
### Visitor-to-Outreach Pipeline
|
||||
|
||||
1. RB2B identifies visitor with LinkedIn + email
|
||||
2. Filter by ICP criteria (title, company size, pages visited)
|
||||
3. Route to outreach tool (Instantly, Lemlist) or CRM (HubSpot, Salesforce)
|
||||
4. Trigger personalized cold email referencing pages they visited
|
||||
|
||||
### Intent Scoring
|
||||
|
||||
Score visitors by behavior signals:
|
||||
- **High intent**: Pricing page, demo page, comparison pages, 3+ visits
|
||||
- **Medium intent**: Feature pages, case studies, 2 visits
|
||||
- **Low intent**: Blog only, single visit, bounced quickly
|
||||
|
||||
### Suppression Lists
|
||||
|
||||
Prevent outreach to:
|
||||
- Existing customers (match against CRM)
|
||||
- Active deals in pipeline
|
||||
- Competitors and agencies
|
||||
- Recently contacted prospects
|
||||
|
||||
## When to Use
|
||||
|
||||
- Identifying anonymous website visitors for sales outreach
|
||||
- Building ABM (account-based marketing) target lists from site traffic
|
||||
- Understanding which companies are researching your product
|
||||
- Triggering personalized outreach based on page-level intent signals
|
||||
- Feeding enrichment tools (Clay, Apollo) with warm visitor data
|
||||
|
||||
## Limitations
|
||||
|
||||
- Person-level identification works best for US B2B traffic
|
||||
- Not all visitors can be identified (typical match rates: 15-30%)
|
||||
- Requires sufficient website traffic to be cost-effective
|
||||
- Privacy considerations — ensure compliance with applicable regulations
|
||||
- Free tier limited to Slack alerts (no CRM push or email export)
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- cold-email
|
||||
- revops
|
||||
- customer-research
|
||||
- paid-ads
|
||||
|
||||
## Sources
|
||||
|
||||
- [RB2B pricing](https://www.rb2b.com/pricing)
|
||||
- [RB2B plans comparison](https://support.rb2b.com/en/articles/9173659-rb2b-plans-side-by-side-comparisons)
|
||||
- [RB2B API Partner Program](https://support.rb2b.com/en/articles/12579420-rb2b-apis-rb2b-s-api-partner-program)
|
||||
@@ -0,0 +1,127 @@
|
||||
# SparkToro
|
||||
|
||||
Audience research platform that reveals what your target audience reads, watches, listens to, follows, and searches for — using clickstream data, Google search data, and public social profiles.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | - | Not yet public (coming soon) |
|
||||
| MCP | - | Not available |
|
||||
| CLI | - | Not available |
|
||||
| SDK | - | Not available |
|
||||
|
||||
SparkToro is primarily a web-based research tool. No public API, CLI, or SDK is currently available. Use the web interface at https://sparktoro.com for all queries.
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: Account login at https://sparktoro.com
|
||||
- **Free tier**: 5 reports/month with limited results
|
||||
- **Paid plans**: $50–$300/month with expanded results and exports
|
||||
|
||||
## Pricing Tiers
|
||||
|
||||
| Plan | Price | Reports/Month | Users | Result Depth |
|
||||
|------|-------|---------------|-------|-------------|
|
||||
| Free | $0 | 5 | 1 | Top 5–10 results |
|
||||
| Personal | $50/mo | 50 | 1 | Top 50 results |
|
||||
| Business | $150/mo | 500 | 10 | Top 150 results, contact data, AI advice |
|
||||
| Agency | $300/mo | Unlimited | 100 | Top 300 results, full CSV export |
|
||||
|
||||
## What SparkToro Reveals
|
||||
|
||||
### Audience Behaviors
|
||||
- **Websites** they visit and engage with
|
||||
- **Podcasts** they listen to
|
||||
- **YouTube channels** they watch
|
||||
- **Subreddits** they participate in
|
||||
- **Social accounts** they follow
|
||||
- **Search keywords** they use on Google
|
||||
- **AI prompt topics** they ask ChatGPT, Claude, Gemini
|
||||
|
||||
### Audience Demographics
|
||||
- Gender, age ranges
|
||||
- Job titles and roles
|
||||
- Industries and skills
|
||||
- Education levels
|
||||
- Geographic distribution
|
||||
- Interests and affinities
|
||||
|
||||
### Audience Characteristics
|
||||
- Bio descriptions and self-identifiers
|
||||
- Language patterns in posts and comments
|
||||
- Preferred social networks and platforms
|
||||
- E-commerce platforms they use
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
Since SparkToro has no API, these are the research workflows agents should guide users through.
|
||||
|
||||
### Audience Profile Research
|
||||
|
||||
Query SparkToro with phrases like:
|
||||
- "People who follow @competitor" — reveals shared audience behaviors
|
||||
- "People who visit competitor.com" — shows what else they consume
|
||||
- "People who frequently talk about [topic]" — finds audience affinities
|
||||
- "People whose bio contains [job title]" — profiles a role-based segment
|
||||
|
||||
### Finding Where Your ICP Spends Time
|
||||
|
||||
1. Search for your ICP by description, competitor followers, or website visitors
|
||||
2. Extract: top websites visited, podcasts listened to, YouTube channels watched, subreddits
|
||||
3. Use this to prioritize: guest podcast appearances, content partnerships, ad placements, community participation
|
||||
|
||||
### Discovering Content Topics
|
||||
|
||||
1. Search your audience segment
|
||||
2. Review the "Search Keywords" tab — what they Google
|
||||
3. Review the "AI Prompt Topics" tab — what they ask AI tools
|
||||
4. Use these to inform content strategy and SEO keyword targeting
|
||||
|
||||
### Building Data-Backed Personas
|
||||
|
||||
1. Run 3–5 queries for different segments of your audience
|
||||
2. Compare demographic breakdowns across segments
|
||||
3. Note which behaviors and affinities are shared vs. unique per segment
|
||||
4. Export data and build personas grounded in observed behavior, not assumptions
|
||||
|
||||
### Competitive Audience Analysis
|
||||
|
||||
1. Search "People who follow @competitor" or "People who visit competitor.com"
|
||||
2. Compare against your own audience profile
|
||||
3. Identify: channels they use that you don't, content they consume that you don't produce, influencers they follow that you haven't engaged
|
||||
|
||||
## Data Sources
|
||||
|
||||
SparkToro aggregates from three sources:
|
||||
- **Clickstream data** — anonymized browsing behavior
|
||||
- **Google search results** — search keyword patterns
|
||||
- **Public social profiles** — bios, follows, engagement
|
||||
|
||||
## When to Use
|
||||
|
||||
- Identifying where your ICP spends time online (podcasts, YouTube, subreddits, websites)
|
||||
- Finding influencers and social accounts your audience follows
|
||||
- Discovering content topics and search keywords your audience cares about
|
||||
- Building data-backed personas instead of assumption-based ones
|
||||
- Planning podcast guest appearances, sponsorships, or content partnerships
|
||||
- Understanding what your competitors' audience looks like
|
||||
- Validating audience assumptions with behavioral data
|
||||
- Discovering AI prompt topics your audience uses
|
||||
|
||||
## Limitations
|
||||
|
||||
- No public API — all research is done through the web interface
|
||||
- Free tier limited to 5 reports/month with shallow results
|
||||
- Data skews toward English-language, US-centric audiences
|
||||
- Clickstream data may not capture all niche audiences
|
||||
- Cannot track individual users — all data is aggregated and anonymized
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- customer-research
|
||||
- content-strategy
|
||||
- competitor-alternatives
|
||||
- paid-ads
|
||||
- social-content
|
||||
- cold-email
|
||||
+129
-35
@@ -1,6 +1,6 @@
|
||||
# Zapier
|
||||
|
||||
Workflow automation platform connecting apps without code.
|
||||
Workflow automation platform connecting 8,000+ apps. The Zapier SDK gives AI agents direct access to any app's actions without building OAuth flows or reverse-engineering APIs.
|
||||
|
||||
## Capabilities
|
||||
|
||||
@@ -8,16 +8,110 @@ Workflow automation platform connecting apps without code.
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API for Zaps, tasks, and webhooks |
|
||||
| MCP | ✓ | Available via Zapier MCP server |
|
||||
| CLI | - | Not available |
|
||||
| SDK | - | API and webhooks only |
|
||||
| CLI | ✓ | `@zapier/zapier-sdk-cli` for app discovery and type generation |
|
||||
| SDK | ✓ | `@zapier/zapier-sdk` — TypeScript SDK for 8,000+ app integrations |
|
||||
|
||||
## Authentication
|
||||
|
||||
### Legacy API (Zaps management)
|
||||
|
||||
- **Type**: API Key
|
||||
- **Header**: `X-API-Key: {api_key}`
|
||||
- **Get key**: Settings > API in Zapier account
|
||||
|
||||
## Common Agent Operations
|
||||
### SDK Authentication
|
||||
|
||||
**Browser-based login (development):**
|
||||
```bash
|
||||
npx zapier-sdk login
|
||||
```
|
||||
|
||||
**Server-side (production):**
|
||||
- Client Credentials — store as environment variables
|
||||
- Direct token — set `ZAPIER_CREDENTIALS` env var
|
||||
|
||||
Browser-based login only works locally. Use Client Credentials for any server-side deployment.
|
||||
|
||||
## SDK Quick Start
|
||||
|
||||
### Install
|
||||
|
||||
```bash
|
||||
npm install @zapier/zapier-sdk
|
||||
npm install -D @zapier/zapier-sdk-cli @types/node typescript
|
||||
npm pkg set type=module
|
||||
```
|
||||
|
||||
### Initialize
|
||||
|
||||
```typescript
|
||||
import { createZapierSdk } from "@zapier/zapier-sdk";
|
||||
const zapier = createZapierSdk();
|
||||
```
|
||||
|
||||
### CLI Commands
|
||||
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `npx zapier-sdk login` | Authenticate (dev only) |
|
||||
| `npx zapier-sdk list-apps --search "query"` | Search available apps |
|
||||
| `npx zapier-sdk list-actions APP_KEY` | List actions for an app |
|
||||
| `npx zapier-sdk add [app-key]` | Generate TypeScript types |
|
||||
|
||||
### SDK Methods
|
||||
|
||||
| Method | Purpose |
|
||||
|--------|---------|
|
||||
| `zapier.listConnections()` | List authenticated app connections |
|
||||
| `zapier.findFirstConnection()` | Find a specific connection |
|
||||
| `zapier.runAction()` | Execute an action on a connected app |
|
||||
| `zapier.apps.slack()` | App proxy pattern for clean syntax |
|
||||
| `zapier.fetch()` | Custom authenticated API calls |
|
||||
|
||||
### Example: Send a Slack Message
|
||||
|
||||
```typescript
|
||||
import { createZapierSdk } from "@zapier/zapier-sdk";
|
||||
|
||||
const zapier = createZapierSdk();
|
||||
const slack = await zapier.apps.slack();
|
||||
|
||||
await slack.sendChannelMessage({
|
||||
channel: "#marketing",
|
||||
message: "Campaign launched!"
|
||||
});
|
||||
```
|
||||
|
||||
### Example: Create a HubSpot Contact
|
||||
|
||||
```typescript
|
||||
const hubspot = await zapier.apps.hubspot();
|
||||
|
||||
await hubspot.createContact({
|
||||
email: "lead@example.com",
|
||||
firstName: "Jane",
|
||||
lastName: "Doe"
|
||||
});
|
||||
```
|
||||
|
||||
### Pagination
|
||||
|
||||
Use `.items()` for large datasets:
|
||||
|
||||
```typescript
|
||||
const contacts = await hubspot.listContacts({ maxItems: 100 });
|
||||
for await (const contact of contacts.items()) {
|
||||
console.log(contact.email);
|
||||
}
|
||||
```
|
||||
|
||||
### Governance Note
|
||||
|
||||
Direct API calls via `zapier.fetch()` are not subject to org app/action restriction policies. Use pre-built actions where possible if your org has governance requirements.
|
||||
|
||||
---
|
||||
|
||||
## Zaps API (Legacy)
|
||||
|
||||
### List Zaps
|
||||
|
||||
@@ -82,30 +176,29 @@ POST https://hooks.zapier.com/hooks/catch/{account_id}/{hook_id}/
|
||||
|
||||
## Common Marketing Automations
|
||||
|
||||
### Lead capture to CRM
|
||||
```
|
||||
Typeform → Zapier → HubSpot
|
||||
### With SDK (recommended for agents)
|
||||
|
||||
```typescript
|
||||
// Lead capture to CRM
|
||||
const hubspot = await zapier.apps.hubspot();
|
||||
await hubspot.createContact({ email, firstName, lastName });
|
||||
|
||||
// New customer notification
|
||||
const slack = await zapier.apps.slack();
|
||||
await slack.sendChannelMessage({ channel: "#revenue", message: `New customer: ${email}` });
|
||||
|
||||
// Add to email sequence
|
||||
const customerio = await zapier.apps.customerio();
|
||||
await customerio.createOrUpdatePerson({ email, plan: "pro" });
|
||||
```
|
||||
|
||||
### New customer notifications
|
||||
```
|
||||
Stripe (new customer) → Zapier → Slack
|
||||
```
|
||||
### With Zaps (no-code)
|
||||
|
||||
### Email sequence triggers
|
||||
```
|
||||
Form submission → Zapier → Customer.io
|
||||
```
|
||||
|
||||
### Social proof automation
|
||||
```
|
||||
New review → Zapier → Twitter/Slack
|
||||
```
|
||||
|
||||
### Referral tracking
|
||||
```
|
||||
New referral → Zapier → Spreadsheet + Slack
|
||||
```
|
||||
- Typeform → Zapier → HubSpot (lead capture)
|
||||
- Stripe → Zapier → Slack (new customer alerts)
|
||||
- Form submission → Zapier → Customer.io (email sequences)
|
||||
- New review → Zapier → Slack (social proof)
|
||||
- New referral → Zapier → Spreadsheet + Slack (referral tracking)
|
||||
|
||||
## Webhook Payload Structure
|
||||
|
||||
@@ -123,24 +216,24 @@ When sending to Zapier, structure data as flat JSON:
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- **Zap** - Automated workflow
|
||||
- **Zap** - Automated workflow (no-code)
|
||||
- **SDK** - Programmatic access to 8,000+ app integrations
|
||||
- **Trigger** - Event that starts a Zap
|
||||
- **Action** - Task performed by Zap
|
||||
- **Action** - Task performed by Zap or SDK
|
||||
- **Task** - Single action execution
|
||||
- **Filter** - Conditional logic
|
||||
- **Path** - Branching logic
|
||||
- **Connection** - Authenticated link to an app (shared between Zaps and SDK)
|
||||
|
||||
## When to Use
|
||||
|
||||
- Connecting marketing tools without code
|
||||
- Automating lead routing
|
||||
- Syncing data between platforms
|
||||
- Triggering notifications
|
||||
- Building marketing workflows
|
||||
- **SDK**: When an AI agent needs to interact with any app directly — send messages, create records, sync data
|
||||
- **Zaps**: When you need always-on automation without code
|
||||
- **Webhooks**: When triggering workflows from your own app
|
||||
- **API**: When managing Zaps programmatically
|
||||
|
||||
## Rate Limits
|
||||
|
||||
- 100 requests per minute
|
||||
- API: 100 requests per minute
|
||||
- SDK: Rate limits per connected app
|
||||
- Task limits by plan tier
|
||||
|
||||
## Relevant Skills
|
||||
@@ -148,3 +241,4 @@ When sending to Zapier, structure data as flat JSON:
|
||||
- email-sequence
|
||||
- analytics-tracking
|
||||
- referral-program
|
||||
- revops
|
||||
|
||||
Reference in New Issue
Block a user