finding-instagram-ugc-creators-for-brands

>

Installs33deduplicated source total
8-week historyLatest recorded total per week
GitHub stars1source repository
UpdatedOct 05, 2026normalized snapshot

SKILL.md

Finding Instagram UGC Creators for Brands

Discovers Instagram micro-creators who produce authentic product content. Nano (1K–10K) and micro (10K–100K) creators on Instagram drive 3–5× higher engagement than macro-influencers on sponsored content.

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: Search niche hashtags on Instagram
- [ ] Step 2: Collect and deduplicate creator handles
- [ ] Step 3: Enrich profiles
- [ ] Step 4: Score UGC fit
- [ ] Step 5: Deliver creator list

Step 1: Search Niche Hashtags

Target hashtags that UGC creators use (not brand accounts):

Primary: #[niche]review, #[niche]recommendations, #honest[niche]review
Supporting: #[niche]community, #[niche]lover, #[niche]obsessed
Broad: #[niche], #[niche]gram, #my[niche]

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

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 '{
    "keywords": ["#skincarereviews", "#skincareobsessed", "#honestskincarereviews"],
    "maxItems": 100
  }'

Collect unique ownerUsername values from results.

Step 2: Profile Enrichment

If Apify MCP is available:

Tool: apify:run-actor
Actor: "apidojo~instagram-scraper"
Input:
{
  "usernames": ["[username1]", "[username2]", "..."],
  "maxItems": 12
}

Step 3: Score UGC Fit

engagement_rate = (avg_likes + avg_comments) / follower_count * 100

authenticity_signal = (is_not_verified ? 1 : 0) * 0.20
                    + (follower_count < 100000 ? 1 : 0.5) * 0.20
                    + (posts_with_product_content >= 3 ? 1 : posts/3) * 0.30
                    + (engagement_rate >= min_engagement_rate ? 1 : engagement_rate/min_engagement_rate) * 0.30

Tier: TIER 1 ≥ 0.75 | TIER 2 0.50–0.74 | TIER 3 < 0.50

Step 4: Edge Cases

  • Brand ambassador accounts appear (always using product): Check for #ad or #sponsored in every recent post — flag as ALREADY_CONTRACTED
  • Private accounts appear: Skip — cannot assess content quality
  • Follower count doesn't match scrape: If follower_count = 0 in scrape output, retry profile fetch; Instagram sometimes throttles profile data
  • Location filter not matching: Instagram bio location field is free-text — use contains match: bio.lower() contains country/city name

Output Format

# Instagram UGC Creator List: [NICHE]
Creators evaluated: [N] | TIER 1: [N] | TIER 2: [N] | Date: [DATE]

## TIER 1 — Prime UGC Creators
| Creator | Handle | Followers | Avg Likes | Avg Comments | Eng Rate | Authenticity Score |
|---------|--------|-----------|-----------|--------------|----------|-------------------|
| [name] | @[handle] | [N] | [N] | [N] | [X%] | [0.XX] |

## TIER 2 — Worth Testing
| Creator | Followers | Avg Likes | Eng Rate | Location |
|---------|-----------|-----------|----------|---------|

## Top Performing Hashtags for This Niche
| Hashtag | Posts Found | Avg Likes per Post | Creator Quality (High/Med/Low) |
|---------|------------|-------------------|-------------------------------|

Troubleshooting

Hashtag returns only brand posts: Add "review" or "honest" to hashtags to anchor on consumer voice. All creators already contracted: Common in saturated niches — search adjacent sub-niches. Engagement rate < 3% across results: Hashtag may be too popular and dominated by low-engagement accounts. Switch to long-tail hashtags like #[niche][city] or #[brand]community.