Help us improve
Share bugs, ideas, or general feedback.
From awesome-skills
Discovers Instagram brand–creator partnerships by chaining Apify Actors against Meta's Ad Library. Works in both directions (brand→creators or creator→brands) without asking the user to specify.
npx claudepluginhub apify/awesome-skills --plugin apify-influencer-brand-collabsHow this skill is triggered — by the user, by Claude, or both
Slash command
/awesome-skills:apify-influencer-brand-collabsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Surface Instagram branded-content partnerships by chaining four Apify Actors against Meta's Ad
Discovers and evaluates influencers for brand partnerships across Instagram, Facebook, YouTube, and TikTok using Apify Actors. Provides engagement metrics, authenticity checks, and shortlisted candidates.
Discovers and analyzes influencers across Instagram, Twitter/X, LinkedIn, YouTube, and Reddit using the anysite MCP server. Supports multi-platform search, engagement analysis, audience evaluation, and partnership identification.
Reads public Instagram data (profiles, posts, reels, comments, followers, location pages) via UnifAPI. For creator research, audience analysis, and paid partnership detection. Read-only, never posts or DMs.
Share bugs, ideas, or general feedback.
Surface Instagram branded-content partnerships by chaining four Apify Actors against Meta's Ad
Library. Distilled from the production influencer-brand-collabs mini-tool.
Don't use for: organic mentions or tags (use a hashtag/mentions scraper), TikTok or YouTube collabs (different platforms), generic competitor ads (query Meta Ad Library directly).
@adidas or https://www.instagram.com/adidas/Direction (brand vs creator) is detected empirically. Do not ask.
| # | Actor | Purpose | Required |
|---|---|---|---|
| 1 | apify/instagram-profile-scraper | Resolve the target's Facebook fbid | ✓ |
| 2 | apify/brand-collaboration-scraper | Pull branded-content posts from Meta's Ad Library | ✓ |
| 3 | apify/instagram-post-scraper + apify/instagram-reel-scraper | Engagement metrics | optional |
| 4 | apify/instagram-profile-scraper (again) | Enrich the result-side partners | optional |
Call each via mcp__claude_ai_Apify__call-actor. Use mcp__claude_ai_Apify__fetch-actor-details
first if you've never run one of these and want the exact input schema.
// actor: apify/instagram-profile-scraper
{ "usernames": ["adidas"] }
Grab fbid from the first item. No fbid → can't query Ad Library → stop and tell the user.
Most common cause: private account.
https://www.facebook.com/ads/library/branded_content/?id={fbid}&query={username}&target=instagram&start_date={YYYY-MM-DD}&end_date={YYYY-MM-DD}
Date range = the lookback window (default 90 days, ending today).
// actor: apify/brand-collaboration-scraper
{ "startUrls": ["<ad library url>"], "resultsLimit": 10 }
Schema is fixed: every item has creator (always the influencer side) and brandPartners[0]
(always the brand side). Do not try to infer direction from these fields.
Count how often the target username appears on each side of the results:
creator side → target is the influencer; results are the brandsbrandPartners side → target is the brand; results are the creators⚠️ Do not use
isBusinessAccountto infer this. It's unreliable — e.g.@fifaworldcupis a business account but appears as the creator of its own branded content.
Split collab URLs by type:
/reel/... → reel scraper/p/... or /tv/... → post scraper// actor: apify/instagram-post-scraper
{ "username": ["<post urls>"], "resultsLimit": 1, "dataDetailLevel": "basicData" }
// actor: apify/instagram-reel-scraper
{ "username": ["<reel urls>"], "resultsLimit": 1 }
Match back to collabs via shortcode in the URL: /(p|reel|tv)/([A-Za-z0-9_-]+).
Engagement formula: likesCount + commentsCount + (videoViewCount ?? videoPlayCount ?? 0).
Run the two scrapers in parallel — they're independent.
Collect unique usernames from the side that is not the target. Then:
// actor: apify/instagram-profile-scraper
{ "usernames": [<unique result-side usernames>] }
Only enrich the side the user actually cares about. The input handle is already known.
After aggregation, surface:
For who-questions, the partner list alone is enough. Metrics only matter for which-was-best-questions.
Strip Instagram's _u/ and _n/ deep-link prefixes before extracting the handle:
/instagram\.com\/(?:_u\/|_n\/)?([A-Za-z0-9_.]+)/i
These slugs are not usernames — skip them:
explore, reels, stories, direct, accounts, about, p, reel, tv, tags,
locations, _u, _n.
fbid. Bail early with a clear message._u/),
confirm the account actually runs branded content. Meta only indexes ads they've classified as
branded content.isBusinessAccount.Full 4-actor run: ~3–5 minutes, a few cents of Apify compute. Order of magnitude:
| Enrichment | Actors run | Approx time |
|---|---|---|
| None | 2 | 1–2 min |
| + Content | 3–4 | 2–4 min |
| + Profiles | +1 | +30–60 s |
If the user just needs a partner list, skip both toggles.
Production route this skill was distilled from:
mini-tools-main/src/app/api/tools/influencer-brand-collabs/route.ts — full transformation logic,
error handling, and slimmed display shapes for each scraper's output.