Skip to main content
skill CX Codex

instagram-research — Claude Code skill: find outlier reels, analyze

Pulls posts and reels from tracked accounts, flags engagement outliers, and breaks down the top 5 videos into hooks and structure.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add bradautomates/head-of-content --skill instagram-research -a claude-code
Open on GitHub

What instagram-research does

The skill fetches content through Apify's Instagram Scraper, scores engagement as likes + (3 × comments) + (0.1 × views), and marks a post as an outlier when it beats the mean plus the threshold times the standard deviation. Defaults: threshold 2.0, 30 days back, 50 items per account. The top 5 videos then go to video-content-analyzer, which extracts hook technique, structure, retention tricks and CTA strategy.

Work runs through three scripts. fetch_instagram.py grabs the raw data, analyze_posts.py finds outliers and topics, analyze_videos.py handles the video breakdown. Output is a report.md with ranked hooks and replicable formulas, tables for formats and CTAs, the full outlier list and a set of recommendations. Everything lands in a timestamped instagram-research/ folder.

You need APIFY_TOKEN and GEMINI_API_KEY in your environment or .env, plus the apify-client and google-genai Python packages. Accounts to track go in .claude/context/instagram-accounts.md — write that file first, because the fetch step has nothing to pull without it. A single python3 -c check tells you what's missing before you burn a run.

What it helps with

  • find reels that outperformed for competitors this month
  • separate real outliers from normal engagement noise
  • break down hooks and structure of top videos
  • collect trending hashtags and keywords for a niche
  • get ready hook formulas to reuse in your own scripts

Example prompts for the agent

  • run instagram research on the accounts in instagram-accounts.md for the last 30 days
  • find trending reels in my niche and show me the outliers
  • analyze the hooks in the top 5 videos and write the report

How to install instagram-research

1Skills CLI (Vercel)

npx skills add bradautomates/head-of-content --skill instagram-research -a claude-code

2Manually: put the files in place

~/.claude/skills/instagram-research/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/instagram-research/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about instagram-research

How do I install instagram-research in Claude?

Run npx skills add bradautomates/head-of-content --skill instagram-research -a claude-code. The skill lands at ~/.claude/skills/instagram-research/SKILL.md.

What does instagram-research do?

It scrapes posts and reels from tracked accounts via Apify, flags engagement outliers, analyzes the top 5 videos for hooks and structure, and writes a report with replicable formulas.

What do I need before running it?

APIFY_TOKEN and GEMINI_API_KEY in your environment or .env, the apify-client and google-genai packages, and a list of accounts in .claude/context/instagram-accounts.md.

Source text

SKILL.md · MIT
---
name: instagram-research
description: |
  Research high-performing Instagram content (posts and reels) from tracked accounts using Apify's Instagram Scraper.
  Identifies outlier content, analyzes top 5 videos with AI, and generates reports with actionable hook formulas.

  Use when asked to:
  - Find trending Instagram content in a niche
  - Research what's performing on Instagram
  - Identify high-performing reel patterns
  - Analyze competitors' Instagram content
  - Generate content ideas from Instagram trends
  - Run Instagram research
  - Find viral reels
  - Analyze hooks and content structure

  Triggers: "instagram research", "ig research", "find trending reels", "analyze instagram accounts",
  "what's working on instagram", "content research instagram", "reel analysis", "instagram trends"
---

# Instagram Research

Research high-performing Instagram posts and reels, identify outliers, and analyze top video content for hooks and structure.

## Prerequisites

- `APIFY_TOKEN` environment variable or in `.env`
- `GEMINI_API_KEY` environment variable or in `.env`
- `apify-client` and `google-genai` Python packages
- Accounts configured in `.claude/context/instagram-accounts.md`

Verify setup:
```bash
python3 -c "
import os
try:
    from dotenv import load_dotenv
    load_dotenv()
except ImportError:
    pass
from apify_client import ApifyClient
from google import genai
assert os.environ.get('APIFY_TOKEN'), 'APIFY_TOKEN not set'
assert os.environ.get('GEMINI_API_KEY'), 'GEMINI_API_KEY not set'
" && echo "Prerequisites OK"
```

## Workflow

### 1. Create Run Folder

