Skip to main content
skill CX Codex

monitoring-instagram-brand-mentions — Claude Code skill

Collects public Instagram posts that mention a brand through hashtags, tags, or product names. Useful for review, complaint, and user-generated content analysis.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill monitoring-instagram-brand-mentions -a claude-code
Open on GitHub

What monitoring-instagram-brand-mentions does

The skill runs apidojo~instagram-scraper on Apify and searches Instagram with hashtag and keyword groups. Its output includes the post URL, caption, author handle, likes, comments, timestamp, and mention type. Results can be printed in chat or saved as CSV or JSON with scripts/run_actor.js.

It labels posts as UGC, complaints, positive reviews, press coverage, or competitor comparisons. The workflow also applies sentiment labels, calculates reach, removes posts from the official brand account, and produces a report with top posts, advocates, and complaints.

Set APIFY_TOKEN in the environment or a .env file before running it; the scraper call depends on that token. An Apify MCP server is optional. Ambiguous high-volume hashtags need narrower branded variants or a date filter.

What it helps with

  • find public Instagram posts mentioning a brand
  • collect posts from branded hashtags
  • separate complaints from positive reviews
  • identify UGC and press coverage
  • summarize sentiment and post reach

Example prompts for the agent

  • Find public Instagram posts mentioning Acme and group them by mention type.
  • Search #Acme and #AcmeReview, deduplicate the results by postUrl, and prepare a brand report.
  • Analyze Acme mentions for sentiment, complaints, and competitor comparisons, then save the results as CSV.

How to install monitoring-instagram-brand-mentions

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill monitoring-instagram-brand-mentions -a claude-code

2Manually: put the files in place

~/.claude/skills/monitoring-instagram-brand-mentions/SKILL.md

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

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

Questions about monitoring-instagram-brand-mentions

How do I install monitoring-instagram-brand-mentions in Claude Code?

Run npx skills add apidojo-io/apidojo-skills --skill monitoring-instagram-brand-mentions -a claude-code, then check ~/.claude/skills/monitoring-instagram-brand-mentions/SKILL.md.

What does monitoring-instagram-brand-mentions do?

It runs an Instagram scraper through Apify, gathers public posts from hashtags and keywords, and classifies their mention type and sentiment.

What does the skill require to run?

Set APIFY_TOKEN in the environment or in .env. An Apify MCP server can be used as an optional alternative.

Source text

SKILL.md · Apache-2.0
---
name: monitoring-instagram-brand-mentions
description: >
  Monitors Instagram for brand mentions and tagged posts using apidojo's Instagram scraper on Apify.
  Triggers when the user asks to: track Instagram mentions of a brand or product, monitor hashtag
  activity around a brand on Instagram, find posts where users tag or mention a company on Instagram,
  discover organic brand sentiment on Instagram, find untagged brand mentions in captions,
  track user-generated content featuring a brand, or monitor competitor mentions on Instagram.
  Returns post URL, caption, author handle, likes, comments, timestamp, and mention type.
  Ideal for brand managers, social listening teams, PR agencies, and community managers.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actor: apidojo/instagram-scraper
---

# Monitoring Instagram Brand Mentions

Tracks all public Instagram posts mentioning a brand — via branded hashtags, @mentions, or product name keywords. Classifies mentions by sentiment and type (UGC, complaint, press coverage, competitor comparison).

## 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: Build hashtag and keyword list
- [ ] Step 2: Run instagram-scraper for each hashtag
- [ ] Step 3: Classify mention type and sentiment
- [ ] Step 4: Identify top advocates and critics
- [ ] Step 5: Deliver brand health report
```

### Step 1 & 2: Run instagram-scraper


**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:
{
  "keywords": ["#[BRAND]", "#[BRAND]review", "#[BRAND]community"],
  "maxItems": 100
}
```

