The more Kult knew about someone's hair, the better it could recommend. The problem was getting there. The old quiz asked for everything before giving anything back — twelve questions up front — so most people abandoned it, and the ones who didn't still waited until the end to see any value.
The strategy wasn't to ask less. It was to make the product genuinely useful on incomplete information, then collect the rest where each answer could immediately change what the user saw. That meant designing the degraded state deliberately — what good looks like at three answers, at seven, at all fourteen — instead of treating an incomplete profile as a dead end.
Three critical answers — hair type, main concern, goal — created a starter profile strong enough to personalize from. The other eleven left the quiz entirely and moved into the journey.
Three answers create a starter profile that activates personalization immediately. From there the system never blocks — it asks for the next signal only where the answer can improve the moment in front of the user, returns visible value, deepens the profile, and comes back for more.
The design constraint that held it together: a partial profile had to produce partial value, never a dead end.
The first questions were chosen by dependency — only what the product needed to personalize right away. They were also written to feel like the category, not a form: a hair character that complains about frizz, tangles and scalp; a question about how long the hair story has been going.
This is what made progressive profiling work rather than just sound good. Each remaining question appeared at a moment of intent — browsing a category, searching, reading a product page — and every answer returned something the user could see: a higher match, a sharper result, a profile that visibly got smarter. The ask was never "finish your profile." It was "add one detail, watch this improve."
Under it sat the deterministic match score from Kult's personalization layer — the same scoring system used in skincare, here fed by LLM-enriched haircare attributes rather than hand-tagged ones. That's what let a partial profile produce a real, improving number instead of a vague nudge.
A starter profile drove lightweight personalization — filtered carousels, best and good-for-you, basic fit text. More context introduced the real match score and stronger sorting. Granular signals — scalp, climate, styling, behaviour — refined ranking, confidence and the explanations on the product page. The rule held throughout: partial profiles produced partial value, never a dead end, and completing a phase visibly unlocked the next.
The strongest proof that a quiz had become a system was the product page. A "will it suit me?" module turned the user's own profile into reasoning — why this product works for their hair — and the locked Hair Kult Score gave a concrete reason to add the one missing detail. The profile stopped being hidden data and became a visible explanation inside the buying decision.
The outcome wasn't only higher completion. We collected a richer profile, made it useful across the app, and made haircare easier to shop with confidence — and the category grew because of it.
Better personalization isn't asking everything. It's knowing what to ask now, what to ask later, and making every answer feel useful.