Prose answers make you the last step in your own process — you still have to read them and type the tasks somewhere. Ask for a structure and that step disappears. A table pastes into a spreadsheet; JSON pastes into almost anything. The model is good at this because extraction is finding, not inventing.
The extraction prompt, piece by piece
- 1
Say what to find
"Every action item" is clearer than "the important bits". Define it: a task someone agreed to do.
- 2
Say the fields
Owner, task, deadline. If a field is missing in the source, tell the model to write "not stated" rather than guess.
- 3
Say the format
A table with named columns, or JSON with named keys. Name them and the model will use them.
- 4
Forbid additions
"Use only what the notes say." Extraction goes wrong when the model completes a task that was left open.
Try it
Action items from meeting notes, as JSON
- Did it work? Valid JSON with four items. Now do the one-pass check: read the notes once, top to bottom, and tick each action as you meet it. Ben's quotes, Priya's email fix, Aisha's terms, Tom's letter. Four ticks, done.
- The trap: the weekday discount. It was *discussed* and *carried over* — nobody agreed to do anything. If it appears as an action item, the model turned a topic into a task. The instruction *"do not include decisions that were deferred"* is there to stop exactly that.
| Owner | Task | Deadline |
|---|---|---|
| Ben | Get two quotes for a replacement committee-room heater | Before the next meeting (14 October) |
| Priya | Speak to the web provider about confirmation emails going to spam | Friday 19 September |
| Aisha | Move the deposit to $250 in the terms document and circulate it | 16 September |
| Tom | Write to the three regular hirers about the rate change | Before 30 September |
Knowledge check
The extraction includes: {"owner": "Ben", "task": "Set up a weekday discount", "deadline": "not stated"}. What went wrong?