Three ways to spend the evening — none of them made up.
An AI concierge for planning the evening — movies, comedy, concerts and theatre across eight Indian
cities, on web chat and WhatsApp. Code picks three real events from a live catalogue; the model only
writes the words.
Designed and built for an early-stage entertainment venture · live beta January 2026 ·
handed off to the client’s own team
Best match
Popular
Wildcard
three options · each with its reason
Product design in collaboration with 3SidedCoin
Idea → Design → POC → MVP · Eight weeks
UnderstandProposeSteerRe-rank
01 — What we built
A conversation that assumes the predictable.
The venture had a decision problem, not a transaction one — listings were plentiful and already
bookable. They brought the idea; we took it to a working product: a concierge that assumes what can
reasonably be assumed and answers with three options, each carrying its reason.
Discovery assistant — three moments
01 · Ask
Hyderabad
good evening
ready to sort out your friday?
Not sure what to ask? Try:
Live music tonightDate night ideasI want to laughSurprise me
Ask anything…
02 · Propose
Hyderabad
I want to laugh
Three for the evening — and why:
Best matchImprov
The Long Bit
sillylive
8:00 PM
The Half Door, Old Mill Lane
Book
PopularStand-up
Nine Sharp
big roomfast
9:00 PM
Brass Bell Hall
Book
WildcardQuiz
Wrong Answers Only
playful
7:00 PM
The Paper Cup, Arcade Row
Book
something quietercloser bytomorrow insteadsurprise me
03 · Steer
Hyderabad
tomorrow instead
Tomorrow, then — same three shapes, ranked again. The improv night doesn’t
run tomorrow.
Best matchSketch
Small Hours
latedry
8:00 PM
Gaslight Yard
Book
WildcardQuiz
Wrong Answers Only
playful
7:00 PM
The Paper Cup, Arcade Row
Book
PopularStand-up
Nine Sharp
big room
9:00 PM
Brass Bell Hall
Book
Opening the seller’s booking page for Small Hours — 8:00 PM
at Gaslight Yard.
Three moments, drawn — The frames are redrawn from the product’s
designed interface — dark chat, poster carousel, steering pills. (01) The assistant greets and
proposes; “I want to laugh” is the whole
query — no city, no date, no genre, no language, no price band. (02) Three options arrive as a
carousel, each wearing its shape on the poster — best
match, popular, wildcard — with the reason carried by the narrated line above them. (03) A tapped
pill is simply a new message — the steer cycle in the figure below — and the narrated compromise is the
outline being voiced: same shapes, ranked again, with the change explained. Booking hands off to the
ticket seller; the product never sells.
02 — How it decides
The tool picks; the model phrases.
Every consequential decision in the exchange above is made by deterministic code. Which three options
appear, how they rank, what “tonight” means, how far away a venue is — none of it is left
to the language model.
01
Understand
pin the message down
02
Propose
three real options from the catalogue
03
Speak
the rows it was handed, in a warm voice
04The person—reads three real options · taps a pill or says more
One turn, whole — understand, propose, speak; then the person steers.Understand — four resolvers pin the message down; the gate asks or recommends.Propose — retrieve, score 40 · 30 · 20, relax if nothing fits, pick the three shapes.Speak — the three picks pass through the outline untouched; the model adds only the words.Then the person answers — a tapped pill or a typed sentence — and it runs again.
↻ a tapped pill or a typed sentence is just the next message — then it runs again
Grounded by construction
Nothing invented can reach the user.
Hallucination isn’t reduced here, or prompted away — it’s eliminated by architecture.
No pick, no date, no distance comes from the model.
An option is a row, not a sentence.
Recommendations never pass through generated text: retrieval, scoring and selection happen in code
against the catalogue, and the model receives finished picks to phrase. A hallucinated event has no
path to the screen.
Resolves before it reasons.
The intake is designed as a deterministic Mastra workflow — an explicit graph with typed schemas
and defined branching — that pins down when, where and the mood before anything is retrieved.
Structure where structure belongs; the model only where language needs it.
Every turn has a destination.
Ask the one missing question, show three real options, or decline warmly and steer back. The
conversation cannot wander, and a dead end is never shown.
Reliability lives where you can test it — and this is what the tests assert: which
tools were called, in what order, with what arguments — including eighteen scripted attempts to pull
it off-topic.
03 — What this proves
Put the policy in tools, not the prompt.
Over the project’s life the system prompt shrank as the tools absorbed policy, and the finished agent
is the argument in miniature: seven opinionated tools and a prompt a couple of screens long. Every rule that
matters — what to show, when to ask, what “tonight” means — lives in code that can be
tested, stepped through and fixed.
We built the pilot; the client’s own team took it forward.Handed off with the knowledge transfer to run it.
Stack — Mastra · OpenAI gpt-4o-mini · Postgres · Next.js · WhatsApp
Business API
Let's find the work AI should be doing in your organization.
Whether you are exploring an idea or improving a system already in use,
we’ll help you decide what is worth doing next.