analyzing-competitor-instagram-content-strategy — скилл
Скилл собирает посты конкурента в Instagram и показывает, какие форматы и темы дают ему отклик. Пригодится, когда нужно понять чужой контент-план.
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a claude-codeЧто делает analyzing-competitor-instagram-content-strategy
Скилл берёт последние посты аккаунта через скрапер apidojo/instagram-scraper на Apify и раскладывает их по типам: продукт, лайфстайл, обучающие, отзывы, развлечение, промо, закулисье. Для каждого типа считает средний engagement rate, долю в общем числе постов и находит лучший пример. Отдельно выводит распределение по форматам — изображения, карусели, видео и reels.
Дальше считает частоту публикаций, лучший день недели и час по timestamp постов. В отчёте есть таблица топ-5 постов по вовлечённости, где комментарии весят втрое против лайков, и блок наблюдений с пробелами в контенте конкурента. Если постов меньше двадцати, скилл предупредит о малой выборке и предложит окно в 180 дней.
Перед запуском нужен APIFY_TOKEN в переменной окружения или в .env. Скрипт scripts/run_actor.js сам дожидается выполнения и сохраняет результат в CSV или JSON, но можно обойтись вызовом через Apify MCP или REST API. Учтите: Instagram отдаёт только недавние посты, поэтому вместо заявленных 50 может вернуться около дюжины — это повод сверить фактическое число в отчёте, прежде чем делать выводы о частоте публикаций.
Какие задачи решает
- разобрать, какие форматы постов дают конкуренту больше отклика
- посчитать частоту публикаций и найти лучший день недели
- сравнить долю промо и обучающего контента у конкурента
- найти темы, которые конкурент не закрывает
- проверить, не накручена ли вовлечённость у чужого аккаунта
Примеры запросов агенту
- проанализируй контент-стратегию конкурента в Instagram по аккаунту [COMPETITOR_HANDLE], возьми последние 50 постов
- сравни частоту постов и темы у двух аккаунтов в Instagram
- посмотри, какие типы контента лучше всего работают у конкурента, и покажи топ-5 постов
Как установить analyzing-competitor-instagram-content-strategy
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a claude-code2Вручную: положить файлы
~/.claude/skills/analyzing-competitor-instagram-content-strategy/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/analyzing-competitor-instagram-content-strategy/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a codex2Вручную: положить файлы
.agents/skills/analyzing-competitor-instagram-content-strategy/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a cursor2Вручную: положить файлы
.cursor/skills/analyzing-competitor-instagram-content-strategy/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills analyzing-competitor-instagram-content-strategy2Вручную: положить файлы
.github/skills/analyzing-competitor-instagram-content-strategy/SKILL.md1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a gemini-cli2Командой платформы
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/intent/analyzing-competitor-instagram-content-strategyВручную: положить файлы
.devin/skills/analyzing-competitor-instagram-content-strategy/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о analyzing-competitor-instagram-content-strategy
Как установить analyzing-competitor-instagram-content-strategy в Claude?
Выполните npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-instagram-content-strategy -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/analyzing-competitor-instagram-content-strategy/SKILL.md.
Что делает analyzing-competitor-instagram-content-strategy?
Собирает последние посты конкурента в Instagram и считает по ним метрики: частоту публикаций, микс типов контента, лучшие посты, работу с хештегами и ориентиры по вовлечённости. На выходе — отчёт со стратегией и списком пробелов.
Что нужно для работы скилла?
Переменная окружения APIFY_TOKEN — её можно прописать в .env. Дополнительно можно подключить Apify MCP-сервер, тогда запуск идёт через инструмент apify:run-actor.
Исходный текст
SKILL.md · Apache-2.0
---
name: analyzing-competitor-instagram-content-strategy
description: >
Analyzes a competitor's Instagram content strategy and performance using apidojo's Instagram
scraper on Apify. Triggers when the user asks to: analyze what a competitor posts on Instagram,
benchmark a competitor's Instagram engagement, see what content types perform best for a
competitor on Instagram, reverse-engineer a competitor's Instagram content calendar, identify
content gaps vs. a competitor on Instagram, compare posting frequency or content themes, or
understand why a competitor's Instagram is growing.
Returns post frequency, content type mix, top-performing posts, hashtag strategy, and engagement benchmarks.
Ideal for social media managers, brand strategists, and content marketing teams.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/instagram-scraper
---
# Analyzing Competitor Instagram Content Strategy
Reverse-engineers a competitor's Instagram content strategy by analyzing their last 50+ posts. Identifies what content formats, themes, and posting patterns drive their highest engagement.
## Prerequisites
- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed
## Inputs
| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | ✅ | `[]` | Instagram URLs — profiles, hashtags, locations, audio pages, reels |
| `until` | string | Optional | — | Scrape posts until this date (YYYY-MM-DD) |
| `maxItems` | number | Optional | Unlimited | Maximum posts to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |
## Workflow
```
Progress:
- [ ] Step 1: Scrape competitor's recent posts
- [ ] Step 2: Classify content types
- [ ] Step 3: Calculate engagement metrics per content type
- [ ] Step 4: Analyze posting patterns
- [ ] Step 5: (Optional) Compare to your account
- [ ] Step 6: Deliver strategy report
```
### Step 1: Scrape Competitor Profile
**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~instagram-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~instagram-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~instagram-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
```
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**
```
Tool: apify:run-actor
Actor: "apidojo~instagram-scraper"
Input:
{
"usernames": ["[COMPETITOR_HANDLE]"],
"maxItems": 50
}
```
**REST API fallback:**
```bash
curl -X POST "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"usernames": ["competitor_handle"], "maxItems": 50}'
```
### Step 2: Content Classification
For each post, classify:
```
content_type:
PRODUCT = post primarily shows product
LIFESTYLE = product in context / aspirational
EDUCATIONAL = tips, how-to, facts (carousel with text)
SOCIAL_PROOF = testimonial, user tag, press feature
ENTERTAINMENT = meme, trending audio, humor
PROMOTIONAL = sale, discount, CTA-heavy
BEHIND_SCENES = team, office, process
```
Format: `IMAGE` | `VIDEO` | `CAROUSEL`
### Step 3: Calculate Metrics
```
engagement_rate = (likes + comments) / follower_count * 100
per_type_avg_engagement = avg(engagement_rate for all posts of that type)
content_type_share = count(posts of type) / total_posts * 100
```
Top performing post: highest `(likes + comments * 3)` — comments weighted higher as active signal.
**Posting cadence:**
```
posts_per_week = total_posts / (date_range_days / 7)
best_day = day_of_week with highest avg engagement
best_hour = hour_of_day with highest avg engagement (use post `timestamp`)
```
### Step 4: Edge Cases
- **Competitor has very few posts** (< 20): Report available data; note low sample size; extend to 180-day window
- **Engagement rate << 1%**: Account may have bot followers or inactive audience; note this as "audience quality concern"
- **All posts are product/promo**: This competitor is over-indexed on promotional content — opportunity for content that educates or entertains
- **Carousel shows as single image**: Some scrapers return first image only; note when `type = CAROUSEL` for accurate content type count
## Output Format
```
# Competitor Instagram Strategy: @[COMPETITOR_HANDLE]
Posts analyzed: [N] | Followers: [N] | Overall Eng Rate: [X%] | Date: [DATE]
## Content Mix
| Type | % of Posts | Avg Eng Rate | Best Post Example |
|------|-----------|-------------|------------------|
| Product | [X%] | [X%] | [post excerpt] |
| Lifestyle | [X%] | [X%] | |
| Educational | [X%] | [X%] | |
## Format Distribution
Images: [X%] | Carousels: [X%] | Videos/Reels: [X%]
Best format by engagement: [FORMAT] ([X%] eng rate)
## Top 5 Posts (by Engagement)
| # | Type | Format | Likes | Comments | Eng Rate | Caption Preview |
|---|------|--------|-------|----------|----------|----------------|
## Posting Cadence
Frequency: [X] posts/week | Best day: [Day] | Best hour: [HH:00]
## Key Observations
1. [Pattern observation — e.g. "Carousel educational posts get 2× engagement of product posts"]
2. [Observation]
3. [Opportunity gap]
```
## Troubleshooting
**Scraper returns only recent 12 posts**: Instagram limits API access to recent posts. For 50-post analysis, run scraper and note actual count returned.
**Engagement rate seems wrong**: Verify `follower_count` is current — scraper may return the follower count at time of scrape, which could differ from post-date count for historical posts.
**Competitor has very high engagement**: Distinguish between genuine engagement and pods/bought engagement — genuine engagement shows variety in commenters; pod engagement shows the same accounts commenting repeatedly.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills