← Back to projects

01 / Meeting intelligence · Team project

ScribeFlow

An AI meeting-intelligence platform that connects speaker-labelled transcripts, structured analysis, action items, and semantic search back to timestamped evidence.

Role

Team project contributor. The repository does not assign individual feature ownership; commit and pull-request history remain the source of truth.

Status

Live demo available · source available

Main technologies
  • TypeScript
  • React
  • Express
  • PostgreSQL
  • pgvector
  • Vitest
Architecture illustrationScribeFlow
Verified repository flow: audio is uploaded to private Supabase Storage before the API coordinates transcription, structured analysis, persistence, and semantic indexing.

The problem

Raw meeting audio is slow to review and difficult to search. Important decisions and responsibilities are easy to lose when summaries are separated from their source.

The system also has to coordinate large uploads and multiple external AI services without exposing credentials or silently presenting incomplete results as success.

The solution

ScribeFlow uses direct resumable uploads to private storage, normalizes Deepgram transcription and diarisation, asks Gemini for schema-constrained analysis, and persists summaries, topics, and action items with evidence references.

After analysis, transcript and summary chunks are embedded and stored in pgvector so retrieval results can point back to the relevant meeting span.

01

Keep audio off the API process

The browser uploads through a short-lived, path-scoped signed TUS token. Express verifies the object after completion instead of buffering large audio files.

02

Make processing repeat-safe

Transcription, analysis, and indexing check persisted state before repeating provider calls. Database RPCs replace related records atomically.

03

Treat evidence as product data

Structured summaries and tasks retain transcript segment IDs and timestamps; semantic chunks also keep source spans and speaker metadata.

Technical challenges

  1. Coordinating upload, transcription, analysis, and indexing states while keeping retries understandable.
  2. Normalizing provider output into typed records without leaking secrets or storing raw privileged responses.
  3. Keeping AI-generated findings reviewable through transcript evidence instead of presenting unsupported summaries.

Testing and reliability

  1. Shared Zod schemas validate API payloads and model responses across the web, API, and shared packages.
  2. Vitest suites, CI, type checking, linting, formatting checks, builds, and opt-in provider verification scripts are documented.
  3. Idempotent handlers avoid repeated provider calls; indexing failures are logged without discarding an already persisted analysis.
  4. Pino redacts authorization headers, signed tokens, and signatures from logs.

04 / Current limitations

What the project does not claim.

  • End-to-end provider checks require configured Deepgram, Gemini, and Supabase accounts and may incur usage costs.
  • Transcription and generated analysis vary with audio quality, accents, overlap, and model configuration.
  • The deployment design targets a portfolio/demo workload, not a formally audited multi-tenant production system.

05 / Next improvements

What I would build next.

  • Add live streaming transcription and stronger background-job isolation.
  • Introduce workspace authentication and per-user authorization boundaries.
  • Expand multilingual evaluation and export formats while keeping evidence links intact.