PayByPhone: Conversational AI Map Search

A 0-to-1 conversational AI search layer for map based parking discovery, replacing manual filters with natural language.

Role

· Product Designer

Team

· Solo project

Duration

· Add duration

Year

· 2026

The Challenge

Cluttered map, no filters

Give drivers a way to search parking by intent, not by scanning tiles or fighting rigid filters.

Urban parking apps ask a lot of drivers. When you're running late, stressed, or in a part of town you don't know well, you shouldn't have to scan a cluttered map or dig through filters to find a spot. That was the exact problem with PayByPhone's map search. There was no way to filter results at all, so people were left scrolling and guessing.

This project introduces a conversational AI search layer built directly into the map. Instead of tapping through filters, users can type something like "cheap parking near Denman for 2 hours" and the app pulls out what they meant, turns it into editable filter pills, and instantly re-centers the map around the best matches.

The Strategic Leap

Skipping straight to conversation

The old app had no manual filters at all, so this wasn't a redesign. It was a jump straight past the dropdown menus most apps still use.

Moving beyond legacy constraints

Instead of building the kind of dropdown menus most apps have used for years, we went straight to a conversational search layer. It's the kind of jump you'd expect moving from a slow, high consideration flow, like buying insurance, into something low friction and on the go, like finding a parking spot in the next thirty seconds.

Knowing where not to use AI

We split the experience into two paths: routine parking, where someone already knows their zone code and just wants to enter it fast, and exploratory parking, where someone is searching in an area they don't know well. Routine users need speed, not a conversation. Exploratory trips were where people got stuck on cluttered map tiles, so that's where we focused.

Solution Architecture

Eliminating the translation tax

Say what you need, in about the time it takes to say it out loud.

The search entry point sits right on the map, kept simple and understated, with a few dynamic prompt starters like "Try one of these" for anyone who isn't sure what to type. From there, people can just type naturally: "cheap parking near Denman for 2 hours." Sliders and dropdown filters ask people to translate what they actually want into form fields, and that takes effort most drivers don't have to spare while they're driving. Natural language skips that translation step.

Trust & Transparency

Exposing the model's thinking

AI can feel like a black box. Showing the parsed pieces as chips gives people something to check their request against.

As someone types, the system breaks their sentence into filter pills in real time. Results that show up with no explanation tend to make people uneasy or suspicious of them. If one part is wrong, people can delete or adjust just that piece instead of retyping the whole thing over again.

You type

"cheap parking near Denman for 2 hours" becomes Near Denman · 2 hr · $5/hr, three chips you can edit or delete on their own.

Technical Approach

Validating reality over static frames

Prototyping in code instead of handing off static screens and hoping engineering fills in the gaps.

Rather than handing off static Figma screens and hoping engineering could work out the runtime logic on their own, I built the interactive prototype in code, using tools like Claude Code. That meant testing real state transitions myself: how the map re-anchors, how chips get deleted, how search latency actually feels when it isn't simulated. It's a different kind of design work, but it means the handoff comes with real answers instead of guesses, and it saves engineering time that would otherwise go into figuring out edge cases from scratch.

Edge Cases & Resilience

Designing for failure states

A search feature that only works on the happy path isn't really finished.

AI models don't always get it right. We built explicit fallback flows for the moments when the model can't find an exact match, or gets an impossible request, like "free parking right next to the stadium." Instead of a dead end, people see a soft fallback that keeps them moving toward an actual parking spot instead of stuck staring at an empty results screen.

Instead of a dead end

"We couldn't find exact matches under $5, but here are the 3 closest options within a 3 minute walk."

Reflection

What I would carry forward

This project pushed me past dropdown thinking and into something closer to product reasoning under real uncertainty.

Working on PayByPhone taught me that an AI feature lives or dies on trust, not on novelty. The technical part came together faster than I expected once I understood the constraint. The harder part was deciding when to show the model's reasoning and when to just get out of the way. I made a lot of small calls about tone, about what counts as a good enough match, and about how much control to hand back to the person doing the search. Those calls ended up mattering more than the interaction pattern itself.

What worked

Prototyping in code instead of static frames. It forced me to test the feature against real ambiguity instead of a clean happy path, and it surfaced edge cases that a Figma flow would have hidden until launch.

What I would do differently

Bring in real parking data earlier. I validated the interaction pattern well, but pricing and availability edge cases only showed up once I started feeding the prototype messier inputs. Next time that goes in from day one.

Final Design

The shipped experience

From typed intent to editable chips to a re-anchored map, in a few taps.

1 · Search entry point

Type what you need →

2 · Entities extracted

Editable filter pills appear →

3 · Map re-anchors

Results centre on the match →

4 · Session starts

One tap to confirm parking

Prototype

See it in motion

A quick look at the working prototype, not just static frames.

I built this in code so I could feel the timing, not just describe it. The loop below runs through the real flow, opening AI search, watching plain language turn into removable filters, and watching the map redraw around the picks. It is compressed and silent for the page, but it is the actual interaction, not a mockup of one.

Drop the looping prototype clip here

1 · Ask in plain language

Someone types what they actually want, not a form field.

2 · Filters become editable chips

The system's interpretation stays visible and correctable.

3 · Results reprioritize live

Every added filter narrows the list without a full reload.

4 · Map reanchors around the pick

The spatial view catches up to the conversation instead of the other way around.

Success metrics

How we're defining success

Here's how we're measuring whether this is actually working.

Time to transaction

Seconds from opening the app to starting a parking session during exploratory searches.

Search to session conversion

Percentage of people who complete a parking session after an AI search, compared to traditional map browsing.

Cognitive load

Fewer repeated taps and back and forth checks while scanning the map manually.

Let’s make something incredible together

Reach out to connect, share ideas, or explore exciting opportunities. I’d love to hear from you.

Chandni © all rights reserved

Case Study