Vintage perfume bottle
Built for L'Oréal Brandstorm 2026
your next favorite scent is one quiz away

An AI-powered perfume quiz that decodes your scent personality and finds your perfect fragrance match.

L'Oréal Brandstorm 2026 · Team Eau My God · Anisha Subberwal + Tiantian Luo + Jessica Setiawan Tjie · CBS MBA 2026

See Whifff in 45 seconds

From signature scent to personalized discovery kit — a walkthrough of the end-to-end experience.

Perfume Shopping Is Broken

Finding a fragrance you love shouldn't require a chemistry degree or dozens of regretful blind buys.

Overwhelming Choice

There are thousands of fragrances on the market. Without guidance, shoppers default to bestseller lists and celebrity endorsements that have nothing to do with personal preference.

Nose Fatigue Is Real

After testing 3-4 scents in store, your sense of smell shuts down. You leave confused, or worse, buy something you can't return.

Descriptions Are Useless

"Top notes of bergamot with a heart of tuberose" means nothing to most people. The language of fragrance excludes the average shopper.

Expensive Mistakes

At $80-300+ per bottle, a bad purchase stings. Most perfumes can't be returned once opened, so buyers stick to safe choices instead of exploring.

6 Questions to Your Perfect Scent

Whifff translates lifestyle preferences into fragrance chemistry through a conversational quiz.

1

Perfumes You Love

Already have a signature scent? Tell us what you wear and love — we'll extract the notes and accords to understand your taste before the quiz even starts. Or skip ahead if you're starting fresh.

2

Pick Your Scent Families

Choose the fragrance families that pull you in — floral, woody, fresh, oriental, fruity, or gourmand. Pick as many as feel right. This sets the direction for everything that follows.

3

Set Your Budget

Pick your price range so every recommendation is something you'd actually buy. From affordable finds to niche splurges — no judgment either way.

4

Choose Your Occasion

Date night, everyday wear, office, night out — where you'll wear it changes what we recommend. The algorithm weighs intensity and note profiles based on context.

5

How Strong Do You Want It?

Sillage is how far your scent projects. Want something intimate that stays close? Or do you want to leave a trail? This shapes which concentrations and note structures we prioritize.

6

Your Top 3 Matches

The flask mixes, the algorithm runs, and your personalized results appear — each with note breakdowns, ratings, sillage badges, and an explanation of why it matched your profile.

The Engine Behind the Quiz

Whifff isn't just a form with pre-mapped answers. It's a real-time recommendation engine that combines structured data with AI reasoning.

Structured Data Pipeline

Curated perfume database with scent profiles, note breakdowns, accords, occasion tags, sillage ratings, and price tiers — each entry normalized and structured for algorithmic matching.

Multi-Signal Scoring Engine

Every perfume is scored against your quiz answers using 8 weighted signals: accord matching from your past perfumes (+4), note overlap (+3), scent family alignment (+3), sub-note matching (+2), occasion-accord fit (+1), sillage match (+3 exact, +1 adjacent), price range (+2), and a quality rating boost (+0.5×). The top 3 highest-scoring perfumes become your results.

Smart Filtering

Hard filters (budget, perfumes you already own) are applied after scoring to keep recommendations surprising while respecting your constraints. The engine finds the best matches first, then trims — not the other way around.

Production Roadmap: Vector Search

The scoring engine is designed to scale. The next upgrade replaces keyword matching with pgvector — each perfume's notes embedded as a 384-dimensional vector, with nearest-neighbor search returning the top 20 candidates in under 100ms. Price, occasion, and sillage filters then apply as post-filters.

Next.js 16.1 React 19 TypeScript 5 Tailwind CSS v4 Framer Motion 12 Supabase Vercel App Router

How the Matching Actually Works

From quiz answers to your top 3 — here's what happens in the 4 seconds while the flask is mixing.

1

Build Your Taste Profile

Your quiz answers get translated into a structured preference object. Each input maps to concrete fragrance data:

