DEV Community

Yatharth Sharma
Yatharth Sharma

Posted on AI-assisted

Debrief is not a PDF chatbot — it recovers decisions with citations

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.

I built Debrief for OpenAI Build Week 2026 to recover those as a structured Decision Brief, then let you ask follow-ups that still point at the source.

The wedge

A generic “chat with your PDF” answers in paragraphs. Debrief answers in rows:

  • Decision + rationale + owner + confidence
  • Risks / contradictions
  • Dates and open questions
  • Each cell has a source chip

Then you can ask: What did we decide about pricing and why? and get a streaming answer with excerpts — not a hallucinated memo.

How it is put together

User → React (Vite)
         ↓ REST + SSE
       FastAPI
         ├ JWT auth
         ├ document parse (PDF / DOCX / TXT)
         ├ embeddings → PostgreSQL + pgvector
         ├ Decision Brief (structured extraction)
         └ RAG chat (cited follow-ups)
                    ↓
              OpenRouter (free models)
Enter fullscreen mode Exit fullscreen mode

Frontend is on Vercel. API is on Railway. Database is Neon.

What I had to get right

1. Extraction, not summarisation.

The brief is a schema (decisions, risks, owners). The model fills that schema. A blob of “summary” is a failure.

2. Citations on every claim.

If a row cannot point at a chunk, it should not look as confident as one that can.

3. Stale briefs.

If the docs change after you saved a brief, the UI tells you to regenerate. Otherwise you trust last week’s launch call.

4. Isolation.

Workspaces keep one project’s notes from leaking into another.

Try it in five minutes

  1. Open the live demo and use the printed demo account.
  2. Generate a brief from the seeded Launch Planning docs.
  3. Ask: What did we decide about pricing and why?
  4. Ask: What is still unresolved before launch?

That is the product: recover the decision, then verify it against the source.

I am an AI full-stack engineer (React / Next.js / FastAPI / RAG). Portfolio: yatharthsharma.vercel.app.

Top comments (0)