mcpField
B
benchmarking-instagram-influencer-engagement

benchmarking-instagram-influencer-engagement

github.com/apidojo-ioMarketing & growth1789 installsUpdated 24w ago
Repository

About benchmarking-instagram-influencer-engagement

A skill for comparing recent Instagram post engagement across accounts, including engagement rates, posting consistency, and tier-based benchmarks. It is intended for influencer screening, partnership evaluation, and account audits.

Key features

  1. 01Collect recent Instagram posts
  2. 02Calculate engagement rates
  3. 03Measure posting frequency
  4. 04Compare tier-based benchmarks
  5. 05Flag suspicious engagement patterns

Use cases

  1. 01Screen influencers before a partnership
  2. 02Compare engagement across accounts
  3. 03Audit an Instagram account's performance

MCP support

Can run the Instagram scraper through the optional Apify MCP server using the apify:run-actor tool.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill benchmarking-instagram-influencer-engagement

After installing, type/benchmarking-instagram-influencer-engagementin Claude Code to confirm it loaded.

Details

From the project README

Benchmarking Instagram Influencer Engagement

Pulls recent post data for one or multiple Instagram accounts and calculates engagement rate, consistency, and performance benchmarks. Used to vet influencers before partnerships or compare accounts against each other.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarray✅[]Instagram URLs — profiles, hashtags, locations, audio pages, reels
untilstringOptional—Scrape posts until this date (YYYY-MM-DD)
maxItemsnumberOptionalUnlimitedMaximum posts to return
customMapFunctionstringOptional—JavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Get account list and analysis goal
- [ ] Step 2: Run instagram-scraper for each account
- [ ] Step 3: Calculate engagement rate per account
- [ ] Step 4: Apply benchmark standards
- [ ] Step 5: Deliver comparison report
Step 1: Clarify Parameters

Ask the user for:

  • Instagram handles to analyze (up to 10 accounts; each handle without @)
  • Number of recent posts to analyze (default: 30 — enough for statistical reliability)
  • Analysis goal — vetting for partnership, competitive benchmarking, or general audit
Step 2: Run the Actor

Run separately for each account or pass as a list.

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

# 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": ["[handle1]", "[handle2]", "[handle3]"],
  "maxItems": 30
}

REST API fallback:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": ["[handle1]", "[handle2]"],
    "maxItems": 30
  }'

Wait for SUCCEEDED. Fetch dataset.

Step 3: Calculate Engagement Metrics

For each account, from its posts array:

avg_likes = sum(post.likesCount) / num_posts
avg_comments = sum(post.commentsCount) / num_posts
engagement_rate = (avg_likes + avg_comments) / follower_count * 100
posting_frequency = num_posts / date_range_days

Benchmark standards by follower tier:

TierFollowersGood ERGreat ER
Nano1K–10K5–8%>8%
Micro10K–100K3–5%>5%
Mid100K–500K1.5–3%>3%
Macro500K–1M1–2%>2%
Mega1M+0.5–1%>1%
Step 4: Flag Anomalies

Flag accounts with suspicious engagement patterns:

  • Low ER relative to tier: ER below 0.5% suggests inflated followers
  • Like/Comment imbalance: Very high likes but near-zero comments suggests like-buying
  • Engagement spikes: One post with 10x normal engagement followed by dead content suggests bought promotion
  • Sudden follower jump: Cross-reference last follower count change (if visible)
Step 5: Format Report

Output Format

# Instagram Engagement Benchmark Report
Accounts analyzed: [N] | Posts per account: [30] | Date: [DATE]

## Summary Comparison
| Account | Followers | Avg Likes | Avg Comments | Eng. Rate | Tier Benchmark | Status |
|---------|-----------|-----------|--------------|-----------|----------------|--------|
| @[name] | [N]       | [N]       | [N]          | [X.X%]    | [good/great/low] | ✅/⚠️/❌ |

## Detailed Analysis

### @[handle1]
- Followers: [N] | Tier: [Nano/Micro/Mid/Macro/Mega]
- Avg Likes: [N] | Avg Comments: [N]
- **Engagement Rate: [X.X%]** — [above/at/below] benchmark for this tier
- Posting frequency: [X] posts/week
- Best-performing post: [url] ([N] likes, [N] comments)
- ⚠️ Anomalies: [none / describe if any]
- **Verdict:** [Recommended / Proceed with caution / Do not recommend]

### @[handle2]
[same structure]

## Benchmark Verdict Key
- ✅ Healthy engagement — safe to partner with
- ⚠️ Below benchmark — investigate further before committing budget
- ❌ Suspicious patterns — likely inflated audience, do not recommend

Troubleshooting

Private accounts: Instagram scraper cannot access private profiles. Skip these. Low post count: Accounts with <10 recent posts have unreliable ER stats — flag this. Reels vs. posts: Reels typically get 2-3x more engagement than static posts. If the account posts mostly Reels, adjust expectations.

Comments

Markdown supported