**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 '{"keywords": ["#[brand]", "#[brand]review"], "maxItems": 100}'
```

Run for each hashtag cluster. Merge results and deduplicate by `postUrl`.

### Step 2: Classify Mentions

**Mention type:**
```
UGC = post contains product photo + brand mention; author is not verified
COMPLAINT = caption contains negative indicators: "broken", "disappointed", "scam", "refund", "terrible", "never again"
POSITIVE_REVIEW = caption contains: "love", "amazing", "best", "recommend", "obsessed"
PRESS/EDITORIAL = author is verified OR follower_count > 100K
COMPETITOR_COMPARISON = caption mentions competitor brand alongside this brand
```

**Sentiment:** Apply same lexical classification as Twitter sentiment skill (positive/negative/neutral indicators).

### Step 3: Score Reach

```
mention_reach = likes + comments * 5 + (followers_of_author / 100)
```

### Step 4: Edge Cases

- **Official brand account's own posts in results**: Drop posts where `ownerUsername` = brand's own handle
- **Hashtag is overloaded** (> 1M posts): Use long-tail branded hashtags instead; or filter by date
- **Sentiment misclassified for complex posts**: Flag posts with both positive and negative indicators as `MIXED`; report count
- **Foreign language mentions dominant**: Report language distribution; flag non-English mentions separately

## Output Format

```
# Instagram Brand Mention Monitor: [BRAND]
Posts collected: [N] | Period: [DATE_RANGE] | Date: [DATE]

## Mention Type Distribution
UGC: [N] | Positive Reviews: [N] | Complaints: [N] | Press: [N] | Comparisons: [N]

## Sentiment Summary
Positive: [X%] | Negative: [X%] | Neutral: [X%]
Weighted by reach: Positive [X%] | Negative [X%]

## Top UGC Posts (Most Liked)
| Creator | @Handle | Likes | Type | Caption Excerpt | Post URL |
|---------|---------|-------|------|----------------|---------|

## Complaints to Address
| Creator | Likes | Complaint Summary | Post URL |
|---------|-------|------------------|---------|

## Top Brand Advocates (Most Frequent Positive Posters)
1. @[handle] — [N] positive posts | [N] avg likes
```

## Troubleshooting

**Hashtag returns generic posts**: The brand hashtag may be ambiguous (e.g. "#apple"). Use `#[brand]official` or `#[brand][product]` for precision.
**Mostly competitor posts**: This may indicate your brand is being used in comparison posts — analyze `COMPETITOR_COMPARISON` category for positioning insights.
**Sentiment skewed by a single viral negative post**: Check `weighted sentiment` vs. raw sentiment; one viral post can shift the raw numbers.

© apidojo · Apache-2.0 · apidojo-io/apidojo-skills

Similar skills

Everything for Marketing and content →

From the same set57

scraping-instagram-location-content Pulls public Instagram posts tagged at one place and returns post URLs, captions, handles, likes and dates. Useful when you want to see what visitors post about a venue. CX Codex +1 810installs extracting-google-paa-questions-for-seo Pulls Google People Also Ask questions for SEO planning, then sorts them by intent and turns the findings into a usable content outline. CX Codex +1 804installs scraping-tweets-from-account This skill pulls tweets, replies and media from a public Twitter/X account through apidojo's tweet scraper on Apify. Handy when you need a dataset for someone else's profile. CX Codex +1 802installs analyzing-youtube-competitor-channel-strategy This skill examines a competitor’s YouTube strategy, video mix, publishing rhythm, and engagement. Use it when a channel benchmark needs data behind it. CX Codex +1 800installs researching-internet-slang-and-cultural-trends Searches Urban Dictionary through Apify for slang and cultural terms. Use it to inspect meme language, social media wording, or brand-related vocabulary. CX Codex +1 796installs analyzing-competitor-instagram-content-strategy This skill pulls a competitor's recent Instagram posts and shows which formats and themes earn them engagement. Useful when you need to read someone else's content plan. CX Codex +1 796installs extracting-youtube-comments-for-research Pulls YouTube comments from videos and channels through Apify, then sorts them into themes, questions and sentiment. Useful when you need to know what viewers actually say. CX Codex +1 794installs finding-instagram-ugc-creators-for-brands Finds Instagram creators for UGC campaigns and ranks them by engagement, niche signals, and profile data. CX Codex +1 794installs

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