Projects

Organisation-Wide RAG Chatbot

RAG assistant rolled out to 800+ employees, with SSO auth, GraphRAG retrieval and persistent session memory for day-to-day work with sensitive internal documents

An internal, SSO-integrated chatbot over SharePoint and Confluence content, using GraphRAG with reranking and DynamoDB-backed session memory so staff can securely query and act on sensitive documents.

Problem

Internal knowledge was spread across SharePoint and Confluence, accessible only by knowing where to look and having the right permissions. Staff routinely needed answers that touched sensitive documents, and search alone wasn’t closing the gap between “the answer exists somewhere” and “I have it.”

Approach

  • Per-user auth via SSO, so the assistant never became a shortcut around existing document permissions; every query ran as the requesting user, not a shared service account.
  • GraphRAG with reranking over indexed SharePoint and Confluence content, to surface the right passages rather than the merely similar ones, and to keep relationships between documents usable instead of flattening everything into isolated chunks.
  • Session context and memory persisted in DynamoDB, so a follow-up question didn’t need to restate what had already been established earlier in the conversation.

Permission-aware retrieval was the non-negotiable part of the design. A chatbot that answers faster than search but ignores who’s allowed to see what is a net loss, not a net gain.

Result

Live for 800+ employees, used day to day for querying and working with internal, sensitive documentation without manual search or needing to know which system or folder held the answer.

What I’d do differently

I’d instrument query-level feedback (thumbs up/down with a reason) from the first release rather than adding it later. Retrieval quality across such a wide range of document types is uneven in ways that are hard to predict in advance, and the earliest, highest-signal feedback came from exactly the period before that instrumentation existed.