{"slug": "debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations", "title": "Debrief is not a PDF chatbot — it recovers decisions with citations", "summary": "An engineer built Debrief, a tool for OpenAI Build Week 2026 that extracts structured decision briefs from documents and provides cited answers to follow-up questions. The system uses FastAPI, PostgreSQL with pgvector, and OpenRouter to parse documents, generate embeddings, and run RAG chat, with a React frontend on Vercel and API on Railway.", "body_md": "Teams rarely lose information because they lack documents. They lose it because **decisions, rationale, owners, risks, and dates** are buried across notes, launch plans, and transcripts.\n\nI built **Debrief** for [OpenAI Build Week 2026](https://openai.devpost.com/) to recover those as a structured **Decision Brief**, then let you ask follow-ups that still point at the source.\n\n`demo@debrief.app`\n\n/ `DemoBuildWeek2026!`\n\n(workspace: Launch Planning)A generic “chat with your PDF” answers in paragraphs. Debrief answers in **rows**:\n\nThen you can ask: *What did we decide about pricing and why?* and get a streaming answer with excerpts — not a hallucinated memo.\n\n```\nUser → React (Vite)\n         ↓ REST + SSE\n       FastAPI\n         ├ JWT auth\n         ├ document parse (PDF / DOCX / TXT)\n         ├ embeddings → PostgreSQL + pgvector\n         ├ Decision Brief (structured extraction)\n         └ RAG chat (cited follow-ups)\n                    ↓\n              OpenRouter (free models)\n```\n\nFrontend is on Vercel. API is on Railway. Database is Neon.\n\n**1. Extraction, not summarisation.**\n\nThe brief is a schema (decisions, risks, owners). The model fills that schema. A blob of “summary” is a failure.\n\n**2. Citations on every claim.**\n\nIf a row cannot point at a chunk, it should not look as confident as one that can.\n\n**3. Stale briefs.**\n\nIf the docs change after you saved a brief, the UI tells you to regenerate. Otherwise you trust last week’s launch call.\n\n**4. Isolation.**\n\nWorkspaces keep one project’s notes from leaking into another.\n\nThat is the product: recover the decision, then verify it against the source.\n\nI am an AI full-stack engineer (React / Next.js / FastAPI / RAG). Portfolio: [yatharthsharma.vercel.app](https://yatharthsharma.vercel.app).", "url": "https://wpnews.pro/news/debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations", "canonical_source": "https://dev.to/yatharthsharma1309/debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations-5809", "published_at": "2026-09-03 05:13:38+00:00", "updated_at": "2026-09-03 05:52:43.140027+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "large-language-models", "ai-products"], "entities": ["OpenAI Build Week 2026", "Debrief", "FastAPI", "PostgreSQL", "pgvector", "OpenRouter", "Vercel", "Railway"], "alternates": {"html": "https://wpnews.pro/news/debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations", "markdown": "https://wpnews.pro/news/debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations.md", "text": "https://wpnews.pro/news/debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations.txt", "jsonld": "https://wpnews.pro/news/debrief-is-not-a-pdf-chatbot-it-recovers-decisions-with-citations.jsonld"}}