WhatsApp's AI Studio had hundreds of AI characters — anime companions, career coaches, fitness guides, language tutors — but no way to know which ones any given user would care about. The discovery surface showed every user the same popularity-ranked list, regardless of their interests.
WhatsApp is built on end-to-end encryption. The platform cannot read conversations, analyze behavior, or build an interest graph from user activity. That privacy promise is non-negotiable, but it creates a tradeoff: the same architecture that protects users also blocks the implicit signals other platforms rely on for personalization.
| Platform | Interest signals available | Personalization model |
|---|---|---|
| Likes, follows, saves, watch time | Algorithmic ranking from implicit signals | |
| Reactions, group joins, page follows | Interest graph from behavioral data | |
| Character.AI | Chat history, favorites, usage patterns | Recommendations from engagement data |
| None — E2EE by design | Every user sees the same list |
Additional context
As strategy and overall systems owner for interest collection, I framed the problem, built the cross-org case, and drove alignment and delivery across WA AI, GenAI, legal, UXR, PMM, and ranking teams.
I mapped server-defined categories to user-facing interests using three principles: extensible, concise, and globally understood.
| Principle | Rule | Why |
|---|---|---|
| Extensible | Granular enough now, broad enough for future inventory | Categories work whether there are 3 or 300 AI characters |
| Concise | One-word labels (max two words), no descriptions | The interest name is the communication |
| Globally understood | Localizable and idiom-free | Must work across WhatsApp supported languages |
Context on taxonomy creation
| Design decision | What I chose | Why |
|---|---|---|
| Format | Dismissible bottom sheet | Keeps users in AI discovery context |
| Interaction | Chip-based multi-select | No cognitive overhead |
| Re-trigger | 1-week cooldown or 5 sessions; max 3 dismissals | Balances signal collection with respect for user intent |
| Confirmation | System message after saving | Reinforces that selections are applied |
| Management | Manage Interests in overflow menu | Users retain control |
Overall UX system
Detailed UX flows
Prototyped flow
| Ranking layer | Logic | Example |
|---|---|---|
| L1 match | Matching selected interests rank first | Selected Anime → anime characters at top |
| L0 affinity | Same top-level category gets boosted | Anime selected → other Entertainment next |
| Interleaving | Multiple interests interleave | Anime + Travel woven together |
| Popularity fallback | No selection = standard curation | Default unchanged for opt-out users |
List details
The lack of implicit interest signal persists across WhatsApp — so other surfaces, like Channels, may want to leverage the same system. I had to ensure that whatever I created for AI Studio could scale across the entire app and other AI surfaces, not as a one-off pattern.
The project reached dogfooding and was code complete on Android and iOS — with specs, datamaps, approved strings, and full interest management flow. Unfortunately, this project was paused due to org and ranking-team shifts, but the framework shipped on Channels, as they were also trying to solve a cold-start problem. When reusing the interest collection framework to collect users' unique interests, Channels doubled Day Zero follow rate — from 2.6% to 5%. The Updates tab, where Channels live, reaches 1.67B daily active users.