An AI-powered course planning assistant for Columbia University students, built on a multi-agent pipeline. Specialized Claude agents collaborate to research courses and provide personalized recommendations.
Built at the Claude Builder Hackathon at Columbia Business School, April 12, 2026.
A single chat interface routes your questions through a pipeline of specialized agents:
- Coordinator: Classifies user intent (simple query, research query, or recommendation) and routes to the appropriate agent pipeline
- Catalog Agent: Searches the local Columbia course catalog (4000+ courses across Spring and Fall 2026 semesters)
- Web Research Agent: Enriches courses with external context via the Linkup API (professor reviews, course reviews, industry demand, syllabi)
- Advisor Agent: Analyzes research results against your student profile (major, year, interests) and ranks courses with fit scores and reasoning
Simple questions ("when does COMS 4111 meet?") go directly to the Catalog Agent. Complex requests ("plan my next semester") trigger the full pipeline: Catalog -> Web Research -> Advisor.
The frontend streams agent status updates and responses in real time via Server-Sent Events (SSE).
- LLM: Claude Sonnet (
claude-sonnet-4-6) via the Anthropic SDK (raw tool use, not Agent SDK) - Backend: Python 3.14, FastAPI, async/await throughout
- Frontend: Next.js 16, TypeScript, Tailwind CSS, react-markdown
- External Search: Linkup API (
linkup-sdk) - Data: JSON course catalog (~4000 courses) loaded into memory at startup
# Backend
cd backend
cp .env.example .env # fill in ANTHROPIC_API_KEY and LINKUP_API_KEY
source ../.venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload
# Frontend
cd frontend
npm install
npm run devBackend runs on http://localhost:8000, frontend on http://localhost:3000.
GET /api/health: Health checkGET /api/courses: Returns full course catalog as JSONPOST /api/chat: SSE stream for chat (acceptsChatRequestwith messages and student profile)
- Andrew Suh
- Kaspar Soukup
- Steven Mei
- Leo Lin