All case studies
EduNavigator AIDemo build · fictional business, simulated data

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.

Hybrid RAG + SQLCitation provenanceStructured catalogIngestion pipelineQuery analyticsReact + TypeScript

Live demos are password-gated — request access via WhatsApp, takes a minute.

EduNavigator hybrid answer with citations and program table
EduNavigator hybrid answer with citations and program tableNumbered citations open the source passageLive query — tuition in local currency and ₹L“6 of 120 programs matched · live query on verified records”
The differentiator in one frame: cited prose above, SQL-derived rows below.

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

01

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.

02

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.

03

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

Flow diagram: the inputs listed first feed into the EduNavigator engine engine in the middle, which produces the outputs listed last.

In

Program sources30 web pages + PDFs
Counsellor editsverify + restamp records

EduNavigator engine

Ingestionfetch → parse → embed
Program catalog120 verified records
Hybrid answerercited prose + live table

Out

Student chatstreaming, cited
Explorer + shortlist₹-lakh budget filters
Query insightsunanswered-gap flags

The demo implements this shape end to end with a simulated service layer — the “extend for production” section below lists what swaps in for live deployment.

Product tour

Program detail with provenance card
Program detail with provenance card
Every program carries its provenance: record ID, verifying source, and when it was last checked.
Admin sources dashboard
Admin sources dashboard
The admin side: 30 sources with sync freshness — 26 fresh, 2 stale, 1 syncing, 1 failed. The KPIs are the table.
Ingestion job detail
Ingestion job detail
One source’s pipeline run: fetched → parsed → embedded, with the log to prove it.

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

Built as a demonstration — on purpose.

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 (password on request) and check every claim.

What I’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