Meeting Notes to Action Items — AI Skill (2026) | Skills and Servers
Personal Productivity

Meeting Notes to Action Items

Turn raw meeting notes or transcripts into structured action items — each with owner, deadline, and priority. Detects unspoken commitments hidden in casual meeting language ("yeah, I can probably look at that"), separates ambiguous items from clear ones, and never invents owners or dates that weren't in the source. Works standalone or connected to Linear/Jira/Asana via MCP for automatic ticket creation.

✓ Anthropic Claude✓ OpenAI✓ Google Gemini✓ Mistral⚠ Meta Llama
Tested 2026-08-20

1Quick Overview

TL;DR — Paste meeting notes or a transcript, get back structured action items with owner, due date, and priority per item. Ambiguous items surface separately so you can decide. Pairs with Linear/Jira/Asana MCPs to create tickets automatically. Best on speaker-labeled transcripts (~90% accuracy) but works on plain notes too (~75-80%).
text
You: [pastes 20-minute Q4 planning meeting transcript, 4 attendees]

Skill returns:

ACTION ITEMS (7 clear, high confidence):
  1. Alex — draft Q4 roadmap deck — due Fri Oct 4 — HIGH
     Source: "I'll have a draft by end of week"
  2. Priya — get eng estimates for feature X — due Wed Oct 2 — HIGH
     Source: "Priya, can you get me those estimates by Wednesday"
  3. Alex — schedule follow-up with sales — due Mon Oct 7 — MEDIUM
     Source: "Let's regroup with sales next week"
  ...

AMBIGUOUS ITEMS (2, need review):
  A. "We should probably think about the pricing changes"
     Suggested clarification: Who owns the pricing review? By when?
  B. "It might be worth talking to legal at some point"
     Suggested clarification: Is this a real action or an idea to park?

UNASSIGNED (1):
  U1. Update the customer-facing changelog
     No owner mentioned. Attendees present: Alex, Priya, Sam, Jordan.

2What This Skill Does

This Skill parses meeting notes or transcripts and produces a structured list of action items. For each item, it extracts four fields: owner (who's doing it), due date (when it's due), priority (high/medium/low based on urgency signals), and the source quote from the meeting (so anyone reviewing can trace the item back to what was actually said).

The behavior most teams find valuable: it separates ambiguous items from clear ones. When someone says "we should probably think about the pricing changes at some point," that's not really an action item — it's a maybe. The Skill puts it in a separate ambiguous_items bucket with a suggested clarification question, rather than force-fitting it into the action list where it would either get ignored or create a fake commitment. The reviewer decides whether to promote each ambiguous item to a real action.

Two hard rules baked into SKILL.md: never invent an owner and never invent a due date. When those signals aren't clear, the item ships with owner: null or due_date: null and gets flagged for manual assignment. Better a small unassigned pile than false attributions people have to correct.

3When You Should Use This Skill

  • You just came out of a meeting and need to turn 20 minutes of scattered notes into a clean action-items list before you forget what was actually decided.
  • You're the designated note-taker for a recurring team meeting and want a consistent format so weeks compare cleanly against each other.
  • You use Otter, Fireflies, Zoom's native transcription, or similar — and want a better output than the tools' built-in summaries (which tend to be surface-level and miss subtle commitments).
  • You're a manager whose team meets in your absence and sends you notes — you want structured action items to review rather than paragraphs of prose.
  • You want action items pushed directly into your task tracker (Linear, Jira, Asana) with owners and due dates preserved.

4The Skill Definition (SKILL.md)

The complete SKILL.md file that ships with the download. This is what the model reads when your prompt matches this Skill's trigger conditions.

markdown
---
name: meeting-notes-to-action-items
description: Turn raw meeting notes or transcripts into structured action items with owner, deadline, and priority. Detects unspoken commitments and flags ambiguous ones. Never invents owners or dates. Works with any note format; best on speaker-labeled transcripts.
version: 1.4.0
tags: [meetings, action-items, personal-productivity, notes, workflow]
inputs:
  - name: notes
    type: string
    required: true
    description: Raw meeting notes, transcript, or bullet-point summary
  - name: attendees
    type: list
    required: false
    description: List of meeting attendees (used for owner attribution)
  - name: meeting_date
    type: string
    required: false
    description: ISO date of meeting (defaults to today) — used to resolve relative dates like "next Friday"
  - name: default_owner
    type: string
    required: false
    description: Fallback owner when the note-taker themselves is the natural default (e.g. their own notes)
