
Juspay has a lot of merchants. Small businesses, mostly. Some of them want loans, and there are lenders who want to lend to them. HyperCredit is the marketplace in the middle, and that part already worked fine.
The part that did not: to actually apply, a merchant had to fill a very long form on a mid-range Android phone. You know how that goes.
Product had a solution. And a video.
The pitch was voice. An overlay you talk to, and it fills the form for you. No design attached, just the idea and a screen recording of it half working.
What you see below is not my design. It is the thing I was asked to make look good.

Three of us picked it up. The brief was roughly “make this look good”. We started somewhere else, with whether voice was the right shape for this at all.
Go on. Recite your PAN number.
I’ll wait.
A PAN is ten characters. An Aadhaar is twelve digits. Nobody has these memorised. They live in a drawer, or in your hand. Asking somebody to say one out loud is really asking them to go and find it, then read it back, then hope.
Then there are names. Mine is Rishabh. Say it out loud and a speech model has to pick between R and H at the front. It will get that wrong some of the time, and the field it gets wrong is your legal name on a loan application.
The one that actually mattered though: forms are deterministic. Every field has exactly one right answer in exactly one format. Voice is the least deterministic input we have. Stacking one on the other does not remove the work, it just moves the failure somewhere the user cannot see it.
You don’t hand the form to the bank employee
Here is the thing that reframed it.
You walk into a bank to open an account. Somebody hands you a form. You are perfectly capable of filling it in. You do not hand it back across the counter and say “you do it”. What you do is look up and ask: what goes in this field?
The bank employee is genuinely useful. Just not as your pen.
Filling somebody’s loan application for them is not assistance, it is authority. Handing an AI the authority to complete a financial document on your behalf while you watch is a mildly dystopian thing to ship by accident.
Everything from here is ours.
Ask for the one thing that unlocks the rest
The form wanted your name, date of birth, gender and a stack of other things, each typed separately. All of it is already attached to your PAN.
So we ask for the PAN first, and only the PAN. Scan the card, or type it if you would rather. India Stack returns the rest.


Nine fields become three. Not because voice filled them, but because we stopped asking for things we could already look up.
The voice never types
The PAN cannot give us everything. Email, gender and marital status are still yours to enter, and this is exactly where the original proposal would have started talking at you.


Priya sits at the bottom of every step. She says what is coming, explains what a field means, and answers “is this my income or my household income?” without you leaving the form. What she does not do is type. That is the entire rule, and every other decision fell out of it.
The mic is a toggle, not a mode. Ignore her for all seven steps and finish with your thumbs, which is what most people will do, and that is fine.
The one place she does touch a field
Review is the exception, and only because you asked. Say “make the income twelve lakh” and she changes that one field, highlights it, and tells you what she did. You are correcting a value you can already see, not dictating one into the dark.


Voice or no voice, if a machine touched your loan application you should get to read it before it goes anywhere.
Not a screen. A framework.
Not every form starts with a PAN. The next one might want a GST number, or nothing at all.
So what shipped is not the loan form. It is a configurable flow: the steps, the fields, what pre-fills from where, and brand theming so a merchant can put their own colours on it. Loan onboarding is just the first thing we pointed it at.


We built the whole thing
Not a Figma prototype. A deployed site, ElevenLabs doing the voice and LiveKit carrying it, specifically so we could feel the latency instead of imagining it.


Which is how we found out about the latency.

Nothing to do but keep going and fill the field by hand, which is precisely the fallback we had designed for. Unplanned proof.
What I would change
Latency is the product. A bank employee who takes four seconds to answer is not a helpful bank employee. Whether this reads as help or as waiting comes down entirely to time to first word, and we papered over that with a nice loading state.
And I would push on Priya. Giving the assistant a name makes her easier to talk to, and also makes her feel more accountable for the outcome than she actually is. There is a version where she is just a voice with no name, and I am not convinced that one is worse.