// overview

What is JoSAAssist?

JoSAAssist is an AI-powered conversational assistant built specifically for students navigating the JoSAA (Joint Seat Allocation Authority) counselling process at IIT Mandi. It provides instant, accurate answers about seat allocation, eligibility criteria, branch preferences, fee structures, and more — available as a web app, on WhatsApp, and on Telegram.

// the creators
Reman Dey
Reman Dey
Frontend Engineer · App Architect

Engineered the entire user-facing product from scratch — the chat web application, the WhatsApp messaging pipeline via Twilio, and the Telegram bot pipeline using the Telegram Bot API. Built the full backend server with Python 3 and Flask, integrating all communication channels into a single, cohesive system.

Aryan Raj
Aryan Raj
AI Engineer · Model Trainer

Responsible for training and fine-tuning the language model that powers JoSAAssist's responses. Curated the JoSAA-specific dataset, optimised model parameters for counselling-domain accuracy, and ensured the model delivers reliable, contextually relevant answers to student queries.

// tech stack

Built With

The application backend is written entirely in Python 3, orchestrated through a Flask web server that handles routing, webhook processing, and API integrations. External communication is powered by Twilio for WhatsApp messaging, the Telegram Bot API for the Telegram channel, and the requests library for all outbound HTTP calls.

At its core, JoSAAssist runs a Retrieval-Augmented Generation (RAG) pipeline. Responses are generated via Groq — delivering ultra-fast LLM inference — with OpenRouter serving as an automatic fallback when Groq is unavailable, ensuring the assistant stays online around the clock. The knowledge base powering the retrieval layer is built from two rich sources: real WhatsApp group conversations from JoSAA counselling seasons, and official JoSAA documents including brochures, schedules, and seat-matrix data — giving the model deeply grounded, real-world context.

Python 3 Flask Twilio API Telegram Bot API requests RAG Pipeline Groq OpenRouter WhatsApp Chats Official JoSAA Docs Render.com REST Webhooks
// architecture

How It Works

01
User Sends a Message
The user interacts via the web chat UI, WhatsApp, or Telegram. Each channel has its own intake webhook registered on the Flask server.
02
Flask Routes the Request
The Flask backend receives the incoming webhook, parses the message payload, and identifies the channel of origin. Twilio handles WhatsApp; the Telegram Bot API handles Telegram; native JS fetch handles the web UI.
03
RAG — Retrieval from Knowledge Base
The query enters the RAG pipeline. Relevant context is retrieved from a curated knowledge base built on two sources: real WhatsApp group conversations from past JoSAA counselling seasons (capturing authentic student doubts and expert answers) and official JoSAA documents such as brochures, seat matrices, and schedules. The top matching chunks are assembled as context and passed to the LLM.
04
Groq Inference · OpenRouter Fallback
The enriched prompt is sent to Groq for blazing-fast LLM inference. If Groq is rate-limited or unreachable, the system automatically reroutes to OpenRouter as a seamless fallback — keeping the assistant responsive at all times without any interruption to the user.
05
Response Delivered to User
The grounded, RAG-enhanced answer is dispatched back through the appropriate channel — Twilio sends it to WhatsApp, the Telegram API delivers it to Telegram, and the web UI renders it live with a typewriter effect.
// mission

Why We Built This

JoSAA counselling is a high-stakes, time-sensitive process that leaves thousands of students overwhelmed by complex rules and deadlines. We built JoSAAssist to democratise access to accurate guidance — available instantly, on any platform, at any hour. No waiting, no jargon. Just clear answers when it matters most.