Compare commits

...

62 Commits

Author SHA1 Message Date
Corey Haines f23b665461 feat: add conversion tracking reference to paid-ads skill
Cross-platform pixel setup guide covering Google Ads, Meta, LinkedIn,
and TikTok — installation, event configuration, server-side tracking,
and validation. Covers the marketer-level setup that was missing between
the high-level checklists and deep code-level implementation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-21 12:02:57 -07:00
Corey Haines 880386085e Merge pull request #247 from xiaolai/fix/nlpm-zapier-webhook-url-validation
fix: validate https:// scheme for hooks send webhook URL in zapier.js
2026-04-21 12:01:13 -07:00
Corey Haines dffa2fd3cb Merge pull request #240 from dgalarza/fix/community-marketing-yaml
Fix invalid YAML in community-marketing SKILL.md
2026-04-21 12:01:10 -07:00
claude[bot] db34fa2a21 fix: validate https:// scheme for hooks send webhook URL
The `hooks send` command accepted any user-supplied URL without validation.
This adds an https:// scheme check and a comment clarifying the intended use
(Zapier webhook catch hooks), matching Zapier's own webhook URL format.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-04-21 06:42:16 +00:00
Damian Galarza 0d586e4952 fix: quote community-marketing description to valid YAML
The unquoted description contained "Trigger phrases:" which YAML parsed
as a nested mapping, causing the skills CLI to silently drop the skill
during discovery. Wrap the value in double quotes and escape inner
quotes.
2026-04-14 18:18:17 -04:00
coreyhaines31 9125d8216e chore: sync skills with marketplace.json and README 2026-04-13 07:15:47 +00:00
Corey Haines 50e72e0a2d chore: sync development with main after v1.7.0 release 2026-04-13 00:10:59 -07:00
Corey Haines 978051caf1 Merge pull request #238 from coreyhaines31/release/v1.7.0
release: v1.7.0 — ASO audit skill, Zapier SDK, community & platform fixes
2026-04-13 00:10:14 -07:00
Corey Haines e8623ad57d Merge pull request #227 from coreyhaines31/feature/zapier-sdk
feat: add Zapier SDK integration for 8,000+ app access
2026-04-13 00:08:26 -07:00
Corey Haines e659c764dd Merge pull request #223 from coreyhaines31/fix/platform-limits-cleanup
fix: add line break between platform reference links
2026-04-13 00:08:26 -07:00
Corey Haines 58a9947df4 Merge pull request #222 from coreyhaines31/fix/community-content-additions
fix: add missing sections to community-marketing skill
2026-04-13 00:08:26 -07:00
Corey Haines ea4704a905 Merge pull request #221 from coreyhaines31/fix/aso-audit-content-additions
fix: clean up aso-audit skill for cross-agent compatibility
2026-04-13 00:08:26 -07:00
Corey Haines 883f9b6380 Merge pull request #205 from basseko/feature/aso-audit
feat: add aso-audit skill for App Store and Google Play optimization
2026-04-13 00:08:06 -07:00
Corey Haines 743f718a7c Merge pull request #227 from coreyhaines31/feature/zapier-sdk
feat: add Zapier SDK integration for 8,000+ app access
2026-04-13 00:07:23 -07:00
Corey Haines 5616e31192 feat: add Zapier SDK integration for 8,000+ app access
The Zapier SDK (@zapier/zapier-sdk) gives AI agents direct TypeScript
access to 8,000+ app integrations without building OAuth flows. Updates
the integration guide with SDK quick start, CLI commands, methods, and
marketing automation examples.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 11:09:35 -07:00
Corey Haines 2570f6ad4e Merge pull request #223 from coreyhaines31/fix/platform-limits-cleanup
fix: add line break between platform reference links
2026-04-06 14:45:31 -07:00
Corey Haines eb4256891a Merge pull request #222 from coreyhaines31/fix/community-content-additions
fix: add missing sections to community-marketing skill
2026-04-06 14:45:28 -07:00
Corey Haines 3448f557de Merge pull request #221 from coreyhaines31/fix/aso-audit-content-additions
fix: clean up aso-audit skill for cross-agent compatibility
2026-04-06 14:45:26 -07:00
Corey Haines 9f9c2d6f59 fix: add missing sections to community-marketing skill
- Add Task-Specific Questions section
- Add Related Skills section (referral-program, churn-prevention,
  social-content, customer-research)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 12:00:21 -07:00
Corey Haines 7df49f2be8 fix: clean up aso-audit skill for cross-agent compatibility
- Replace Playwright-specific tool references with generic instructions
- Convert description from YAML multiline to quoted string (repo convention)
- Add Task-Specific Questions section
- Add Related Skills section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 12:00:17 -07:00
coreyhaines31 2c7c108bd5 chore: sync skills with marketplace.json and README 2026-04-06 18:33:57 +00:00
Corey Haines fe670959f7 Merge pull request #220 from coreyhaines31/release/v1.6.0
release: v1.6.0 — community-marketing skill, 3 new tools, skill enhancements
2026-04-06 11:33:38 -07:00
Corey Haines 4874fe8979 Merge pull request #214 from coreyhaines31/feature/copy-editing-content-refresh
feat: add content refresh editing to copy-editing
2026-04-03 17:02:17 -07:00
Corey Haines d88009d1a4 Merge pull request #213 from coreyhaines31/feature/copy-editing-expert-panel
feat: add expert panel scoring to copy-editing
2026-04-03 17:02:17 -07:00
Corey Haines 78da95de86 Merge pull request #212 from coreyhaines31/feature/social-content-repurposing
feat: expand content repurposing in social-content
2026-04-03 17:02:17 -07:00
Corey Haines 7c2e29c526 Merge pull request #211 from coreyhaines31/feature/ab-test-growth-experiments
feat: add growth experimentation program to ab-test-setup
2026-04-03 17:02:17 -07:00
Corey Haines 49f520f4eb Merge pull request #210 from coreyhaines31/feature/add-rb2b-tool
feat: add RB2B and Gong to tools registry
2026-04-03 17:02:17 -07:00
Corey Haines ef8e08ffd2 Merge pull request #209 from coreyhaines31/feature/add-sparktoro
feat: add SparkToro audience research tool
2026-04-03 17:02:17 -07:00
Corey Haines e10c33406c Merge pull request #208 from coreyhaines31/feature/ai-seo-pricing-md
feat: add pricing.md guidance to ai-seo skill
2026-04-03 17:02:17 -07:00
Corey Haines c31adfe89e Merge pull request #207 from MarianoGarciaGz/feat/platform-limits-reference
feat: add platform limits reference for social-content skill
2026-04-03 17:02:12 -07:00
Corey Haines 1f295fa5c8 Merge pull request #78 from pangerlkr/feature/new-skill-community-marketing
feat: add community-marketing skill
2026-04-03 17:02:07 -07:00
Corey Haines af9fe5fb09 Merge pull request #214 from coreyhaines31/feature/copy-editing-content-refresh
feat: add content refresh editing to copy-editing
2026-04-03 16:58:45 -07:00
Corey Haines bb54a76215 fix: move content refresh to references, fix version and scope
- Move full content refresh content to references/content-refresh.md
  to stay under 500 lines when merged with expert panel PR
- Bump version to 1.3.0 (expert panel PR takes 1.2.0)
- Fix scope creep: remove structured data from step 6, keep it
  focused on scannable formatting
- Add content-refresh.md to References section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:56:24 -07:00
Corey Haines 884cf5e108 feat: add content refresh editing to copy-editing skill
Adds guidance for refreshing existing content — when to refresh vs.
rewrite, a 6-step refresh checklist (freshness, accuracy, voice, SEO,
proof, structure), and recommended cadence by content type. Bumps to v1.2.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:56:24 -07:00
Corey Haines 295f1eef37 Merge pull request #213 from coreyhaines31/feature/copy-editing-expert-panel
feat: add expert panel scoring to copy-editing
2026-04-03 16:56:10 -07:00
Corey Haines 5c90bb8075 Merge pull request #212 from coreyhaines31/feature/social-content-repurposing
feat: expand content repurposing in social-content
2026-04-03 16:56:03 -07:00
Corey Haines 2fe1310881 Merge pull request #211 from coreyhaines31/feature/ab-test-growth-experiments
feat: add growth experimentation program to ab-test-setup
2026-04-03 16:55:52 -07:00
Corey Haines 6020ef6943 Merge pull request #210 from coreyhaines31/feature/add-rb2b-tool
feat: add RB2B and Gong to tools registry
2026-04-03 16:55:44 -07:00
Corey Haines 42ac956cb7 fix: correct Gong API endpoints and RB2B integration model
Gong: fix endpoints to POST (not GET), remove non-existent /v2/deals,
use tenant-specific base URL, correct recording limitation, add source
links. RB2B: clarify API Partner Program vs native integrations, add
pricing volatility note and source links. Registry: fix '10k calls'
to '10k API calls'.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:50:28 -07:00
Corey Haines d10c161c04 feat: add RB2B and Gong to tools registry
RB2B for B2B website visitor identification (person-level de-anonymization,
intent signals, outreach routing). Gong for revenue intelligence (call
transcripts, competitive intel, deal insights, rep coaching).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:50:28 -07:00
Corey Haines 76d1f89df9 Merge pull request #209 from coreyhaines31/feature/add-sparktoro
feat: add SparkToro audience research tool
2026-04-03 16:48:36 -07:00
Corey Haines 85b93be6d6 Merge pull request #208 from coreyhaines31/feature/ai-seo-pricing-md
feat: add pricing.md guidance to ai-seo skill
2026-04-03 16:48:29 -07:00
Corey Haines dba8570870 fix: add line break between platform reference links
Separates the two reference links so they render as distinct lines
instead of a single block.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 17:54:46 -07:00
Corey Haines 28e8684fdd Merge pull request #205 from basseko/feature/aso-audit
feat: add aso-audit skill for App Store and Google Play optimization
2026-04-01 17:46:11 -07:00
Corey Haines 07a893efd0 Merge pull request #207 from MarianoGarciaGz/feat/platform-limits-reference
feat: add platform limits reference for social-content skill
2026-04-01 17:44:48 -07:00
Corey Haines fdb1202f12 Merge pull request #78 from pangerlkr/feature/new-skill-community-marketing
feat: add community-marketing skill
2026-04-01 17:40:43 -07:00
Corey Haines 314230b6db fix: address review feedback on expert panel scoring
- Add bridge sentence connecting to Seven Sweeps workflow
- Fix scoring criteria conflict: all personas 7+ with 8+ average
- Aligns step 5 target with the scoring rubric

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 16:38:10 -07:00
Corey Haines 330d220aca fix: address review feedback on social-content repurposing
- Soften unsourced "85%" stat to "most social video"
- Add "or audiograms" for audio-only podcast repurposing
- Broaden content atoms intro to apply across all formats

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:47:57 -07:00
Corey Haines c4cb25cb6c fix: address codex review feedback on growth experiments
Soften win-rate language to context-aware guidance. Clarify weekly
cadence to monitor guardrails while avoiding premature winner calls.
Expand playbook template with sample size, CI, guardrails, segment
deltas, and implementation status.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:46:03 -07:00
Corey Haines 4ceaf88e96 feat: add expert panel scoring to copy-editing skill
Multi-persona review technique for high-stakes copy. Assemble 3-5 expert
personas, score 1-10, iterate until 8+. Includes recommended panels for
landing pages, email sequences, and sales pages. Bumps to v1.2.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:17:01 -07:00
Corey Haines 7d85256e19 feat: expand content repurposing in social-content skill
Adds podcast/video repurposing with content atom extraction (quotable
moments, story arcs, tactical tips, controversial takes). Also adds
webinar and newsletter repurposing workflows. Bumps to v1.2.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:16:14 -07:00
Corey Haines 7c13fccdd9 feat: add growth experimentation program to ab-test-setup
Adds experiment loop, ICE prioritization, hypothesis generation sources,
experiment velocity tracking, and playbook pattern for promoting winners.
Turns ab-test-setup from a single-test skill into a continuous growth engine.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:15:18 -07:00
Corey Haines b902ed2d79 feat: add SparkToro as audience research tool
Add SparkToro integration guide, registry entry, and references in
customer-research skill. SparkToro reveals where your ICP spends time
using clickstream, search, and social data — essential for finding
podcasts, YouTube channels, subreddits, and websites your audience
engages with.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 13:50:02 -07:00
Corey Haines 47db68aaba feat: add pricing.md recommendation to ai-seo skill
AI agents are increasingly evaluating SaaS products on behalf of buyers.
Adding guidance on machine-readable pricing files (pricing.md/pricing.txt)
so companies don't get filtered out of AI-mediated buying journeys.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 13:24:53 -07:00
Mariano García fcac7f27b0 feat: add platform limits reference for social-content skill
Add hashtag limits, character counts, and visible text thresholds
for Instagram, Facebook, TikTok, LinkedIn, Twitter/X, YouTube,
Pinterest, and Threads.
2026-03-31 15:33:54 -06:00
Bassel Koshak fd98062849 fix: add product marketing context check to aso-audit skill 2026-03-31 16:31:24 +03:00
Bassel Koshak 40f20b2736 feat: add aso-audit skill for App Store and Google Play optimization
Live ASO audit skill that fetches real store listings, scores across 6
weighted dimensions (Title, Description, Visuals, Ratings, Metadata,
Conversion), and produces a prioritized action plan.