Past perfumes you love We extract every note and accord from those perfumes. Love Glossier You and Le Labo Santal 33? We now know you gravitate toward white musk, ambrette, iris root, sandalwood, cardamom, violet, papyrus, leather.
Scent families you picked Mapped to specific ingredient families — e.g., Woody maps to sandalwood, cedar, vetiver, oud; Gourmand maps to vanilla, caramel, chocolate, tonka bean.
Occasion Mapped to accords that perform well in context — Date Night maps to warm spicy, gourmand, amber; Office maps to fresh, aquatic, clean.
Sillage & Price Sillage stored as a strength target (intimate / moderate / loud / beast mode). Price stored as a budget tier filter.
2

Score Every Perfume

Each perfume in the database gets a relevance score calculated from multiple weighted signals:

Signal Points How It Works
Accord match +4 / match Candidate shares accords with perfumes you already love — strongest signal
Note match +3 / match Specific notes overlap (e.g., both have vanilla, both have bergamot)
Scent family match +3 / match Candidate's accords align with your selected scent families
Family sub-note +2 / match Candidate's notes match example notes within your chosen families
Occasion accord +1 / match Candidate fits the occasion you picked via occasion-to-accord mapping
Sillage match +3 or +1 Exact match scores +3; one step away gets partial credit at +1
Price range +2 Bonus if the perfume falls within your selected budget tier
Rating boost +0.5 x rating Higher-rated perfumes get a small quality bump
3

Filter & Rank

  • Exclude any perfumes you already told us you love (no point recommending what you own)
  • Apply hard price filter if set
  • Sort all candidates by total score
  • Take the top 3
4

Serve Results with Context

Each result card shows everything you need to make a confident decision:

Perfume name, brand, and image
Star rating and sillage badge
Full note breakdown (top, heart, base)
Why it matched — tied back to your quiz answers
Scaling to 20K+ perfumes: the vector upgrade

The scoring engine above works great for the curated MVP database. For production scale (20,000+ perfumes from Fragrantica), the keyword-matching engine gets replaced with vector similarity search via pgvector. Each perfume's notes and accords are embedded as a 384-dimensional vector using sentence-transformers. At quiz time, your answers generate a query vector, and pgvector runs a nearest-neighbor search (ORDER BY note_vector <=> query_vector) to find the top 20 candidates in under 100ms. Price, occasion, and sillage filters are then applied as post-filters — keeping the serendipity of vector search while respecting your hard constraints.

Why I Built It This Way

Chat UI Over Static Results

A static results page feels like a dead end. The chat interface lets users dig deeper, ask "why this one?", and get alternatives — turning a one-shot quiz into a conversation. This increases engagement and trust in the recommendation.

Vectors Over Rule-Based Matching

Hard-coded if/then rules break when preferences are nuanced ("I want something woody but also sweet"). Vector similarity captures the continuous nature of scent preference, producing matches that feel intuitive rather than mechanical.

No Login Required

Fragrance discovery is impulse-driven. Requiring sign-up before seeing results would kill conversion. The quiz is fully anonymous with an optional save feature planned for returning users.

The Results Ledger

Every completed quiz is logged anonymously to a public ledger — no accounts, no PII, just scent preferences and recommendations. Visitors can browse what others chose and discover new fragrances through real quiz results.

Browse Real Results

See past perfumes people entered, the scent families they gravitate toward, and the top 3 recommendations the engine gave them.

Fully Anonymous

No user IDs, no emails, no tracking cookies. The ledger only stores quiz preferences and recommendations — nothing that identifies a person.

View the Ledger →

The Roadmap

Whifff is a living product. Here's where it's headed.

🌼

Scent Profiles

Save your quiz results, build a fragrance wardrobe, and get new recommendations as our database expands with new releases and niche brands.

Scent Stacking

Layer two fragrances for a custom scent. The AI will suggest complementary pairings based on note chemistry.

🏪

In-Store Mode

Take your phone to Sephora. Scan a perfume, see how it compares to your profile, and get real-time opinions from the AI.

Find Your Scent

The quiz takes two minutes. Your perfect fragrance is waiting.

Take the Quiz