outputs:
  - name: action_items
    type: list
    description: Clear items with owner, due_date, priority, source_quote, confidence
  - name: ambiguous_items
    type: list
    description: Items that need clarification before becoming actions
  - name: unassigned_items
    type: list
    description: Clear actions with no identifiable owner
---

## Behavior

Given meeting notes or a transcript:

1. Identify commitments — both explicit ("I'll do X by Friday") and implicit ("yeah, I can probably look at that").
2. For each commitment, extract:
   - Owner: from direct assignment, self-commitment, we-statements + attendees, or role context.
   - Due date: parse absolute dates and relative expressions ("next Friday", "end of month") using meeting_date as reference.
   - Priority: infer from urgency signals ("urgent", "blocker", "whenever you get a chance").
   - Source quote: preserve exact phrase for audit trail.
   - Confidence: 0.0-1.0 based on how directly the commitment was stated.
3. Route each item to one of three lists:
   - action_items: confidence >= 0.75 AND owner known AND due_date known.
   - unassigned_items: confidence >= 0.75 AND (owner unknown OR due_date unknown).
   - ambiguous_items: confidence < 0.75. Include a suggested clarification question.

## Rules

- NEVER invent an owner. If the source doesn't identify one, use null.
- NEVER invent a due date. Same rule.
- NEVER combine two separate commitments into one item.
- ALWAYS include the source quote so reviewers can audit.
- When commitments conflict (someone says two contradictory things), emit both and flag the conflict.
- Preserve the meeting's original terminology — if they call something "the launch," call it "the launch," not "the release."

## Output format

Each item in action_items follows:
```json
{
  "text": "draft Q4 roadmap deck",
  "owner": "Alex",
  "due_date": "2026-10-04",
  "priority": "high",
  "source_quote": "I'll have a draft by end of week",
  "confidence": 0.92
}
```

5How to Install

Three steps, ~2 minutes total.

  1. Download the Skill folder using the sidebar button. You'll get a ZIP with SKILL.md plus example inputs.
  2. Extract to your Skills directory. Claude Desktop: ~/skills/meeting-notes-to-action-items/. OpenAI custom GPTs: upload SKILL.md as a knowledge file. Gemini Gems: paste the SKILL.md contents into instructions.
  3. Verify installation by asking: "Extract action items from these notes: [paste any sample]." If loaded correctly, response uses the three-bucket structure (action_items / ambiguous_items / unassigned_items).

To push items into Linear, Jira, or Asana, install the matching MCP server alongside — the Skill's JSON output feeds those tools directly.

6How to Use — Real Examples

Three realistic examples showing different input shapes.

Example 1 — Speaker-labeled transcript

Input: Zoom transcript with speaker labels from a 30-minute product planning meeting.

text
Attendees: Alex (PM), Priya (Eng Lead), Sam (Design), Jordan (Marketing)
Meeting date: 2026-08-20

Transcript excerpt:
Alex: So for Q4, we need to lock the roadmap by mid-October.
       I'll get you a draft deck by Friday.
Priya: Sounds good. I'll pull together eng estimates for the top
       three features — can have those by Wednesday.
Sam:   Do we want me to mock up the new dashboard concept?
Alex:  Yeah, whenever you have bandwidth, no rush.
Jordan: I'll wait to see the roadmap before I start on messaging.

Output (action_items):
1. owner: Alex · task: draft Q4 roadmap deck · due: 2026-08-22 (Fri)
   priority: HIGH · confidence: 0.95
2. owner: Priya · task: pull eng estimates for top 3 features
   due: 2026-08-26 (Wed) · priority: HIGH · confidence: 0.94
3. owner: Sam · task: mock up new dashboard concept
   due: null · priority: LOW · confidence: 0.78
   note: "whenever you have bandwidth" = no fixed date

