Case study · Coffee Meets Bagel · 2022–23

Coffee Meets Bagel — Revenue, Optimization, and a design system.

Led design across the Revenue and Optimization pillars at Coffee Meets Bagel, working with PMs and engineers on subscriber conversion, suggested-match optimization, and a from-scratch rebuild of the Single Origin design system.

Snapshot
RoleStaff, Product Design
DatesDec 2022 – Jul 2023
PlatformiOS + Android (dating)
PillarsRevenue & Optimization
What I shipped
Q1 '23Dealbreakers — preferences revamp
Q2 '23Rewind — non-sub upsell flow
OngoingSingle Origin DS 2.0
Q1–Q2Profile + Onboarding improvements
Problem

Strict preferences were starving new users of suggested matches. Rewind was buried too deep in the IA. The design system was straining under multi-team growth.

What I led

Hypothesis-driven design across two pillars: loosening dealbreakers to expand inventory; surfacing Rewind as a non-sub upsell hook; rebuilding the DS for component scale.

Collaboration

Partnered with PMs on problem statements + hypotheses, engineering on feasibility + ACs, and managed contributing designers across the two pillars.

Story 1 · Optimization

Dealbreakers — loosening preferences to grow inventory.

Problem statement: As a new user with few people left who meet my preferences in Suggested, I'm open to seeing some people slightly outside my parameters so I can match more often.

Hypothesis: If we loosen the way preferences gate Suggested (e.g. treat them as soft preferences with a "See other people if I run out" toggle, instead of hard dealbreakers), the additional inventory will retain new users better and drive more likes — which converts into sub via Likes You.

CMB preferences screen — old strict model
Before — every preference was a hard dealbreaker
CMB preferences — soft preference toggle
After — explicit dealbreaker vs. soft preference toggle
CMB preferences — dynamic loosening
Educational moment — surface the tradeoff to existing users

Dynamic copy tied to the user's age.

The "See other people if I run out" subcopy uses a small formula — age_bound ± FLOOR((age−18)/5) ± 3 — to widen the bound proportionally. A 22-year-old sees ±3 years; a 42-year-old sees ±7. The widening matches how people's actual openness scales with age, not an arbitrary global bound.


Story 2 · Revenue

Rewind — turning a buried feature into an upsell hook.

Problem statement: The Rewind action was placed too deep within the IA and its value wasn't clear to non-sub users. The feature existed but wasn't earning conversions.

Hypothesis: Removing History and surfacing Rewind directly on Suggested will better showcase the value of the feature and lead non-subs to subscribe based on its value — especially via a "you missed a match" moment.

CMB Rewind — FTUE tooltip
FTUE tooltip — surface Rewind on the first pass
CMB Rewind — Missed match tooltip
"You missed a match!" — the strongest upsell moment
CMB Rewind — Premium upsell
Modal upsell — Rewind value prop leads

The "missed match" badge is the real lever.

When a non-sub passes on someone who has already liked them, we surface a missed-match tooltip and badge the Rewind icon. That's the moment of maximum regret — and the moment where the upsell has the highest meaning. The flow chains: missed-match notification → Rewind tap → MPU upsell with Rewind as the lead value prop.