Inspiration

Every one of us knows a creator who spent a whole weekend on a video, posted it to TikTok, Reels, Shorts and YouTube at once… and watched it get forty views. Every platform has its own analytics, but they all tell you what happened after it's too late to fix it.

The one startup that tried to predict performance before posting, CreatorML (YC W23), only worked for YouTube and big channels, and shut down in 2024. Small creators and local businesses are still posting blind. We wanted to give them a co-pilot that checks a post before it goes live.

What it does

ViralPilot scores a video or photo post for every platform before you publish, and tells you exactly what to change.

  • Link your accounts: paste a YouTube channel or type a TikTok/Instagram handle, and we import your real public stats. A dashboard puts every platform side by side ("TikTok reaches 22× more people per follower than YouTube").
  • Score before you post: each platform gets one combined score from two "brains": our own model, trained on real post outcomes, and Gemini, which actually watches the video.
  • Fix the exact moment: flagged clips like "0:03–0:08: five seconds of dead air" play on click. Separate reviews grade the opening, clarity and pacing, criterion by criterion.
  • Get every detail right: compare up to 3 thumbnails (a different one can win on each platform), check your posting time against where your audience actually lives, and compare up to 3 versions of a photo carousel, slide by slide.

How we built it

  • Data: about 1.2 million real posts: 585K from TikTok-10M, 549K from Instagram, 70K YouTube videos we collected ourselves through the YouTube Data API from 1,199 channels, and 32K LinkedIn posts. Each post is labeled with its percentile within its platform.
  • Model: we benchmarked 13 model types (CatBoost, XGBoost, LightGBM, random forests, MLPs, an FT-Transformer, KNN…) on creator-grouped splits, so test creators were never seen in training. CatBoost won on every platform. It sees caption features, timing and account context.
  • Content review: Gemini watches the actual video and returns structured JSON: per-platform scores, timestamped moments, opening/clarity/pacing rubrics and suggestions.
  • Blending: each platform's score combines both:

$$S_{\text{platform}} = 0.6\,S_{\text{model}} + 0.4\,S_{\text{Gemini}}$$

  • Stack: Next.js on Vercel for the frontend and FastAPI for the backend, with Snowflake as the single data store for users, linked accounts, posts, every report and the uploaded media (in Snowflake stages, with key-pair auth). Apify imports public TikTok/Instagram profiles, and a Cloudflare Tunnel serves the API at api.viralpilot.us.

Challenges we ran into

  • Our first model looked great, and it was cheating. A "beats your own average" TikTok model hit a 0.33 correlation, until we realized one input was effectively derived from the label. After fixing the leakage, it dropped to 0.04. We reframed the problem around expected reach instead and documented the leak checks.
  • Libraries fighting each other: PyTorch and XGBoost/LightGBM load different OpenMP runtimes and deadlock in the same process on macOS, so our benchmark runs every model in its own process.
  • An LLM that copied its homework: Gemini gave identical hook/clarity/visual scores to every platform. Making it write a platform-specific note before each number, and telling it the video's orientation, made the scores reflect each platform's norms.
  • Never trust an LLM with time math: posting-time advice converts time zones in code. Gemini only judges.
  • Deployment: the backend's ML stack was about 900 MB against Vercel's 500 MB Python limit and 4.5 MB request bodies, Railway sign-ups were closed and Hugging Face needed a paid plan. We ended up with Vercel for the frontend and a Cloudflare Tunnel for the API.
  • Small things that cost hours: Snowflake reserved words (following, connection), batching inserts (account linking went from 23 s to 2.4 s), and a stylesheet that silently painted two of our three chart bars red on red.

Accomplishments that we're proud of

  • A model that ranks creators it has never seen with a 0.77 Spearman correlation on YouTube (0.68 on Instagram, 0.44 on TikTok), and we show users both halves of every score honestly.
  • Feedback you can act on in seconds: click a flagged moment and the video plays exactly that clip.
  • One end-to-end product, from account linking to scoring, reports and a cross-platform dashboard, built in a weekend.

What we learned

  • On tabular data, gradient-boosted trees beat deep learning, and more model capacity didn't help. Only new information did.
  • Caption stats and timing barely predict whether a video beats its creator's average. The content does, which is why pairing a trained model with a model that can watch the video works.
  • Leakage checks and honest error bars matter more than a pretty headline number.

What's next

  • Teach our own model to read thumbnails and video frames, not just captions.
  • Learn from each creator's real results after they post, so scores become personal over time.
  • Spoken briefings of each report, and one-click scheduled publishing.

Built With

Share this project:

Updates

Submission history