NOUS.

Personal learning assistant. Categorize, define, recall, with citations back to the source.

↳ The build

Architected a personal learning assistant that turns daily learning into a structured, searchable knowledge base. Engineered a dynamic 2-tier LLM-judged taxonomy (Domain → Sub-category) that prevents drift across thousands of headings without pre-defined buckets, and a hybrid retriever fusing Postgres full-text search with pgvector embeddings via Reciprocal Rank Fusion.

Built dual ingestion paths: a web UI that streams NDJSON progress per item, and a `/nous-ingest` Claude Code skill that runs categorization plus definition in-session, around 80% cheaper than the web flow per heading. Next.js 15 (App Router, RSC) + TypeScript strict + Tailwind v4 frontend on Supabase Postgres with row-level security; Anthropic Claude primary (tool-use structured output) with OpenAI fallback (and `text-embedding-3-small` for vectors). Persistent chat sessions with inline citations, a live activity log for every ingest, and Zod validation at every API and LLM boundary.