Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Understand audience demographics, preferences, behavior patterns, and engagement quality across Facebook, Instagram, YouTube, and TikTok.
.claude/skills/apify-audience-analysis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-12 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
Analyze and understand your audience using Apify Actors to extract follower demographics, engagement patterns, and behavior data from multiple platforms.
(No need to check it upfront)
.env file with APIFY_TOKEN--env-file support)mcpc CLI tool: npm install -g @apify/mcpcCopy this checklist and track progress:
Task Progress:
- [ ] Step 1: Identify audience analysis type (select Actor)
- [ ] Step 2: Fetch Actor schema via mcpc
- [ ] Step 3: Ask user preferences (format, filename)
- [ ] Step 4: Run the analysis script
- [ ] Step 5: Summarize findingsSelect the appropriate Actor based on analysis needs:
| User Need | Actor ID | Best For | |-----------|----------|----------| | Facebook follower demographics | apify/facebook-followers-following-scraper | FB followers/following lists | | Facebook engagement behavior | apify/facebook-likes-scraper | FB post likes analysis | | Facebook video audience | apify/facebook-reels-scraper | FB Reels viewers | | Facebook comment analysis | apify/facebook-comments-scraper | FB post/video comments | | Facebook content engagement | apify/facebook-posts-scraper | FB post engagement metrics | | Instagram audience sizing | apify/instagram-profile-scraper | IG profile demographics | | Instagram location-based | apify/instagram-search-scraper | IG geo-tagged audience | | Instagram tagged network | apify/instagram-tagged-scraper | IG tag network analysis | | Instagram comprehensive | apify/instagram-scraper | Full IG audience data | | Instagram API-based | apify/instagram-api-scraper | IG API access | | Instagram follower counts | apify/instagram-followers-count-scraper | IG follower tracking | | Instagram comment export | apify/export-instagram-comments-posts | IG comment bulk export | | Instagram comment analysis | apify/instagram-comment-scraper | IG comment sentiment | | YouTube viewer feedback | streamers/youtube-comments-scraper | YT comment analysis | | YouTube channel audience | streamers/youtube-channel-scraper | YT channel subscribers | | TikTok follower demographics | clockworks/tiktok-followers-scraper | TT follower lists | | TikTok profile analysis | clockworks/tiktok-profile-scraper | TT profile demographics | | TikTok comment analysis | clockworks/tiktok-comments-scraper | TT comment engagement |
Fetch the Actor's input schema and details dynamically using mcpc:
bashexport $(grep APIFY_TOKEN .env | xargs) && mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call fetch-actor-details actor:="ACTOR_ID" | jq -r ".content"
Replace ACTOR_ID with the selected Actor (e.g., apify/facebook-followers-following-scraper).
This returns:
Before running, ask:
Quick answer (display in chat, no file):
bashnode --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \ --actor "ACTOR_ID" \ --input 'JSON_INPUT'
CSV:
bashnode --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \ --actor "ACTOR_ID" \ --input 'JSON_INPUT' \ --output YYYY-MM-DD_OUTPUT_FILE.csv \ --format csv
JSON:
bashnode --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \ --actor "ACTOR_ID" \ --input 'JSON_INPUT' \ --output YYYY-MM-DD_OUTPUT_FILE.json \ --format json
After completion, report:
APIFY_TOKEN not found - Ask user to create .env with APIFY_TOKEN=your_token mcpc not found - Ask user to install npm install -g @apify/mcpc Actor not found - Check Actor ID spelling Run FAILED - Ask user to check Apify console link in error output Timeout - Reduce input size or increase --timeout
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 20 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.