Vision turns meetings into searchable company memory, connecting decisions, commitments, and AI answers to the conversations behind them.
The inspiration came from a simple question: what happens to a team’s decisions after the meeting ends? A deadline changes, someone takes ownership, or a technical direction gets revised. Weeks later, understanding what happened means searching through recordings, scattered notes, and messages. We wanted to make those decisions easier to find, verify, and follow as they change.
With Vision, users can record a meeting directly in the browser or upload audio. The app produces a timestamped transcript that they can review and correct before filing it into shared memory. From there, Vision extracts facts, decisions, and commitments, generates summaries with citations, and lets users ask questions about their team’s history.
Questions such as “Who owns this task?” or “When did this deadline change?” become entry points into the underlying evidence. Users can inspect the cited transcript passages, while a Why panel exposes the database queries behind an answer. For work explicitly linked to a decision, the decision-impact view can flag when that decision changes and identify the recorded owner who should review it.
We built the project around preserving context. The frontend uses Next.js, React, TypeScript, and Tailwind CSS, with the browser’s MediaRecorder API handling recording. A Python FastAPI backend coordinates transcription, ingestion, retrieval, and AI responses. Sarvam provides timestamped speech transcription, and Claude through the Anthropic API generates summaries and answers with source citations.
FalkorDB stores the relationships between conversations, people, facts, decisions, and commitments. Its graph structure lets us connect an answer to its evidence and follow changes across meetings. We use a temporal model that distinguishes when information applies from when the system records it, preserving earlier versions as decisions evolve. The web app is deployed on Vercel, with the API and database hosted on AWS using Docker Compose and Caddy.
We also configured GitLab CI for validation, testing, builds, SAST, and secret detection, and registered a supervised GitLab Duo review flow. The flow is designed to inspect merge requests and pipeline evidence before requesting human approval to post a review note; trigger activation remains pending account verification.
The hardest challenge was turning conversational language into dependable structured memory. Meetings contain proposals, repeated statements, ambiguous dates, and commitments without clear owners. Our extraction experiments showed that a defined vocabulary, consistent entity names, date normalization, and filtering repeated recaps helped more than prompt wording alone. Extraction quality remains an area we are improving.
Another challenge was handling changing information without losing history. A revised deadline needs to replace the current deadline while preserving the earlier statement and its source. Older meetings imported later also need to fit into that history correctly. This shaped our versioning and supersession logic.
We learned that useful AI needs evidence people can inspect. A citation helps someone check an answer, but it does not automatically prove the interpretation is correct. That lesson informed the transcript-review step, visible sources, and explicit dependencies in the decision-impact feature.
We are proud of bringing recording, review, connected memory, and cited answers into one working experience. Next, we want to improve extraction accuracy through broader evaluations, make conflicting information easier to resolve, and expand integrations so teams can connect meeting decisions with their everyday work.
Built With
- amazon-ec2
- anthropic-api
- claude
- cypher
- docker
- falkordb
- fastapi
- gitlab
- gitlab-ci/cd
- gitlab-duo
- next.js
- pydantic
- python
- react
- sarvam-ai
- shadcn/ui
- tailwind-css
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.