Workflow

TikTok Creator Discovery and Scoring Workflow

Workflow that discovers TikTok creators by niche, scores them on engagement and consistency, and exports a ranked list for influencer campaigns.

Overview

Finding the right TikTok creators for influencer campaigns requires manual platform browsing that does not scale. This workflow uses Scavio's TikTok API to search by keyword, analyze creator engagement patterns, score consistency and audience alignment, and output a ranked list ready for outreach.

Trigger

Weekly on Monday, or on-demand per campaign brief.

Schedule

Weekly

Workflow Steps

1

Define Campaign Keywords

Load the campaign brief with target keywords, minimum follower thresholds, and engagement requirements.

2

Search TikTok by Keyword

For each keyword, search TikTok via Scavio API to find videos and creators in the niche.

3

Aggregate Creator Stats

Group results by creator. Calculate average engagement rate, posting frequency, and total reach.

4

Score Creators

Score each creator on engagement rate, consistency, niche alignment, and follower-to-engagement ratio.

5

Export Ranked List

Output the top creators as a CSV or JSON with scores, contact info, and sample content.

Python Implementation

Python
import requests, os, json

API_KEY = os.environ["SCAVIO_API_KEY"]
HT = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

def search_tiktok_creators(keyword: str) -> list:
    resp = requests.post(
        "https://api.scavio.dev/api/v1/tiktok/search",
        headers=HT,
        json={"keyword": keyword},
        timeout=15,
    )
    return resp.json().get("videos", [])

def score_creators(keywords: list) -> list:
    creators = {}
    for kw in keywords:
        videos = search_tiktok_creators(kw)
        for v in videos:
            author = v.get("author", {})
            uid = author.get("unique_id", "unknown")
            if uid not in creators:
                creators[uid] = {
                    "username": uid,
                    "nickname": author.get("nickname", ""),
                    "videos": 0,
                    "total_plays": 0,
                    "total_likes": 0,
                    "total_comments": 0,
                }
            stats = v.get("stats", {})
            creators[uid]["videos"] += 1
            creators[uid]["total_plays"] += stats.get("play_count", 0)
            creators[uid]["total_likes"] += stats.get("digg_count", 0)
            creators[uid]["total_comments"] += stats.get("comment_count", 0)

    # Score: engagement rate + consistency
    for c in creators.values():
        if c["total_plays"] > 0:
            c["engagement_rate"] = round((c["total_likes"] + c["total_comments"]) / c["total_plays"] * 100, 2)
        else:
            c["engagement_rate"] = 0
        c["score"] = c["engagement_rate"] * 0.5 + c["videos"] * 10 * 0.3 + (c["total_plays"] / 1000) * 0.2

    return sorted(creators.values(), key=lambda x: x["score"], reverse=True)

results = score_creators(["skincare routine", "skincare tips", "skincare products 2026"])
for r in results[:10]:
    print(f"@{r['username']}: {r['total_plays']:,} plays, {r['engagement_rate']}% engagement, score: {r['score']:.0f}")

JavaScript Implementation

JavaScript
const HT = {'Authorization': 'Bearer '+process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};

async function searchTiktokCreators(keyword) {
  const r = await fetch('https://api.scavio.dev/api/v1/tiktok/search', {method:'POST', headers:HT, body:JSON.stringify({keyword})});
  return (await r.json()).videos || [];
}

async function scoreCreators(keywords) {
  const creators = {};
  for (const kw of keywords) {
    for (const v of await searchTiktokCreators(kw)) {
      const uid = v.author?.unique_id || 'unknown';
      if (!creators[uid]) creators[uid] = {username:uid, nickname:v.author?.nickname||'', videos:0, totalPlays:0, totalLikes:0, totalComments:0};
      creators[uid].videos++;
      creators[uid].totalPlays += v.stats?.play_count||0;
      creators[uid].totalLikes += v.stats?.digg_count||0;
      creators[uid].totalComments += v.stats?.comment_count||0;
    }
  }
  for (const c of Object.values(creators)) {
    c.engagementRate = c.totalPlays > 0 ? Math.round((c.totalLikes+c.totalComments)/c.totalPlays*10000)/100 : 0;
    c.score = c.engagementRate*0.5 + c.videos*10*0.3 + (c.totalPlays/1000)*0.2;
  }
  return Object.values(creators).sort((a,b)=>b.score-a.score);
}

const results = await scoreCreators(['skincare routine', 'skincare tips', 'skincare products 2026']);
for (const r of results.slice(0,10)) console.log('@'+r.username+': '+r.totalPlays+' plays, '+r.engagementRate+'% engagement, score: '+Math.round(r.score));

Platforms Used

TikTok

Trending video, creator, and product discovery

Frequently Asked Questions

Finding the right TikTok creators for influencer campaigns requires manual platform browsing that does not scale. This workflow uses Scavio's TikTok API to search by keyword, analyze creator engagement patterns, score consistency and audience alignment, and output a ranked list ready for outreach.

This workflow uses a weekly on monday, or on-demand per campaign brief.. Weekly.

This workflow uses the following Scavio platforms: tiktok. Each platform is called via the same unified API endpoint.

Yes. Scavio's free tier includes 250 credits per month with no credit card required. That is enough to test and validate this workflow before scaling it.

TikTok Creator Discovery and Scoring Workflow

Workflow that discovers TikTok creators by niche, scores them on engagement and consistency, and exports a ranked list for influencer campaigns.