Features brand maturity system (Dominant/Established/Challenger) that
adjusts scoring to avoid penalizing deliberate brand choices by
household-name apps.

Backed by official Apple/Google developer docs and industry benchmarks
from AppTweak, SplitMetrics, and Sensor Tower.
2026-03-30 16:32:32 +03:00
Corey Haines 7c8c087486 release: v1.5.0 — customer-research skill, Nitrosend, Resend CLI, Firehose, Introw, Claude Code injection docs (#203)
* feat: add customer-research skill (#186)

* feat: add customer-research skill (#185)

Adds a new skill for conducting and synthesizing customer research —
covering analysis of existing assets (transcripts, surveys, support
tickets, NPS) and digital watering hole research (Reddit, G2, forums,
communities, review sites). Includes persona generation framework,
JTBD extraction, VOC quote banking, and competitive intel from reviews.

Also adds a detailed source-guides reference with per-platform playbooks
(Reddit operators, G2 review tiers, LinkedIn job posting mining, etc.)
and 10 evals covering the main trigger scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address Codex review of customer-research skill

- Fix evals.json schema to match repo convention (skill_name wrapper,
  integer IDs, expected_output, files fields)
- Add product-marketing-context.md assertion to all evals
- Add 2 new evals: B2C drop-off scenario and zero-research bootstrap
- Collapse 'Where to Look' in SKILL.md to a decision table; detail
  lives in source-guides.md
- Add Research Quality Guardrails section (confidence labels,
  recency window, sample bias, minimum viable sample)
- Add Related Skills section cross-linking 7 downstream skills
- Expand source-guides.md with full B2C section (app stores,
  TikTok/Instagram, consumer Reddit, Discord)
- Add Source Reliability and Confidence Scoring reference guide

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: correct alphabetical ordering of customer-research in manifest and README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add customer-research to skills relationship diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: move customer-research into Strategy column in diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: Resend CLI docs + Firehose integration (#188)

* feat: add Resend CLI docs and Firehose integration

- resend.md: update CLI availability (now official), add CLI install,
  setup, and common commands section
- firehose.md: new integration guide for real-time web content streaming
  API — query syntax, stream setup, marketing use cases (brand monitoring,
  competitive intel, lead triggers, PR/link building)
- REGISTRY.md: add firehose under Competitive Intelligence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "docs: document Claude Code dynamic content injection pattern"

This reverts commit 8e1ce7b363.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern (#189)

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: add Introw PRM as partner ecosystem integration (#193)

Great contribution — clean integration guide with solid MCP tool coverage, and the cross-references into referral-program, revops, launch-strategy, and sales-enablement are well-placed. Thanks!

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Tibo <72124096+CoopahG@users.noreply.github.com>
2026-03-27 23:48:16 -07:00
coreyhaines31 fcf4b4e784 chore: sync skills with marketplace.json and README 2026-03-28 06:32:23 +00:00
Corey Haines cc1a9c106b feat: add Nitrosend integration for AI-native email sequencing (#202)
* feat: add customer-research skill (#186)

* feat: add customer-research skill (#185)

Adds a new skill for conducting and synthesizing customer research —
covering analysis of existing assets (transcripts, surveys, support
tickets, NPS) and digital watering hole research (Reddit, G2, forums,
communities, review sites). Includes persona generation framework,
JTBD extraction, VOC quote banking, and competitive intel from reviews.

Also adds a detailed source-guides reference with per-platform playbooks
(Reddit operators, G2 review tiers, LinkedIn job posting mining, etc.)
and 10 evals covering the main trigger scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address Codex review of customer-research skill

- Fix evals.json schema to match repo convention (skill_name wrapper,
  integer IDs, expected_output, files fields)
- Add product-marketing-context.md assertion to all evals
- Add 2 new evals: B2C drop-off scenario and zero-research bootstrap
- Collapse 'Where to Look' in SKILL.md to a decision table; detail
  lives in source-guides.md
- Add Research Quality Guardrails section (confidence labels,
  recency window, sample bias, minimum viable sample)
- Add Related Skills section cross-linking 7 downstream skills
- Expand source-guides.md with full B2C section (app stores,
  TikTok/Instagram, consumer Reddit, Discord)
- Add Source Reliability and Confidence Scoring reference guide

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: correct alphabetical ordering of customer-research in manifest and README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add customer-research to skills relationship diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: move customer-research into Strategy column in diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: Resend CLI docs + Firehose integration (#188)

* feat: add Resend CLI docs and Firehose integration

- resend.md: update CLI availability (now official), add CLI install,
  setup, and common commands section
- firehose.md: new integration guide for real-time web content streaming
  API — query syntax, stream setup, marketing use cases (brand monitoring,
  competitive intel, lead triggers, PR/link building)
- REGISTRY.md: add firehose under Competitive Intelligence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "docs: document Claude Code dynamic content injection pattern"

This reverts commit 8e1ce7b363.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern (#189)

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: add Introw PRM as partner ecosystem integration (#193)

Great contribution — clean integration guide with solid MCP tool coverage, and the cross-references into referral-program, revops, launch-strategy, and sales-enablement are well-placed. Thanks!

* feat: add Nitrosend integration for AI-native email sequencing

Adds Nitrosend as a tool option for teams building email sequences via
AI agents — no dashboard required, full MCP control.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Tibo <72124096+CoopahG@users.noreply.github.com>
2026-03-27 23:32:13 -07:00
marfert cb4451c9a1 Update SKILL.md (#199)
Great catch — technically accurate and a clean improvement. Thanks!
2026-03-27 23:24:57 -07:00
Pangerkumzuk Longkumer 8657fd4f78 feat: add community-marketing skill
Added a comprehensive guide on community marketing strategies, including principles, playbooks, platform selection, and health metrics.
2026-03-06 07:48:29 +05:30
38 changed files with 3989 additions and 63 deletions
+4 -1
View File
@@ -12,7 +12,7 @@
"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, site architecture, and more",
"description": "36 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": [
@@ -20,12 +20,15 @@
"./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/content-strategy",
"./skills/copy-editing",
"./skills/copywriting",
"./skills/customer-research",
"./skills/email-sequence",
"./skills/form-cro",
"./skills/free-tool-strategy",
+34 -1
View File
@@ -168,7 +168,7 @@ This repository includes a tools registry for agent-compatible marketing tools.
- **Tool discovery**: Read `tools/REGISTRY.md` to see available tools and their capabilities
- **Integration details**: See `tools/integrations/{tool}.md` for API endpoints, auth, and common operations
- **MCP-enabled tools**: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam, composio
- **MCP-enabled tools**: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam, introw, composio
- **Composio** (integration layer): Adds MCP access to OAuth-heavy tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, etc.). See `tools/integrations/composio.md`
### Registry Structure
@@ -219,3 +219,36 @@ When using any skill from this repository:
## Skill Categories
See `README.md` for the current list of skills organized by category. When adding new skills, follow the naming patterns of existing skills in that category.
## Claude Code-Specific Enhancements
These patterns are **Claude Code only** and must not be added to `SKILL.md` files directly, as skills are designed to be cross-agent compatible (Codex, Cursor, Windsurf, etc.). Apply them locally in your own project's `.claude/skills/` overrides instead.
### Dynamic content injection with `!`command``
Claude Code supports embedding shell commands in SKILL.md using `` !`command` `` syntax. When the skill is invoked, Claude Code runs the command and injects the output inline — the model sees the result, not the instruction.
**Most useful application: auto-inject the product marketing context file**
Instead of every skill telling the agent "go check if `.agents/product-marketing-context.md` exists and read it," you can inject it automatically:
```markdown
Product context: !`cat .agents/product-marketing-context.md 2>/dev/null || echo "No product context file found — ask the user about their product before proceeding."`
```
Place this at the top of a skill's body (after frontmatter) to make context available immediately without any file-reading step.
**Other useful injections:**
```markdown
# Inject today's date for recency-sensitive skills
Today's date: !`date +%Y-%m-%d`
# Inject current git branch (useful for workflow skills)
Current branch: !`git branch --show-current 2>/dev/null`
# Inject recent commits for context
Recent commits: !`git log --oneline -5 2>/dev/null`
```
**Why this is Claude Code-only**: Other agents that load skills will see the literal `` !`command` `` string rather than executing it, which would appear as garbled instructions. Keep cross-agent skill files free of this syntax.
+8 -4
View File
@@ -32,8 +32,8 @@ Skills reference each other and build on shared context. The `product-marketing-
├──────────┤ ├──────────┤ ├──────────┤ ├────────────┤ ├──────────┤ ├─────────────┤ ├───────────┤
│seo-audit │ │page-cro │ │copywritng│ │paid-ads │ │referral │ │revops │ │mktg-ideas │
│ai-seo │ │signup-cro│ │copy-edit │ │ad-creative │ │free-tool │ │sales-enable │ │mktg-psych │
│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │
│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │customer-
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │research
│schema │ │popup-cro │ │social │ │ │ │ │ │competitor │ │ │
│content │ │paywall │ │ │ │ │ │ │ │ │ │ │
└────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ └────┬─────┘ └──────┬──────┘ └─────┬─────┘
@@ -44,6 +44,7 @@ Skills reference each other and build on shared context. The `product-marketing-
copywriting ↔ page-cro ↔ ab-test-setup
revops ↔ sales-enablement ↔ cold-email
seo-audit ↔ schema-markup ↔ ai-seo
customer-research → copywriting, page-cro, competitor-alternatives
```
See each skill's **Related Skills** section for the full dependency map.
@@ -53,16 +54,19 @@ 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... |
| [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. Use when the user mentions "customer... |
| [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... |
+89 -2
View File
@@ -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
View File
@@ -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
+312
View File
@@ -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
+107
View File
@@ -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/
+129
View File
@@ -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
```
+163
View File
@@ -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, 0100 members, 1001k, 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 2050 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 510 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
+63 -2
View File
@@ -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
+270
View File
@@ -0,0 +1,270 @@
---
name: customer-research
description: When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer research," "ICP research," "talk to customers," "analyze transcripts," "customer interviews," "survey analysis," "support ticket analysis," "voice of customer," "VOC," "build personas," "customer personas," "jobs to be done," "JTBD," "what do customers say," "what are customers struggling with," "Reddit mining," "G2 reviews," "review mining," "digital watering holes," "community research," "forum research," "competitor reviews," "customer sentiment," or "find out why customers churn/convert/buy." Use for both analyzing existing research assets AND gathering new research from online sources. For writing copy informed by research, see copywriting. For acting on research to improve pages, see page-cro.
metadata:
version: 1.0.0
---
# Customer Research
You are an expert customer researcher. Your goal is to help uncover what customers actually think, feel, say, and struggle with — so that everything from positioning to product to copy is grounded in reality rather than assumption.
## Before Starting
**Check for product marketing context first:**
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context to skip questions already answered.
---
## Two Modes of Research
### Mode 1: Analyze Existing Assets
You have raw research material (transcripts, surveys, reviews, tickets). Your job is to extract signal.
### Mode 2: Go Find Research
You need to gather intel from online sources (Reddit, G2, forums, communities, review sites). Your job is to know where to look and what to extract.
Most engagements combine both. Establish which mode applies before proceeding.
---
## Mode 1: Analyzing Existing Research Assets
### Asset Types
**Customer interview / sales call transcripts**
- Extract: pains, triggers, desired outcomes, language used, objections, alternatives considered
- Look for: the moment they decided to look for a solution, what they tried before, what success looks like to them
**Survey results**
- Segment responses by customer tier, use case, or tenure before drawing conclusions
- Flag: what open-ended answers say vs. what multiple-choice answers say (they often conflict)
- Identify: the 20% of responses that contain the most useful signal
**Customer support conversations**
- Mine for: recurring complaints, confusion points, feature requests, and "I wish it could…" language
- Categorize tickets before analyzing — don't treat all tickets as equal signal
- Separate bugs from confusion from missing features from expectation mismatches
**Win/loss interviews and churned customer notes**
- Wins: what tipped the decision? What almost made them choose a competitor?
- Losses and churn: was it price, features, fit, timing, or something else?
- Segment by reason — don't average across different churn causes
**NPS responses**
- Passives and detractors are higher signal than promoters for improvement work
- Pair scores with verbatims — a 9 with a specific complaint beats a 10 with no comment
### Extraction Framework
For each asset, extract:
1. **Jobs to Be Done** — what outcome is the customer trying to achieve?
- Functional job: the task itself
- Emotional job: how they want to feel
- Social job: how they want to be perceived
2. **Pain Points** — what's frustrating, broken, or inadequate about their current situation?
- Prioritize pains mentioned unprompted and with emotional language
3. **Trigger Events** — what changed that made them seek a solution?
- Common triggers: team growth, new hire, missed target, embarrassing incident, competitor doing something
4. **Desired Outcomes** — what does success look like in their words?
- Capture exact quotes, not paraphrases
5. **Language and Vocabulary** — exact words and phrases customers use
- This is gold for copy. "We were drowning in spreadsheets" > "manual process inefficiency"
6. **Alternatives Considered** — what else did they look at or try?
- Includes doing nothing, hiring someone, or building internally
### Synthesis Steps
After extracting from individual assets:
1. **Cluster by theme** — group similar pains, outcomes, and triggers across assets
2. **Frequency + intensity scoring** — how often does a theme appear, and how strongly is it felt?
3. **Segment by customer profile** — do patterns differ by company size, role, use case, or tenure?
4. **Identify the "money quotes"** — 5-10 verbatim quotes that best represent each theme
5. **Flag contradictions** — where do customers say one thing but do another?
### Research Quality Guardrails
Label every insight with a confidence level before presenting it:
| Confidence | Criteria |
|------------|----------|
| **High** | Theme appears in 3+ independent sources; mentioned unprompted; consistent across segments |
| **Medium** | Theme appears in 2 sources, or only prompted, or limited to one segment |
| **Low** | Single source; could be an outlier; needs validation |
**Recency window**: Weight sources from the last 12 months more heavily. Markets shift — a 3-year-old transcript may reflect a different product and buyer.
**Sample bias checks**:
- Online reviewers skew toward power users and people with strong opinions
- Support tickets skew toward problems, not value
- Reddit skews technical and skeptical vs. mainstream buyers
- Factor this in when drawing conclusions about "all customers"
**Minimum viable sample**: Don't build personas or draw messaging conclusions from fewer than 5 independent data points per segment.
---
## Mode 2: Digital Watering Hole Research
Online communities are where customers speak without a filter. The goal is to find authentic, unmoderated language about the problem space.
### Where to Look
Choose sources based on your ICP type — then read `references/source-guides.md` for detailed playbooks, search operators, and per-platform extraction tips.
| ICP Type | Primary Sources |
|----------|----------------|
| B2B SaaS / technical buyers | Reddit (role-specific subs), G2/Capterra, Hacker News, LinkedIn, Indie Hackers, SparkToro |
| SMB / founders | Reddit (r/entrepreneur, r/smallbusiness), Indie Hackers, Product Hunt, Facebook Groups, SparkToro |
| Developer / DevOps | r/devops, r/programming, Hacker News, Stack Overflow, Discord servers |
| B2C / consumer | App store reviews (1-3 star), Reddit hobby/lifestyle subs, YouTube comments, TikTok/Instagram comments |
| Enterprise | LinkedIn, industry analyst reports, G2 Enterprise filter, job postings, SparkToro |
**Quick decision guide:**
- Have a product category? → Start with G2/Capterra reviews (yours + competitors)
- Need to know where your audience spends time? → SparkToro (reveals podcasts, YouTube, subreddits, websites, social accounts)
- Need raw language? → Reddit and YouTube comments
- Need trigger events? → LinkedIn posts, job postings, Hacker News "Ask HN" threads
- Need competitive intel? → Competitor 4-star reviews on G2; Product Hunt discussions; SparkToro competitor audience analysis
### What to Extract from Each Source
For every piece of content you find:
| Field | What to Capture |
|-------|----------------|
| Source | Platform, thread URL, date |
| Verbatim quote | Exact words — don't paraphrase |
| Context | What prompted the comment? |
| Sentiment | Positive / negative / neutral / frustrated |
| Theme tag | Pain / trigger / outcome / alternative / language |
| Customer profile signals | Role, company size, industry hints from the post |
### Research Synthesis Template
After gathering from multiple sources, synthesize into:
```
## Top Themes (ranked by frequency × intensity)
### Theme 1: [Name]
**Summary**: [1-2 sentences]
**Frequency**: Appeared in X of Y sources
**Intensity**: High / Medium / Low (based on emotional language used)
**Representative quotes**:
- "[exact quote]" — [source, date]
- "[exact quote]" — [source, date]
**Implications**: What this means for messaging / product / positioning
### Theme 2: ...
```
---
## Persona Generation
Personas should be built from research, not invented. Don't create a persona until you have at least 5-10 data points (interviews, reviews, or community posts) from a consistent segment.
### Persona Structure
```
## [Persona Name] — [Role/Title]
**Profile**
- Title range: [e.g., "Marketing Manager to VP of Marketing"]
- Company size: [e.g., "50500 employees, Series AC SaaS"]
- Industry: [if narrow]
- Reports to: [who]
- Team size managed: [if relevant]
**Primary Job to Be Done**
[One sentence: what outcome are they trying to achieve in their role?]
**Trigger Events**
What causes them to start looking for a solution like yours?
- [trigger 1]
- [trigger 2]
**Top Pains**
1. [Pain — in their words if possible]
2. [Pain]
3. [Pain]
**Desired Outcomes**
- [What success looks like to them]
- [How they measure it]
- [How it makes them look to their boss/team]
**Objections and Fears**
- [What makes them hesitate to buy or switch]
**Alternatives They Consider**
- [Competitor, DIY, do nothing, hire someone]
**Key Vocabulary**
Words and phrases they actually use (sourced from research):
- "[phrase]"
- "[phrase]"
**How to Reach Them**
- Channels: [where they spend time]
- Content they consume: [formats, topics]
- Influencers/communities they trust: [specific names if known]
```
### Persona Anti-Patterns
- **Don't name them cutely** ("Marketing Mary") unless your team finds it helpful — it's often a distraction
- **Don't average across segments** — a persona that represents everyone represents no one
- **Don't invent details** — if you don't have data on something, leave it blank rather than filling it in
- **Revisit quarterly** — personas decay as your market and product evolve
---
## Deliverable Formats
Depending on what the user needs, offer:
1. **Research synthesis report** — themes, quotes, patterns, and implications
2. **VOC quote bank** — organized verbatim quotes by theme, for use in copy
3. **Persona document** — 1-3 personas built from the research
4. **Jobs-to-be-done map** — functional, emotional, and social jobs by segment
5. **Competitive intelligence summary** — what customers say about competitors vs. you
6. **Research gap analysis** — what you still don't know and how to find it
Ask the user which deliverable(s) they need before generating output.
---
## Questions to Ask Before Proceeding
If context is unclear:
1. **What's the goal?** Improve messaging? Build personas? Find product gaps? Understand churn?
2. **What do you already have?** (transcripts, surveys, tickets, G2 reviews, nothing)
3. **Who is the target segment?** (all customers, a specific tier, churned users, prospects who didn't buy)
4. **What's your product?** (if not in the product marketing context file)
5. **What do you want delivered?** (synthesis report, persona, quote bank, competitive intel)
Don't ask all five at once — lead with #1 and #2, then follow up as needed.
---
## Related Skills
| When to hand off | Skill |
|-----------------|-------|
| Writing copy informed by the research | `copywriting` |
| Optimizing a page using VOC insights | `page-cro` |
| Building a competitor comparison page | `competitor-alternatives` |
| Creating a churn prevention strategy from churn research | `churn-prevention` |
| Planning paid ads informed by research | `paid-ads` |
| Writing cold email using research on pain/trigger | `cold-email` |
| Planning content based on discovered topics | `content-strategy` |
+162
View File
@@ -0,0 +1,162 @@
{
"skill_name": "customer-research",
"evals": [
{
"id": 1,
"prompt": "I have 20 customer interview transcripts. Help me analyze them.",
"expected_output": "Should check for product-marketing-context.md first. Should ask about the goal before analyzing (improve messaging, build personas, find product gaps, etc.). Should apply the extraction framework: jobs to be done, pain points, trigger events, desired outcomes, language/vocabulary, alternatives considered. Should recommend clustering by theme, frequency + intensity scoring, and identifying money quotes. Should ask which deliverable is needed.",
"assertions": [
"Checks for product-marketing-context.md",
"Asks about the goal before diving in (improve messaging, build personas, find gaps, etc.)",
"Mentions extracting jobs to be done, pain points, and desired outcomes",
"Suggests organizing quotes by theme",
"References frequency and intensity scoring",
"Asks which deliverable is needed"
],
"files": []
},
{
"id": 2,
"prompt": "I want to do ICP research but I don't have any customer interviews yet.",
"expected_output": "Should check for product-marketing-context.md first. Should recommend digital watering hole research as a starting point. Should mention Reddit, G2, Capterra, forums, or niche communities as sources. Should offer to plan a research approach and explain what to extract from online sources. Should note this is Mode 2 and ask what product/category to research.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends digital watering hole research as an alternative",
"Mentions Reddit, G2, or review sites as starting points",
"Asks what product or category to research",
"Offers to help extract insights from online sources"
],
"files": []
},
{
"id": 3,
"prompt": "Mine Reddit and G2 to understand what people hate about project management software.",
"expected_output": "Should check for product-marketing-context.md first. Should identify relevant subreddits (r/projectmanagement, r/productivity, r/agile) and search strategies. Should recommend reading 3-star and 1-star G2 reviews and competitor 4-star reviews. Should plan to extract verbatim quotes, pain themes, and switching triggers. Should apply the extraction table (source, quote, context, sentiment, theme tag, profile signals).",
"assertions": [
"Checks for product-marketing-context.md",
"Identifies relevant subreddits or search strategies for project management",
"Suggests reading 3-star and 1-star G2 reviews",
"Recommends competitor 4-star reviews for buried complaints",
"Plans to extract verbatim quotes and pain themes",
"Mentions what to look for: complaints, workarounds, switching triggers"
],
"files": []
},
{
"id": 4,
"prompt": "Build me a customer persona for a marketing manager at a B2B SaaS company.",
"expected_output": "Should check for product-marketing-context.md first. Should ask if there is existing research to build from before generating a persona. Should warn against inventing details without data. Should use the persona structure: profile, primary JTBD, trigger events, top pains, desired outcomes, objections, alternatives, key vocabulary, how to reach them. Should note that personas should be built from at least 5-10 data points.",
"assertions": [
"Checks for product-marketing-context.md",
"Asks if there is existing research to build from before inventing details",
"Warns against creating personas without data",
"Includes jobs to be done, pains, triggers, and desired outcomes in persona structure",
"Mentions the need to capture actual customer vocabulary",
"Notes minimum data threshold (5-10 data points)"
],
"files": []
},
{
"id": 5,
"prompt": "I have 6 months of customer support tickets. What insights can I pull from them?",
"expected_output": "Should check for product-marketing-context.md first. Should recommend categorizing tickets before analyzing (bugs vs. confusion vs. feature requests vs. expectation mismatches). Should warn against treating all tickets as equal signal. Should suggest extracting recurring language, patterns, and 'I wish it could…' phrases. Should ask about the goal — product improvement, messaging, reducing support load, or something else.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends categorizing tickets before analyzing (bugs vs confusion vs feature requests)",
"Warns against treating all tickets as equal signal",
"Mentions extracting recurring language and patterns",
"Asks about the goal — product improvement, messaging, or something else"
],
"files": []
},
{
"id": 6,
"prompt": "What are customers saying about my competitors on review sites?",
"expected_output": "Should check for product-marketing-context.md first. Should ask which competitors to research. Should recommend G2 and Capterra as primary sources. Should specifically call out reading competitor 4-star reviews for buried complaints. Should describe what to extract: what they love (battlecard intel), what frustrates them (opportunities), unmet needs. Should use the review mining template.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends reading competitor 4-star reviews specifically for buried complaints",
"Mentions G2 or Capterra as sources",
"Describes what to extract: what they love, what frustrates them, unmet needs",
"Frames as competitive intelligence input"
],
"files": []
},
{
"id": 7,
"prompt": "Help me do voice of customer research for a new SaaS in the HR space.",
"expected_output": "Should check for product-marketing-context.md first. Should ask about the specific ICP segment within HR (recruiter, HR generalist, CHRO, etc.). Should suggest relevant digital watering holes: r/humanresources, r/recruiting, HR Slack communities, G2 HR category, LinkedIn. Should plan to extract verbatim language for copy use. Should offer to produce a VOC quote bank as a deliverable.",
"assertions": [
"Checks for product-marketing-context.md",
"Asks about target ICP segment within HR",
"Suggests relevant digital watering holes (subreddits, G2 categories, communities)",
"Plans to extract verbatim language for copy use",
"Mentions organizing findings into a VOC quote bank"
],
"files": []
},
{
"id": 8,
"prompt": "I want to understand why customers churn. I have exit survey results.",
"expected_output": "Should check for product-marketing-context.md first. Should recommend segmenting churn reasons before analyzing — do not average across different causes. Should suggest pairing open-ended responses with quantitative data. Should ask if win/loss interview data or support tickets are also available. Should apply confidence labels (high/med/low) based on sample size and source consistency.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends segmenting churn reasons before analyzing",
"Warns against averaging across different churn causes",
"Suggests pairing open-ended responses with quantitative data",
"Asks if win/loss interview data is also available"
],
"files": []
},
{
"id": 9,
"prompt": "Find the digital watering holes where DevOps engineers talk shop.",
"expected_output": "Should check for product-marketing-context.md first. Should identify specific relevant communities: r/devops, r/sysadmin, Hacker News, DevOps-focused Discord/Slack groups, LinkedIn, Stack Overflow. Should suggest what to search for in those communities. Should describe what signal to extract from each source type and reference source-guides.md for detailed playbooks.",
"assertions": [
"Checks for product-marketing-context.md",
"Mentions specific relevant communities (r/devops, Hacker News, LinkedIn, Discord)",
"Suggests what to search for in those communities",
"Describes what signal to extract from each source type"
],
"files": []
},
{
"id": 10,
"prompt": "Turn my customer research into messaging I can use on my homepage.",
"expected_output": "Should check for product-marketing-context.md first. Should extract VOC language and top themes before moving to copy. Should identify the highest-signal quotes and language patterns. Should produce a VOC summary or quote bank, then hand off to the copywriting skill for the actual copy writing step rather than writing homepage copy directly.",
"assertions": [
"Checks for product-marketing-context.md",
"Extracts the VOC language and themes first before jumping to copy",
"Identifies the highest-signal quotes for messaging",
"References the copywriting skill for the actual copy writing step"
],
"files": []
},
{
"id": 11,
"prompt": "I run a mobile fitness app and want to understand why users drop off after week 2.",
"expected_output": "Should check for product-marketing-context.md first. Should recognize this as a B2C research scenario. Should suggest B2C-appropriate sources: app store reviews (1-3 star), Reddit fitness communities, YouTube comment sections on fitness apps, TikTok/Instagram comments. Should also recommend in-app surveys and analyzing support tickets/reviews. Should frame around activation and habit formation research.",
"assertions": [
"Checks for product-marketing-context.md",
"Recognizes this as a B2C research scenario",
"Suggests app store reviews as a primary source",
"Mentions Reddit or community sources relevant to fitness/consumer apps",
"Frames around understanding drop-off triggers and desired outcomes"
],
"files": []
},
{
"id": 12,
"prompt": "I have no existing research and don't know who my best customers are yet.",
"expected_output": "Should check for product-marketing-context.md first. Should treat this as a bootstrap research scenario. Should recommend starting with hypothesis formation before gathering data. Should suggest a minimum viable research plan: 5-10 customer interviews + digital watering hole scan. Should provide interview recruiting tips and what questions to ask. Should warn against building personas before collecting any data.",
"assertions": [
"Checks for product-marketing-context.md",
"Recognizes this as a zero-research bootstrap scenario",
"Recommends forming hypotheses before gathering data",
"Suggests a minimum viable research plan (interviews + online sources)",
"Warns against building personas without any data"
],
"files": []
}
]
}
@@ -0,0 +1,401 @@
# Customer Research — Source Guides
Detailed, source-by-source playbooks for gathering customer intelligence from online watering holes.
---
## Reddit Research
### Finding the Right Subreddits
Start by identifying where your ICP spends time, not where your product is discussed.
**Discovery methods:**
- Search `site:reddit.com "[job title] tools"` or `site:reddit.com "[problem category] software"`
- Use [subreddit search tools](https://www.reddit.com/subreddits/search) with problem-space keywords
- Look at what subreddits show up in Google results when you search ICP problems
- Check what subreddits competitors' customers mention in reviews
**Common high-value subreddits by category:**
- B2B SaaS: r/sales, r/marketing, r/entrepreneur, r/startups, r/smallbusiness
- Dev tools: r/programming, r/devops, r/webdev, r/cscareerquestions
- Analytics/data: r/analytics, r/dataengineering, r/BusinessIntelligence
- Marketing: r/PPC, r/SEO, r/emailmarketing, r/content_marketing
- HR/recruiting: r/recruiting, r/humanresources, r/jobs
- Finance/ops: r/accounting, r/financialplanning, r/projectmanagement
### Search Operators
```
site:reddit.com/r/[subreddit] "[keyword]"
site:reddit.com "[problem]" "recommend" OR "suggestion" OR "alternative"
site:reddit.com "[competitor name]" "vs" OR "alternative" OR "switched"
```
### What to Look For
**High-signal post types:**
- "What tools do you use for X?" → reveals alternatives and vocab
- "Frustrated with [competitor], looking for alternatives" → reveals pain and switching triggers
- "How do you handle X?" → reveals workflow and workarounds
- "Is [your category] worth it?" → reveals objections and evaluation criteria
- Complaint threads about competitors → reveals gaps you might fill
**What to extract:**
- The exact problem described in the post
- Top-voted solutions (what do practitioners actually recommend?)
- Complaints about existing solutions in comments
- The language used — note specific words and phrases
- Upvote patterns — consensus vs. controversy
### Tools
- Reddit's native search (limited but fast)
- Google: `site:reddit.com [query]` (better results)
- Pullpush.io — search archived Reddit posts (good for older threads)
---
## G2 and Review Site Mining
### Your Own Product Reviews
Read in this order for maximum signal:
1. **3-star reviews** — these are the most honest. Customer liked it enough to stay but felt something was missing.
2. **1-star reviews** — understand the failure modes. Separate product issues from support/onboarding issues.
3. **5-star reviews** — extract the "what they love" language. These are your proof points.
4. **4-star reviews** — often contain "the only thing I wish…" buried in praise.
**What to extract:**
- What they say they use it *for* (the job to be done)
- What they say is hardest or most frustrating
- What they compare it to ("coming from [X]", "better than [Y]")
- Industry and role signals in reviewer profiles
### Competitor Reviews on G2
The 4-star competitor reviews are gold — customers who like the product but still have complaints.
**G2 structure to exploit:**
- "What do you like best?" → their strengths (your battlecard intel)
- "What do you dislike?" → their weaknesses (your opportunities)
- "What problems are you solving?" → the job to be done
**Capterra** has similar structure. **Trustpilot** skews B2C. **AppSumo** reviews are useful for SMB/prosumer SaaS.
### Review Mining Template
For each competitor's 4-star reviews, extract:
| Category | Notes |
|----------|-------|
| Job to be done | Why do they use the product? |
| Top praise | What do they love (and might be hard for you to match)? |
| Top complaint | What frustrates them? |
| Switching context | Did they mention switching from something else? |
| Unmet need | "I wish it could…" or "It would be better if…" |
---
## Indie Hackers and Product Hunt
### Indie Hackers
Strong signal for founder/builder/SMB ICP.
**Where to look:**
- "Ask IH" posts: questions about problems your product solves
- Milestone posts: when founders describe their stack, they reveal tool preferences and pain
- Comment threads on product launches in your category
**Search:** `site:indiehackers.com "[problem]"` or use IH's native search.
### Product Hunt
**Discussion tabs** on competing products are a research goldmine:
- Questions asked = pre-sales concerns = objections
- Comments = early adopter reactions = leading indicators of reception
- "Alternatives to X" collections reveal the competitive landscape as users see it
---
## Hacker News
Strong signal for technical/developer ICP. Skews toward builders and skeptics.
**High-value searches:**
- `site:news.ycombinator.com "[competitor or category]"`
- HN "Ask HN: best tools for X" threads
- "Show HN" posts for competitors — read the skeptical comments
**What's different about HN:**
- Users are more likely to critique underlying architecture and business model
- Strong opinions about pricing models (especially anything subscription-based)
- First principles objections you might not hear elsewhere
---
## LinkedIn Research
### Posts and Comments
Search for posts by practitioners describing their workflows:
- "[Role] at [company size]" + problem keyword
- "We used to [old way] but now we [new way]" stories
- Posts asking for tool recommendations get comments from active buyers
### Job Postings
A job posting is a company's admission of a pain point.
**What to look for:**
- What tools are listed as "nice to have" vs. "required"? (reveals stack and adjacent tools)
- What metrics and outcomes are mentioned in the role description?
- What does the role spend most of its time doing? (reveals the job to be done)
**Search:** `site:linkedin.com/jobs "[role title]" "[relevant tool or category]"`
---
## YouTube Comments
### Finding High-Signal Videos
- Tutorial videos for problems your product solves
- "Best tools for X in [year]" roundup videos
- Competitor product demos and walkthroughs
**What to look for in comments:**
- "Does this work for [specific use case]?" → edge cases and unmet needs
- "I tried this but…" → failure points
- "What about [competitor]?" → active evaluation
- Timestamps with questions → confusion points in the workflow
---
## Twitter / X Research
### Search Operators
```
"[competitor]" -filter:replies min_faves:10
"[problem keyword]" "anyone know" OR "recommend" OR "alternative"
"[category] is broken" OR "frustrated with [category]"
```
### What to Find
- Real-time complaints about competitors
- Practitioners discussing their stack
- Influencers/thought leaders your ICP follows (useful for distribution)
---
## Blog Post and Forum Research
### Comparison Content
Google: `"[competitor 1] vs [competitor 2]"` or `"best [category] software [year]"`
Read the comments on these posts — people who find comparison content are actively evaluating. Their comments are questions your sales process should answer.
### Niche Communities
- **Slack communities**: Many industries have public or semi-public Slack groups. Search "[industry] Slack community".
- **Discord servers**: Growing for developer and creator communities.
- **Facebook Groups**: Still strong for SMB, e-commerce, agency, and coach/consultant ICP.
- **Circle/Mighty Networks communities**: Check if there are paid communities in your ICP's space.
---
## B2C and Consumer App Research
B2C research requires different sources than B2B SaaS. Consumer buyers don't congregate on LinkedIn or G2 — they leave traces in app stores, social media, and communities built around the activity your product serves.
### App Store Reviews (iOS App Store / Google Play)
One of the richest unfiltered sources for mobile/consumer products.
**Read in this order:**
1. **1-2 star reviews** — failure modes, unmet expectations, frustration peaks
2. **3-star reviews** — honest tradeoffs and "it's good but…" feedback
3. **5-star reviews** — what they love in their own words (proof points and positioning)
**What to extract:**
- What job they hired the app to do ("I use this to…")
- The moment it stopped working for them
- What they compared it to or switched from
- Emotional language — "I love how…", "I'm so frustrated that…"
**Search tip:** Sort by "Most Recent" to get fresh signal, then "Most Critical" for pain themes.
### Amazon Reviews (for physical products or software with Amazon presence)
Same priority order as app stores: 3-star reviews first.
**G2 analog for consumer SaaS**: Trustpilot, Sitejabber, and product-specific review aggregators.
### Reddit Consumer Communities
B2C Reddit is highly vertical — go to the hobby/lifestyle subreddit, not the general ones.
**Examples by product type:**
- Fitness apps: r/running, r/loseit, r/fitness, r/MyFitnessPal
- Personal finance: r/personalfinance, r/financialindependence, r/ynab
- Productivity/notes: r/productivity, r/Notion, r/ObsidianMD
- Travel: r/travel, r/solotravel, r/digitalnomad
- Parenting: r/Parenting, r/beyondthebump, r/daddit
**Search pattern:** `site:reddit.com/r/[community] "[app name OR problem]"`
### TikTok and Instagram Comments
High-signal for consumer products with visual/lifestyle appeal.
**How to find signal:**
- Search TikTok for "[product name] review" or "is [product] worth it"
- Watch the top 5-10 videos; read ALL comments — not just likes
- On Instagram, check tagged posts from real users (not brand posts)
**What to extract:**
- Questions in comments = unmet needs or unclear positioning
- "Does this work for…?" = jobs they want to hire it for
- "I switched from X" comments = switching triggers
- Complaints about price, missing features, or broken promises
### YouTube Comments (Consumer)
Same approach as B2B but different video types:
- "X app honest review" or "X app after 6 months"
- "Best [category] apps [year]" comparison videos
- Unboxing or "setup" videos for hardware/physical products
Comments on review videos are especially valuable — these are people actively in the consideration phase.
### Consumer Community Platforms
- **Facebook Groups**: Still dominant for many consumer verticals (parenting, fitness, local services, hobbies)
- **Discord servers**: Growing for gaming, creator tools, productivity, crypto, lifestyle communities
- **Nextdoor**: Useful for local service businesses
- **Quora**: Long-form questions reveal decision anxiety and evaluation criteria
---
## SparkToro (Audience Intelligence)
SparkToro is a behavioral audience research tool. Instead of mining individual posts and comments, it aggregates clickstream, search, and social data to show what your audience does at scale — what they read, watch, listen to, follow, and search for.
### When to Use SparkToro vs. Manual Research
- **SparkToro first** when you need to understand where your ICP spends time, what content they consume, and which influencers they follow — it answers these questions in seconds with aggregated data
- **Manual research first** (Reddit, G2, communities) when you need raw language, exact quotes, emotional context, and the "why" behind behavior
- **Best together**: Use SparkToro to identify which podcasts, subreddits, and websites matter, then go mine those sources manually for voice-of-customer language
### Key Queries to Run
**By competitor:**
- "People who follow @competitor" — reveals shared audience affinities
- "People who visit competitor.com" — shows what else they consume
**By audience description:**
- "People who frequently talk about [topic]" — finds audience behaviors
- "People whose bio contains [job title]" — profiles a role-based segment
**By your own audience:**
- "People who visit yourdomain.com" — understand your actual audience
- Compare against competitor audience profiles to find gaps
### What to Extract
| Data Type | What It Tells You | Use It For |
|-----------|------------------|------------|
| Top websites visited | Where your audience reads | Content partnerships, guest posting targets |
| Top podcasts | What they listen to | Podcast guesting, sponsorship decisions |
| Top YouTube channels | What they watch | Video content strategy, ad placements |
| Top subreddits | Where they discuss | Community participation, Reddit ad targeting |
| Search keywords | What they Google | SEO and content topic planning |
| AI prompt topics | What they ask AI tools | Emerging content opportunities |
| Social accounts followed | Who influences them | Influencer partnerships, co-marketing |
| Demographics | Who they are | Persona building, ad targeting |
### Source Weighting
SparkToro data is aggregated and anonymized — it shows patterns, not individual opinions. Treat it as:
- **High confidence** for behavioral data (what they visit, follow, search for)
- **Medium confidence** for demographic data (self-reported, may be incomplete)
- **Not a substitute** for qualitative research (doesn't capture language, emotions, or the "why")
### Limitations
- Free tier: 5 reports/month, shallow results (top 510)
- No public API — all research done through web interface
- Skews English-language, US-centric
- Shows what audiences do, not why — pair with qualitative sources
See [tools/integrations/sparktoro.md](../../../tools/integrations/sparktoro.md) for full tool details and pricing.
---
## Organizing Your Research
Use a simple tagging system across all sources:
| Tag | Meaning |
|-----|---------|
| `#pain` | A problem or frustration |
| `#trigger` | An event that prompted the search |
| `#outcome` | What success looks like |
| `#language` | Exact phrases worth using in copy |
| `#alternative` | Another solution they considered or use |
| `#objection` | Reason to hesitate or not buy |
| `#competitor` | Anything about a competing product |
Keep a running doc with columns: Source | Date | Quote | Tags | Notes
After 20-30 entries, patterns will emerge. Look for quotes that appear in multiple unrelated sources — those are your highest-confidence insights.
---
## Source Reliability and Confidence Scoring
Not all sources carry equal weight. Use this guide when assigning confidence labels.
### Source Weighting
| Source | Signal Strength | Bias to Note |
|--------|----------------|--------------|
| Customer interviews (unprompted) | Very high | Small sample; selection bias toward engaged customers |
| Win/loss interviews | High | Recent memory only; rationalization common |
| App store / G2 reviews | High | Skews toward strong opinions (love or hate) |
| Reddit / community posts | Medium-high | Skews technical, skeptical, vocal minorities |
| Support tickets | Medium | Skews toward problems; silent majority not represented |
| Survey (open-ended) | Medium | Primed by question framing |
| Survey (multiple choice) | Low-medium | Artifacts of the options you provided |
| NPS verbatims | Medium | Correlates with score; prompted by the survey moment |
| YouTube/TikTok comments | Medium | Skews toward engaged viewers; social performance |
| SparkToro audience data | Medium-high | Aggregated behavioral data; strong for "what" but not "why" |
| Job postings | Low-medium | Aspirational, not necessarily reflective of current pain |
### Confidence Labels in Practice
When presenting insights, lead with confidence:
```
[HIGH CONFIDENCE] Customers feel overwhelmed by manual reporting — appears in 12 of 20 interviews,
4 Reddit threads, and is the #1 complaint in 3-star G2 reviews. Consistent across SMB and mid-market.
[MEDIUM CONFIDENCE] Customers compare us to spreadsheets more than to direct competitors —
mentioned in 6 interviews and 3 Reddit threads, but not yet seen in review data.
[LOW CONFIDENCE] Enterprise buyers may have procurement concerns — mentioned by 2 interviewees
from companies 500+. Needs more signal before acting on it.
```
### Recency Window
- **Use as primary source**: Data from the last 12 months
- **Use with caution**: 12-24 months (product and market may have shifted)
- **Use only for baseline context**: 2+ years old
When a theme appears consistently across old and new data, that's a durable signal worth acting on.
+1
View File
@@ -293,6 +293,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key email
|------|----------|:---:|-------|
| **Customer.io** | Behavior-based automation | - | [customer-io.md](../../tools/integrations/customer-io.md) |
| **Mailchimp** | SMB email marketing | ✓ | [mailchimp.md](../../tools/integrations/mailchimp.md) |
| **Nitrosend** | AI-native email (sequences via prompts) | ✓ | [nitrosend.md](../../tools/integrations/nitrosend.md) |
| **Resend** | Developer-friendly transactional | ✓ | [resend.md](../../tools/integrations/resend.md) |
| **SendGrid** | Transactional email at scale | - | [sendgrid.md](../../tools/integrations/sendgrid.md) |
| **Kit** | Creator/newsletter focused | - | [kit.md](../../tools/integrations/kit.md) |
+1 -1
View File
@@ -93,7 +93,7 @@ Tap into someone else's audience to shortcut the hardest part—getting noticed.
1. List industry leaders your audience follows
2. Pitch win-win collaborations
3. Use tools like SparkToro or Listen Notes to find audience overlap
4. Set up affiliate/referral incentives
4. Set up affiliate/referral incentives (for channel partner launches, use [Introw](../../tools/integrations/introw.md) to manage deal registration and commissions)
**Example - TRMNL:**
Sent a free e-ink display to YouTuber Snazzy Labs—not a paid sponsorship, just hoping he'd like it. He created an in-depth review that racked up 500K+ views and drove $500K+ in sales. They also set up an affiliate program for ongoing promotion.
+3 -1
View File
@@ -245,6 +245,8 @@ Before launching campaigns, ensure proper tracking and account setup.
**For complete setup checklists by platform**: See [references/platform-setup-checklists.md](references/platform-setup-checklists.md)
**For conversion pixel installation and event setup**: See [references/conversion-tracking.md](references/conversion-tracking.md)
### Universal Pre-Launch Checklist
- [ ] Conversion tracking tested with real conversion
- [ ] Landing page loads fast (<3 sec)
@@ -302,7 +304,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key adver
| **LinkedIn Ads** | B2B, job title targeting | - | [linkedin-ads.md](../../tools/integrations/linkedin-ads.md) |
| **TikTok Ads** | Younger demographics, video | - | [tiktok-ads.md](../../tools/integrations/tiktok-ads.md) |
For tracking, see also: [ga4.md](../../tools/integrations/ga4.md), [segment.md](../../tools/integrations/segment.md)
For tracking setup, see [references/conversion-tracking.md](references/conversion-tracking.md), [ga4.md](../../tools/integrations/ga4.md), [segment.md](../../tools/integrations/segment.md)
---
@@ -0,0 +1,361 @@
# Conversion Tracking Setup
How to set up conversion tracking pixels across ad platforms. This guide covers installation, event configuration, and validation — everything a marketer needs to ensure ad spend is properly attributed.
---
## Why This Matters
Without conversion tracking:
- Ad platforms can't optimize for your actual goals
- You're flying blind on ROAS and CPA
- Retargeting audiences can't be built
- You'll waste budget on impressions that don't convert
Get tracking right before spending a dollar on ads.
---
## Platform Pixels Overview
| Platform | Pixel/Tag Name | Events API | Key Events |
|----------|---------------|:----------:|------------|
| **Google Ads** | Google tag (gtag.js) | Enhanced Conversions | purchase, sign_up, generate_lead |
| **Meta** | Meta Pixel + CAPI | Conversions API | Purchase, Lead, ViewContent, AddToCart |
| **LinkedIn** | Insight Tag | Conversions API | conversion (URL or event-based) |
| **TikTok** | TikTok Pixel | Events API | Purchase, ViewContent, AddToCart, CompleteRegistration |
| **Twitter/X** | Twitter Pixel | - | Purchase, SignUp, Download |
---
## Google Ads
### Install the Google tag
Add to every page, in `<head>`:
```html
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-XXXXXXXXX');
</script>
```
Replace `AW-XXXXXXXXX` with your Conversion ID from Google Ads > Tools > Conversions.
### Set up conversion actions
In Google Ads > Goals > Conversions > New conversion action:
| Conversion | Category | Value | Count |
|-----------|----------|-------|-------|
| Purchase | Purchase | Dynamic (order value) | Every |
| Sign up / Lead | Sign-up | Fixed ($X estimated value) | One |
| Demo request | Lead | Fixed ($X estimated value) | One |
| Free trial start | Sign-up | Fixed ($X estimated value) | One |
### Fire conversion events
```javascript
// Purchase
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/CONVERSION_LABEL',
'value': 99.00,
'currency': 'USD',
'transaction_id': 'ORDER-123'
});
// Lead / Sign up
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/CONVERSION_LABEL',
'value': 50.00,
'currency': 'USD'
});
```
### Enhanced Conversions
Sends hashed first-party data (email, phone) to improve attribution after cookie restrictions. Enable in Google Ads > Goals > Settings > Enhanced conversions.
```javascript
gtag('set', 'user_data', {
'email': 'user@example.com', // auto-hashed by gtag
'phone_number': '+11234567890'
});
```
### Google Tag Manager alternative
If using GTM instead of inline gtag.js:
1. Install GTM container on all pages
2. Create Google Ads conversion tags in GTM
3. Set triggers for conversion events (form submissions, purchases)
4. Use the Data Layer to pass dynamic values (order amount, transaction ID)
5. Test with GTM Preview mode before publishing
---
## Meta (Facebook/Instagram)
### Install the Meta Pixel
Add to every page, in `<head>`:
```html
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>
```
Replace `YOUR_PIXEL_ID` from Meta Events Manager.
### Standard events
```javascript
// View a product or key page
fbq('track', 'ViewContent', {
content_name: 'Pro Plan',
content_category: 'Pricing',
value: 29.00,
currency: 'USD'
});
// Lead capture (form submit, demo request)
fbq('track', 'Lead', {
content_name: 'Demo Request',
value: 50.00,
currency: 'USD'
});
// Purchase
fbq('track', 'Purchase', {
value: 99.00,
currency: 'USD',
content_type: 'product',
contents: [{ id: 'pro-plan', quantity: 1 }]
});
// Add to cart (e-commerce)
fbq('track', 'AddToCart', {
content_ids: ['SKU-123'],
content_type: 'product',
value: 49.00,
currency: 'USD'
});
```
### Conversions API (CAPI)
Server-side tracking that works alongside the pixel. Required for accurate tracking after iOS 14+ and cookie restrictions.
Set up via:
- **Direct integration** — send events from your server to Meta's API
- **Partner integrations** — Shopify, WooCommerce, Segment, etc. have built-in CAPI support
- **Conversions API Gateway** — Meta's managed solution via AWS
Key: send the same events from both pixel (browser) AND CAPI (server), with a shared `event_id` for deduplication.
### Aggregated Event Measurement
Required for iOS 14+ tracking. In Events Manager > Aggregated Event Measurement:
1. Verify your domain
2. Configure and prioritize your top 8 events in order of business importance
3. Purchase should typically be #1, Lead #2
---
## LinkedIn
### Install the Insight Tag
Add to every page, before `</body>`:
```html
<script type="text/javascript">
_linkedin_partner_id = "YOUR_PARTNER_ID";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
(function(l) {
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
window.lintrk.q=[]}
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})(window.lintrk);
</script>
```
### Conversion tracking
LinkedIn supports two methods:
**URL-based**: Fires when someone visits a specific URL (e.g., `/thank-you`).
Set up in Campaign Manager > Analyze > Conversion Tracking > Create Conversion.
**Event-based**: Fire manually on specific actions:
```javascript
window.lintrk('track', { conversion_id: YOUR_CONVERSION_ID });
```
### LinkedIn CAPI
For server-side tracking, LinkedIn offers a Conversions API. Set up via partner integrations (Segment, Tealium) or direct API calls. Deduplicates with the Insight Tag automatically when configured correctly.
---
## TikTok
### Install the TikTok Pixel
Add to every page, in `<head>`:
```html
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];
ttq.methods=["page","track","identify","instances","debug","on","off",
"once","ready","alias","group","enableCookie","disableCookie","holdConsent",
"revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e)
{t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};
for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);
ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;
n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e};
ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",
o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,
ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},
ttq._o[e]=n||{};var s=document.createElement("script");
s.type="text/javascript",s.async=!0,s.src=r+"?sdkid="+e+"&lib="+t;
var a=document.getElementsByTagName("script")[0];
a.parentNode.insertBefore(s,a)};
ttq.load('YOUR_PIXEL_ID');
ttq.page();
}(window, document, 'ttq');
</script>
```
### Standard events
```javascript
// View content
ttq.track('ViewContent', {
content_id: 'pro-plan',
content_type: 'product',
content_name: 'Pro Plan',
value: 29.00,
currency: 'USD'
});
// Complete registration / sign up
ttq.track('CompleteRegistration', {
content_name: 'Free Trial'
});
// Purchase
ttq.track('Purchase', {
content_id: 'pro-plan',
content_type: 'product',
value: 99.00,
currency: 'USD',
quantity: 1
});
// Add to cart
ttq.track('AddToCart', {
content_id: 'SKU-123',
content_type: 'product',
value: 49.00,
currency: 'USD'
});
```
### Events API (server-side)
TikTok's Events API works like Meta's CAPI — send the same events from your server for better attribution. Use `event_id` for deduplication with browser pixel events.
### Advanced Matching
Pass hashed user data for better attribution:
```javascript
ttq.identify({
email: 'user@example.com', // auto-hashed
phone_number: '+11234567890'
});
```
---
## Validation Checklist
After installing any pixel, verify before going live:
### Browser-side checks
- [ ] Pixel fires on every page (check via browser extension)
- [ ] Conversion events fire at the right moment (after confirmed action, not on button click)
- [ ] Event parameters contain correct values (currency, amount, content IDs)
- [ ] No duplicate events firing on the same action
- [ ] Events fire on both desktop and mobile
### Platform-side checks
- [ ] Events appear in the platform's event manager/diagnostics
- [ ] Test conversions show correct values
- [ ] Event match quality is acceptable (Meta: score > 6)
- [ ] Server-side events are deduplicating with browser events (not double-counting)
### Debugging tools
| Platform | Tool |
|----------|------|
| Google | Google Tag Assistant, Chrome DevTools Network tab |
| Meta | Meta Pixel Helper (Chrome extension), Events Manager Test Events |
| LinkedIn | Insight Tag Validator in Campaign Manager |
| TikTok | TikTok Pixel Helper (Chrome extension), Events Manager |
| All | GTM Preview Mode (if using Google Tag Manager) |
---
## Common Mistakes
- **Firing purchase events on button click instead of confirmed payment** — always fire on the success/thank-you page or after server confirmation
- **Missing deduplication between pixel and server events** — without a shared `event_id`, you'll double-count conversions
- **Not testing on mobile** — many pixels break on mobile browsers or in-app webviews
- **Hardcoded test values** — remove test transaction amounts before going live
- **Forgetting to exclude internal traffic** — your team's visits inflate conversion data
- **Installing pixels without consent management** — GDPR/CCPA require user consent before firing tracking pixels in applicable regions
- **Pixel installed but no conversion actions created** — the pixel collects data, but the ad platform won't optimize without defined conversion actions
---
## When to Use Server-Side Tracking
Browser-only tracking is increasingly unreliable due to:
- iOS 14+ App Tracking Transparency
- Third-party cookie deprecation
- Ad blockers (30%+ of tech audiences)
**Use server-side (CAPI/Events API) when:**
- Running Meta or TikTok ads (strongly recommended)
- Your audience is tech-savvy (higher ad blocker usage)
- You need accurate purchase/revenue attribution
- You're spending >$5K/month on any platform
**Server-side is optional when:**
- Running Google Ads only (Enhanced Conversions covers most gaps)
- Low ad spend / testing phase
- B2B with LinkedIn only (Insight Tag is still reliable)
+2
View File
@@ -244,6 +244,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key tools
| **Mention Me** | Enterprise referral programs | [mention-me.md](../../tools/integrations/mention-me.md) |
| **Dub.co** | Link tracking and attribution | [dub-co.md](../../tools/integrations/dub-co.md) |
| **Stripe** | Payment processing (for commission tracking) | [stripe.md](../../tools/integrations/stripe.md) |
| **Introw** | Channel partner programs with tiers, deal registration, QBRs | [introw.md](../../tools/integrations/introw.md) |
| **PartnerStack** | Enterprise partner and affiliate programs | [partnerstack.md](../../tools/integrations/partnerstack.md) |
---
@@ -118,6 +118,9 @@ Provide affiliates with:
- Tapfiliate — Simple SaaS affiliate tracking
- FirstPromoter — SaaS affiliate management
**Partner Relationship Management (PRM):**
- Introw — Full PRM with deal registration, commissions, tiers, QBRs, and partner engagement tracking ([integration guide](../../../tools/integrations/introw.md))
**Self-hosted:**
- Rewardful — Stripe-integrated affiliates
- Refersion — E-commerce affiliates
+2
View File
@@ -330,6 +330,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key RevOp
| **Apollo** | Contact data, enrichment, and outbound sequences | [apollo.md](../../tools/integrations/apollo.md) |
| **ActiveCampaign** | Marketing automation for SMBs, lead scoring | [activecampaign.md](../../tools/integrations/activecampaign.md) |
| **Zapier** | Cross-tool automation and workflow glue | [zapier.md](../../tools/integrations/zapier.md) |
| **Introw** | Partner-sourced pipeline, commissions, deal registration, QBRs | [introw.md](../../tools/integrations/introw.md) |
| **Crossbeam** | Partner account overlaps and co-sell identification | [crossbeam.md](../../tools/integrations/crossbeam.md) |
---
+10
View File
@@ -339,6 +339,16 @@ If context is missing, ask:
---
## Tool Integrations
For partner sales enablement, see the [tools registry](../../tools/REGISTRY.md):
| Tool | What It Does | Guide |
|------|-------------|-------|
| **Introw** | Partner engagement tracking, deal registration, mutual action plans | [introw.md](../../tools/integrations/introw.md) |
---
## Related Skills
- **competitor-alternatives**: For public-facing comparison and alternative pages
+1 -1
View File
@@ -164,7 +164,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
- Brand name placement (end, usually)
- No brand name placement (SERPs include brand name above title already)
**Common issues:**
- Duplicate titles
+57 -7
View File
@@ -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
+43 -5
View File
@@ -46,6 +46,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| customer-io | Email | ✓ | - | [](clis/customer-io.js) | ✓ | [customer-io.md](integrations/customer-io.md) |
| sendgrid | Email | ✓ | - | [](clis/sendgrid.js) | ✓ | [sendgrid.md](integrations/sendgrid.md) |
| resend | Email | ✓ | ✓ | [](clis/resend.js) | ✓ | [resend.md](integrations/resend.md) |
| nitrosend | Email | ✓ | ✓ | - | - | [nitrosend.md](integrations/nitrosend.md) |
| kit | Email | ✓ | - | [](clis/kit.js) | ✓ | [kit.md](integrations/kit.md) |
| beehiiv | Newsletter | ✓ | - | [](clis/beehiiv.js) | - | [beehiiv.md](integrations/beehiiv.md) |
| klaviyo | Email/SMS | ✓ | - | [](clis/klaviyo.js) | ✓ | [klaviyo.md](integrations/klaviyo.md) |
@@ -60,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) |
@@ -69,8 +70,13 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| intercom | Messaging | ✓ | - | [](clis/intercom.js) | ✓ | [intercom.md](integrations/intercom.md) |
| outreach | Sales Engagement | ✓ | ✓ | [](clis/outreach.js) | - | [outreach.md](integrations/outreach.md) |
| crossbeam | Partner Ecosystem | ✓ | ✓ | [](clis/crossbeam.js) | - | [crossbeam.md](integrations/crossbeam.md) |
| introw | Partner Ecosystem | - | ✓ | - | - | [introw.md](integrations/introw.md) |
| 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) |
@@ -196,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
@@ -337,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.
@@ -354,8 +390,9 @@ Partner data sharing, co-sell, and ecosystem management.
| Tool | Best For | Notes |
|------|----------|-------|
| **crossbeam** | Account overlaps, co-sell | Now part of Reveal |
| **introw** | Partner management, deal registration, QBRs | MCP-enabled PRM |
**Agent recommendation**: Crossbeam for identifying partner account overlaps and co-sell opportunities.
**Agent recommendation**: Crossbeam for identifying partner account overlaps and co-sell opportunities. Introw for full partner relationship management — partner pipeline, commissions, tasks, and automated business review prep.
### Email Outreach
@@ -419,13 +456,14 @@ 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
- **coupler** - Marketing data pipelines
- **outreach** - Sales engagement sequences
- **crossbeam** - Partner ecosystem data
- **introw** - Partner relationship management
To use MCP tools, ensure the appropriate MCP server is configured in your environment.
+2
View File
@@ -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 {
+159
View File
@@ -0,0 +1,159 @@
# Firehose
Real-time web data streaming API that monitors web pages and delivers matching content instantly via server-sent events (SSE). Built for competitive intelligence, brand monitoring, and news tracking without polling.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | RESTful endpoints for managing rules + SSE for streaming |
| MCP | - | Not available |
| CLI | - | Not available |
| SDK | - | Native AI agent skill available |
## Authentication
- **Type**: API Key
- **Currently**: Free beta — no credit card required
- **Get access**: Sign up at firehose.com
## Core Concepts
**Rules** — Filters that define what content to match. Uses Lucene query syntax.
**Stream** — A server-sent event (SSE) connection that delivers matching content in real-time as it's published on the web.
Instead of polling an endpoint on a schedule, you define rules once and receive a continuous stream of matches as they happen.
## Query Syntax (Lucene)
```
# Exact phrase
"your brand name"
# Field-specific
title:tesla
domain:reuters.com
domain:techcrunch.com
# Boolean operators
"Series A" AND (SaaS OR software)
competitor OR "competitor name" NOT "your company"
# Wildcard
market* AND funding
# Language filter
language:en
# Date range
publish_time:[2026-01-01 TO 2026-03-18]
# ML-classified categories
category:finance
category:technology
```
## Common Agent Operations
### Create a monitoring rule
```bash
POST https://api.firehose.com/rules
{
"query": "\"your brand name\" OR \"your product name\"",
"label": "brand-mentions"
}
```
### List active rules
```bash
GET https://api.firehose.com/rules
```
### Delete a rule
```bash
DELETE https://api.firehose.com/rules/{rule_id}
```
### Connect to the stream
```bash
GET https://api.firehose.com/stream
Authorization: Bearer {api_key}
# Returns server-sent events:
# data: {"url": "...", "title": "...", "publish_time": "...", "matched_rule": "..."}
```
### Example: Node.js stream consumer
```javascript
import EventSource from 'eventsource';
const stream = new EventSource('https://api.firehose.com/stream', {
headers: { Authorization: `Bearer ${process.env.FIREHOSE_API_KEY}` }
});
stream.onmessage = (event) => {
const item = JSON.parse(event.data);
console.log(`[${item.matched_rule}] ${item.title} — ${item.url}`);
};
```
## Use Cases for Marketing
### Competitive intelligence
Monitor competitors' press coverage, product announcements, and funding news in real-time.
```
query: "CompetitorName" AND (launch OR funding OR "product update" OR partnership)
```
### Brand monitoring
Track mentions of your brand across news and web content.
```
query: "YourBrand" OR "YourProductName" NOT site:yourdomain.com
```
### Category / market news
Stay current on your market without manually checking sources.
```
query: category:technology AND ("no-code" OR "low-code") AND funding
domain:techcrunch.com OR domain:venturebeat.com
```
### Lead trigger monitoring
Track signals that indicate a prospect is ready to buy (hiring, funding, tool mentions).
```
query: ("hiring" OR "we're growing") AND "RevOps" AND (HubSpot OR Salesforce)
```
### PR and link building
Get alerted when publications cover topics in your space, enabling timely outreach.
```
query: "best [category] tools" OR "top [category] software" AND publish_time:[now-7d TO now]
```
## When to Use
- Real-time competitive intelligence (faster than Google Alerts)
- Brand mention monitoring across news and web
- Market signal tracking for sales prospecting
- Automated content curation pipelines
- Trigger-based workflows (new mention → Slack alert, CRM update, etc.)
## Relevant Skills
- competitor-alternatives
- customer-research
- content-strategy
- cold-email
- marketing-ideas
+144
View File
@@ -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)
+182
View File
@@ -0,0 +1,182 @@
# Introw PRM
Partner Relationship Management platform for managing channel partners, tracking partner-sourced deals, commissions, tasks, and engagement — with built-in business review generation.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | - | Not available |
| MCP | ✓ | Full read/write via Claude connector |
| CLI | - | Not available |
| SDK | - | Not available |
## Authentication
- **Type**: OAuth2 (via MCP connector)
- **Setup**: Connect via Claude MCP connector — no API key management needed
- **Scope**: All data is scoped to the authenticated organisation
## Common Agent Operations
All operations are performed via MCP tools. The following are the primary tool calls available.
### Search Partners
```
search_partners
dateRange: { field: "CREATED_AT" | "LAST_ACTIVITY_AT", from: "YYYY-MM-DD", to: "YYYY-MM-DD" }
```
Returns: partner name/ID, contact info, tier, lifecycle stage, categories, country, last activity date.
### Search CRM Objects (Deals, Tickets, Leads, Companies, Contacts)
```
search_crm_objects
objectType: "DEAL" | "TICKET" | "LEAD" | "COMPANY" | "CONTACT"
stage: "OPEN" | "WON" | "LOST"
view: "ALL" | "DUE" | "OVERDUE" | "INACTIVE"
rollingDateFilter: { field: "CLOSED_AT", value: "THIS_QUARTER" }
sortBy: { property: "AMOUNT", direction: "DESC" }
limit: 10
```
Synonym mapping: Opportunity/Forecast → `DEAL`, Account → `COMPANY`, Case → `TICKET`.
### Search Tasks
```
search_tasks
status: "TODO" | "IN_PROGRESS" | "PENDING" | "COMPLETED" | "DONE"
partnerId: "{partner_id}"
```
### Search Commissions
```
search_commissions
partnerId: "{partner_id}"
```
Returns: commission amounts, currency, payment status, associated partner and deals.
### Generate Business Review (QBR/MBR/WBR)
```
generate_business_review
duration: "QUARTERLY" | "MONTHLY" | "WEEKLY"
partnerId: "{partner_id}"
```
Returns: pipeline & forecast analysis, form submissions overview, mutual action plan, goal tracking, timed agenda and next steps.
### Search Partner Engagement
```
search_partner_engagement
partnerId: "{partner_id}"
type: "ROOM_VISIT" | "OBJECT_SHARE" | "COMMENT" | "FORM_SUBMIT" | "TASK_CREATED" | ...
dateRange: { from: "YYYY-MM-DD", to: "YYYY-MM-DD" }
```
Returns: comments, deal updates, asset views, task events, portal visits, form submissions, announcements, quotes.
### Add Comment to Deal/Object
```
add_comment
comment: "Comment text"
objectId: "{crm_object_id}"
objectType: "DEAL" | "TICKET" | "LEAD" | "COMPANY" | "CONTACT"
```
### Create or Update Tasks
```
add_task
name: "Task title"
dueDate: "2025-02-20"
assignedTo: "PARTNER" | "ORGANISATION"
partnerId: "{partner_id}"
update_task
taskId: 123
status: "TODO" | "IN_PROGRESS" | "DONE"
```
### Update CRM Object Properties
```
update_crm_object
objectId: "{crm_object_id}"
objectType: "DEAL"
propertiesToUpdate: { "amount": 50000, "stage": "Negotiation" }
```
### Share Lead or Register Deal
Two-step flow:
1. **Discovery**: provide `objectType` and `callToAction` to get form fields
2. **Submit**: provide `formId` and `userProvidedData` to submit
```
share_lead_or_register_deal
objectType: "Deal"
callToAction: "Register Deal"
partnerId: "{partner_id}"
```
## Key Metrics
### Partner Data
- `id` - Partner ID
- `name` - Partner company name
- `championEmail` - Primary contact email
- `tier` - Current tier level
- `lifecycleStage` - Partner lifecycle stage
- `categories` - Partner categories
- `country` - Partner country
- `lastActivityAt` - Last activity date
### CRM Object Data
- `objectId` - External CRM ID
- `objectType` - DEAL, TICKET, LEAD, COMPANY, CONTACT
- `stage` - OPEN, WON, LOST
- `amount` - Deal amount
- `closeDate` - Expected close date
### Commission Data
- `amount` - Commission amount
- `currency` - Payment currency
- `paymentStatus` - Current payment status
- `partnerId` - Associated partner
- `dealId` - Associated deal
### Engagement Data
- `type` - Activity type (ROOM_VISIT, COMMENT, FORM_SUBMIT, etc.)
- `partnerId` - Partner involved
- `crmObjectId` - Related CRM object
- `createdAt` - Activity timestamp
## When to Use
- Managing channel partner relationships and tracking partner activity
- Reviewing partner-sourced pipeline (deals, leads, opportunities)
- Preparing QBR/MBR/WBR meetings with automated business review generation
- Tracking partner commissions and payouts
- Managing mutual action plans via tasks assigned to partners or internal teams
- Processing deal registrations and lead sharing from partners
- Monitoring partner portal engagement and content asset views
## Rate Limits
- Rate limits managed by the MCP connector
- All data scoped to authenticated organisation
## Relevant Skills
- revops
- sales-enablement
- referral-program
- competitor-alternatives
+113
View File
@@ -0,0 +1,113 @@
# Nitrosend
AI-native email platform that combines transactional and marketing email in one stack, controlled entirely through AI assistants via MCP. No traditional dashboard required — build sequences, campaigns, and automations by prompting.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API available |
| MCP | ✓ | Full MCP support — primary integration method |
| CLI | - | Not available |
| SDK | - | Use MCP or API directly |
## Authentication
- **Type**: API Key
- **MCP Setup**: Add Nitrosend MCP server to your Claude Code / AI assistant config
- **BYO Infrastructure**: Optionally bring your own SendGrid, Postmark, SES, or Resend keys
- **Get access**: Sign up at nitrosend.com — free tier includes 8K emails initially, then 500/month
## Pricing
| Plan | Cost | Volume |
|------|------|--------|
| Free | $0 | 8K initially, then 500/mo |
| Hobby | $20/mo | 25,000/mo |
| Pro | $100/mo | 150,000/mo |
| Scale | $300/mo | 500,000/mo |
| BYO | $60/mo | Unlimited (your infrastructure) |
Unlimited contacts on all plans — pay per email sent, not per subscriber.
## What Makes It Different
- **AI-first**: Designed to be controlled by Claude, ChatGPT, Codex, Cursor, Gemini, Windsurf — not a human clicking through a dashboard
- **Unified transactional + marketing**: Single platform for both, on separate infrastructure
- **Automatic optimization**: Continuously tests subject lines, send times, and content based on engagement
- **Auto-configured deliverability**: DKIM, SPF, DMARC, and dedicated IP warmup handled automatically
- **Migration-friendly**: Import from Mailchimp, Klaviyo, ActiveCampaign, HubSpot
## Common Agent Operations (via MCP)
### Create an email sequence
```
"Create a 5-email onboarding sequence for new SaaS trial users.
Email 1: Welcome + what to do first (send immediately)
Email 2: Key feature highlight (day 2)
Email 3: Use case / success story (day 4)
Email 4: Check-in + support offer (day 7)
Email 5: Upgrade prompt (day 12)"
```
Nitrosend builds the sequence, timing, and sends — no manual setup in a dashboard.
### Send a transactional email
```
"Send a password reset email to user@example.com with a reset link valid for 1 hour."
```
### Create a campaign
```
"Create a re-engagement campaign for subscribers who haven't opened in 90 days.
Subject line variants: [A] 'We miss you', [B] 'Still interested in [topic]?'
Test both, send winner to remaining list after 4 hours."
```
### Check sequence performance
```
"Show me open rates, click rates, and unsubscribes for the onboarding sequence."
```
### Import a list
```
"Import this CSV of 2,000 subscribers from our Mailchimp export."
```
## Deliverability Setup
Nitrosend handles this automatically on signup:
- DKIM signing
- SPF record configuration
- DMARC policy
- Dedicated IP provisioning (Pro+)
- IP warmup schedule
For BYO plan users: bring your own SendGrid, Postmark, SES, or Resend account and Nitrosend routes through your infrastructure.
## When to Use
- Building email sequences via AI without touching a dashboard
- Teams already using Claude Code or other AI coding tools as their primary workflow
- Combining transactional (password resets, receipts) and marketing (nurture, campaigns) in one place
- Rapid sequence prototyping — describe the sequence, get it built
- Migrating from Mailchimp/Klaviyo and wanting AI control going forward
## When to Use Something Else
- **Customer.io** — if you need complex event-based branching logic and behavioral triggers
- **Klaviyo** — if you're in e-commerce and need deep Shopify integration
- **Resend** — if you need transactional-only and prefer a pure API/code approach
- **Kit** — if you're a creator or newsletter-first
## Relevant Skills
- email-sequence
- onboarding-cro
- churn-prevention
- lead-magnets
+110
View File
@@ -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)
+45 -1
View File
@@ -8,7 +8,7 @@ Developer-friendly transactional email service with modern API.
|-------------|-----------|-------|
| API | ✓ | Simple REST API for sending emails |
| MCP | ✓ | Available via Resend MCP server |
| CLI | - | Not available |
| CLI | | Official Resend CLI |
| SDK | ✓ | Official SDKs for Node.js, Python, Go, etc. |
## Authentication
@@ -17,6 +17,49 @@ Developer-friendly transactional email service with modern API.
- **Header**: `Authorization: Bearer {api_key}`
- **Get key**: API Keys section in Resend dashboard
## CLI
### Install
```bash
npm install -g resend-cli
```
### Setup
```bash
resend login
# or set env var: RESEND_API_KEY=re_xxx
```
### Common commands
```bash
# Send a test email
resend emails send --from hello@example.com --to user@example.com --subject "Test" --text "Hello"
# List recent emails
resend emails list
# Get email status
resend emails get <email_id>
# List domains
resend domains list
# Add a domain
resend domains create --name example.com
# Verify a domain
resend domains verify <domain_id>
# List API keys
resend api-keys list
# Create an API key
resend api-keys create --name "Production"
```
## Common Agent Operations
### Send email
@@ -155,6 +198,7 @@ await resend.emails.send({
- Receipt and notification emails
- Developer-friendly email integration
- React-based email templates
- Quick CLI testing of email flows without writing code
## Rate Limits
+127
View File
@@ -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 510 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 35 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
View File
@@ -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