Case study · live ed-tech product · built & shipped end to end · name withheld

An AI counsellor, not a lead form

Students researching online degrees in India get chased by call centres the moment they fill a form. This product inverts that: a conversation that earns each question, builds a shortlist matched to the student's goals and budget from verified university data, and never fabricates a fee. Live in production — the product name is withheld here.

NO FORMS · NO COLD CALLS · JUST CLARITY
6 UGC-approved universities
every fee data-grounded
payments inside the chat
The product landing page: find the right online degree in three minutes, with a search bar and suggestion chips
The landing page — a typewriter search bar and four chips are the whole funnel
01

Watch a real conversation

This is the live product, recorded unscripted: a student taps one chip, and the counsellor starts — collecting qualification, work status and budget conversationally while the dossier on the right fills itself in.

Animated recording of a live counsellor conversation, from landing page through profile capture to the WhatsApp save gate

Recorded on the production site as a tagged test session. The student profile is fictional. Click any screenshot to enlarge it.

02

Now drive it yourself

A scripted, self-contained simulation of the real flow — tap the reply chips and watch the dossier build, exactly the mechanic a student experiences. Programmes and fees below are fictional.

C
Admissions counsellorsimulation · no data leaves this page
ABOUT YOU · ACTIVE

What we know so far

GOAL— pending —
QUALIFICATION— pending —
BUDGET— pending —
SHORTLISTunlocks after budget
03

A journey, not a chat window

The interface is built around a four-stage journey that both the student and the AI can see. A stepper tracks progress on the left; on the right, a live dossier ("What we know so far") shows exactly what the counsellor has understood — every captured fact visible and correctable, nothing extracted silently.

Only after the profile is complete does the product ask for a WhatsApp number — framed honestly as "so I can save what we discuss", verified by OTP, with "Saved, not shared" written right under the field. The gate is a product decision: value first, identity second.

STAGE 1

Profile

Qualification, work status, budget and goal — gathered in conversation, shown in the dossier as they land.

STAGE 2

Shortlist

Three programme matches from six UGC-approved universities, reasoned against the student's own constraints.

STAGE 3

Fees

Full breakdown with EMI options — every number traceable to the university's published fee schedule.

STAGE 4

Enrol

Registration and payment happen inside the chat — Razorpay checkout in a message bubble, or the university's own portal.

04

The surfaces around the chat

The chat with completed profile dossier and the WhatsApp save gate

The dossier & the gate

Profile captured and visible on the right; the WhatsApp gate appears only once there's a conversation worth saving.

Partner universities index page listing six UGC-approved universities with program counts and fee ranges

Partner catalogue

Six UGC-approved universities with accreditation badges, programme counts and honest fee ranges.

A partner-university page with accreditation chips and detailed programme information

SEO university pages

A generated, structured page per university — JSON-LD, FAQ schema, canonical fees — feeding organic traffic into the chat.

The product landing page

The three-minute promise

The whole acquisition surface is one search bar: type anything, or tap a chip, and you're in the conversation.

05

Under the hood

96
routes in the app — 31 pages, 65 API endpoints
61k
lines of TypeScript across 237 source files
~60
eval scripts guarding chips, pricing, hallucinations, PII and tone
1,429
commits on main; 800+ pull requests

Grounded answers, by construction

Fees, accreditations and programme facts come from versioned data files, never from the model's memory. A pricing guard and per-message hallucination flags catch anything that slips.

Evals as the test suite

LLM behaviour can't be unit-tested, so the repo carries ~60 evaluation scripts — chip quality, pricing accuracy, counsellor tone, PII scrubbing, sycophancy — run against the real prompt stack in CI.

Streaming that survives bad networks

Server-sent events with automatic continuation when responses are cut, retry on model overload, and a fallback LLM provider — the student just sees Sensei typing.

The delayed auth gate

Identity is asked for mid-conversation, after value is delivered — WhatsApp OTP, one field, "Saved, not shared". Gate timing is feature-flagged and A/B tested, not guessed.

Payments in the conversation

Registration fees are paid inside the chat through a Razorpay checkout card — with retry states, gateway abstraction, and per-university configuration for who processes the money.

One codebase, many brands

Partner universities get white-labelled subdomains and an embeddable widget served by middleware rewrites — the same counsellor wearing each institution's colours.

Stack · Next.js 16 · TypeScript · Claude Sonnet (OpenAI fallback) · PostgreSQL 16 · SSE streaming · Razorpay · WhatsApp OTP (AiSensy) · Cloud Run + Cloud SQL · GitHub Actions