MeetMind · Guide

How does MeetMind write minutes?

Last updated: 2026-09-16

1. From raw text to structured input

Capture the transcript

I start by taking whatever text you have: a raw transcript from Zoom, a Google Doc with notes, or even a few bullet points you typed during the call. The system accepts plain text up to 200 KB, which covers most hour‑long meetings. If you paste a transcript, I keep speaker labels if they exist; if you only give a topic, I treat the whole block as a single speaker monologue.

Normalize whitespace and encoding

Next I strip out hidden control characters, convert Windows line endings to Unix, and replace multiple spaces with a single space. This step prevents the model from seeing stray tabs or non‑breaking spaces as meaningful tokens. I also convert any smart quotes to plain ASCII quotes to keep the vocabulary stable.

Chunk for model limits

MeetMind uses a language model with a 4 k token context window. If the cleaned text exceeds that, I split it into overlapping chunks of 3 000 tokens with a 500‑token overlap. Overlap helps the model see continuity across boundaries, reducing the chance that a decision made at the end of one chunk is lost in the next.

2. Model choice and safety grounding

Why a specific LLM?

I selected a fine‑tuned version of an open‑source instruction model that has been trained on meeting summarization data. The fine‑tuning focuses on extracting action items, decisions, and owners rather than creative writing. This keeps output predictable and reduces hallucination.

Applying OWASP LLM Top 10

Before deployment I ran the model through the checklist from the OWASP LLM Top 10. I checked for prompt injection risks, data leakage, and insufficient output validation. For each item I added a mitigation: I sanitize user input, I restrict the model to a predefined set of output tags, and I run a secondary classifier to detect any disallowed content.

Aligning with NIST AI RMF

I also mapped our process to the NIST AI Risk Management Framework. The framework’s four functions—Govern, Map, Measure, Manage—guide our documentation, testing, monitoring, and update cycles. For example, we log every prompt and response for audit (Govern), we map potential harms like mis‑attributed actions (Map), we measure hallucination rate on a held‑out set (Measure), and we manage updates via a staged rollout (Manage).

3. Prompt engineering for minute extraction

Base prompt structure

The core prompt asks the model to return a JSON object with four keys: summary, decisions, action_items, and open_questions. I give the model a short example of the expected JSON shape so it learns the format without needing extra fine‑tuning. The prompt is:

Extract meeting minutes from the following transcript.
Return valid JSON with:
{
  "summary": "...",
  "decisions": ["..."],
  "action_items": [{"owner": "...", "task": "...", "due": "..."}],
  "open_questions": ["..."]
}
Transcript:
{{TEXT}}

Few‑shot examples

I prepend two short meeting examples that show the desired style. One example shows a clear decision with an owner and due date; the other shows a meeting with no decisions, only open questions. These examples help the model generalize to varied meeting lengths and tones.

Temperature and token limits

I set temperature to 0.2 to keep the output deterministic while allowing slight phrasing variation. I limit the maximum output tokens to 1 000, which is enough for a detailed minute set but prevents runaway generation. If the model hits the limit, I truncate the JSON and flag the output for manual review.

4. Post‑processing: turning JSON into usable minutes

Parsing and validation

After the model returns text, I run a JSON parser. If parsing fails, I attempt to extract the JSON substring between the first '{' and the last '}'. If that still fails, I return a fallback message asking the user to re‑paste the transcript with clearer speaker labels.

Normalizing owners and due dates

Owners are extracted as raw strings; I then apply a simple lookup against the workspace’s member list to suggest the correct display name. Due dates are parsed with a flexible date parser that understands “next Friday”, “EOD”, or “2026‑09‑30”. If no date is found, I leave the field blank and highlight it in the editor.

Building the final view

The validated JSON is rendered into three sections: a short paragraph summary, a bulleted list of decisions, and a table of action items. The table includes columns for Owner, Task, and Due Date, and allows inline editing. Open questions appear as a separate collapsible section for teams that want to track follow‑ups.

5. Editing workflow in the main workspace

Opening the draft

When you click “Generate minutes”, MeetMind opens the draft in the main workspace. The view shows the summary at the top, decisions as a list, and the action‑item table below. You can click any cell to edit text, change an owner via a dropdown, or pick a date from a calendar widget.

Version control

Every edit creates a new version stored in the browser’s IndexedDB. You can undo to any previous version using the clock icon. This lets you experiment with rephrasing a decision or reassigning an action without losing the original AI draft.

Export and share

When satisfied, you can export the minutes as Markdown, HTML, or plain text. The export includes the raw JSON for teams that want to import the data into other tools. A shareable link generates a read‑only view that updates if you later edit the workspace version.

6. What this is NOT

No guarantee of perfect capture

I do not promise that every spoken word will be turned into a correct action item. The model can miss nuances, especially when speakers talk over each other or use heavy jargon. You should always review the draft before treating it as the official record.

Not a 100 % accurate transcription service

MeetMind does not replace a dedicated transcription engine. If you need verbatim text with timestamps, you must use a separate tool and paste the output here. The system works best with already‑cleaned transcripts or concise topic notes.

No claim of never missing a deadline

The due‑date parser works with common expressions but cannot interpret every possible phrasing. Ambiguous references like “soon” or “asap” will be left blank. It is your responsibility to fill in any missing dates after review.

Operator checklist for How does MeetMind write minutes?

I keep a written checklist next to every release that touches this topic. The list is boring on purpose: name the owner, name the evidence artifact, and name the rollback. If a step cannot produce a file, a ticket, or a log line, it is not a step — it is a wish.

Before you change production

While you run the check

After you finish

SignalWhat to recordStop-ship?
Unexpected write or sendTool name, args, identityYes until gated
Missing confirmation on destructive actionCall path and bypassYes
Untrusted text treated as instructionSource surface and resulting actionYes for agent reach
Scanner clean, judgment openDeferred items + ownerOnly if core path safe

meeting-mind-mvp helps with the measurable first pass. Architecture choices, legal sign-off, and customer-facing claims still need a human owner. Treat every checklist row as decision support, not a certificate.

How I explain limits to buyers

When a prospect asks whether the product "covers everything," I answer with the boundary: automated checks catch known patterns; novel chains and policy judgment still need review. That honesty keeps support load down and keeps the blog aligned with what the product actually does.

If you need a second opinion, pair this write-up with the references below and with your own staging reproduction. Do not skip the reproduction step just because a model wrote a confident summary.

References

Frequently asked questions

What is How does MeetMind write minutes??

Turn any meeting into clear, actionable notes

References

Try MeetMind