Resumen
Este flujo de trabajo scans TikTok for creators in objetivo niches, obtiene their perfil datos, y puntuaciones them by engagement calidad y follower rango. El salida es un ranked shortlist of creators suitable for marca partnerships, con datos ese influencer marketing plataformas charge $500-2,000/mo to proporcionar.
Desencadenador
Cron programar (cada Wednesday at 10:00 AM UTC)
Programación
Ejecuta cada Wednesday at 10:00 AM UTC
Pasos del flujo de trabajo
Cargar nicho palabras clave y criterios
Leer objetivo nicho palabras clave, preferred follower rango, y minimo video conteo de configuracion.
Search TikTok for nicho creators
Call Scavio TikTok search/usuarios endpoint for cada nicho palabra clave to descubrir relevante creators.
Obtener creator perfiles
Get detallado perfil datos (followers, video conteo, bio) for cada discovered creator.
Puntuacion y filtrar creators
Puntuacion creators by follower-to-video proporcion, filtrar by follower rango, y eliminar cuentas con suspicious metricas.
Salida ranked shortlist
Save el top creators as un ranked shortlist con todos perfil datos for el marketing team to resena.
Implementacion en Python
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
BASE_URL = "https://api.scavio.dev/api/v1/tiktok"
NICHES = ["home fitness", "vegan cooking", "budget travel"]
MIN_FOLLOWERS = 10000
MAX_FOLLOWERS = 500000
MIN_VIDEOS = 20
def search_users(query: str) -> list[dict]:
res = requests.post(
f"{BASE_URL}/search/users",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"query": query},
timeout=15,
)
res.raise_for_status()
return res.json().get("users", [])
def get_profile(username: str) -> dict:
res = requests.post(
f"{BASE_URL}/profile",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"username": username},
timeout=15,
)
res.raise_for_status()
return res.json()
def run():
all_creators = []
seen = set()
for niche in NICHES:
users = search_users(niche)
for user in users[:15]:
username = user.get("username", "")
if not username or username in seen:
continue
seen.add(username)
profile = get_profile(username)
followers = profile.get("followers", 0)
videos = profile.get("video_count", 0)
if MIN_FOLLOWERS <= followers <= MAX_FOLLOWERS and videos >= MIN_VIDEOS:
all_creators.append({
"username": username,
"niche": niche,
"followers": followers,
"videos": videos,
"bio": profile.get("bio", "")[:120],
"score": round(followers / max(videos, 1)), # followers per video as quality proxy
})
all_creators.sort(key=lambda x: x["score"], reverse=True)
date = datetime.utcnow().strftime("%Y-%m-%d")
Path(f"creator_scan_{date}.json").write_text(json.dumps(all_creators, indent=2))
print(f"Found {len(all_creators)} qualified creators across {len(NICHES)} niches")
for c in all_creators[:10]:
print(f" @{c['username']} ({c['niche']}): {c['followers']:,} followers, {c['videos']} videos")
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
const BASE_URL = "https://api.scavio.dev/api/v1/tiktok";
async function searchUsers(query) {
const res = await fetch(`${BASE_URL}/search/users`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ query }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return (await res.json()).users ?? [];
}
async function getProfile(username) {
const res = await fetch(`${BASE_URL}/profile`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ username }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return res.json();
}
const NICHES = ["home fitness", "vegan cooking"];
const creators = [];
for (const niche of NICHES) {
const users = await searchUsers(niche);
for (const u of users.slice(0, 15)) {
const profile = await getProfile(u.username ?? "");
const followers = profile.followers ?? 0;
if (followers >= 10000 && followers <= 500000 && (profile.video_count ?? 0) >= 20) {
creators.push({ username: u.username, niche, followers, videos: profile.video_count ?? 0 });
}
}
}
creators.sort((a, b) => b.followers - a.followers);
console.log(`Found ${creators.length} creators`);
for (const c of creators.slice(0, 10)) console.log(` @${c.username}: ${c.followers.toLocaleString()} followers`);Plataformas utilizadas
TikTok
Descubrimiento de videos, creadores y productos en tendencia