skills/composites/meeting-brief/SKILL.md
Daily meeting preparation system that checks your calendar each morning, deeply researches external attendees (LinkedIn, company info, GitHub, past notes), and sends you personalized briefs via email (1 per person). Use when you want automated preparation for upcoming meetings with context about each person you're meeting.
npx skillsauth add gooseworks-ai/goose-skills meeting-briefInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automated daily meeting preparation system that researches meeting attendees and sends you personalized briefs.
Every morning (configurable time):
Edit config.json to list your team members (these will be skipped):
{
"team_members": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"team_domains": [
"@yourcompany.com"
],
"schedule": "0 7 * * *",
"timezone": "America/Los_Angeles",
"your_email": "[email protected]",
"brief_from": "Meeting Brief <[email protected]>",
"slack_webhook": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
"send_email": true,
"send_slack": true,
"include_calendar_details": true,
"research_depth": "standard"
}
Config options:
team_members: Emails to skip (exact match)team_domains: Domain patterns to skip (e.g., skip all @yourcompany.com)schedule: Cron expression for daily run (default: 7am)timezone: Timezone for scheduleyour_email: Where to send briefsbrief_from: From address for briefsslack_webhook: Slack incoming webhook URL (optional)send_email: Whether to send email briefs (default: true)send_slack: Whether to send Slack notifications (default: false)include_calendar_details: Include meeting time/location in briefresearch_depth: quick (web only), standard (web + GitHub), deep (web + GitHub + past notes)Run manually each morning:
cd skills/meeting-brief
./scripts/run_daily.sh
scripts/run_daily.sh)Fetch today's meetings (scripts/check_calendar.sh)
Filter external attendees (built into run_daily.sh)
Research each person (scripts/research_person.js)
Generate brief (scripts/generate_brief.js)
Send brief
send_email: true)send_slack: true, scripts/send_slack.sh)Save to personal CRM (supernotes/people/)
Track sent briefs (logs to data/sent/YYYY-MM-DD.json)
For each external attendee, the system researches:
research_depth is standard or deep)research_depth is deep)Research is structured as JSON:
{
"person": {
"name": "Jane Doe",
"email": "[email protected]",
"company": "Example Corp",
"title": "VP Engineering"
},
"linkedin": {
"url": "...",
"bio": "...",
"experience": [...]
},
"github": {
"username": "janedoe",
"profile_url": "...",
"recent_repos": [...]
},
"company": {
"name": "Example Corp",
"industry": "...",
"recent_news": [...]
},
"past_interactions": [
"Met at conference in 2024",
"Discussed partnership opportunity"
]
}
The AI-generated brief comes in two formats:
Quick Overview
Background
Conversation Starters
Action Items / Notes
Deeper, narrative-driven brief with:
Example Brief:
Subject: Meeting Brief: Jane Doe - Product Partnership Discussion
Hi,
You're meeting with Jane Doe today at 2pm.
## Quick Overview
Jane is VP of Engineering at Example Corp, a B2B SaaS company in the dev tools space. She's been there for 3 years and previously worked at GitHub and Microsoft.
## Background
- Strong background in developer tooling and infrastructure
- Recently led Example Corp's API platform overhaul (launched Q4 2025)
- Active on GitHub (janedoe) - maintains several open-source CLI tools
- Technical blog focuses on API design and developer experience
## Conversation Starters
- Their new API platform (just launched, getting good traction)
- Recent blog post on GraphQL vs REST (published last week)
- Shared interest in developer experience (noted in her LinkedIn)
## Notes
- You met briefly at DevTools Summit 2024
- She mentioned interest in partnering on integration opportunities
---
Meeting: Product Partnership Discussion
Time: Today at 2:00 PM
Location: Zoom (link in calendar)
Run for a specific person:
# Research a person
node scripts/research_person.js "Jane Doe" "[email protected]" "Example Corp"
# Generate brief
node scripts/generate_brief.js research_output.json meeting_context.json
# Send brief
./scripts/send_brief.sh brief.html "Jane Doe"
Run for today's meetings:
./scripts/run_daily.sh
meeting-brief/
├── data/
│ ├── sent/ # Sent brief logs (by date)
│ │ └── 2026-02-21.json
│ ├── research/ # Research cache (by person)
│ │ └── jane-doe.json
│ └── meetings/ # Meeting data (by date)
│ └── 2026-02-21.json
└── logs/
└── run.log # Execution logs
DRY_RUN=true in run_daily.sh to preview without sendingquick, upgrade to standard or deep as neededNo briefs sent:
gcalcli agenda today tomorrow)logs/run.logBriefs missing information:
research_depth in config.jsondata/research/Duplicate briefs:
data/sent/ for already-sent trackinggh): For GitHub profile lookup (optional)data/research/development
End-to-end skill that turns a single reference image into a fully-installed, example-rendered style preset for the goose-graphics composite. Analyzes the image, writes the slim style spec, registers it in styles/index.json, generates all 7 format examples using the standard brief, renders PNGs via Playwright, and updates examples/manifest.json. Invoke with /goose-graphics-create-style.
development
Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.
tools
Take screenshots of any website using Notte browser automation. Use when asked to screenshot, capture, or snap a webpage.
development
Search the web, platforms, and datasets. Use when asked to search, find, look up, research, or discover information from the web, YouTube, Amazon, eBay, news, academic sources, or any online platform.