ALL WORK04 / 05
Smarter access
to knowledge.
UniChat: a full-stack AI study adviser for Swedish higher education. Describe a goal, subject or city and get ranked programme recommendations with grounded explanations.
- Type
- AI study adviser
- Status
- Personal project
- Period
- 2026
- Tools & technology
- Next.js, TypeScript, Tailwind CSS, Python, FastAPI, PostgreSQL, Redis, Qdrant, OpenAI embeddings
PROJECT / 004AI STUDY ADVISER


UNI-CHAT-MU.VERCEL.APP
01Context
Choosing a programme is a big decision built on scattered information. General chat assistants are fluent but vague about specific courses. UniChat explores how far you get when an adviser is grounded in a defined set of sources.
02My role
Personal project: idea, architecture, front end and back end.
03Process
- Crawl and normalise programme data, store it in PostgreSQL and index embeddings in Qdrant.
- Enrich each message with session context, extracted constraints and active filters such as city, level, language and pace.
- Retrieve with vector search, then apply deterministic guardrails, deduplication and reranking for hard constraints.
- Generate explanations only from the retrieved programme metadata.
—A closer look



04Outcome
A working full-stack application with open source code: closer to a constrained recommendation engine with RAG than a generic chatbot.
05What I learned
- Hard constraints belong in code, not in the prompt.
- Retrieval quality matters more than the model.