Querying Granola
Query the local Granola meeting cache. Requires Python 3.
Note: This reads from an unofficial local cache file, not a Granola API. The cache format could change with Granola updates.
Run this script to query meetings:
bash
python3 skills/querying-granola/scripts/granola.py <command> [args]
Do not read the script source; execute it with the commands below.
Primary Commands (search by title/notes/attendee names)
| Command | Purpose |
|---|
| Get meetings matching name in title, notes, or attendee names/emails |
| Search by keyword in title, notes, or attendees |
| Get full notes + transcript for a specific meeting |
Domain-Based Commands (require @domain.com in attendee list)
| Command | Purpose |
|---|
| Company/org profile with contacts and meeting history |
| Most active domains in last N days (default 30) |
| Domains with no meetings in N+ days (default 60) |
| Meeting counts by email domain |
Other Commands
| Command | Purpose |
|---|
| Meeting frequency over time (visual bar chart) |
| List N most recent meetings (default 20) |
| Meeting counts by person |
Workflows
Before a meeting
Progress:
- [ ] Run profile for company/person context
- [ ] Run search for recent meeting history
- [ ] Identify key topics and contacts
- [ ] Check for unresolved action items
- → contacts, meeting count, recent notes
- or → recent meeting notes
- Review for action items, open questions
Engagement tracking
Progress:
- [ ] Check active domains for recent engagement
- [ ] Check stale domains for follow-up opportunities
- [ ] Review timeline for engagement patterns
- → who you've been meeting with recently
- → contacts you haven't met with in a while
- → meeting frequency over time
Output Examples
profile returns: meeting count, date range, contacts with meeting counts, recent meeting previews.
timeline returns: monthly bar chart showing meeting frequency with sample titles.
active/stale returns: domain, meeting count, top contacts.
Data Sources
The script extracts from multiple cache sections:
| Source | Contains |
|---|
| Meeting title, date, user-typed notes, basic attendees |
| AI-generated summaries (comprehensive meeting notes) |
| Enriched attendee info with company names |
| Raw meeting transcripts (~8 recent meetings cached locally) |
Notes priority: AI summaries are preferred over user-typed notes when available (more comprehensive).
Company names: Displayed as
when enriched data exists.
Transcripts: Only available for recent meetings; displayed in
command when present.
Limitations
Domain-based commands (
,
,
) only work when attendee emails are captured in the meeting invite. If you join someone else's meeting link (their Zoom/Meet), their email may not be in your attendee list. Use
or
by name/title for these cases.
Transcripts are only cached locally for recent meetings (~8). Older meetings won't have transcript data available.