KAYAK · 2025 · AI under a cost constraint
An AI overview on flight results, gated by cost
KAYAK's flight results overwhelmed travelers with options and no guidance. I designed an AI overview that orients them and routes them to the filters that convert, without burying results and without paying for a model call on every search. Inference cost was a design constraint here, treated like layout or latency.
- Role
- Product Designer · lead on the feature, framing through ship
- Team
- Product, engineering, customer insights
- Timeline
- 2025
- Scope
- AI overview on flight results, cost-aware generation

Why it mattered
The problem
Too many options, not enough clarity
Dense flight lists and deep filter menus made results hard to parse. "Difficult to make sense of" was the third most frequent negative theme in customer feedback, and users who could not decide confidently left for Google Flights. The opportunity was to surface AI guidance, but in a form that protects the primary task of comparing and booking.
The reframe
Guidance that drives the next action
Instead of a markdown summary, the overview renders as horizontal cards in three states: half-faded on load, expanded on opt-in, and collapsed once seen, so results stay in the viewport the whole time. Each insight is paired with a conversion-positive action wired to the highest-engagement filters already on the page.

The core craft
Not every search is worth the tokens
Every overview is an LLM call, so showing one on each search would scale cost linearly with traffic. A traveler comparing a complex international route needs guidance; someone booking a familiar shuttle does not. I designed a two-step architecture: a lightweight scoring layer reads route metadata and predicts whether an overview earns its cost before any generation fires, so quality scales with value rather than volume.

How I worked
-
Protected the page's job: comparing and booking
A three-state card pattern guides without pushing results below the fold, so the flights people came for stay in view.
-
Treated tokens as a design constraint
A scoring gate fires the model only when an overview is likely worth it, so cost tracks value, not traffic volume.
-
Reused what already converts
Quick actions map to the page's highest-engagement filters, turning a passive content layer into a conversion tool.
-
Built a reusable pattern
The card model works for any supplementary content on a high-intent results page, not just this feature.
-
What I didn't build
No new behaviors to learn: quick actions route to filters the page already had, rather than adding a parallel system.
Collaboration & ownership
From customer pain to measured conversion
- Product
- Engineering
- Customer insights
I owned the feature from the framing of a recurring customer-feedback theme, through the interaction model and the cost-scoring architecture that made it viable to ship at traffic scale, to its measured impact on engagement and filter usage.
Frame
"Difficult to make sense of" ranked third among negative feedback themes; users were leaving for Google Flights.
Reframe
Designed a three-state card pattern that guides without burying results, each insight tied to a converting action.
Make it viable
Added a scoring gate so the model only generates when an overview earns its cost.
Ship & measure
12% feature engagement on the flight results page and +7% filter usage from quick actions.
Outcome
AI that earns its place on the page
Users engaged with the overview, scrolled the cards, and triggered filters they might not have found otherwise: 12% feature engagement on the flight results page and +7% filter usage. Tying AI insights to specific page actions turned a content layer into measurable conversion.