AI Meeting Intelligence — record, transcribe, and answer questions against your own knowledge bases.
Last updated: May 26, 2026
MeetKB is delivered through two coordinated surfaces that share a
single user account and a single backend at
meet.brilworks.com:
.webm file on your own machine, and (when signed
in) streams a live transcript, detects questions, extracts
action items, auto-summarizes on stop, and lets you ask
questions grounded in your knowledge bases.
meet.brilworks.com
— serves the same user account a hosted admin panel
(/admin), a member dashboard
(/dashboard), a meeting drilldown
(/admin/history), a profile editor
(/profile), and the sign-in page
(/login). Admins can manage their team's users,
knowledge bases, provider keys, usage, audit log, and AI
feedback entirely from the web app without installing or
opening the extension.
Audio recordings never leave your machine. The hosted service holds only the transcripts, summaries, action items, knowledge bases, detected questions, provider API keys, and account metadata for signed-in users. Owners can optionally generate a public read-only share link for any meeting (see Public share links below).
When you sign in, MeetKB collects the following categories of data, using the same taxonomy Chrome Web Store uses for its data-use disclosure. Detailed treatment of each appears in the sections below.
.txt, .md,
.pdf, .docx) and the text extracted
from pages crawled at admin-supplied URLs. Stored as chunks for
retrieval at Q&A time.
We do not collect health information, financial or payment information, web browsing history, or low-level user activity (clicks, keystrokes, mouse position, scroll). We do not sell or transfer your data to third parties outside the approved use cases listed under "Outbound Calls Made by the Server" below. We do not use your data for advertising, profiling, or determining creditworthiness.
The extension operates in two distinct modes. Which mode you are in
determines what data, if any, leaves your device. The web app is
only meaningful in the authenticated tier — the marketing
landing page at meet.brilworks.com/ and the privacy
policy itself are public; everything else (/admin,
/dashboard, /profile,
/admin/history) requires sign-in.
Without signing in, the extension records the Meet tab locally and
saves a .webm file to your browser's default downloads
folder. No data leaves your device. No transcript,
no Q&A, no server contact, no telemetry. The web app's
authenticated routes refuse to load until you sign in.
Once you sign in (Google OAuth or email + password — on either
the extension's sidepanel or the web app's /login
page), the same backend at meet.brilworks.com serves
both surfaces. The extension sends meeting metadata, transcript
segments, and Q&A history; the web app sends admin actions
(user invites, key assignments, KB management) and profile
edits. From the server, transcription and answer-synthesis
requests fan out to the providers listed below. The server holds
your provider API keys encrypted at rest; the keys are never
returned to either client.
MeetKB uses an admin-managed model. Knowledge bases and
knowledge-base access grants are created and assigned by your
organisation's MeetKB admin from the web admin panel
(meet.brilworks.com/admin). Provider API keys (Groq,
Deepgram, Ollama Cloud) live in an admin-managed
key pool: admins add named entries once and
assign them to individual users with a single click. End users
cannot add their own keys or KBs; they see only the KBs their
admin has granted them access to. The GET /me/keys
endpoint returns only metadata
({provider, label, configured: true}) — encrypted
key values are never returned in plaintext from any endpoint.
Admins also use the web admin panel to view the audit log, per-user usage, the AI-feedback feed, and all meetings across the organisation. Each such admin view is recorded in the audit log so the organisation can review who accessed which data.
Independently of the admin model, every signed-in user can edit
their own display name at any time via the web profile editor at
meet.brilworks.com/profile. The
avatar_url tracks your Google account picture when
you sign in with Google and otherwise displays initials. Profile
fields are user-controlled; admin permission is not required.
.txt, .md,
.pdf, .docx — 25 MB cap per file), or
pages crawled from a URL you specify. Stored as chunks in the
server's database and used to retrieve context for your Q&A
queries. Semantic-search embeddings are generated by OpenAI and
the cross-encoder reranker is run on Cloudflare Workers AI (see
below).
spaces/…/devices/…
token, scoped to the meeting) so we can correct a speaker label
after the fact if their name resolves later in the call. The
device identifier is not used outside the meeting and is purged
when the meeting is deleted.
Stop via Ollama
Cloud. Stored with the meeting.
PATCH /me and
POST /auth/google/refresh-profile. Both update only
the name and avatar_url fields on your
own row.
pinned, share_token) set by you. Pin
gives a meeting priority over unpinned siblings in the FIFO
history cap's eviction order (oldest unpinned goes first);
share mints a public read-only token (see next section).
+1 or -1 per content item against
your account so we can spot model regressions and improve
retrieval quality. Ratings are never associated with the names
or contents of other meeting attendees. The MeetKB admin for
your organisation can view aggregate ratings and (for meetings
owned by users in their organisation) the per-meeting ratings
you submitted, for quality review. Each such admin view is
recorded in the audit log.
You can mint a public, read-only link for any meeting you own via the history popup. When active, anyone who knows the link can read the meeting-content view without signing in. This is opt-in, per-meeting, and revocable at any time.
The public page exposes:
The public page does not expose:
Anyone in possession of the link can read the content while the
link is active. Forwarding the link forwards access. Revoke the
link from the history popup at any time and the URL becomes a
404 immediately. Tokens are long random strings
(secrets.token_urlsafe(32), 32 bytes of entropy) so
they cannot be guessed. Share responses are served with
Cache-Control: no-store so intermediate proxies and
browser back-buttons cannot resurrect a revoked link.
The MeetKB server has no audio storage. The
.webm recording and any .vtt /
.txt sidecars are saved to your browser's default
downloads folder only. The server endpoint that used to accept
audio uploads has been removed, and the database column that used
to reference an audio key has been dropped.
Used only for batch Whisper transcription of
recorded audio when live transcription is unavailable. Question
cleanup, question detection, action-item extraction, Q&A
answer synthesis, and summary generation have all moved to
Ollama Cloud and no longer reach Groq. The server calls
api.groq.com with your Groq key. The
Groq privacy policy applies.
Used for live streaming transcription when configured. The server
proxies a WebSocket to api.deepgram.com with your
Deepgram key, forwarding 16 kHz mono PCM audio of the meeting.
The
Deepgram privacy policy applies.
Primary and fallback LLM provider for all language-model tasks:
question detection, question cleanup, Q&A answer synthesis,
on-demand in-meeting summary, post-meeting summary, action-item
extraction, and pre-retrieval typo correction. The server calls
ollama.com with your Ollama key. Depending on the
task, the payload includes your meeting transcript (up to
~16 000 characters of recent context, truncated head + tail for
longer meetings), the top-ranked KB chunks for Q&A, the
cleaned question text, and the recent conversation history.
The
Ollama privacy policy applies.
Used to generate semantic-search embeddings
(text-embedding-3-large, 3072-dim) for KB chunks at
ingest time, for the query at retrieval time, and for the
semantic-dedup pass over detected questions. The server calls
api.openai.com with server-owned credentials — no
per-user key is required. The
OpenAI API data usage policy applies. OpenAI does not train on
data sent via the API.
Used to run the second-stage cross-encoder reranker
(@cf/baai/bge-reranker-base) over the top retrieval
candidates for your /ask queries. The server calls
api.cloudflare.com with server-owned Cloudflare account
credentials — no per-user key is required. The
Cloudflare privacy policy applies.
If your admin creates a KB by entering a URL, the server fetches pages from that host (sitemap first, then same-host BFS) and stores the extracted text as KB chunks. No crawling is performed unless an admin initiates it.
chrome.storage.local by the extension, and in the
browser's localStorage on
meet.brilworks.com by the web app. Both stores
are scoped per-extension and per-origin respectively;
unrelated sites cannot read them. Used to authenticate to the
MeetKB server.
state / nonce in the
web app's sessionStorage during a Google OAuth
redirect, cleared as soon as the callback completes.
chrome.storage.session),
cleared when the browser closes.
.webm file (and any
.vtt / .txt sidecars) in your browser's
default downloads folder.
To avoid forcing you to sign in twice, the extension and the web app share the same JWT through a tightly scoped messaging bridge:
chrome.runtime.sendMessage to push the access
token, refresh token, and minimal user object into the
extension's chrome.storage.local. The extension
instantly recognises the same session.
localStorage from the extension's tokens so the
next click opens /admin or /dashboard
without bouncing through the login page.
401, and the web app redirects to
/login automatically (within the 15-minute access
token TTL).
The bridge is locked down by the
externally_connectable.matches manifest entry
— only pages served from
https://meet.brilworks.com (and the developer
http://localhost:8000) can reach the extension's
message handler. The background worker also re-checks
sender.origin on every incoming message as
defense-in-depth. No third-party site, content-script injection,
or page outside that allowlist can read or write the extension's
session.
No new data is sent to the server by the bridge — both surfaces already had this same JWT. The bridge only moves a token that already existed in one browser context into the other, on the same machine, between two surfaces of the same product.
.webm (and any .vtt / .txt
sidecars) are saved to your browser's default downloads folder
only.
DELETE /meetings/{id}/share) invalidates the URL
immediately and removes the share token from the database.
Deleting the parent meeting also revokes any associated share
token as part of the cascade.
DELETE /meetings/{id} removes the meeting, its
transcript, summary, detected questions, action items, Q&A
history, and any active share token.
DELETE /me cascades to remove your sessions, KB
access grants, key-pool assignments, meetings, transcript
segments, detected questions, action items, share tokens, and
Q&A. KBs you created remain accessible to other granted
users (their user_id is cleared rather than
deleted). Key-pool entries you created remain available to the
admin pool unless explicitly deleted. Audit-log entries are
retained for security review.
GET /me/export
returns a JSON dump of everything you own.
meet.brilworks.com/admin,
/dashboard, and /profile when you
click the Settings, History, or Profile actions in the
sidepanel.
https://meet.brilworks.com/*): the
manifest allowlist that scopes the cross-surface session
bridge described above. Only pages served from that origin
can send messages to the extension's background worker; every
other site is rejected by Chrome before our code runs.
chrome.storage.local is removed by Chrome. Any
server-side data tied to your account (transcripts, KBs,
meetings) is retained until you ask an admin to deactivate
the account or you call DELETE /me from the web
app or via the API.
If this privacy policy changes, the updated version will be
published at meet.brilworks.com/privacy-policy.html
(the same URL referenced by the extension and the Chrome Web
Store listing) and the "Last updated" date above will be
revised. Material changes to data collection or sharing will
additionally be announced through the web app.
For questions about this privacy policy, email support@brilworks.com.