How this CEO Built a Grain Meeting Library with MCP
TL;DR
- Greg Bayer, CEO of Tailor (tailorhq.ai), uses Grain MCP to incrementally sync meetings to a local folder with an open-source Node script he built in January.
- With meetings on his machine, he asks Claude questions across 100+ calls: ICP patterns, LinkedIn post ideas, website use cases from customer conversations.
- Before MCP, he manually downloaded transcripts one at a time. Roughly an hour a week of work he'd skip for weeks, creating a month-long blind spot on call analysis.
Why most teams never analyze their calls consistently
Greg Bayer runs Tailor, an AI startup that personalizes websites to improve conversion rates. He's an engineer by background. He wears product, sales, and marketing hats. He records every call in Grain. The recording part works, but the analysis part didn't.
Before Grain MCP, Greg downloaded transcripts manually, one meeting at a time. With more calls every week, that stopped being practical. "I would just not do it for a month or two," he told us. "And then my impact would be very big on my business of having a blind spot on that call analysis for a month or two until I get around to it."
Greg found Grain at his previous startup where he was head of engineering. He kept using it at Tailor because it works well for recording. But the export step was causing friction, and that's what pushed him toward MCP.
Why this matters for operators building on AI
Greg is the kind of user who builds before he waits for product features. When exporting meetings felt painful, he wrote his own tool. When Grain's default summaries didn't match how he posts to Slack, he ran his own prompts on the raw transcript.
"I don't tend to use them as is," he said about Grain summaries. "I tend to copy out the transcript. And then use the latest GPT model or the latest Claude model to summarize for me the way I want. I want to see broken out the learnings and the action items. And I want it in this exact format, like I'm going to post it in Slack."
Greg treats GPT and Claude as interchangeable for this step, swapping in whichever model is sharpest that week. If you're deciding which one to lean on, Grain compared ChatGPT and Claude head-to-head across real work tasks.
Greg also raised something harder than export: context management across hundreds of hour-long meetings. When you ask "what am I learning about my ICP this quarter," the system needs to know whether to scan summaries or read full transcripts. He wants tuning controls for that depth. Having raw files locally lets him guide Claude per task.
Source transcript quality matters here too. Grain's latest release added voice signatures for more accurate speaker identification, which counts for more once you're feeding raw transcripts into a custom prompt instead of relying on the default summary.
Workflow 1: Greg's custom Slack summaries
What it is: Copy the Grain transcript into GPT or Claude with a fixed prompt that outputs learnings, action items, and Slack-ready formatting.
The prompt shape
Greg's prompt asks for:
- Learnings broken out separately from action items
- Output formatted for direct Slack posting
- No extra cleanup before sharing with his team
How it runs
After a call ends, Greg pulls the transcript (via MCP or his local library) and runs his prompt in the latest model. He iterates the prompt when the format drifts.
What it produces
A paste-ready Slack message his team will read. Greg is explicit about why this matters: "I don't want my team being exposed to noise. The reality is they won't eat it. They won't read it."
Prompt to set this up
Copy this into Claude after pulling a transcript:
Here is a raw transcript from a customer call. Summarize it for a Slack post, formatted exactly like this:
**Learnings**
- [key things we learned about the customer, market, or product, one per line]
**Action items**
- [who owns what, one per line]
Rules:
- No filler, no preamble, no "here's a summary" intro.
- Write it so I can paste it straight into Slack with no cleanup.
- If something in the call is ambiguous, note it briefly instead of guessing.
Transcript:
[paste transcript here]
Workflow 2: Greg's open-source local sync script
What it is: A Node.js script that uses Grain MCP to incrementally download new meetings to a local folder with summaries and full transcripts.
How it runs
Greg built this before Claude Code skills existed. He was on Cursor at the time. The script batches fetches to work around early MCP limits on how much data could be pulled at once. It can run for an hour if needed. It eventually gets everything.
"I just made it open," he said. "Basically, this just lets me run this one command anytime. And then it just remembers what it's already fetched and it only fetches the new stuff. And that way on my machine, I just continue to have a library of my meetings that's built up."
What it produces
A growing local directory with:
- Full transcripts per meeting
- Grain summaries alongside transcripts
- A corpus Claude Code can query in place
Don't want to maintain a script? Use a Claude Skill instead
Greg built his sync tool before Claude Code skills existed. If you're starting today, a Claude Skill can do the same incremental sync directly through the Grain MCP, with no separate codebase to maintain.
Copy this into Claude to have it build the skill for you:
Create a Claude Skill called "grain-local-sync" that keeps a local folder of my Grain meetings up to date.
When I run it:
1. Check a local folder (e.g. ~/grain-library) for the most recent meeting it already has synced.
2. Use the Grain MCP to fetch any meetings recorded since then.
3. Save each new meeting as a markdown file in that folder, named by date and meeting title, including the full transcript and Grain's generated summary.
4. Track what's already been fetched (e.g. in a small state file) so re-running this only pulls what's new.
5. Tell me how many new meetings were added and skip anything already saved.
Afterward, I want to be able to point Claude Code, or ask you directly, at this folder and ask questions across every meeting in it.
Workflow 3: Greg's cross-call analysis with Claude
What it is: Query hundreds of past Grain meetings from the local library to extract ICP patterns, content ideas, and website gaps.
Greg uses Claude Code in the same environment as his site repo. Claude reads customer calls and flags missing use cases on landing pages. "You're missing in this use case page, you haven't talked about this use case that you actually talked about with your customer."
How it runs
Meetings live on disk. Greg opens Claude Code in that folder or points Claude at the library path. He chooses whether Claude reads summaries or full transcripts depending on the task.
What it produces
- ICP insight memos without manually tagging calls
- LinkedIn draft angles grounded in real conversations
- Website copy updates tied to actual customer language
Prompt to set this up
Copy this into Claude once your meetings are accessible (local folder or directly via MCP):
Look across all my Grain meetings from the last [90 days / 30 calls / etc.] and answer this: [your question, e.g. "What objections keep coming up around pricing?" or "What use cases do customers mention that our website doesn't cover?"]
For each pattern you find:
- Cite which calls it came from (date and/or customer name).
- Pull a short supporting quote where possible.
- Tell me if it's a one-off mention or something that shows up repeatedly.
If you don't have enough calls loaded to answer confidently, tell me that instead of guessing.
Comparison: three ways Grain MCP shows up in practice
The pattern across all three
- Raw transcripts beat default summaries when you have a specific output format in mind.
- Local access changes what questions you ask. Once meetings live on your machine, cross-call analysis becomes normal instead of a quarterly project.
- The bottleneck moved from capture to routing. Recording is solved. Getting the right excerpt to the right channel in the right format is the work now.
What to try this week
- New to Grain MCP? Connect Claude to Grain MCP. Fetch one meeting transcript as markdown. Run your Slack summary prompt on it before changing anything else.
- Leader trying to kill the analysis blind spot? Schedule a weekly export (or run Greg's sync script once). Ask Claude one cross-call question: "What did customers say about [your top objection] in the last 30 calls?"
- Power user? Fork Greg's open-source fetch repo. Point Claude Code at the folder. Try the website gap analysis prompt on your marketing site repo.
- Not technical? Open Grain settings → Templates. Build one template with the sections your team actually reads.
- Want to see this pattern at another company? Canvas Medical's GTM team built daily executive readouts and sales-to-implementation handoffs the same way — Grain MCP connected to Claude, no engineering required.
Frequently asked questions
What is Grain MCP?
Grain MCP is a Model Context Protocol server that connects AI tools like Claude to your Grain account. It exposes recordings, transcripts, notes, and clips so an AI assistant can search, fetch, and analyze meetings without you copying data by hand.
How much time does Grain MCP save?
Greg estimated roughly an hour per week of manual download work, but said the bigger cost was skipping exports for weeks and losing visibility into call patterns for a month or more.
Can I ask Claude questions across all my Grain meetings?
Yes, if your meetings are accessible via MCP or synced locally. Greg queries 100+ calls for ICP insights and content ideas. Large libraries need context tuning: specify whether Claude should scan summaries or read full transcripts.
What are Grain summary templates?
Templates in Grain workspace settings let you define custom prompts and sections for meeting notes. They apply on top of the default summary. You can use different templates for internal vs. external meetings or switch per meeting.




