Meeting prep, capture and follow-up with Claude Code and Granola
Chris Blattman
Chris Blattman, a political economist at UChicago Harris, built a meeting workflow around custom Claude Code slash commands and the Granola recorder. One command writes a pre-meeting brief, Granola captures the call, and a second command turns the transcript into decisions, action items and a follow-up email draft. He reports saving roughly 20 minutes per meeting.

Story written by: the person who did it
The problem
Most of his meetings used to take longer to prepare for and follow up on than to run. A 45-minute call meant 15 minutes reviewing the email thread, 10 minutes taking notes during the call, 15 minutes writing a follow-up and 10 minutes filing everything. The actual conversation was the cheapest part.
How it was built
- 1Before the call: run /pre-meeting-briefClaude Code
- 2Optional: draft the pre-meeting emailClaude Code
- 3During the call: record, don't take notesGranola
- 4After the call: run /post-meetingClaude Code
- 5Review and send the email yourselfGmail
- 6Fridays: run /weekly-reviewClaude Code
- 7Know when not to use itPerson
Tool step Person step
1. Before the call: run /pre-meeting-brief
Fifteen to thirty minutes before a meeting, he runs the /pre-meeting-brief command in Claude Code from the project folder. It reads the next calendar event and attendees, recent Gmail threads, earlier Granola transcripts, the project's Google Docs dashboard, WhatsApp discussion and local notes, then writes a one-page brief listing decisions required, open loops and preparation needs.
ToolClaude Code
Check: He skims the brief for two minutes before walking in.
2. Optional: draft the pre-meeting email
Running /pre-meeting-brief email in Claude Code also drafts an email to the attendees with agenda items and prep asks. It stays as a Gmail draft; he reviews it and sends it himself.
ToolClaude Code
Check: He reads the Gmail draft and sends it manually.
3. During the call: record, don't take notes
Granola runs in the background on his Mac, captures audio from both sides of the call (Zoom, Meet or in person) and produces a transcript plus AI notes. He takes no notes at all, because the verbatim transcript is the evidence the next step relies on.
ToolGranola
Check: He gives the conversation his full attention instead of taking notes.
4. After the call: run /post-meeting
Within an hour, he runs /post-meeting in Claude Code from the same project folder. It finds the latest Granola transcript, stops if there is no real transcript, then pulls out decisions, action items with owners where stated, blockers and next steps, and drafts a follow-up email into Gmail.
ToolClaude Code
Check: The command has a hard stop when Granola captured only AI notes, so a hollow transcript cannot slip through.
5. Review and send the email yourself
Nothing sends automatically. He reads the Gmail draft against what he remembers, edits the wording and sends it himself, because a sent email cannot be undone and some phrasing is better coming from him.
ToolGmail
Check: He checks the draft against his own memory of the meeting and edits before sending.
6. Fridays: run /weekly-review
Every Friday, /weekly-review in Claude Code reads the week's saved transcripts plus email and WhatsApp, and updates the project's living dashboard in Google Docs with the decisions, action items and blockers that surfaced in meetings.
ToolClaude Code
7. Know when not to use it
He keeps Granola off and takes handwritten notes for sensitive meetings such as grievance or personnel talks, reads the full thread manually for a first meeting with a new funder, and hand-edits or relies on written notes for meetings of 10 or more people, where per-person action items parse poorly.
Check: He decides meeting by meeting; the workflow is a default, not a rule.
Before and after
Before
Scroll Gmail and Google Docs for 15 minutes before the meeting to remember where things left off. Split attention between the conversation and note-taking. Afterwards, draft a follow-up from memory, miss half the action items, and send it 36 hours late. Nothing written down project-wide.
After
Two minutes skimming the brief, then full attention in the call with no notes. Thirty seconds to run /post-meeting and two minutes to review the drafted email. A weekly review pulls everything into the project dashboard. Roughly 20 minutes saved per meeting; across 8 to 12 meetings a week, a reclaimed half-day (self-reported). source
What made it work
- A hard stop on hollow transcripts: if Granola captured only AI notes, /post-meeting stops instead of drafting from invented detail.
- No email ever sends automatically; every draft is reviewed in Gmail before it goes.
- Each command runs from the project folder, so it reads only that project's context, not months of unrelated history.
- The verbatim transcript, not the AI notes, is the evidence every summary is built on.
- Clear exclusions: sensitive meetings, first funder meetings and very large groups stay manual.
Follow along
Practice steps suggested by Ai Siftly, based on the account above. We have not run them ourselves.
Put the source material in order
You should get: Approved evidence pack.
Check: No sensitive HR or grievance material, and nothing without clear processing permission.
Prepare a brief
Example to copy: List decisions needed, open actions with explicitly stated owners, and questions to clarify. If a fact is missing, write 'not stated'. [approved material]
You should get: A short pre-meeting brief.
Check: Check each open action against its source.
Capture appropriately
You should get: Transcript or labelled human notes.
Check: The evidence is complete; an empty transcript plus generated notes is not enough.
Draft the follow-up
Example to copy: Use only this transcript. Table: action/decision | explicit owner | stated due date | passage. If a detail is not stated, write 'not stated'. Then draft an email for review. [transcript]
You should get: Evidence-linked table and draft.
Check: Check names and dates; ask for clarification rather than guessing an owner.
Check the draft and choose the recipients yourself
You should get: Reviewed follow-up and saved actions.
Check: No automatic sends; the recipient list and every commitment checked.
Review the week
Example to copy: List unresolved items and evidence for each status from these dated notes. [lists]
You should get: Reviewed weekly update.
Check: Spot-check every status change.
Advanced option: connected meeting automation
You should get: A permissions and dependency checklist, not an installed setup.
Check: Review the full mailbox permissions, least privilege, recipient defaults and current instructions before connecting any account.
Try it yourself
Find a matching workflow in the workflow finder. Search words: C l a u d e C o d e m e e t i n g f o l l o w - u p w o r k f l o w.
Sources and notes
- Meeting Workflow End to End (claudeblattman.com (Chris Blattman), )
- Claude Blattman homepage (claudeblattman.com (Chris Blattman), )
- Original post-meeting custom skill v1.7 (Chris Blattman on GitHub, )
- Skill reference and installation cautions (Chris Blattman, )
- All steps, figures and results come from Chris Blattman's own published account on claudeblattman.com.
- The saving of roughly 20 minutes per meeting is self-reported, with no measurement method given.
- His setup is Mac-specific and his custom skills date from March 2026, so current product behaviour may differ.
- Slash commands such as /post-meeting are his own saved instruction files, not built-in Claude Code features.
- The workflow page is undated; his homepage says he started building these workflows in January 2026.
Self-reported estimate Based on his public skill and setup pages. These pages do not show the current connector permissions or send controls, so check both before you rely on it. Requires technical setup. Date note: page undated; homepage says he started building these workflows in Jan 2026. Record dated 2026-10-27.