AGENT SKILLBY CKORHONEN
App marketing copy
AT A GLANCE
App marketing copy is an agent skill for content. 1) Ask for missing inputs (or infer from repo/product docs): App name + 1-sentence value prop Target user + primary job-to-be-done 3–7 key features. It is published by ckorhonen in the ckorhonen/claude-skills GitHub repository (10 stars) under the MIT license. Install it with: npx skills add ckorhonen/claude-skills --skill app-marketing-copy
- SOURCE REPOSITORY
- ckorhonen/claude-skills (opens GitHub in a new tab)
- REPO STARS
- SOURCE REPOSITORY
- LICENSE
- MIT
- SKILL.MD SIZE
- 20.6 KB548 LINES
QUICK ANSWER
- WHAT IT IS01
- 1) Ask for missing inputs (or infer from repo/product docs): App name + 1-sentence value prop Target user + primary job-to-be-done 3, 7 key features + 1, 3 differentiators Desired tone (and words to use/avoid). What sets it apart is how it narrows content production into one specific workflow rather than a broad, generic prompt.
- INPUTS02
- Context for content production: your goals, audience, constraints, and any source material the skill asks for.
- OUTPUT03
- A ready-to-use result for content production: the analysis, copy, or recommendations the agent produces.
INSTALL
One command adds this skill from its source repository.
npx skills add ckorhonen/claude-skills --skill app-marketing-copyREAD THE SKILL.MD BELOW BEFORE YOU RUN IT. SKILLS INSTRUCT YOUR AGENT.
SKILL.MD
The full file, as published in the source repository. Copy it, download it or open it on GitHub.
ON THIS PAGE · 21
App Marketing Copy#
Quick start#
- Ask for missing inputs (or infer from repo/product docs):
- App name + 1-sentence value prop
- Target user + primary job-to-be-done
- 3–7 key features + 1–3 differentiators
- Desired tone (and words to use/avoid)
- Platform(s): iOS App Store, Google Play, or both
- Screenshot count and theme (if needed)
- Confirm deliverables:
- Store listing (iOS, Google Play)
- Marketing pack (landing hero, feature blurbs, CTAs, ads)
- Screenshot pack (caption copy + image-generation prompts)
- Produce 2–3 variants per high-impact field, then recommend a "best pick" with 1-sentence rationale.
Examples#
Example 1: New App Store Listing#
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 childishWorkflow:
- Run intake questions to clarify missing details
- Generate 3 subtitle variants, recommend best
- Create keyword set optimized for student productivity searches
- Write full description with feature bullets
- Generate 5 screenshot captions in narrative order
- Validate with
scripts/check_app_store_limits.py
Expected output:
- iOS App Store listing (all fields within limits)
- 3 subtitle options with rationale
- Keyword set (100 chars max)
- Screenshot copy pack
Example 2: Marketing Copy Refresh#
User input:
"Our app store listing conversion is terrible. Help refresh it."
App: PhotoFix (photo editing)
Current problem: Generic copy, keyword-stuffedWorkflow:
- Review current listing (if provided)
- Ask: "What makes PhotoFix different from competitors?"
- Identify ASO keyword stuffing issues
- Generate 3 new subtitle variants (specific, benefit-focused)
- Rewrite full description with user benefits (not tech specs)
- Create fresh screenshot captions
- Compare before/after character counts
Expected output:
- Refactored listing with specificity
- Side-by-side comparison showing improvements
- Rationale for each change
Example 3: Multi-Platform Launch#
User input:
Launching on both iOS and Google Play
App: TaskFlow (project management for freelancers)
Need everything: store listings, landing page copy, adsWorkflow:
- Complete intake (audience, differentiators, proof points)
- Generate iOS listing (subtitle, keywords, description)
- Generate Google Play listing (short desc, feature bullets, full desc)
- Create marketing pack (10 taglines, 3 hero sections, 6 feature blurbs, 10 CTAs)
- Generate screenshot copy pack (8 captions + image prompts)
- Validate all with
scripts/check_app_store_limits.py
Expected output:
- Complete iOS App Store listing
- Complete Google Play listing
- Marketing copy pack (50+ deliverables)
- Screenshot pack with narrative arc
Intake template (ask, then proceed)#
- Audience: who + what they want
- Problem: what's hard today
- Outcome: what "success" looks like
- Differentiators: why this vs alternatives
- Proof: numbers, reviews, awards, press (if any)
- Constraints: claims to avoid, legal/compliance notes, pricing mention policy
- Locale(s): default to US English unless told otherwise
Outputs#
iOS App Store listing#
- Provide: App Name options, Subtitle options, Promotional Text, Keyword set, Full Description, "What's New" (release notes).
- Enforce field limits; if unsure, open
references/app-store-metadata.mdor runscripts/check_app_store_limits.py.
Google Play listing#
- Provide: Title options, Short Description options, Full Description, Feature bullets, Release notes.
- Enforce limits; see
references/app-store-metadata.mdorscripts/check_app_store_limits.py.
Marketing copy pack#
- Provide: 5-10 taglines, 3 hero sections (headline + subhead + CTA), 6 feature blurbs (1-2 sentences), 10 micro-CTAs, 10 ad hooks (short), 5 social posts.
- Keep claims supportable; avoid "#1 / best" unless proven.
Screenshot pack (copy + prompts)#
- Provide: 5-8 screenshot captions (2-5 words each) + optional sub-captions; include a narrative order (setup → value → proof → CTA).
- Provide: per-screenshot art direction + a prompt template for text-to-image generation (backgrounds/illustrations), tailored to the user's tool.
- Use
references/screenshot-prompts.mdfor prompt patterns and negative prompts.
Quality checks (do before final)#
- Character limits: validate with
scripts/check_app_store_limits.py --platform ios --input draft.json(or--platform google_play) for store fields. - Consistency: keep the same core value prop across title/subtitle/hero/screenshot 1.
- Compliance: avoid disallowed claims, competitor trademarks, and sensitive targeting; ask if regulated domain (health/finance/kids).
- Readability: short sentences, active voice, scannable bullets.
Common Pitfalls#
1. ASO Keyword Stuffing (Unnatural, Hurts Conversion)#
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 editingWhy it fails:
- The bad version repeats "Photo" 4× and "Editor" 2×, signaling spam to both algorithms and users
- Reads unnaturally; users abandon apps that feel compromised
- App Store gives lower ranking boost to keyword-stuffed copy vs. naturally keyword-integrated copy
What to do instead:
- Each keyword appears once naturally in context
- Prioritize readability and user benefit over keyword density
- Let keywords live in distinct fields (keyword set, full description) where they don't disrupt the narrative
- Example that works: "Photo Editor-Professional Effects, Simplified" (keywords: photo editor, effects; reads naturally)
2. Generic Value Props (Could Apply to Any App)#
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:
- Generic language applies to 50+ competitors; users skip it
- Specific claims signal you understand their workflow
- Specificity = trustworthiness; vague = greenwashing
What to do instead:
- Lead with outcome + mechanism: "Auto-remove backgrounds in 2 seconds" (not "fast")
- Show the job-to-be-done: "Batch edit 100 photos" (not "powerful")
- Contrast against status quo: "No $20/month subscription" (not "affordable")
- Name the user workflow: "Retouch headshots for LinkedIn" (not "professional")
3. Store Listing Length Violations (Truncated on Store Pages)#
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 simplifiedDisplays 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 toolsDisplays 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 neededWhat to do instead:
- Always run copy through
scripts/check_app_store_limits.pybefore final - Write tight; avoid filler words (a, the, very, really, just)
- Prioritize the first 50 characters-everything after may be hidden on mobile
- Use contractions (don't, it's) to save characters without losing personality
4. Feature Bullets as Technical Specs (Not User Benefits)#
Problem: 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 iPadWhy it fails:
- Technical language alienates casual users (your target)
- Users can't visualize the benefit ("256-bit processing"-so what?)
- Specs are checked after deciding to download, not before
- Example: "GPU acceleration" matters; "makes editing instant" is what users want
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:
- Start with the job: What is the user trying to accomplish?
- Translate feature → benefit: "Supports 50+ filters" → "Dozens of professional styles, instantly"
- Use "so that" test: "Feature X, so that you can [benefit]" - if you can't complete it, it's not a benefit yet
- Show before/after in copy if possible: "Turn blurry photos into magazine-quality shots"
5. Missing Localization Considerations (Cultural Tone Issues)#
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:
- US searches: "photo editor" (broad)
- Germany searches: "Fotobearbeitung" (more specific; use region-native keyword research)
- Japan searches: "写真編集" (completely different word choice needed)
❌ 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:
- Write neutral English first (works for the world)
- Flag words/phrases that will need cultural adaptation ("#1," slang, US idioms)
- For each locale: hire a native speaker to refine tone and keywords, not just translate
- Keep tone at "professional confidence" level (works across cultures)
- A/B test different tones in each market if feasible
Troubleshooting#
Issue: Character Limit Errors After Generation#
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.jsonQuick fixes:
- iOS subtitle (30 chars): Remove articles (a, the), use contractions
- Google Play short desc (80 chars): Lead with strongest benefit
- Keywords (100 chars iOS): Remove low-value keywords, use abbreviations
Issue: Generic/Bland Copy Despite Good Input#
Symptoms: Generated copy sounds like every other app
Cause: Missing specific differentiators or proof points
Solution:
- Ask user: "What's one thing your app does that competitors don't?"
- Ask for numbers: "How many users? How much time saved?"
- Find the contrast: "What do users do today that sucks?"
- Example transform:
- Before: "Easy photo editing for everyone"
- After: "Remove backgrounds in 2 taps—no expensive subscription"
Issue: Unclear Which Deliverables to Produce#
Symptoms: User says "help with app marketing" without specifics
Solution: Present checklist and ask what they need:
- iOS App Store listing
- Google Play listing
- Landing page hero copy
- Screenshot captions
- Social media ad hooks
- Email campaign copy
Then produce only requested items.
Issue: Keyword Stuffing Creeping Back In#
Symptoms: Copy passes limits but sounds unnatural
Cause: Trying to maximize keyword density
Solution:
- Read copy aloud—if it sounds robotic, remove keywords
- Each keyword should appear max 2× in subtitle+description combined
- Use
scripts/check_app_store_limits.pyfor length, but manually review readability - Ask: "Would a human actually say this?"
Issue: Missing References or Scripts#
Symptoms: Skill mentions references/ or scripts/ files that don't exist
Solution:
- Check if files exist:
ls skills/app-marketing-copy/references/ - If missing, proceed without them:
- Use inline limits instead of
app-store-metadata.md - Manually validate character counts instead of running scripts
- Use inline limits instead of
- Recommend to user: "For automated validation, create
scripts/check_app_store_limits.py"
Included resources#
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).
Supporting file: references/app-store-metadata.md#
App Store / Play Store metadata (quick reference)#
Always verify current requirements in the platform consoles/docs; limits/policies can change.
Common field limits (characters)#
iOS App Store (App Store Connect)#
- App Name: 30
- Subtitle: 30
- Promotional Text: 170
- Keywords: 100 (comma-separated; spaces usually waste chars)
- Description: 4000
- “What’s New” (release notes): 4000
Google Play (Play Console)#
- Title: 30
- Short description: 80
- Full description: 4000
Tip: Use scripts/check_app_store_limits.py to sanity-check counts for a draft.
Output skeletons#
iOS listing skeleton#
- App Name (2–3 options)
- Subtitle (2–3 options)
- Promotional Text (1–2 options)
- Keywords (1–3 keyword sets)
- Description (one best version + optional alternate opening paragraph)
- 1–2 sentence hook (outcome-first)
- 3–5 benefit bullets (scannable)
- 3–6 feature bullets (concrete, not fluffy)
- Proof (optional): review snippet, stat, award (only if true)
- CTA + “who it’s for”
- Privacy note (if relevant; no legal advice)
- What’s New (release notes; 1–2 styles: friendly vs factual)
Google Play listing skeleton#
- Title (2–3 options)
- Short description (3–5 options; punchy, outcome-first)
- Full description (one best version + optional alternate first paragraph)
- Hook
- Benefits
- Features
- Proof (optional)
- CTA
- Release notes (friendly vs factual)
ASO keyword heuristics (platform-agnostic)#
- Start from: category keywords, core verbs, problems, outcomes, and feature nouns.
- Mix: broad terms + long-tail specifics.
- Avoid: competitor trademarks/brand names, unsupported superlatives, spammy repetition.
- Prefer: words users actually search (plain language over internal jargon).
Supporting file: references/screenshot-prompts.md#
Screenshot generation prompts (templates)#
Goal: generate consistent backgrounds/illustrations for app store screenshots and promo images (usually behind real UI screenshots). Default: “no text, no logos, no device frame”.
Inputs to ask for#
- Brand colors (hex if possible) + vibe words (e.g., calm, bold, playful, premium)
- Screenshot set size (usually 5–8) + story order
- Style: minimal / geometric / soft 3D / illustrative / photo-collage / retro
- Tool: Midjourney, DALL·E, Stable Diffusion, “other” (keep prompts tool-neutral if unknown)
Global “style bible” prompt (make once, reuse)#
Use this to keep all screenshots visually consistent:
- Minimal abstract background, cohesive color palette: {brand_colors}, subtle texture/noise, lots of negative space for UI overlay, gentle lighting, modern, clean, high contrast, no text, no watermark, no logo, no device, high resolution, vertical composition.
Then add per-screenshot “concept” lines (below) while keeping the style bible constant.
Per-screenshot concept prompt pattern#
Base:
- {style_bible}. Visual metaphor for “{concept}” using simple shapes/lighting. Keep center area clear for UI overlay. No text, no letters, no logos, no watermark.
Example concepts (swap in your app’s story):
- Screenshot 1 (core promise): clarity / speed / calm / control / “get it done”
- Screenshot 2 (feature 1): organization / planning / tracking / discovery
- Screenshot 3 (feature 2): automation / smart suggestions / shortcuts
- Screenshot 4 (proof): progress / streaks / charts / milestones (abstract, not literal)
- Screenshot 5 (delight): customization / themes / personalization
- Screenshot 6–8 (optional): collaboration / offline / security / integrations (abstract)
Style variants (drop-in modifiers)#
Append one modifier per series; don’t mix too many:
- Minimal gradient: “smooth gradient bands, subtle grain, soft shadows”
- Geometric: “bold geometric shapes, crisp edges, modern Swiss design”
- Soft 3D: “rounded 3D shapes, clay/plastic material, studio lighting”
- Illustrative: “flat vector illustration, limited palette, paper texture”
- Photo-collage: “clean cutout shapes + blurred bokeh background, premium editorial”
- Retro tech: “subtle CRT scanlines, neon glow, dark background, restrained”
Negative prompt checklist#
Include (exact phrasing optional):
- no text, no words, no letters
- no watermark, no logo, no brand marks
- no device frame, no phone mockup (unless explicitly desired)
- avoid faces/people unless the product demands it
FAQ
07 QUESTIONS
01What is the App marketing copy agent skill?
1) Ask for missing inputs (or infer from repo/product docs): App name + 1-sentence value prop Target user + primary job-to-be-done 3, 7 key features + 1, 3 differentiators Desired tone (and words to use/avoid). It is listed under content and go-to-market in the 100xLab agent skills directory.
02How do I install App marketing copy in Cursor, Claude Code, or Codex?
Run npx skills add ckorhonen/claude-skills --skill app-marketing-copy in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only App marketing copy, not every skill in the repository.
03What does the App marketing copy SKILL.md cover?
The SKILL.md includes sections on Quick start, Examples, Example 1: New App Store Listing, Example 2: Marketing Copy Refresh, Example 3: Multi-Platform Launch and Intake template (ask, then proceed). Read the full text on this page or in plain markdown at /resources/agent-skills/ckorhonen-claude-skills--app-marketing-copy--2ma2fo/raw.
04Which agents can use App marketing copy?
App marketing copy installs with the cross-agent skills installer (npx skills add), which sets it up for agents such as Claude Code, Cursor and Codex. Each agent loads the SKILL.md when you ask for the skill by name.
05What license is App marketing copy under?
The ckorhonen/claude-skills repository declares the MIT license. Read the license file in the repository before you copy or redistribute the skill.
06Is App marketing copy free to use?
Reading, copying and installing App marketing copy costs nothing: it is published in a public GitHub repository under the MIT license. Reuse and redistribution follow that license.
07Where is the source of App marketing copy?
App marketing copy comes from https://github.com/ckorhonen/claude-skills, which has 10 GitHub stars. The SKILL.md is at https://github.com/ckorhonen/claude-skills/blob/HEAD/skills/app-marketing-copy/SKILL.md. The author is ckorhonen.
Need an agent workflow built around your stack?
Tell us the workflow you want automated. We reply within 4 working hours (IST).
ATTRIBUTION
App marketing copy was written by its original authors and is published in ckorhonen/claude-skills (opens GitHub in a new tab) under the MIT license. All rights stay with the original authors.
100xLab did not write, maintain or endorse this skill. This page lists it for discovery. Repo stars belong to the source repository, not to the skill. Review any skill before you install it.