From scratch, in seven days: 2.9K people reached, 12.9K views (they watched 4.45 videos each), and +16 net followers. Below: the funnel mapping, real conversion rates, the bottleneck, the audience, the experiment, and the live data pipeline behind it.
A one-page walkthrough of a self-inflicted stress test: I launched a channel from zero, treated it like a GTM funnel, and instrumented every stage the way I'd instrument a B2B pipeline. Read it as a work sample — the vocabulary, the diagnosis method, and the live data pipeline all transfer directly to a CRM.
Every content metric mapped to a GTM funnel stage — reach, engagement, SQL, closed-won — so the channel becomes diagnosable, not just "vibes."
Real week-1 numbers computed the way an analyst would: 2.9K reach, 12.9K views, +16 follows — with a diagnosed bottleneck.
TikTok API → orchestrator → store → dashboard, with a Slack/Discord alert on velocity spikes. Same drift-detection pattern I'd wire on a CRM.
Bottleneck → hypothesis → experiment → recommendation. The recs section is a real roadmap, not a report.
Every content metric has a revenue-operations twin. Treating @clips_peruuu this way turns "posting videos" into a measurable acquisition system — stage definitions, conversion rates, a diagnosable bottleneck, a roadmap. Same vocabulary I'd use for a B2B pipeline.
Real week-1 numbers, computed the way an analyst would. Edit any input and everything recomputes. When wired to a data source (see §07), it pulls live — the badge shows the source.
Viewers are most active Wednesday evening. Posting cadence should front-load the Tue–Wed window, not spray randomly.
Defaults are the real screenshots. Everything recomputes in your browser — nothing is sent anywhere.
Viewer→profile runs at 1.48% but profile→follow is 37%. Translation: once someone checks the profile, ~4 in 10 follow — the offer converts. The leak is upstream: views aren't routed to the profile. A CTA/routing problem, not a content-quality one.
4.45 views per unique viewer — people don't watch one clip, they binge the channel. That's the clearest content-market-fit signal in the whole dataset and the reason the algorithm kept pushing reach.
50% women / 45% men, most active Wednesday 9–10pm. That's a scheduling instruction, not trivia: concentrate publishing into the high-activity window instead of spraying posts evenly.
Adjacent creators my viewers also watch (Willax, La República, Carlos Álvarez) and the posts they also saw range 221K–8.5M views. The TAM for Peruvian political content is huge — week-1 reach is a rounding error against the ceiling.
Not "I made some videos." A defined supply chain where every tool maps to a GTM function.
A funnel improves through tests, not vibes. The first three seconds decide view-through, so I tested the structure of the opening on comparable cuts.
Set up the situation, then deliver the joke.
Slower 3-sec retention · lower view-through.
Open on the punchline, backfill context after.
Meaningful lift in view-through & engagement → now the default.
Read as RevOps: one variable isolated (hook structure), measured on real data, winner standardized into the playbook — the same loop that improves an email subject line or a landing-page CTA.
The dashboard reads from a configurable data source. Here's the real pipeline that feeds it — the part that shows I can integrate, not just chart.
SOURCE ORCHESTRATION STORE SURFACE
TikTok Display API ──OAuth──▶ Make / n8n / Worker ──▶ Google Sheet ──▶ this dashboard
(scopes: user.info.stats, (scheduled pull, 1–6h) or Supabase (REST) (fetch on load)
video.list → per-video │
views/likes/comments/shares) ▼
Slack / Discord webhook
TikTok Studio CSV ──────────▶ (audience, peak-time — "video breaking out"
(demographics: API can't) manual export, merged in)
OAuth via Login Kit. user.info.stats gives follower / like / video counts; video.list returns each of your videos with view, like, comment & share counts. Only your authenticated account — exactly what a creator needs.
Handles the OAuth token refresh and pulls on a schedule (no backend to babysit). Writes the result to the store. This is the piece a static site can't do itself.
A published Google Sheet (CSV/JSON) or a free Supabase table — both CORS-friendly, so this static page can fetch() them on load. Point CONFIG.DATA_URL at one and the badge flips to live.
Threshold check in the cron: when a video's velocity spikes or follow-rate dips, fire an alert — the same drift-detection pattern from my GTM-metrics pipeline.
The honest part: audience demographics and peak-time aren't exposed by TikTok's API — they only live in TikTok Studio, so a complete picture blends API data (video stats) with a Studio export (audience). Knowing exactly where that line sits, and shipping the editable live-fed version now, is the RevOps call.
The channel is the artifact. The skills underneath are what transfer to a CRM.
Stages, definitions, conversion rates, a diagnosable bottleneck. Same vocabulary I use on a B2B pipeline in HubSpot or Salesforce.
Source → orchestrator → store → surface, with alerting on drift. The exact pattern that keeps a CRM's KPIs trustworthy in production.
Every recommendation is tied to a metric that moves. No "insights deck" — a roadmap a team can execute on next week.
Where the API stops (demographics, peak-time), I say so and blend sources. That judgment is the RevOps call.