finding-ecommerce-brands-for-outreach
About finding-ecommerce-brands-for-outreach
finding-ecommerce-brands-for-outreach finds e-commerce and DTC brands on Instagram or TikTok by searching product-category hashtags and checking account bios for commercial signals. It helps outreach teams assemble and rank a list of relevant brands.
Key features
- 01Search product-category hashtags
- 02Collect Instagram or TikTok accounts
- 03Filter bios for commercial signals
- 04Apply follower-count ranges
- 05Rank accounts by engagement rate
Use cases
- 01Build a prospect list for a product category
- 02Find emerging brands within follower limits
- 03Prioritize brand accounts for outreach
MCP support
When Apify MCP is available, run the Instagram or TikTok scraper actors with category keywords to collect accounts.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill finding-ecommerce-brands-for-outreachAfter installing, type/finding-ecommerce-brands-for-outreachin Claude Code to confirm it loaded.
Details
From the project READMEFinding E-commerce Brands for Outreach
Finds DTC and e-commerce brands active on Instagram and/or TikTok by searching product-category hashtags and filtering accounts whose bios signal commercial activity (shop links, product keywords, "DTC", "founder", etc.).
Prerequisites
APIFY_TOKENenvironment 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: Define product category and target platform(s)
- [ ] Step 2: Build hashtag and keyword list
- [ ] Step 3: Scrape accounts from product hashtags
- [ ] Step 4: Filter for brand signals in bio
- [ ] Step 5: Rank and deliver outreach list
Step 1: Clarify Parameters
Ask the user for:
- Product category (e.g., "skincare", "dog accessories", "home gym equipment")
- Platform — Instagram, TikTok, or both
- Brand signals to look for (e.g., shop links, "founder", "official", product-related keywords in bio)
- Min followers (default: 1,000 — filters out personal accounts)
- Max followers (optional — e.g., 500,000 to focus on emerging brands)
- Number of brands (default: 50)
Step 2: Build Hashtag List
Generate product-category hashtags. Bias toward brand/seller hashtags, not consumer hashtags:
- Skincare →
#skincarebrand,#skincarefounder,#cleanbeauty,#skincareproducts - Dog accessories →
#dogbrand,#petbusiness,#dogaccessories,#handmadedogtoys - Home gym →
#homegymequipment,#fitnessbrand,#gymequipment,#fitnessproducts
Step 3: Scrape Platform(s)
Instagram — If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~instagram-scraper"
Input:
{
"keywords": ["[hashtag1]", "[hashtag2]", "[hashtag3]"],
"maxItems": 100
}
TikTok — If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~tiktok-scraper"
Input:
{
"keywords": ["[hashtag1]", "[hashtag2]"]
}
REST API fallback (Instagram):
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["[hashtag1]", "[hashtag2]"], "maxItems": 100}'
REST API fallback (TikTok):
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["[hashtag1]", "[hashtag2]"]}'
Collect unique account handles from results. Wait for SUCCEEDED before fetching dataset.
Step 4: Filter for Brand Signals
From profile bios, keep accounts where ANY of the following are true:
- Bio contains a link (Linktree, Shopify store, website)
- Bio contains keywords: "shop", "founder", "CEO", "official", "buy", "available at", "®", "™"
- Bio contains product-specific language matching the category
- Profile is a business account (Instagram only:
businessCategoryNamefield present) - Follower count within specified range
Remove: personal accounts without shop signals, celebrity/influencer accounts (unless user wants these), accounts with 0 posts.
Step 5: Rank and Format
Rank by engagement rate (likes + comments / followers) within follower range.
Output Format
# E-commerce Brand Outreach List: [CATEGORY]
Platform(s): [Instagram / TikTok / Both] | Results: [N] brands | Date: [DATE]
| # | Handle | Platform | Followers | Category | Bio Excerpt | Website | Eng. Rate |
|---|--------|----------|-----------|----------|-------------|---------|-----------|
| 1 | @[name] | [IG/TT] | [N] | [cat] | [bio] | [url] | [X.X%] |
## Highlights
- Fastest growing: @[handle] — [N] followers, [X.X%] engagement
- Most established: @[handle] — [N] followers, [N] posts
- Most active: @[handle] — posts [X]x per week
## Notes
- [N] total accounts found across hashtags
- [N] filtered out (no brand signals in bio)
- [N] final brands in list
Troubleshooting
Mostly personal accounts in results: Use more brand-specific hashtags (e.g., #[category]brand instead of #[category]).
Too few results: Expand hashtag list or lower minimum follower count.
Results from large established brands only: Add #small[category]brand, #indie[category], or #handmade[category] hashtags.
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_TOKENmust be set in environment or.envfile.