discovering-tiktok-shop-sellers-by-niche

Discovers TikTok Shop sellers and product listings in a specific niche using apidojo's TikTok scraper on Apify. Triggers when the user asks to: find TikTok Shop sellers in a produc…

API Dojo

@apidojo-io

Install

$ openclaw skills install @apidojo-io/discovering-tiktok-shop-sellers-by-niche

Discovering TikTok Shop Sellers by Niche

Maps the TikTok Shop seller landscape in a product category. Identifies which products are being heavily promoted, which creators drive the most sales content, and where product gaps exist.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarrayOptional[]TikTok URLs — user profiles, hashtags, music pages, search, locations
keywordsarrayOptional[]Search keywords/terms to find posts
sortTypestringOptionalRELEVANCESort order for keyword results: RELEVANCE, MOST_LIKED, DATE_POSTED
locationstringOptionalISO 3166-1 alpha-2 country code for regional filtering (e.g. US, GB)
maxItemsnumberOptionalUnlimitedMaximum posts to return across the run
includeSearchKeywordsbooleanOptionalfalseAdd the matched search keyword field to each post
customMapFunctionstringOptionalJavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Search niche hashtags with TikTok Shop signals
- [ ] Step 2: Filter posts with shop product links
- [ ] Step 3: Extract seller profiles and products
- [ ] Step 4: Rank by sales signal strength
- [ ] Step 5: Deliver seller/product map

Step 1: Search Hashtags

TikTok Shop hashtags: #tiktokshop[niche], #[niche]shop, #[niche]deals, #tiktokmademebuyit,
                      #[niche]affiliate, #[niche]haul

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~tiktok-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~tiktok-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~tiktok-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~tiktok-scraper"
Input:
{
  "keywords": ["#tiktokshop", "#[niche]shop", "#tiktokmademebuyit"],
  "maxItems": 300
}

REST API fallback:

curl -X POST   "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{
    "keywords": ["#tiktokshop", "#kitchentools", "#tiktokmademebuyit"],
    "maxItems": 300
  }'

Step 2: Score Seller Strength

sales_signal = (playCount / 10000) * 0.35
             + (diggCount / 1000) * 0.25
             + (commentCount / 100) * 0.15
             + (shareCount / 500) * 0.15
             + (hasShopLink ? 1 : 0) * 0.10

Normalize to [0, 1]. Sellers with multiple high-signal posts get multi_post_bonus = 0.15.

Step 3: Classify Seller Type

seller_type:
  BRAND = account.verified OR followerCount > 50K AND bio contains brand name
  CREATOR_AFFILIATE = individual account, earns commission per sale
  DROPSHIPPER = posts multiple unrelated products with generic descriptions

Step 4: Edge Cases

  • Non-Shop posts in results: Drop posts where caption has no shop signal AND no product link
  • Same product from many creators: De-duplicate by product name; count unique promoters as a "sales momentum" signal
  • Saturated niche (> 50 active sellers): Flag as HIGH_COMPETITION; present gap analysis (underserved sub-niches)
  • Views inflated by one viral post: Use median views across seller's last 10 posts as the signal, not max

Output Format

# TikTok Shop Seller Map: [NICHE]
Posts scanned: [N] | Unique sellers: [N] | Brands: [N] | Creator-affiliates: [N] | Date: [DATE]

## Top Sellers by Sales Signal
| Seller | Type | Product(s) | Avg Views/Post | Shop Posts | Signal Score |
|--------|------|-----------|----------------|-----------|-------------|
| @[handle] | Creator | [product] | [N] | [N] | [0.XX] |

## Top Products (by Promotion Frequency)
| Product Name | # Sellers Promoting | Avg Post Views | Price Range |
|-------------|--------------------|--------------------|-------------|
| [product] | [N] | [N] | $[X]-$[X] |

## Market Saturation
Competition level: [LOW / MEDIUM / HIGH] ([N] active sellers)
Potential gap: [sub-niche or product type with < 3 sellers]

Troubleshooting

Hashtag returns non-shop content: Combine niche hashtag with #tiktokshop in the same search to anchor on shop-linked posts. Can't determine product price: TikTok Shop prices aren't always in the video — note URL pattern includes product ID which can be cross-referenced manually. All results from one mega-creator: Add max_posts_per_creator = 5 to surface diverse sellers.

Top skills in this category