Office Hours Agent
From raw office-hours recordings to organized answers that span every past session.
Claude Desktop · MCP · SharePoint · Webhooks · RAG · Semantic Search · Markdown
My team runs biweekly office hours for the rest of the company: CMS feature demos, content authoring and asset best practices, taxonomy tagging, and how to build each content type, from blogs to product pages. Every session was recorded, but the same questions kept coming back weeks later. The answers were sitting in the recordings, and no one wanted to scrub through hours of video to find them.
The office-hours agent I built converts each recorded session into a titled, indexed transcript, then answers questions from Claude Desktop by pulling from every session that touches the topic. Its answers stay grounded in what was said in the room.
A webhook watches the recordings folder. When a new session lands, a workflow takes its raw .vtt transcript, cleans it into Markdown, titles it after the topic that was discussed, and files it in SharePoint next to the others.
The formatted transcripts are indexed by meaning, so related topics sit near each other. A question about taxonomy tagging pulls the passages where tagging came up, even from sessions months apart.
From Claude Desktop, someone asks a question the way they would ask a colleague. The agent works out which topics it touches, gathers the relevant passages from across sessions, and returns one organized answer instead of scattered fragments.
A transcript pulled straight from a recording is messy: crosstalk, filler, half-finished sentences. The conversion step rewrites each .vtt into clean Markdown and titles it by topic before anything is indexed, so the agent retrieves readable passages rather than raw captions.
A real question rarely maps to a single session; the answer is spread across several. The transcripts are indexed by meaning, so related material sits together no matter which session it came from, and the agent gathers across all of it before it answers.
An agent over a knowledge base can drift into answering from general knowledge instead of the source. The agent answers only from the retrieved office-hours passages and names the sessions it drew from, so a reader can go back to the original.
The same question stops coming back: the answer from any past session is a chat message away.
An answer can span several sessions, so a topic that was covered in pieces over months reads as one explanation.
New recordings join the knowledge base on their own, with no manual transcription or filing.
It started with our team’s office hours; other teams saw it working and now run their own sessions through the same agent.