Production

Empowered Meet
Transcriber

A custom-built Chrome extension that captures Google Meet captions in real time, saves transcripts directly to Empowered Pensions' own database — with zero data ever touching a third-party server.

Client
Empowered Pensions
Location
United Kingdom
Year
2026
Role
Builder & Architect
Stack
Chrome Extension JavaScript Google Meet API Webhook Client DB
0
third-party servers touched
100%
auto-captured meetings
0min
manual note-taking time
v1.0
live in production

Manual notes & a data privacy crisis

Empowered Pensions advisors were manually taking notes during every Google Meet call with clients — losing detail, spending time post-call reconstructing conversations, and creating inconsistency across the team.

The obvious fix — public transcription tools like Otter.ai or Fireflies — was off the table entirely. Empowered Pensions handles highly confidential pension and financial data for UK clients. Routing any conversation through a third-party AI transcription service would violate data governance obligations and client trust.

The constraint: Any solution had to keep transcript data entirely within Empowered Pensions' own infrastructure. No audio or text could leave to an external vendor's servers under any circumstances.

The extension in action

chrome://extensions
Empowered Meet Transcriber v1.0.0 installed in Chrome extensions
Extension installed — ID: gcpjnjpmbhegkibeidkabhcjdkacjmmo
meet.google.com — Extension popup
Empowered Meet extension popup showing Auto mode and Manual mode options
Auto mode records every Google Meet automatically. Manual mode lets staff choose when to start.
meet.google.com — Live session
Live Google Meet session showing Empowered Pensions Meet is running banner
In-meeting banner confirms active capture — "Do not turn off captions"
Empowered Meet Transcriber — Meeting history
Meeting history dashboard showing last 10 meetings with webhook status
Meeting history dashboard — webhook delivery status, download, and replay per session

How the transcript pipeline works

01
Chrome Extension · Content Script
Inject into Google Meet
The extension injects a content script into any meet.google.com tab. On meeting join, it auto-enables captions if running in Auto mode — no action needed from the advisor.
02
DOM Observer · Real-time Capture
Capture captions from the DOM
A MutationObserver watches Google Meet's live caption DOM nodes. Every caption segment is captured as it appears — speaker, text, and timestamp — building a structured transcript in memory.
03
Local Storage · Chrome Extension API
Store transcript locally
The full transcript is saved to Chrome's local extension storage as a structured text file. No data leaves the browser during the meeting. The meeting history dashboard shows all 10 most recent sessions.
04
Webhook · POST on Meeting End
Fire webhook to client database
When the meeting ends, the extension fires a webhook POST carrying the full transcript directly to Empowered Pensions' own database endpoint. Status is tracked per session — New, delivered, or failed — visible in the meeting history view.
05
Client Database · Private Infrastructure
Transcript stored in Empowered Pensions' DB
The transcript lands in Empowered Pensions' own database — fully under their control, accessible for client records, meeting notes, and compliance review. Zero copies on any external server.

Why it's built this way

01
Caption scraping, not audio recording — capturing Google Meet's own live captions via DOM observation means no audio is ever processed or stored. This is both simpler and more privacy-compliant than audio-based transcription.
02
Auto mode by default — advisors forget to start recordings. Auto mode triggers on every Meet join so no session is ever missed without a deliberate manual override.
03
Webhook fires on meeting end, not during — batching the full transcript into a single POST on session close keeps the pipeline simple, avoids partial writes, and reduces database load compared to streaming line-by-line.
04
Webhook status tracked per session — the meeting history dashboard shows delivery status (New / delivered / failed) so staff can manually re-fire a failed webhook without losing the transcript.