```bash
RUN_FOLDER="instagram-research/$(date +%Y-%m-%d_%H%M%S)" && mkdir -p "$RUN_FOLDER" && echo "$RUN_FOLDER"
```

### 2. Fetch Content

```bash
python3 .claude/skills/instagram-research/scripts/fetch_instagram.py \
  --type reels \
  --days 30 \
  --limit 50 \
  --output {RUN_FOLDER}/raw.json
```

Parameters:
- `--type`: "posts", "reels", or "stories"
- `--days`: Days back to search (default: 30)
- `--limit`: Max items per account (default: 50)

### 3. Identify Outliers

```bash
python3 .claude/skills/instagram-research/scripts/analyze_posts.py \
  --input {RUN_FOLDER}/raw.json \
  --output {RUN_FOLDER}/outliers.json \
  --threshold 2.0
```

Output JSON contains:
- `total_posts`: Number of posts analyzed
- `outlier_count`: Number of outliers found
- `topics`: Top hashtags and keywords
- `accounts`: List of accounts analyzed
- `outliers`: Array of outlier posts with engagement metrics

### 4. Analyze Top Videos with AI

```bash
python3 .claude/skills/video-content-analyzer/scripts/analyze_videos.py \
  --input {RUN_FOLDER}/outliers.json \
  --output {RUN_FOLDER}/video-analysis.json \
  --platform instagram \
  --max-videos 5
```

Extracts from each video:
- Hook technique and replicable formula
- Content structure and sections
- Retention techniques
- CTA strategy

See the `video-content-analyzer` skill for full output schema and hook/format types.

### 5. Generate Report

Read `{RUN_FOLDER}/outliers.json` and `{RUN_FOLDER}/video-analysis.json`, then generate `{RUN_FOLDER}/report.md`.

**Report Structure:**

```markdown
# Instagram Research Report

Generated: {date}

## Top Performing Hooks

Ranked by engagement. Use these formulas for your content.

### Hook 1: {technique} - @{username}
- **Opening**: "{opening_line}"
- **Why it works**: {attention_grab}
- **Replicable Formula**: {replicable_formula}
- **Engagement**: {likes} likes, {comments} comments, {views} views
- [Watch Video]({url})

[Repeat for each analyzed video]

## Content Structure Patterns

| Video | Format | Pacing | Key Retention Techniques |
|-------|--------|--------|--------------------------|
| @username | {format} | {pacing} | {techniques} |

## CTA Strategies

| Video | CTA Type | CTA Text | Placement |
|-------|----------|----------|-----------|
| @username | {type} | "{cta_text}" | {placement} |

## All Outliers

| Rank | Username | Likes | Comments | Views | Engagement Rate |
|------|----------|-------|----------|-------|-----------------|
[List all outliers with metrics and links]

## Trending Topics

### Top Hashtags
[From outliers.json topics.hashtags]

### Top Keywords
[From outliers.json topics.keywords]

## Actionable Takeaways

[Synthesize patterns into 4-6 specific recommendations]

## Accounts Analyzed
[List accounts]
```

Focus on actionable insights. The "Top Performing Hooks" section with replicable formulas should be prominent.

## Quick Reference

Full pipeline:
```bash
RUN_FOLDER="instagram-research/$(date +%Y-%m-%d_%H%M%S)" && mkdir -p "$RUN_FOLDER" && \
python3 .claude/skills/instagram-research/scripts/fetch_instagram.py --type reels -o "$RUN_FOLDER/raw.json" && \
python3 .claude/skills/instagram-research/scripts/analyze_posts.py -i "$RUN_FOLDER/raw.json" -o "$RUN_FOLDER/outliers.json" && \
python3 .claude/skills/video-content-analyzer/scripts/analyze_videos.py -i "$RUN_FOLDER/outliers.json" -o "$RUN_FOLDER/video-analysis.json" -p instagram
```

Then read both JSON files and generate the report.

## Engagement Metrics

**Engagement Score**: `likes + (3 × comments) + (0.1 × views)`

**Outlier Detection**: Posts with engagement rate > mean + (threshold × std_dev)

**Engagement Rate**: (score / followers) × 100

© bradautomates · MIT · bradautomates/head-of-content

Similar skills

Everything for Marketing and content →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor