# 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 Shopify brands on social media, identify e-commerce companies running TikTok shops, build an outreach list of online brands, find brands selling in a specific product category on social media, identify fast-growing DTC companies for partnerships or sales, or compile a list of online retailers active on Instagram or TikTok. Returns brand handle, follower count, bio, product category, and engagement rate. Ideal for wholesale suppliers, SaaS vendors targeting e-commerce, and B2B partnership teams.

- Skill: `apidojo-io/finding-ecommerce-brands-for-outreach` (Agent Skill)
- Install (CLI): `npx skillmds@latest add apidojo-io/finding-ecommerce-brands-for-outreach`
- Raw SKILL.md: https://api.skillmd.com/api/skills/apidojo-io/finding-ecommerce-brands-for-outreach/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: apidojo-io (https://skillmd.com/u/apidojo-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/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

| 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):**
```bash
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):**
```bash
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):**
```bash
# 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.


