Claude-skill-registry granola
Extract and analyze Granola meeting notes. USE WHEN user asks to "extract granola meetings", "analyze my meetings", or "what meetings did I have". OUTPUT structured markdown with people, companies, TODOs, and insights to ~/.granola-archivist/output/
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/granola" ~/.claude/skills/majiayu000-claude-skill-registry-granola-0bd317 && rm -rf "$T"
manifest:
skills/data/granola/SKILL.mdsource content
Granola Meeting Extraction
Extract and archive Granola meeting notes with optional AI intelligence.
When to Use
- User asks: "Extract my last 7 days of Granola meetings"
- User asks: "Analyze my meeting with [Person]"
- User asks: "What companies did I discuss this week?"
- User asks: "What TODOs came from my meetings?"
Requirements
- Granola installed on macOS with at least one recorded meeting
- OpenAI API key stored in
(optional, only for AI extraction)~/.granola-archivist/.env
Setup Instructions
First-Time Setup
Tell the user:
To enable AI extraction, you need to set up your OpenAI API key. Run these commands: mkdir -p ~/.granola-archivist echo "OPENAI_API_KEY=sk-your_key_here" > ~/.granola-archivist/.env Then try: "Extract my last 7 days of Granola meetings"
Checking Setup
Before running AI extraction, check if
.env exists:
- File exists at
→ proceed~/.granola-archivist/.env - File missing → show setup instructions above
Usage
Extract Recent Meetings
User: "Extract my last 5 Granola meetings"
You should:
- If AI is requested, check setup (
exists)~/.granola-archivist/.env - Run:
(addpython skills/granola/extract.py --days 7
if no AI)--no-intelligence - Show results: Meeting titles, attendees, where files were saved
Get Intelligence from Meetings
User: "What companies did I discuss this week?"
You should:
- Extract last 7 days of meetings
- Parse output files from
~/.granola-archivist/output/ - Summarize companies mentioned across all meetings
Extract TODOs
User: "What action items came from my meetings?"
You should:
- Extract recent meetings with intelligence (requires API key)
- Parse TODO sections from output files
- Present consolidated TODO list with owners and deadlines
Output Format
Files are saved to:
~/.granola-archivist/output/
Filename format:
YYYY-MM-DD-meeting-title-attendee-name.md
Each file contains:
- Meeting metadata (title, date, attendees, location)
- Your manual notes from Granola
- AI-generated summary from Granola
- Extracted intelligence:
- People (with roles, insights, network connections)
- Companies discussed (with stage, funding, context)
- Network connections (who knows who)
- TODOs (with owners, deadlines, context)
- Key insights (investment opportunities, market insights)
Examples
Example 1: Extract Recent Meetings
User: "Extract my last 3 Granola meetings" You: "I'll extract your last 3 Granola meetings. Let me check your setup first..." [Checks ~/.granola-archivist/.env exists] You: "Setup looks good. Extracting meetings..." [Runs: python skills/granola/extract.py --days 7 --limit 3] You: "✓ Extracted 3 meetings: - 2026-01-14: Fund Discussion with Srihita Vatsavaya - 2026-01-13: Rollout AI Sync with Camden Ko - 2026-01-12: Notion Strategy with Jade Doan Files saved to: ~/.granola-archivist/output/ Would you like me to: 1. Show summaries of all 3 meetings 2. Extract companies discussed 3. Pull out action items"
Example 2: Missing Setup
User: "Extract my Granola meetings" You: "If you'd like AI extraction, set up your OpenAI API key first. Please run: mkdir -p ~/.granola-archivist echo 'OPENAI_API_KEY=sk-your_key_here' > ~/.granola-archivist/.env Replace 'sk-your_key_here' with your actual OpenAI API key. If you prefer no AI, I can still export your meetings without a key."
Example 3: Extract Companies
User: "What companies did I discuss this week?" You: "Let me extract your meetings from the last 7 days and analyze them..." [Extracts meetings, parses output files] You: "Here are the companies discussed across 5 meetings this week: **Rollout AI** (mentioned 8 times) - Stage: Series A - Discussed in: Camden meeting, Investor call - Context: Potential investment target, strong growth **Notion** (mentioned 5 times) - Stage: Late-stage - Discussed in: Jade meeting - Context: Partnership opportunity **OpenAI** (mentioned 3 times) - Discussed in: Multiple meetings - Context: API integration plans Would you like more details on any of these?"
Cost Information
Using GPT-5-nano (cheapest model):
- Cost per meeting: ~$0.0009
- 30 meetings/month: ~$0.03
Troubleshooting
"Granola cache not found"
- Ensure Granola is installed
- Record at least one meeting
- Check:
exists~/Library/Application Support/Granola/cache-v3.json
"OpenAI API key not found"
- Setup .env file:
~/.granola-archivist/.env - Format:
OPENAI_API_KEY=sk-...
Legacy config
- If
exists, it will still be detected~/.granola-claude/
"No meetings found"
- Check date range (default: last 7 days)
- Ensure Granola has meetings in that period
Privacy
- No data collection or tracking
- Transcripts stay on your machine
- Only sent to your OpenAI account (you control your data)
- Your API key = you control your data