Help us improve
Share bugs, ideas, or general feedback.
From claude-skills
Write marketing copy and App Store / Google Play listings (ASO keywords, titles, subtitles, short+long descriptions, feature bullets, release notes), plus screenshot caption sets and text-to-image prompt templates for generating store screenshot backgrounds/promo visuals. Use when asked to: write/refresh app marketing copy, craft app store metadata, brainstorm taglines/value props, produce ad/landing/email copy, or generate prompts for screenshot/creative generation.
npx claudepluginhub ckorhonen/claude-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-skills:app-marketing-copyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1) Ask for missing inputs (or infer from repo/product docs):
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
User input:
App: FocusTimer
Purpose: Pomodoro timer for students
Key features: Custom intervals, study stats, break reminders
Platform: iOS App Store
Tone: Friendly but not childish
Workflow:
scripts/check_app_store_limits.pyExpected output:
User input:
"Our app store listing conversion is terrible. Help refresh it."
App: PhotoFix (photo editing)
Current problem: Generic copy, keyword-stuffed
Workflow:
Expected output:
User input:
Launching on both iOS and Google Play
App: TaskFlow (project management for freelancers)
Need everything: store listings, landing page copy, ads
Workflow:
scripts/check_app_store_limits.pyExpected output:
references/app-store-metadata.md or run scripts/check_app_store_limits.py.references/app-store-metadata.md or scripts/check_app_store_limits.py.references/screenshot-prompts.md for prompt patterns and negative prompts.scripts/check_app_store_limits.py --platform ios --input draft.json (or --platform google_play) for store fields.Problem: Cramming keywords into titles, subtitles, and descriptions makes copy sound robotic and kills conversion rates. App Store algorithms punish overloaded keyword copy in user engagement metrics.
❌ Bad Example (iOS Subtitle):
Photo Editor Photo Filter Photo Effects Photo Editor App
✅ Good Example (iOS Subtitle):
Professional photo editing
Why it fails:
What to do instead:
Problem: Vague promises like "Fast," "Easy," "Simple," or "Best" don't differentiate and raise user skepticism. Without specificity, users can't judge if the app solves their problem.
❌ Bad Examples:
- "The easiest way to edit photos"
- "Powerful and intuitive design tool"
- "Professional-grade app for everyone"
- "The best photo editor on the market"
✅ Good Examples (Specific):
- "One-click background removal-no manual selection needed"
- "AI-powered portrait retouching in 3 taps"
- "Batch edit 100 photos with one template"
- "Remove objects from photos—no expensive subscriptions needed"
Why it matters:
What to do instead:
Problem: Copy that exceeds field limits gets truncated mid-sentence, breaking the message and confusing users. Different platforms truncate at different character counts, and mobile displays show fewer characters than desktop.
Platform Limits (Enforce Strictly):
| Field | iOS | Google Play | Mobile Display |
|---|---|---|---|
| Subtitle | 30 chars | N/A | ✂️ Truncates at 30 on all devices |
| Short Description | N/A | 80 chars | ✂️ Truncates at 50 on mobile |
| Feature Bullets | N/A | 80 chars each | ✂️ Truncates at 50 on mobile |
| Promotional Text | 170 chars | N/A | ✂️ Truncates at 85 on mobile |
❌ Bad Example (iOS Subtitle - 42 chars, exceeds 30-char limit):
Professional photo editing, now simplified
Displays as: "Professional photo editing, now si..." (truncated mid-word)
✅ Good Example (iOS Subtitle - 26 chars, fits perfectly):
Professional photo editing
❌ Bad Example (Google Play Feature Bullet - 93 chars, exceeds 80-char limit):
Automatically remove backgrounds from any photo without manual selection or complicated tools
Displays as: "Automatically remove backgrounds from any photo without manual selection or..." (incomplete thought)
✅ Good Example (Google Play Feature Bullet - 61 chars, fits with room):
Auto-remove backgrounds in seconds—no manual selection needed
What to do instead:
scripts/check_app_store_limits.py before finalProblem: Listing technical features instead of outcomes confuses users about what they can do with the app. Users don't buy specs; they buy results.
❌ Bad Examples (Technical Specs):
- Advanced color grading engine with 256-bit processing
- Support for RAW file formats (CR2, NEF, DNG)
- Multi-threaded rendering with GPU acceleration
- Compatible with iOS 14.0+ and requires 2GB RAM
✅ Good Examples (User Benefits):
- Make any photo look professional in one tap
- Edit RAW files on your phone (not just JPGs)
- Preview edits in real-time without lag
- Works on any recent iPhone or iPad
Why it fails:
The Translation Pattern:
| Technical Spec | User Benefit |
|---|---|
| "EXIF data preservation" | "Keep photo location and date intact" |
| "32-bit color depth" | "Smooth gradients, no banding or color loss" |
| "Real-time collaborative editing" | "Edit with your team without emailing files back-and-forth" |
| "On-device processing (no cloud)" | "Your photos never leave your phone" |
What to do instead:
Problem: Copy written for US English doesn't translate culturally to other markets. Phrases that work in English sound off, awkward, or even tone-deaf in other languages and regions. Keyword searches also vary by locale.
❌ Bad Examples (US-Centric, Won't Translate Well):
- "The #1 photo app" (claims don't work globally; also unverifiable)
- "Crush your creative goals" (aggressive tone doesn't translate; weird in Japanese/German)
- "Slay your edits" (slang; meaningless in translation; age-specific)
- "Our app rocks" (informal; risky in formal markets like Germany/Japan)
✅ Good Examples (Culturally Neutral, Translates Well):
- "The most popular photo editor" (verifiable, neutral tone)
- "Achieve professional results in seconds" (universal benefit, formal enough)
- "Make every photo beautiful" (simple, universal, translates directly)
- "Trusted by millions worldwide" (global signal, works everywhere)
Common Localization Pitfalls:
| Market | Don't | Do |
|---|---|---|
| Germany | Aggressive slang ("crush," "slay") | Professional, clear ("achieve," "optimize") |
| Japan | Boastful claims ("best," "#1") | Humble confidence ("trusted by millions," "preferred by") |
| Brazil | Formal US English | Warm, conversational Portuguese (use native writer) |
| France | English marketing phrases | French alternatives (don't just translate) |
| China/Asia | Western idioms (sports metaphors) | Universal benefits without cultural references |
Keyword Differences Across Regions:
❌ Bad Approach:
Write in US English → Translate to other languages → Done
(Loses cultural fit, tone, and keyword opportunity)
✅ Good Approach:
1. Write core value prop in neutral, translatable English
2. Have native speakers for each market adapt tone, keywords, and examples
3. Test keywords in each region's App Store search (not just Google)
4. Avoid slang, sports metaphors, US-specific references
5. Keep formal enough to work in risk-averse markets (Germany, Japan, Korea)
What to do instead:
Symptoms: Copy looks great but exceeds App Store/Play Store field limits
Solution:
# Validate all fields at once
python scripts/check_app_store_limits.py --platform ios --input input.json
# Input format (input.json)
{
"app_name": "YourApp",
"subtitle": "Your subtitle text",
"description": "Full description...",
"keywords": "keyword,list,comma,separated"
}
# Or pipe from stdin
echo '{"app_name":"YourApp","subtitle":"Edit photos fast"}' | \
python scripts/check_app_store_limits.py --platform ios --input -
# Google Play variant
python scripts/check_app_store_limits.py --platform google_play --input input.json
Quick fixes:
Symptoms: Generated copy sounds like every other app
Cause: Missing specific differentiators or proof points
Solution:
Symptoms: User says "help with app marketing" without specifics
Solution: Present checklist and ask what they need:
Then produce only requested items.
Symptoms: Copy passes limits but sounds unnatural
Cause: Trying to maximize keyword density
Solution:
scripts/check_app_store_limits.py for length, but manually review readabilitySymptoms: Skill mentions references/ or scripts/ files that don't exist
Solution:
ls skills/app-marketing-copy/references/app-store-metadata.mdscripts/check_app_store_limits.py"references/app-store-metadata.md: field map + common limits + output skeletons.references/screenshot-prompts.md: prompt templates for backgrounds and promo visuals.scripts/check_app_store_limits.py: quick character-limit checker for iOS/Google Play fields (JSON in, table out).