Creator CRM enrichment: keep every creator record current
Store each creator under their platform user ids, refresh a profile call and a recent-posts call per platform on a schedule set by tier, and compute median views, engagement rate, posting rate and 30-day growth from those calls. For 2,000 creators with 200 refreshed weekly, plus new-creator matching and a few audience checks, that is about 9,420 credits a month, roughly $17.71 on the $47 pack. Look up contact details only for shortlisted creators and only for business outreach.
A creator CRM goes stale fast. Handles change, follower counts drift, and a creator who averaged 200,000 views in spring may average 20,000 now. Enrichment is the job of keeping every record current and comparable: one schema, fresh metrics, linked profiles across platforms, and contact details only where you need them.
Who does this
- Influencer marketing teams keeping a roster of a few hundred to a few thousand creators.
- Agencies sharing one creator database across client campaigns.
- Creator platforms and marketplaces showing up-to-date stats on creator profiles.
- Brand partnership managers preparing renewals with recent performance.
The record: fields worth storing
| Field | Source | Refresh |
|---|---|---|
| Platform user id (the primary key) | Profile call | Never changes |
| Handle, name, bio, external link | Profile call | Each refresh |
| Followers, and followers 30 days ago | Profile call | Each refresh |
| Median views and engagement of the last 12 posts | Recent-posts call | Each refresh |
| Posts per week | Recent-posts call | Each refresh |
| Linked profiles on other platforms, with confidence | Bio link page, profile matching | Quarterly |
| Audience age and gender split | Audience call, shortlist only | Before a campaign |
| Business contact, consent notes, opt-out flag | Bio, or email lookup for shortlist | Before outreach |
The endpoints
| Step | Platform | Endpoint | Credits |
|---|---|---|---|
| Profile | TikTok, Instagram, YouTube | tiktok profile API, instagram profile API, youtube channel API | 1 |
| Recent posts | TikTok, Instagram, YouTube | tiktok profile videos API, instagram user posts API, youtube channel videos API | 1 |
| Link-in-bio page | Linktree | linktree API | 1 |
| Other profiles of a creator | Cross-platform | find social profiles API | 10 |
| Audience demographics | TikTok | tiktok user audience API | 26 |
| Business email, shortlist only | Cross-platform | find creator emails API | 10 |
Refresh by tier, not all at once
Refreshing every creator every week wastes credits on people you will not contact this quarter. Split the roster:
- Tier A: active and upcoming campaigns. Weekly.
- Tier B: the rest of the roster. Monthly.
- New: creators added this month. Full enrichment once, including cross-platform matching.
Worked example: 2,000 creators
Creators average 1.5 platforms each, and each platform needs 2 calls (profile and recent posts), so one refresh is 3 credits per creator.
| Item | Math | Credits a month |
|---|---|---|
| Tier A, 200 creators, weekly | 200 × 3 × 4 | 2,400 |
| Tier B, 1,800 creators, monthly | 1,800 × 3 | 5,400 |
| 100 new creators: profile matching and bio link page | 100 × (10 + 1) | 1,100 |
| Audience checks for 20 shortlisted | 20 × 26 | 520 |
| Total | 9,420 | |
9,420 credits is about $17.71 a month on the $47 pack, so one pack lasts about 2.6 months. At this volume the $497 pack for 500,000 credits brings the price to $0.99 per 1,000, about $9.36 a month, and lasts over four years. Private accounts and not-found handles are not charged, which helps when old records point to deleted profiles.
The formulas
- Median views of the last 12 posts, not the mean. One viral post can triple the mean.
- Engagement rate = median of (likes + comments) / views per post. For image posts with no view count, use followers as the denominator and keep it in a separate column.
- Posts per week = posts in the last 28 days / 4.
- 30-day growth = followers now / followers 30 days ago − 1.
- Views-to-followers = median views / followers. A low ratio usually means much of the following is old or inactive. Set the cut-off from your own roster, per platform.
- Staleness = days since last refresh. Show it next to every number in the CRM.
A refresh function
import datetime, os, statistics, requests
KEY = os.environ["SCRAPEIO_API_KEY"]
H = {"x-api-key": KEY}
def get(path, **p):
r = requests.get("https://scrapeio.com" + path, params=p, headers=H, timeout=60).json()
return r["data"] if r.get("success") else None
def refresh_tiktok(handle):
prof = get("/v1/tiktok/profile", handle=handle)
vids = get("/v3/tiktok/profile/videos", handle=handle)
if not prof or not vids:
return None # private or gone: not charged, flag the record
last = [v for v in vids["items"][:12] if v.get("plays")]
eng = [((v.get("likes") or 0) + (v.get("comments") or 0)) / v["plays"] for v in last]
return {
"id": prof["id"], "handle": prof["handle"], "followers": prof["followers"],
"median_views": statistics.median(v["plays"] for v in last) if last else None,
"engagement": round(statistics.median(eng), 4) if eng else None,
"refreshed": datetime.date.today().isoformat(),
}
print(refresh_tiktok("khaby.lame"))
The same function works for Instagram and YouTube with their paths, because the field names are the same.
Matching profiles across platforms
- Confirmed: the other profile is linked from the creator's bio or link-in-bio page, or links back.
- Likely: same name and avatar, and the handle matches, but no link either way.
- Candidate: a name match only. Never merge on this; ask the creator.
Key every record on the platform user id. When a refresh returns a new handle for the same id, update the handle and keep the history.
Pitfalls
- Contact data. Store business contact details only, use them for business outreach, and honor opt-outs. Email rules differ by country; the influencer email finder guide covers GDPR and CAN-SPAM. This is not legal advice.
- Mixed metrics. Instagram image posts have no plays, so do not average them with reels.
- Audience calls cost 26 credits. Run them only for creators on a real shortlist.
- Old snapshots in reports. A renewal deck built from a three-month-old record misleads both sides. Refresh before you send it.
Run it from an AI agent
claude mcp add --transport http scrapeio https://scrapeio.com/mcp --header "x-api-key: $SCRAPEIO_API_KEY"
Then ask: "For these 15 TikTok handles, call tiktok_profile and tiktok_profile_videos. For each, give followers, median views of the last 12 videos, engagement rate and posts per week, as CSV. Mark any handle that failed." For finding new creators to add, see lookalike creators and influencer discovery tools. Tools are listed on the TikTok MCP server and Instagram MCP server pages.
How to do it with ScrapeIO
Profiles and recent posts on TikTok, Instagram and YouTube cost 1 credit each and share the same field names, so one refresh function covers the whole roster. Cross-platform matching and email lookup cost 10 credits, audience demographics 26, and credits never expire, so a roster that grows slowly is never paying for unused months.
100 free credits, no card. Credits never expire.
Get API key