Output (ambiguous_items): (none this meeting)

Output (unassigned_items): (none this meeting)

Example 2 — Plain bullet-point notes (no speaker labels)

Input: Handwritten-style notes from a status meeting, pasted as text.

text
Notes from Ops standup, Aug 20:
- Vendor XYZ contract still not signed — legal review pending
- Need to follow up on invoice from ABC Corp (30 days late)
- Q3 budget review call scheduled for next Tuesday
- Someone should probably audit the AWS costs, they've been creeping up

Attendees: Priya, Sam, Jordan

Output (action_items):
1. owner: null (unassigned) · task: follow up on ABC Corp invoice
   due: null · priority: MEDIUM · confidence: 0.82
   note: No owner identified. Attendees: Priya, Sam, Jordan.

Output (ambiguous_items):
A. text: "someone should probably audit the AWS costs"
   clarification: Who owns AWS cost review? Is this urgent (creeping up)
   or exploratory (probably)?

Output (unassigned_items):
U1. task: follow up on ABC Corp invoice (see action item 1)

Notice how the plain-notes case produces less confident attribution than the speaker-labeled example — without "Priya said," the Skill correctly refuses to invent one.

Example 3 — Pipe into Linear MCP for automatic ticket creation

Input: Same speaker-labeled transcript from Example 1. AI client has both this Skill and the Linear MCP installed.

text
You: "Extract action items from this transcript and create Linear
     tickets for anything with confidence >= 0.9."

AI response:
1. Ran Meeting Notes to Action Items Skill → 3 action items extracted
2. Filtered to confidence >= 0.9 → 2 items qualify
3. Created Linear tickets:
   ✓ ENG-1247: "Pull eng estimates for top 3 features" (Priya, due Wed)
   ✓ PROD-892: "Draft Q4 roadmap deck" (Alex, due Fri)
4. Sam's dashboard task (confidence 0.78) sent to review queue.

7Real-World Use Cases

Weekly team standups

Note-taker pastes standup notes into the Skill after each meeting; consistent output format makes week-over-week comparison easy. Missing items from previous weeks are easy to spot.

Cross-functional planning meetings

Meetings with product, eng, and marketing all committing to interlocking work benefit most from clear owner attribution. The Skill's refusal to invent owners prevents attributions the wrong team gets stuck with.

Manager 1:1 follow-ups

1:1 notes tend to have mixed items — some concrete tasks, some "let's think about this," some pure discussion. The ambiguous-items bucket helps managers avoid turning career conversations into task lists.

Client meetings

Client-facing action items need audit trails. Source-quote preservation means when a client asks "what did we commit to on that call," you can answer with the exact phrasing they used, not your reconstruction.

Board and investor updates

Board meetings often mix decisions with discussion. Feed the transcript in, get a clean decision + action list to circulate as follow-up, with source quotes for anyone who wants to verify.

8Common Variations (Fork Ideas)

Three variations teams have shipped by editing the Skill's SKILL.md:

  1. Decision log variant: Rewrite the behavior section to extract decisions instead of actions — useful for retrospectives, RFC review meetings, or steering committee meetings where the important output is what was decided, not what got assigned.
  2. Blocker-first variant: Prioritize by blocker impact rather than urgency signals. Adds a blocks field per item so downstream Linear/Jira ticket creation can auto-link dependencies.
  3. Multilingual variant: Some teams meet in one language and track in another (very common in EU teams). Add a target_language input; the Skill translates action-item text to that language while preserving source-quote in the original.

9Compatible Providers

Tested Aug 20, 2026 on our standard 30-transcript benchmark set.

ProviderResultNotes
Anthropic Claude Opus 4.7PassBest overall — strongest on ambiguous-item detection and source-quote accuracy.
OpenAI GPT-5PassCompetitive across the board. Slightly more aggressive about promoting ambiguous items to actions than desired.
Google Gemini 2.5 ProPassExcellent on relative-date parsing ("next Friday", "end of month"). Occasionally over-attributes to first-named attendee.
Mistral LargePassStrong on English transcripts. Multilingual transcripts benefit from Mistral's multilingual training.
Meta Llama 3.3 70BBetaPasses basic cases; struggles with implicit commitments ("yeah, I can probably"). Fine for explicit-only workflows.

