Context · The product
Meituan local services is a super-app marketplace.
Uber
on-demand, on-site
Yelp
discover & compare merchants
TaskRabbit
real people do the work

0M+
Annual users
0.0M
Merchants
My role
Platform Architecture team.
I own UX and UI for consumer Home Services.
This project had two goals. For users: make high-stakes services feel less uncertain and less stressful. For the platform: standardize the conversation, cut friction, and lift order conversion.
Broken trust · A user's words
“My drain was clogged. I spent 30 minutes and asked 10 shops.
None would give a certain price. They all said ‘we have to see it first’.
And once the guy shows up, the price only goes up.”
A pattern we heard again and again in user research
Broken trust
Why showing prices didn't help:
deals actually close in the chat.
Users chat before they book. That is exactly where trust breaks: the diagnosis happens after the visit, but the rules force users to decide before it. Merchants price on the spot. Both sides close a half-random deal.
Today · A linear journey
- 01A problem happens
- 02A wall of merchants appears
- 03Repeat the story to each one
- 04Pick one, half at random
→ Trust breaks
Quote ≠ final bill. It ends in a surprise bill and a bad review.
The first attempt, and the real insight
We shipped a standalone price page. Nothing moved.
We listed prices by service category. A price without a diagnosis is just a claim: users didn't believe it, and merchants didn't maintain it.
A real user review behind the PRD
★★★★★
“The page said $50. On site he added $200 for a ‘special case’. A total rip-off!”
Reviews like this were everywhere. The information gap made every price feel unfair.
Options we weighed
We explored two directions first. Both got killed.
Option A: a priced diagnosis visit
The user pays a visit fee. A pro comes, diagnoses, then they decide whether to repair.
Why it failed: competitors already do this, and users still don't trust the verdict; the shop has every reason to make it sound worse. A visit is a heavy commitment; if you don't repair, you start all over.
Option B: protect the user's exit
The user can cancel any time after the visit. Every add-on charge needs online approval.
Why it failed: the platform eats the visit cost. Too expensive, and bad for merchants.
Option C · What we built
Keep the chat habit. Move the on-site diagnosis up front, as a platform-level standard diagnosis. One order, many quotes.
Service blueprint
Five steps. The diagnosis moves into the conversation.
- 01User starts a chat
- 02Platform diagnoses first
- 03A structured repair order
- 04Merchants bid in real time
- 05One tap to book
O2O · Quote-based on-demand service
Quote-to-Service: the full transaction flow
The user's only decision point. Everything else hands off automatically in one order context.
Blueprint · 01 Diagnose first (one standard)
No more repeating yourself to 10 shops.
The platform owns the ask-and-diagnose step inside the chat. A local human expert talks to the user live, diagnoses from photos and video, and it takes about 5 minutes. It costs more to run, and it is worth it, because it builds a trust moat.
Shipped version · Chinese
Rebuilt version · English · Live
Blueprint · 02 A structured repair order
“My toilet keeps hissing” becomes
a standardized repair order.
The order keeps the user's original photos and words, so merchants can judge with both.
Shipped version · Chinese
Rebuilt version · English · Live
Blueprint · 03 Live quotes, one standard
Within 3 minutes: 5 nearby shops, one order.
Merchants quote against the exact same order: a fixed price or a hard-capped range (like $80-$120). The user compares price and speed on one standard, instead of asking shop by shop.
Shipped version · Chinese
Rebuilt version · English · Live
Core interaction · A conversation that answers back
The user always knows:
where am I, and what happens next.
A stage guide sits on top of the thread: Diagnosing ➔ Building the order ➔ Collecting quotes ➔ Locked. Cards inside the chat show their live state: quoting, or still searching.
Live prototype · English rebuild
Core interaction · 5 states of the quote card
A tight state machine for a 24-hour service.
Every quote arrives with an AI summary tag and the merchant's info. Users can open the details, or keep collecting new quotes. Tap a state below: the prototype switches to that scene.
Live · Expired
Core interaction · How merchants quote
Every merchant sees the same order. Users pick on price and speed.
Merchants receive the expert diagnosis plus the user's materials: photos, video, description. They save time too: no idle chat, straight to the point.
Reverse trust · The “You don't need us” path
Pushing small orders away
earns the longest-lasting trust.
If the diagnosis finds a tiny, fixable problem (like a worn washer), the system skips quoting and recommends a standard part and a how-to video: you can do this yourself.
Live prototype · self-serve path
Design system · Rebuilt for the US
Rebuilt in English,
with Claude Code and Claude Design.
To test this “trust conversation” in high-labor-cost markets (think TaskRabbit / Thumbtack), I rebuilt the Meituan-based design for US users. Expert diagnosis is too expensive there, so it becomes AI diagnosis.
Early version · Live
Repair Flow v1 · Live
US rebuild · AI agent diagnosis
Planning ahead:
an AI agent replaces the human expert.
In the US rebuild the first responder is an AI agent, not a human expert. It answers at 2 AM, reads photos and video, states its confidence, and drafts the same structured order. A human pro stays one tap away, and the quoting loop after it stays the same.
Live prototype · AI-agent workflow
Hierarchy & accessibility (ADA) · 01
Lower the information density
Remove the marketing widgets and loud color blocks. Add whitespace. Let the diagnosis lead.
Shipped version · dense
Rebuild · whitespace
Hierarchy & accessibility (ADA) · 02
Accessibility
Touch targets grow to 44×44pt. No type under 12px, no dark low-contrast icons. Every card reads aloud with a screen reader.
44×44 pt
Minimum touch target
≥12 px
Minimum type size
100 %
Cards readable by screen reader
Hierarchy & accessibility (ADA) · 03
US formats and native copy
MM/DD/YYYY; imperial units; copy rewritten to sound native.
Dates
2025-08-1208/12/2025
Units & currency
¥200 · 5 km$45-60 · 3.1 mi
Copy tone
师傅已接单A pro's on it
Design system · Shared components
The conversation cards are now shared components (Design System Tokens), ready to carry into maternity care, banquets and other high-stakes services.
Pilot results · User-level randomized A/B
July-August · Hangzhou + parts of Zhejiang · toilet repair & drain clearing
0.0×
Diagnostic channel: intent-to-order converts at 1.3× the old path
+0.0pp
Search overall: net conversion gain
~0
Projected at full rollout: about 2,000 extra orders a day
−0%
Pricing complaints: projected to drop 50%
The test group saw our expert-diagnosis, one-order-many-quotes popup right after searching a keyword.
Risk & AI evolution · Multimodal AI diagnosis
Huge user data.
Training our own AI model is the obvious next step.
The platform holds a huge corpus of real consultations and real fulfilment records: training data no one else has. To break the expert bottleneck, the next step is a multimodal AI assistant, trained on the early human-diagnosis dataset.
Training data pipeline
Photos
Text
Repair orders
Actual fulfilment: what was done, what was replaced, what was charged
Risk · Adverse selection
Users shouldn't compare price.
They should compare price divided by trust.
This mechanism systematically selects three kinds of merchants: the desperate, the bad estimators, and the lowball-then-upsell players. Lowballing is the dominant strategy, unless breaking your quote costs more than it earns. So every quote must carry a fulfilment score: how often this shop's final bill lands inside its quote.
Complaints
No more haggling with support. The price gap is refunded first, instantly.
Full interactive prototype · Switch any scene
Open full pageSwitch flows from the rail under the phone, or tap the suggested replies. English / USD is the US rebuild; the shipped product is Chinese with RMB.
