A Claude Code skill that turns any call transcript into a proposal, a client progress report, or a team action list. With Benza Maman.
Make a fresh one so you can find your files later: mkdir ~/meeting-agent && cd ~/meeting-agent then run claude. Do not skip this and run it wherever you happen to be, or your skill and your notes end up somewhere random. If you don't have Claude Code yet, install it from claude.com/claude-code.
Copy the block below and paste it into Claude Code as a single message. Claude writes the skill file for you. You are not creating files by hand.
Create a file at `.claude/skills/meeting-agent/SKILL.md`, relative to the folder I'm in right now, containing exactly the content inside the fence below. Include the `---` frontmatter block at the top, it is part of the file. Do not include the fence lines themselves.
Then confirm it saved whole: tell me the full path you wrote to, the first 3 lines of the file, and the last 2 lines. If the first line isn't `---` or the last line isn't the "Never send anything" bullet, something got truncated, say so.
````
---
name: meeting-agent
description: Turns call transcripts into finished work. Classifies a call as prospect / client / team, produces the right artifact (proposal draft, client profile + progress check, or owner-by-owner action list), saves it to disk, then routes my own action items onto my calendar and reminders after I approve the list. Takes a pasted transcript, a Fathom pull ("process my last call"), or a daily sweep ("process today's calls"). Use for "process this transcript", "turn this call into a proposal", "what were the action items from that meeting", "update Dana's profile from today's session". Never sends anything to another human.
---
# The Meeting Agent
One agent, three modes. It detects which. The point is that it produces an artifact, not a summary. I was on the call, I don't need to be told what happened.
```
transcript in -> classify -> produce the artifact -> save it -> route my actions -> one "so what" line
(paste / Fathom / sweep) (proposal / profile / actions) (auto) (calendar + reminders, on approval)
```
## About me (fill this in before the first run)
- **My name:**
- **My business:**
- **What I sell (offer + rough price):**
- **Who my clients are:**
- **My voice:** casual and direct / warm and encouraging / polished and professional (pick one or write your own)
## How transcripts arrive
1. **Pasted** - Fathom, Granola, Zoom, Otter, or raw notes. Work with whatever shape it's in.
2. **Pulled** - "process my last call" or "grab my call with Dana". If a meeting tool is connected (Fathom MCP: `search_meetings` or `list_meetings`, then `get_meeting_transcript`), find it and pull the transcript. Confirm which meeting you grabbed in ONE line (title, date, attendees) before the output, so a wrong grab gets caught immediately.
3. **Swept** - "process today's calls" or "this week's calls". Pull every meeting in that window, skip anything already saved in `meeting-agent/notes/`, and handle each one by the rules below.
- Lead with a 3-line digest: how many calls, what types, the single most important action across all of them
- Then one section per call
## Step 1: Classify
Every transcript is one of:
1. **PROSPECT CALL** - someone who might buy from me (discovery, sales, intro chat)
2. **CLIENT CALL** - an existing client or coaching session
3. **TEAM MEETING** - internal, my team or collaborators
State the type in one line at the top. If you genuinely can't tell, ask before doing anything else. Do not guess a type just to avoid asking.
## Step 2: Produce the artifact
### PROSPECT CALL -> proposal draft
- 2-3 sentence summary of their situation, using **their own words** for the biggest pain point
- What they want (their goal, their words)
- What I'd do for them: 3-5 concrete steps pulled from what was actually discussed
- Scope: what's included AND what is NOT included
- Investment: a number only if a price or budget was actually discussed. If a range or partial budget came up, quote it as stated and flag what's unresolved. If nothing came up, write `[PRICE]` and remind me to fill it in
- If we agreed on a specific starting scope during the call, the proposal respects that scope. Do not expand it to everything discussed
- Next step: one clear call to action
- Written in my voice, paste-ready for an email or a doc
**Auto-save** to `meeting-agent/proposals/{YYYY-MM-DD}-{prospect-slug}.md`. Don't ask. It's a reversible draft on my own machine.
### CLIENT CALL -> profile + progress check
Before writing, **read `meeting-agent/notes/` for prior notes on this person.** Their history is the memory.
- **Client profile**: name, what they're working on, stated goals, key context about their life or business
- **This call**: what we covered, wins since last time, struggles that came up
- **Progress check**: each commitment from last time marked kept / partial / missed. On track overall? What's drifting? Be honest, not just encouraging
- **Before next call**: what they committed to, plus 1-2 things I should raise next time
- Label the output with the client's name and the call date
- If there are no prior notes, say this is call 1 and start their profile
**Auto-save** to `meeting-agent/notes/{client-slug}-{YYYY-MM-DD}.md`. Don't ask. That saved note IS the memory for the next call, and a note that only exists in a chat window is not memory.
### TEAM MEETING -> action list
- **Decisions** section at the top, short
- Then one list per person, name as the header
- Each item: what, by when (if a deadline was said), and any dependencies
- Anything discussed with no owner gets flagged `UNASSIGNED - needs an owner`. A vague "I'll get to it" with no deadline still counts as unassigned
- Title it with the meeting name and date if you can tell
- Tight enough to paste straight into Slack or an email
**Auto-save** to `meeting-agent/notes/{meeting-slug}-{YYYY-MM-DD}.md`.
## Step 3: Route my own actions
Every mode ends here. Pull out **only the items I myself owe**. Not other people's tasks, not the UNASSIGNED pile. Then split them:
- **Calendar** - anything with a fixed time or a hard deadline. If a calendar MCP is connected, create the event there. Deadline-only items become a 30-minute working block on the due date, not an all-day event nobody sees
- **Reminders** - everything else I owe someone. On a Mac, create these in Apple Reminders via `osascript`. Otherwise write them to `meeting-agent/todo.md`. Include a due date only where one was actually stated
**Show me the full list first and wait for a yes.** These are writes to my real calendar and my real phone. Format the ask as:
```
About to create:
CALENDAR Thu Aug 14, 10:00am - Hartley renewal call
CALENDAR Fri Aug 29, 2:00pm - [block] Dana proposal out before September
REMINDER due Aug 13 - Send Jordan podcast cost estimates
REMINDER no due date - Replace Marcus on the website team page
Go?
```
Rules:
- Never send calendar invites to other people. Self-only events
- Never invent a deadline just to make something schedulable. No date stated means it lands in reminders undated
- If I don't owe anything, say so in one line and skip this step. Don't manufacture busywork
## Step 4: Close
End every output with one line: the single most valuable thing I should do with this call.
## Rules (always)
- Only use what is actually in the transcript. Never invent budgets, quotes, commitments, or deadlines
- When something matters (pain points, goals, promises), quote the person's exact words
- Clean formatting, paste-ready. No filler
- Messy or partial transcript: work with what's there and note what's missing
- No em dashes. Bullets over paragraphs
- **Never send anything.** If Slack or Gmail is connected, you may OFFER to post a team action list to a channel or draft a prospect follow-up email. Always show me first. Sending is my click, always
````
Exit and run claude again from the same folder so the new skill loads. Type / and you should see meeting-agent in the list. That is your proof it worked.
Not there? Nine times out of ten the file landed in a different folder, or the --- block at the top got cut off. Just ask Claude Code: "check that .claude/skills/meeting-agent/SKILL.md exists here and starts with the --- frontmatter".
Open .claude/skills/meeting-agent/SKILL.md and fill in your name, business, offer, clients, and voice. Or just tell Claude Code to do it: "fill in the About me block in my meeting-agent skill, here's my business..." This is what makes the agent yours. Two minutes, do not skip it.
Paste a transcript and say "process this call". Use your own (Fathom, Granola, Zoom, and Otter all export transcripts) or grab a sample below. It writes the finished artifact to meeting-agent/ in your folder.
No transcript of your own handy? Use these. Each one triggers a different mode of the agent.
# Sample Transcript: Prospect Call Discovery call between Sam (service provider) and Dana Reyes (owner, Reyes Wellness Studio) --- **Sam:** Hey Dana, thanks for hopping on. I know you found me through the podcast episode, so tell me a little about what's going on at the studio. **Dana:** Yeah, so we're a boutique wellness studio here in Scottsdale. Yoga, breathwork, some sound healing. Business is honestly good, classes are mostly full. The problem is everything behind the scenes is me. Like, everything. **Sam:** When you say everything, what does a normal week look like? **Dana:** So Monday I'm answering like forty DMs from people asking about class packs. Tuesday I'm chasing down people whose memberships failed to renew. I write the newsletter myself, usually at 11 PM on Wednesday. And then follow-up, that's the one that kills me. Someone comes to a first class, loves it, and then... nothing. We have no system. I just hope they come back. **Sam:** How many first-timers do you get a month, roughly? **Dana:** Maybe eighty? Ninety? We run a $29 intro offer so we get a lot of trials. **Sam:** And how many of those convert to a membership? **Dana:** Honestly maybe fifteen. It's embarrassing because I know they liked the class. They tell us on the way out. We just never talk to them again unless they reach out. **Sam:** So if I'm hearing you right, the biggest leak is trial-to-member follow-up, and the biggest time drain is you personally answering repetitive DMs and doing manual admin. **Dana:** That's exactly it. I got into this to teach and hold space, and I'm a receptionist with a laptop. **Sam:** What have you tried so far? **Dana:** I hired a VA last year for ten hours a week. Lovely person, but I spent more time explaining things than it saved me. She moved on after three months and I never replaced her. **Sam:** Okay. And if the follow-up problem was solved, like if trial members got a real nurture sequence and you converted say thirty a month instead of fifteen, what does that mean for you? **Dana:** A membership is $159 a month, so fifteen more members is like twenty-four hundred a month. But honestly the bigger thing is my Sundays back. I do all the admin catch-up on Sundays and my partner is over it. **Sam:** Fair. So what I do is build automated systems for exactly this. DM handling, trial follow-up sequences, membership renewal recovery, the newsletter workflow. The stuff you're doing manually at 11 PM. **Dana:** That sounds amazing and also I've been burned by tech promises before. The studio software we use claimed it did all this and it does maybe ten percent of it. **Sam:** Totally fair. That's why I build on top of what you already have rather than replacing it. What's your budget range for solving this, just so I scope this right? **Dana:** I mean, if it actually works? I was mentally prepared for somewhere in the three to five thousand range to set something up, and then something monthly if there's upkeep. But it has to actually work. **Sam:** That's workable. Here's what I'd suggest as a next step. I'll write up a proposal covering the trial follow-up system first, since that's the biggest leak, plus the DM handling. You review it, and if it feels right we start with just that scope so you can see results before we go bigger. **Dana:** I like that. Start small, prove it. **Sam:** Exactly. I'll have that to you in a couple of days. Anything else you want me to know? **Dana:** Just that September is our busy season, so if we could have something running before then, that would be huge. **Sam:** Noted. Before September. Talk soon, Dana. **Dana:** Thanks, Sam.
# Sample Transcript: Coaching Call 1 (Maya, July 24) Coaching session between Coach and Maya Chen (online course creator) --- **Coach:** Maya! Good to see you. How are you coming into this call? **Maya:** Honestly, a little scattered. Good scattered, but scattered. **Coach:** Let's use that. Last time we talked about the course relaunch. Where are things? **Maya:** So the course is "Freelance to Founder," it's my program for freelancers who want to productize. I ran it live in the spring, twelve students, it went really well. Nine of them finished, three have already raised their rates. Now I want to relaunch it in October as a bigger cohort. **Coach:** What does bigger mean to you? **Maya:** I want thirty students at $800. That's twenty-four thousand, which would be my biggest launch by three times. **Coach:** Okay. What has to be true for thirty people to say yes in October? **Maya:** My email list has to grow. That's the thing. I have about two thousand subscribers and my spring launch converted at roughly one percent of the list. If that math holds, I need to be at five thousand subscribers by end of September. **Coach:** Two thousand to five thousand in about nine weeks. What's your plan for that? **Maya:** Two things. I want to do a lead magnet, like a pricing calculator for freelancers, because pricing is the number one question I get. And I want to pitch myself for podcasts, because my best subscribers historically came from the two podcast interviews I did last year. **Coach:** Good instincts. What's the honest obstacle? **Maya:** Consistency. I'll do two weeks of outreach and then a client project eats me and I disappear for a month. And I'm still doing about twenty hours a week of freelance work to pay the bills, which is the thing I'm supposedly teaching people to escape. The irony is not lost on me. **Coach:** How much of that twenty hours is work you actually want? **Maya:** Maybe half. There's one retainer client, a design agency, that pays well but they treat me like an employee. Every Slack message is urgent. That's the one draining me. **Coach:** Is dropping them on the table? **Maya:** After the October launch, yes. If the launch works, that income replaces them. I don't want to drop them before I know. **Coach:** Okay, that's a reasonable sequencing. So let's commit. Between now and our next call, what will you actually do? **Maya:** One, ship the pricing calculator lead magnet. Two, pitch ten podcasts. Three, I want to post on LinkedIn three times a week because that's where my people are. **Coach:** That's three commitments. Which one dies first when a client fire happens? **Maya:** LinkedIn, for sure. **Coach:** Then let's protect the other two. The lead magnet and ten pitches are the needle movers. LinkedIn is a bonus, not a commitment. Agreed? **Maya:** Agreed. That actually feels lighter. **Coach:** Last thing. What are you most afraid of with this launch? **Maya:** That I do all this, grow the list, and October comes and only eight people buy. That the spring cohort was a fluke because they all knew me. **Coach:** Write that down and keep it. We're going to check it against reality in October. Fluke is a story, and we'll get data instead. Great call, Maya. **Maya:** Thanks, Coach. Talk in two weeks.
# Sample Transcript: Coaching Call 2 (Maya, August 7) Coaching session between Coach and Maya Chen (online course creator), two weeks after Call 1 --- **Coach:** Maya, welcome back. Two weeks ago you made two protected commitments: ship the pricing calculator, pitch ten podcasts. How did it go? **Maya:** Mixed report card. The pricing calculator is done and live, and honestly it's working better than I expected. I put it out last Tuesday and it's already added about four hundred new subscribers. **Coach:** Four hundred in about a week? What's driving them to it? **Maya:** A LinkedIn post about it kind of popped off. Twelve hundred likes, which for me is huge. Funny thing is, LinkedIn was the commitment we deprioritized. **Coach:** The bonus behavior showed up because you took the pressure off it. Noted. So where's the list now? **Maya:** About twenty-four hundred, a little over. So progress, but I need five thousand by end of September and I'm nowhere near pace. **Coach:** Let's look at the math before you declare that. You added four hundred in one week off one asset. What happened with the podcasts? **Maya:** That's the confession. I pitched three, not ten. **Coach:** What happened? **Maya:** The agency retainer client. They had a rebrand sprint and pulled me into basically a full week of urgent work. It's the same pattern I told you about. When they say jump, I lose my week. **Coach:** Two weeks ago you said dropping them was on the table only after the launch. Do you still believe that? **Maya:** I've been going back and forth. Here's the new thing though. One of the three podcasts I pitched said yes, and it's a big one, "The Solo Studio." Forty thousand listeners, exactly my audience. It records next Thursday. **Coach:** That's a real win. Three pitches, one yes, and it's a top target. What would it take to get the other seven pitches out before that episode airs? **Maya:** Honestly? Two focused mornings. The pitches are basically templated now, I just personalize them. **Coach:** So the obstacle isn't time, it's that the agency owns your mornings. **Maya:** Yeah. And I ran the numbers like you asked me to at some point. The retainer is three thousand a month. If the launch hits even twenty students, that's sixteen thousand. The retainer is costing me the launch. **Coach:** Say that sentence back to yourself. **Maya:** The retainer is costing me the launch. Okay. I'm not dropping them today, but I'm going to set a boundary this week: no same-day turnarounds, and my mornings are blocked until 11. If they can't live with that, that's my answer. **Coach:** That's a real commitment. So for the next two weeks: seven pitches out, the boundary conversation with the agency, and prep for The Solo Studio recording. Anything else? **Maya:** I want to do a second lead magnet since the first one worked so well. **Coach:** No. One asset is compounding. Don't split your attention manufacturing a second one while podcasts are your proven channel. Revisit after the launch. **Maya:** Okay, fair. That's the scattered thing showing up again, isn't it? **Coach:** It is, and you caught it yourself this time. Last question. Two weeks ago your fear was that spring was a fluke. Any update on that story? **Maya:** Four hundred strangers signed up for my thing in a week. They don't know me. So... the story is getting quieter. **Coach:** Data beats stories. See you in two weeks, Maya.
# Sample Transcript: Team Meeting Weekly standup: Alex (founder), Jordan (marketing), Priya (operations) of a small creative agency --- **Alex:** Okay, quick standup, let's keep it to twenty minutes. Big rocks this week: the Hartley proposal, the September content calendar, and the invoicing mess. Jordan, start us off. **Jordan:** Content first. The September calendar is drafted for two of our three retainer clients. Bluepeak is done, Corner Market is done, but I'm blocked on Hartley because we don't know if they're renewing, and I don't want to build a calendar for a client that might churn. **Alex:** Fair. The renewal call with Hartley is Thursday. I'm running it. If they renew, they're also asking about adding a podcast, so the proposal needs a podcast production line item. Can you get me rough numbers on what podcast production would cost us to deliver? **Jordan:** Yeah, I can have cost estimates to you by Wednesday so you have them before the call. **Alex:** Perfect. Priya, where are we on invoicing? **Priya:** So the mess is real. We have eleven thousand dollars in unpaid invoices. Corner Market is forty days late on two invoices, that's sixty-five hundred. The rest is small stuff under a thousand each across three clients. **Alex:** Forty days? Have we chased them? **Priya:** One email two weeks ago, no response. I didn't want to push harder without checking with you since they're also a retainer client. **Alex:** Push harder. Call their office manager directly, today if you can. Friendly but firm, and if there's no payment date by Friday, I'll email their owner personally. **Priya:** Got it. Call today, escalate to you Friday if nothing. Also, our bookkeeper asked if we're switching to the new invoicing software this quarter or not. She needs a decision because she doesn't want to migrate mid-quarter. **Alex:** What's your take? **Priya:** Do it October 1st, clean quarter start. Migrating now while chasing unpaid invoices is asking for chaos. **Alex:** Agreed, October 1st, decision made. Tell her. Okay, my updates. The Hartley call is Thursday like I said. I also had a coffee with a potential new client, a boutique hotel group, they want a full brand refresh. Could be our biggest project this year. They asked for a capabilities deck by end of next week. **Jordan:** Do we have a current capabilities deck? The one I've seen still has the old logo on it. **Alex:** That's the problem, it's two years old. Jordan, can you own updating it? Pull the three best recent case studies. Bluepeak's rebrand should be the centerpiece. **Jordan:** I can, but not by Wednesday if I'm also doing podcast estimates. Which one matters more? **Alex:** Podcast estimates by Wednesday, they're small. Deck by next Friday. That works with their timeline. **Jordan:** Okay, both doable then. **Priya:** One more thing. We still haven't picked a date for the team offsite. It's been floating for a month. **Alex:** Someone just needs to pick. You pick, honestly. Any Friday in October, book the place you liked. **Priya:** Done, I'll book it this week. **Alex:** Oh, and someone should update the website's team page, we still have Marcus on there and he left in June. Not urgent, but it keeps coming up. **Jordan:** I keep meaning to do that. **Alex:** Okay, that's time. Good week, everyone. Thursday I'll drop the Hartley outcome in Slack.
This is the part we tore apart on stage. Every agent worth building has these seven pieces. Learn the pattern and you can build one for any repeating workflow you have.
meeting-agent/notes/, and the agent reads that folder before writing anything about that personAdd these as MCP connectors in Claude Code. Run /mcp to see what you have and add more.
Benza builds complete AI operating systems for businesses: content, sales, ops, client delivery, all running on agents like the one you just built.
Explore Agent OS