ios-app-store-competitor-research

from asebesta/claude-skills

No description

0 stars0 forksUpdated Jan 26, 2026
npx skills add https://github.com/asebesta/claude-skills --skill ios-app-store-competitor-research

SKILL.md

iOS App Store Competitor Research

Extract comprehensive app data and screenshots from Apple App Store listings for competitive analysis.

Workflow

  1. Get the App Store URL from the user
  2. Run the scraper script to fetch data and download screenshots
  3. Review the generated outputs with the user

Usage

Run the scraper with an App Store URL:

python3 scripts/scrape_app_store.py "<app_store_url>" "<output_directory>"

Example:

python3 scripts/scrape_app_store.py "https://apps.apple.com/us/app/slack/id618783545" ./competitor-analysis/slack

Output

The script generates in the output directory:

output_dir/
├── {app-slug}.json      # Full structured data
├── {app-slug}.md        # Formatted report
├── icon.png             # App icon
└── screenshots/
    ├── screenshot_01.png
    ├── screenshot_02.png
    └── ...

Data Extracted

FieldDescription
titleApp name
subtitleApp tagline
descriptionFull app description
ratingAverage star rating (1-5)
rating_countNumber of ratings
categoryPrimary category
genresAll categories
pricePrice or "Free"
developerDeveloper name
versionCurrent version
size_bytesApp size
age_ratingContent rating (4+, 12+, 17+)
minimum_os_versionRequired iOS version
release_notesWhat's New text
languagesSupported languages
screenshotsAll screenshot URLs
bundle_idApp bundle identifier

Multiple Apps

To research several competitors, run the script for each app:

python3 scripts/scrape_app_store.py "https://apps.apple.com/us/app/competitor-a/id123" ./research/competitor-a
python3 scripts/scrape_app_store.py "https://apps.apple.com/us/app/competitor-b/id456" ./research/competitor-b

Notes

  • The script uses the iTunes Lookup API as the primary data source (most reliable)
  • Screenshots are downloaded at the highest available resolution
  • Both iPhone and iPad screenshots are captured when available
  • Output directory is created if it doesn't exist

Repository Stats

Stars0
Forks0
LicenseMIT License