10Testing & Benchmarks

Benchmarked against 30 real meeting transcripts — 18 speaker-labeled, 12 plain notes — across product planning, engineering standups, client calls, and cross-functional syncs. Each transcript had a hand-graded ground-truth action-items list agreed on by two reviewers.

Scored on three metrics:

  • Recall: percentage of true action items extracted. Averaged 91% on speaker-labeled, 78% on plain notes.
  • Precision: percentage of extracted items that were true actions (not hallucinated). Averaged 96% overall — the ambiguous-items bucket keeps precision high by routing borderline items away from the action list.
  • Attribution accuracy: percentage of items whose extracted owner matches ground truth. 90% on speaker-labeled, 74% on plain notes. Never invented an owner (as designed).

Where the Skill still misses: multi-owner items ("Alex and Priya will figure this out together") get attributed to one person about 30% of the time; joint ownership is on the fix list for v1.5.

11Troubleshooting

  • Too many items in ambiguous_items. Usually a transcript-quality problem — the meeting had a lot of tentative language. Try passing strictness: relaxed as an optional input to lower the confidence threshold from 0.75 to 0.60; this promotes more items to the action list at the cost of some false positives.
  • Owner attribution is wrong. The most common cause is missing or incomplete attendees input — supply the full attendee list so the Skill can distinguish "we" commitments. If speakers aren't labeled and there are more than 4 attendees, attribution accuracy drops materially; consider labeling by hand for high-stakes meetings.
  • Dates coming out as null even when the meeting mentioned dates. Check that meeting_date input is set; relative dates like "next Friday" are unparseable without a reference date. If missing, the Skill defaults to today, which may misinterpret transcripts of older meetings.
  • Skill isn't triggering. Verify the SKILL.md file is in the right location for your provider (see step 5 install). Test with an explicit prompt: "Use the meeting-notes-to-action-items Skill on this text: ...".

Errors not covered here? Our sister site AI Error Hub catalogs Skill-specific error patterns with documented fixes.

14Frequently Asked Questions

Not in real time as an audio stream, but yes for transcripts fed to it after (or in near-real-time chunks). Pair it with a transcription tool like Otter, Fireflies, or your platform's native transcript feature, then feed the transcript into the Skill either at meeting end or in 5-minute chunks. For truly live use, most teams find post-meeting processing works well enough because they need a moment to review before publishing action items anyway.
Explicit rule in SKILL.md: never invent an owner. The Skill looks for four signals — direct assignment ("Alex, can you handle X"), self-commitment ("I'll take Y"), we-statements ("we need to Z") combined with attendee list, and implicit patterns from role context if attendees are named with roles. When none of those signals produce a confident answer, the item is emitted with owner: null and flagged as needing manual assignment. Better to have a small unassigned pile than false attributions people have to correct.
Both, but speaker-labeled transcripts give noticeably better owner attribution because the model can attribute commitments to specific people rather than inferring from context. If your transcription tool produces speaker labels, use them. If you're working from meeting notes written by a single note-taker, the Skill relies more on the attendees list and explicit assignments in the text. Accuracy is around 90% on speaker-labeled transcripts, closer to 75-80% on plain notes.
Ambiguous items land in a separate ambiguous_items output rather than being force-fit into the main action list. Each ambiguous item comes with the original phrase and a suggested clarification question. This matters because forcing a maybe-decision into a maybe-task creates fake commitments that people either resent or ignore. The reviewer decides whether to promote each ambiguous item into a real action, drop it, or ask the meeting participants for clarification.
Yes, via the corresponding MCP server. The Skill outputs structured JSON that MCP tools can consume directly. Typical flow: Skill extracts action items → your AI client picks up the JSON → Linear MCP / Jira MCP / Asana MCP creates the tickets with owner, due date, and priority preserved. Because the Skill produces confidence scores per item, you can route high-confidence items to auto-create and low-confidence ones to a review queue instead.