Answers with receipts: the explanation and the data, in one reply.
A study-abroad advisor that grounds explanations in verified sources and derives program tables from a live catalog — with the admin console that keeps both honest.
Live demos are password-gated — request access via the contact page and the password comes back in minutes.

Students ask questions that need both narrative and data — “what fits my ₹20 lakh budget for January?” — and generic chatbots hallucinate exactly where mistakes cost admissions.
Two surfaces on one dataset: a student app whose answers combine cited explanations with live catalog queries, and a consultancy admin where counsellors maintain the sources and verify the records those answers draw from.
- One answer containing document citations AND a live-derived program table
- The same 120-program catalog rendered on both surfaces
- Sources dashboard with freshness stamps and reconciling counts
The challenge
Study-abroad advice fails in two directions: fluent prose with invented deadlines, or accurate spreadsheets nobody reads. Students need the explanation and the rows, together, with provenance.
The consultancy’s credibility depends on freshness — a tuition figure verified last month may already be wrong, so maintenance has to be a visible workflow, not a promise.
The solution — three decisions
The hybrid answer is the product
One response streams a grounded explanation with numbered citations, then a table captioned “6 of 120 programs matched · live query on verified records.” The table is derived at runtime — it cannot disagree with the catalog.
One dataset, two apps
Student explorer, chat answers, and admin catalog manager all read the same shared data module. Editing a record in admin is editing what the assistant says.
Punjab-market authenticity
Tuition always shows the ₹-lakh figure students budget in, IELTS bands, blocked-account and SDS vocabulary — and the admin runs on IST.
How it works
The demo implements this shape end to end with a simulated service layer — the “extend for production” section lists what swaps in for live deployment.
Product tour
Numbered citations open the source passageLive query — tuition in local currency and ₹L“6 of 120 programs matched · live query on verified records”


What the demo shows
- Token-streamed answers with tap-to-open citation dialogs
- The explorer filtering 120 programs by country, budget (₹L), and intake — live
- Deadlines computed forward from today, with urgency chips under 14 days
- Catalog records edited and re-verified in an admin drawer
Under the hood
- A single seeded catalog module (20 fictional institutions, 120 programs, 30 sources) duplicated byte-for-byte across both apps
- Answer tables are runtime filters over that catalog — consistency by construction, not by copy-paste
- Admin counts reconcile by design: KPIs are computed from the same rows the tables render
- Two deliberately different shells: consumer top-nav for students, Stripe-style console for counsellors
Demo Overseas Consultants, Ludhiana is fictional and labeled as a demo on every screen. Nothing here is presented as client work: no client names, no outcome metrics, no testimonials. The proof is the running product — open the live demo above and check every claim.
What we’d extend for production
- Real text-to-SQL over a Postgres catalog with query guards
- Scheduled source re-crawls with diff-based verification queues
- Counsellor handoff when the assistant’s confidence drops
Build something like this.
Fixed scope in writing before any money moves, demos during the build, and full code ownership at handover.