Inspiration

Personalized advertising is the holy grail of digital marketing, but it's incredibly hard to do well. Most ad systems rely on static demographic data or broad interest categories. We wanted to build something smarter: ads that adapt in realtime to what you're actually watching and engaging with. As Yunzhi put it: "I hope users and shareholders both love our product!" And George reminded us: "I like engineering." So we built something that ideally gives a nonnegative contribution to society — ads that feel relevant instead of annoying.

What it does

Doom Scroll Ads generates hyper-personalized advertisements by combining:

  • X (Twitter) history — async-loaded at launch to understand who you are
  • Real-time video engagement — continuously tracks what you watch, like, share, and how long you stay

The result? A user watching Minecraft gameplay gets served a targeted gaming PC ad. Not because they checked a box saying "I like gaming," but because Grok understood the content they engage with and synthesized it into actionable context.

How we built it

The ad generation pipeline runs entirely in the background while the user doom-scrolls:

  • Video Feed & Captioning Videos are served one-by-one, each with caption context generated via Grok's VLM (vision-language model).

  • User Context Generation We build a dynamic user profile from two sources:

    • X history scraping (loaded async at start)
    • Ongoing engagement tracking: likes, shares, and watch time on each video

Grok synthesizes this into a unified user context that evolves as preferences change.

  • Product Matching We maintain a product catalog where each item has Grok-generated context (VLM captioning of product images/videos). Grok recommends products based on user-product context alignment.

  • Personalized Ad Generation Given the matched product and user context, we generate a personalized ad creative tailored to that specific user.

What's next for Doom Scroll Ads

  • Video ads — When Grok releases video generation, we'll swap static images for fully personalized video advertisements
  • Multi-platform context — Extend beyond X to incorporate other social signals
  • Advertiser dashboard — Real-time analytics and A/B testing tools for brands
  • Privacy controls — User-facing transparency on what context is being used

This project hit the sweet spot—technically challenging and genuinely fun to build!

Built With

Share this project:

Updates