How MinuteKeep's AI Chat Finds Answers Across All Your Meetings
You have 50+ recorded meetings. One answer is definitely in there. Here's exactly how AI Chat finds it—and why keyword search can't.
You know the answer is in one of your 50+ recorded meetings. You can almost remember the meeting. You just can't remember which one, what it was called, or the exact words people used to describe it.
You open MinuteKeep, scroll through your history, and start checking notes one by one. Five minutes pass. Ten. Finally, you type a question into the AI Chat screen instead: "What were the concerns about the Q3 timeline?"
The answer appears in seconds. It's the right one. It includes who raised each concern and which meeting it came from.
This isn't magic. It's a layer of technology that sits between what you're searching for and what you're searching through. And understanding how it works changes how you use it.
Automate your meeting notes. MinuteKeep records your meeting and uses AI to transcribe, summarize, and extract action items. 9 languages, no subscription, 30 min free.
Why Your Brain Can't Find What Keyword Search Can't Either
Meeting notes fail keyword search for a specific reason: human language is redundant.
The finance director says "third-quarter resource allocation." The VP says "the budget we're holding for July through September." A product manager writes "money for Q3 launches." Your notes contain "the figure Marcus mentioned."
Keyword search requires an exact match (or at least, a match on key terms). It will find "Q3 budget" only if those exact words appear. It won't connect "third-quarter allocation" to "July through September money" even though they refer to the same thing.
Your brain does this effortlessly. You read "third-quarter allocation" and immediately map it to "budget for Q3" without thinking about it. You understand that "resource allocation" and "money" and "budget" are variations on the same concept.
Computers don't work that way. Not unless they're taught to look for meaning instead of matching words.
The RAG Framework: Meaning-Based Search
The technology behind MinuteKeep's AI Chat is called Retrieval-Augmented Generation, or RAG. It works in four steps:
Step 1: Convert meaning into numbers (embeddings)
When you save a meeting note in MinuteKeep, the system doesn't just store the transcript. It processes the text through a specialized model called text-embedding-3-small. This model converts language into vectors — mathematical arrays that represent what the text means, not what it literally says.
The key insight: two sentences with completely different words can have vectors that point in the same direction if they mean the same thing.
"We're allocating $500K for Q3 initiatives" and "The third-quarter budget is half a million" produce vectors that are mathematically similar. They're positioned close together in what researchers call "semantic space."
Every note you record gets converted into these vectors. The system creates multiple embeddings — one for the full note, but also for individual sections and key passages. Your entire meeting history becomes a three-dimensional space where similar meanings cluster together.
Step 2: Convert your question into the same representation
When you open the AI Chat and type "What were the concerns about the Q3 timeline?", that question also gets converted into a vector using the same model.
Now you have two sets of vectors: your question, and all of your past meetings. They're all using the same mathematical language.
Step 3: Find the nearest neighbors (semantic matching)
The system compares your question's vector to every meeting vector in your library. It's not looking for keyword matches. It's looking for vectors that are positioned close together in semantic space.
A meeting where someone said "I'm worried about whether we can ship Q3 features on schedule" will rank high because "concerned about Q3 timeline" and "worried about shipping on schedule" mean approximately the same thing.
Meetings that discuss Q3 in completely unrelated contexts (like "we shipped Q3 faster than expected") will rank lower because those vectors point in different directions.
The system retrieves the top 5-10 most relevant sections from all your meetings.
Step 4: Generate an answer using the retrieved context
These relevant sections are fed to a language model (GPT-4.1-mini). The model reads them and generates a natural-language answer to your question, in context, with specific details and sources.
You don't get a list of search results. You get an answer that synthesizes information from multiple meetings.
How MinuteKeep Implements RAG in Practice
MinuteKeep's architecture handles this process with three separate components:
The Transcription Service (openai.ts) records your audio and converts it to text using Whisper. The raw transcript is saved to your device's local storage.
The Embedding Service (embeddingStorage.ts + Supabase edge function) takes that transcript and processes it through text-embedding-3-small. The resulting vector embeddings are stored in IndexedDB — they never leave your device.
The Chat Service (chatService.ts) handles the retrieval step. When you ask a question, it:
- Embeds your question using the same model
- Searches IndexedDB for the 8 most semantically similar meeting embeddings
- Retrieves the relevant transcript sections
- Passes them to the GPT-4.1-mini chat endpoint
- Streams the response back to you in real-time
The entire process runs on-device for embedding and retrieval. Only the final generative step (creating the answer) happens on Supabase servers. Your question vector is never stored; only your question's meaning is compared against your notes.
10 Real-World Queries and What They Find
Understanding how semantic search works becomes clearer when you see what it actually retrieves. Here are 10 concrete examples:
1. Direct Decision Retrieval
Query: "What did we decide about the new CRM platform?" What it finds: Any discussion about CRM tools, even if phrased as "Did we land on that Salesforce thing?" or "Which system are we rolling out?" It collects statements like "We're going with HubSpot" and "We're moving away from Pipedrive" from different meetings, and synthesizes them into a coherent decision timeline.
2. Person-Centric Information
Query: "What did Sarah say about the vendor partnership?" What it finds: Meetings where Sarah spoke, but it also finds meetings where people referenced Sarah's position: "Sarah mentioned the vendor issue" or "That's Sarah's concern." It retrieves both her direct statements and how others represented her views.
3. Time-Bounded Summaries
Query: "Summarize what we talked about with the client in March." What it finds: Notes from the relevant time period that mention the client, even if "the client" was called "our biggest account" or "them" in later meetings. It aggregates the discussion into a coherent narrative.
4. Action Item Tracking
Query: "What was assigned to the product team last month?" What it finds: Statements like "the product team will handle the redesign," "we need product's sign-off," and "that's a product team task." It retrieves and lists the connected action items, helping you track accountability across months.
5. Risk and Concern Surfacing
Query: "What concerns came up about the new API?" What it finds: Statements phrased as concerns, objections, worries, or caveats: "That API might not scale," "I'm not confident we can integrate in time," "The vendor's support is questionable." It surfaces past hesitations that might be relevant to current decisions.
6. Recurring Topic Evolution
Query: "How has our approach to remote work changed over time?" What it finds: Three separate meetings spread across four months where remote work policy came up. It shows the evolution: meeting one mentions "we're requiring 2 days in office," meeting two discusses "loosening that to 1 day," meeting three reflects "we're fully remote now."
7. Cross-Meeting Decisions
Query: "What did we commit to in the product roadmap discussions?" What it finds: Commitments spread across three different roadmap reviews, each with different context. It synthesizes them into: "We committed to feature X (Q2), feature Y (Q3), and a redesign for Q4."
8. Approval or Consensus Retrieval
Query: "Did we get approval on the budget increase?" What it finds: Meetings where approval language appeared: "That's approved," "We're good to go," "Finance signed off." It can distinguish between provisional discussion ("we might need more") and final decisions ("we're approved").
9. Stakeholder Position Tracking
Query: "What's the finance team's position on hiring more engineers?" What it finds: All meetings where finance weighed in on engineering headcount. It retrieves: "Finance said we need to hit profitability targets first," "They approved the three engineering hires," "They wanted to wait until Q3."
10. Technical Decision Reasoning
Query: "Why did we choose TypeScript instead of Python for the backend?" What it finds: The meeting where the decision was made, but also earlier meetings where the tradeoffs were discussed. It surfaces the reasoning: performance concerns, ecosystem fit, team expertise, and the ultimate deciding factor.
Each of these queries works because the system is matching on intent and meaning, not on the specific words you use or the exact words in your notes.
What Improves (and What Breaks) Search Quality
RAG systems are powerful but not infallible. Quality depends on what goes in.
Recordings get indexed automatically. When you save a meeting, the embedding process runs in the background. You don't need to do anything — by the time you open the chat screen, that meeting is searchable.
Summaries make results richer. MinuteKeep generates AI summaries after transcription. The chat searches both the transcript and the summary. Meetings with summaries return more contextual information because the summary highlights decisions and action items that might be buried in a 20-minute transcript.
Specific questions outperform vague ones. "What was the decision on Q3 budget allocation?" returns more targeted results than "Tell me about Q3." The system can match specific intent more precisely.
Recording frequency compounds value. Five meetings give RAG something to work with. Fifty meetings give it a rich cross-meeting context. The system surfaces patterns that don't exist in sparse data. With 100+ recorded meetings, you can ask questions like "How many times has this topic come up?" and get a meaningful answer.
Custom dictionary improves transcription, which improves embeddings. If your product is "Zenflow" and that word gets transcribed as "zen flow" or "Zen-flow," the embedding quality degrades. Adding proper nouns to the dictionary ensures better transcription, which cascades into better semantic embeddings.
Incomplete notes mean incomplete answers. The system can only search what's been recorded. If a decision was made in a conversation that wasn't transcribed, it won't appear. RAG surfaces institutional memory from your notes — it can't fill in gaps from conversations that never made it into the system.
Why This is Different From Otter.ai, Fireflies, and Fathom
Other AI meeting tools use RAG, too. The differences are in scope and constraints.
Otter.ai lets you chat with transcripts, but it's primarily a recording service. The free tier is limited, and AI Chat isn't available until you pay. The chat is tied to subscriptions.
Fireflies.ai offers cross-meeting search (AskFred), but uses a credit system. Each query consumes credits. The Pro plan includes 30 credits per month. Heavy users hit the limit. For someone who needs to run 50+ searches monthly, that becomes expensive.
Fathom provides free AI Chat, but with a crucial limitation: it only captures meetings that happen through calendar-integrated platforms. A spontaneous client call on your phone, an in-person meeting recording, or a discussion that didn't go through Zoom or Google Meet isn't captured. Its search is platform-constrained.
MinuteKeep captures meetings wherever they happen — in person, on mobile, across any conferencing platform. Because all recording and processing happens on-device, there are no per-query costs and no artificial credit limits. The chat searches your complete meeting history, not just calendar-connected calls.
No subscription. No credit limits. No platform dependency. Just permission to ask as many questions as you need.
The Privacy Trade-off
RAG requires indexing your content, which raises a legitimate question: where do your embeddings live, and who can see them?
MinuteKeep's answer: on your device, and nobody else.
When you save a meeting, the transcript stays in local storage on your iPhone. The embeddings are computed and stored in IndexedDB — also on-device. When you ask a question, the embedding of your question is computed locally, compared against your stored embeddings locally, and the relevant transcript sections are retrieved locally.
Only when the system needs to generate an answer does it send the retrieved transcript sections to Supabase for GPT-4.1-mini processing. Your question itself is never sent. Only the most relevant sections from your notes travel to the server.
This is an intentional design choice. It's why chat sessions aren't persisted. Your questions about sensitive meeting content don't stick around anywhere.
The trade-off: slightly slower response time compared to server-side processing, but complete privacy for the questions you ask.
What Happens When You Get It Wrong
Even with semantic search, results sometimes miss. Here's what happens:
Broad questions sometimes don't narrow down enough. "What did we talk about?" is too vague. The system retrieves sections from multiple meetings without clear signal about what you're looking for. Better: "What did we decide about the new vendor?"
Ambiguous references confuse the system. "That thing we discussed" works fine if it's used once. But if "that" refers to different topics in different meetings, the embedding becomes noisy. Using specific language helps: "The vendor pricing proposal we discussed with Sarah."
Spelling and transcription errors cascade slightly. If "Zenflow" gets transcribed as "zenflow," and you search for "Zen flow," the embedding distance increases slightly. The system is still likely to find it, but with lower confidence. This is why the custom dictionary helps.
Topics that truly don't exist in your notes won't be found. If you search for "Q4 budget discussion" and Q4 budget was never recorded in a meeting, the system has nothing to return. This isn't a failure — it's working correctly.
Getting Better Results: Practical Tips
Record the meetings that matter most. You can't search what wasn't recorded. Prioritize consistent recording of decision-making meetings, client calls, and team planning sessions.
Let summaries complete before searching. The generation of summaries happens after transcription. If you search immediately after a meeting is saved, you're searching transcript only. Wait 30 seconds for the summary to generate, and search results get richer.
Ask follow-up questions. If the first answer is close but not quite right, ask the chat: "Which meeting was that from?" or "What else was said about that vendor?" The chat can iterate on its previous response.
Use specific language in your questions. "What constraints did finance mention on Q3 hiring?" returns better results than "What about Q3?"
Maintain the custom dictionary. Product names, person names, company names, and technical terms should all be in the dictionary. Better transcription means better embeddings.
Search when you have volume. RAG systems improve with data. A single meeting works but doesn't show cross-meeting patterns. With 10+ meetings, you start to see recurring topics and evolved decisions. With 50+, the system behaves like institutional memory.
How Embedding Quality Affects Everything
Here's the chain of dependency that explains why seemingly small things matter:
Transcription quality → Embedding quality → Search relevance → Answer accuracy
If Whisper mistranscribes "partnership" as "parsnip," that error propagates forward. The embedding will be slightly off. The search will be slightly less relevant. The answer will have lower confidence or miss the relevant meeting entirely.
This is why the custom dictionary matters. It's not busy-work — it's fine-tuning the entire chain.
Similarly, if you record a meeting with poor audio quality, the transcription is noisier, the embedding less precise, and the search less accurate.
MinuteKeep offers two transcription tiers:
- Standard accuracy: Uses Whisper's default settings, fast and reliable for clear audio.
- High accuracy: Uses gpt-4o-transcribe, slower but catches more nuance, handles accents and technical terms better, reduces transcription errors that cascade into search problems.
For meetings where precision matters — client calls, executive decisions, complex technical discussions — high accuracy mode pays for itself through better search results later.
CTA: Try It With Your Meeting History
MinuteKeep comes with 30 minutes of free transcription. If you already have meetings recorded elsewhere, you can manually add them. Once you have 5+ meetings saved, the AI Chat becomes genuinely useful.
Try searching across your meeting history with questions you actually need answered:
- "What was the decision on [topic] we discussed last month?"
- "What action items were assigned to [person]?"
- "What concerns came up about [project]?"
The system is designed to surface exactly this kind of information.
Download MinuteKeep on the App Store
FAQ
How is this different from searching with Ctrl+F?
Ctrl+F matches exact text. "Q3 budget" won't find "third-quarter allocation." Semantic search matches meaning. It finds ideas phrased in completely different words.
Can the system search meetings recorded in other languages?
Yes. MinuteKeep supports 9 languages for transcription and summarization. The embedding model also supports multiple languages. If you recorded a meeting in Japanese and ask a question in English, the system will still find relevant Japanese meetings. Response quality improves as the underlying models improve.
What if I don't want certain meetings to be searchable?
All saved meetings are automatically indexed. There's no "exclude from search" option in the current version. This is intentional — the value of RAG comes from comprehensive indexing. If you record something sensitive that shouldn't be searchable, don't save it.
How many meetings do I need before the system becomes useful?
One meeting works, but five is the practical minimum. At five meetings, you start to see cross-meeting patterns. At twenty, you start to see topics that recurred and decisions that evolved. At fifty+, the system behaves like institutional memory.
Does searching consume my transcription time credits?
No. AI Chat searches only use your device and Supabase servers for response generation. Transcription credits only apply to recording and transcribing new audio.
What if I ask the AI Chat a question that isn't in my notes?
The system will tell you clearly: "I couldn't find information about that in your meetings." It won't make up answers. It only generates responses based on what's in your note library.
Can I export the chat history?
Chat sessions are not persisted after you close the app. This is a privacy feature. If you need to save a specific answer from the chat, you can copy it manually.
Key Takeaways
- RAG (Retrieval-Augmented Generation) powers semantic search by converting meeting notes and your questions into mathematical vectors that represent meaning, then finding the closest matches.
- Keyword search fails because meeting language is redundant—the same idea gets expressed a dozen different ways, and exact-word matching misses the variations.
- MinuteKeep's implementation is local-first: embeddings live on your device, only relevant sections travel to servers for final answer generation, and questions are never stored.
- Search quality depends on the chain: transcription → embedding → retrieval → generation. Better transcription leads to better embeddings leads to better search results.
- High-volume recording compounds RAG's value. With 5+ meetings, cross-meeting patterns emerge. With 50+, the system functions as institutional memory.
- Semantic search works across languages, contexts, and paraphrasing, but only for content that was actually recorded. It can't recover decisions from unrecorded conversations.
MinuteKeep offers multiple summary formats to structure your notes in different ways — each one optimizes for different use cases and improves the quality of what AI Chat can retrieve.