finding-ecommerce-brands-for-outreach

Discovers e-commerce and DTC brands on Instagram and TikTok using apidojo's scrapers on Apify. Triggers when the user asks to: find DTC brands on Instagram for outreach, discover S…

API Dojo

@apidojo-io

Install

$ openclaw skills install @apidojo-io/finding-ecommerce-brands-for-outreach

Finding 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_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: 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: businessCategoryName field 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_TOKEN must be set in environment or .env file.

Top skills in this category

YouTube

@byungkyu

YouTube Data API integration with managed OAuth. Search videos, manage playlists, access channel data, and interact with comments. Use this skill when users want to interact with YouTube. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a YouTube connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a YouTube action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with YouTube examples; they add no YouTube capability - YouTube is not an event source, a trigger cannot read YouTube data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).

14529k

Wechat Article Search

@wuchubuzai2018

搜索微信公众号文章技能。通过微信搜索获取文章列表,覆盖科技/AI、社会热点、财经、教育、职场等各类中文资讯;可按关键词检索并返回标题、概要、发布时间、来源公众号与链接。当用户需要查找微信公众号文章、整理参考资料或快速获取文章信息时使用此技能。

3318k

Figma

@hith3sh

Read files, manage comments, extract design tokens, download images, and create webhooks in Figma via the Figma REST API. Use this skill when users want to i...

327.5k

Social Media Scheduler

@1kalin

Plan, draft, and organize social media content across platforms. Create content calendars, write platform-optimized posts, and maintain consistent posting schedules.

1414k

Alexa CLI

@buddyh

Control Amazon Alexa devices and smart home via the `alexacli` CLI. Use when a user asks to speak/announce on Echo devices, control lights/thermostats/locks, send voice commands, or query Alexa.

146.8k