speaking
Speaking
Use this for Peter's speaking-opportunity workflow.
Sources
- Repo:
/Users/steipete/Projects/conferences - Sheet:
Peter Steinberger Inbounds - Sheet URL: https://docs.google.com/spreadsheets/d/1dNt5EjgfgvPoAx5fa-igk681gniCkzL-IZ2FmjFl8fs/edit?gid=0#gid=0
- Main tab:
Invitations - Main brief:
/Users/steipete/Projects/conferences/conference-opportunities.md - One note per opportunity:
/Users/steipete/Projects/conferences/opportunities/NNN-slug.md
Use gog first for Google data when available:
gog gmail search 'speaker OR keynote OR panel OR fireside OR conference OR summit after:2026-01-01' --json --no-input
gog gmail read <thread-or-message-id> --json --no-input
gog calendar events primary --time-min 2026-01-01T00:00:00Z --time-max 2026-12-31T23:59:59Z --json --no-input
gog sheets get 1dNt5EjgfgvPoAx5fa-igk681gniCkzL-IZ2FmjFl8fs 'Invitations!A1:Q110' --json --no-input
Scope
Track:
- conferences, summits, retreats, keynotes, panels, firesides, workshops, university talks, high-signal private rooms
- calendar holds that look like speaking commitments
- email invites where Peter expressed interest, declined, or needs to respond
Do not track in the conference list:
- podcasts
- press interviews
- generic networking dinners without a speaking/event ask
- vague intro calls with no event or audience
Talks and firesides are welcome. Do not delete them just because they are not classic conferences.
Evaluation
Score with these heuristics:
- Audience leverage: developers, founders, AI researchers, senior enterprise buyers/advisors, policy/media only if strategic.
- Role quality: keynote/main stage/fireside > panel > passive attendance.
- Proof: verified email thread, named organizer, calendar invite, public event page, agenda, attendee size.
- Fit: OpenClaw, agents, developer tools, AI-native software, open source, founder story, OpenAI-aligned narrative.
- Logistics: date conflicts, visa, travel, time zone, prep burden, travel/hospitality coverage.
- Risk: platform politics, employer comms approval, geopolitical/compliance concerns, weak organizer quality.
Priority language:
accept: committed or clearly worth doing.strong consider: high value but needs missing logistics/details.review: plausible, needs more info.pass: declined, stale, low leverage, bad fit, or user explicitly said no.
Verification
Before changing status:
- Search Gmail for the event name, organizer, contact email, and likely aliases.
- Read the full thread, not just snippets.
- Check Google Calendar for matching holds/invites.
- Treat calendar-only holds as unverified unless email supports them.
- Preserve Peter corrections: OMR/ORM is not a commitment; do not mark accepted unless Peter explicitly reverses that.
Useful status meanings:
CALENDARED: calendar plus email evidence, or accepted invite.INBOX: needs response or still open.INBOX / CALENDAR HOLD: calendar hold exists, but details still need confirmation.PASS: do not pursue.Done: declined, stale, or already passed.
Repo Notes
Per-opportunity files should stay short and structured:
# Event Name
- Number: N
- Index: [Conference Opportunities Brief](../conference-opportunities.md)
## Brief
- Date/location:
- Host/ask:
- Format:
- Audience/scale:
- Impact:
- Fit:
- Risks:
- Status:
- Recommendation:
- Sources:
When adding an opportunity:
- Pick next number from
opportunities/*.md. - Add
opportunities/NNN-slug.md. - Add the link to
conference-opportunities.md. - Update the shortlist only if it changes prioritization.
- Keep podcasts and press out.
Sheet Sync
Use the sheet headers from Invitations!A1:Q1:
Invitation Name, Primary Category, Recommendation, Date, Location, Subcategory, Geography, Recommended Rep, Response Status, Status, Outlet / Event, Contact Name, Contact Email, Topic / Subject, Notes, Source File, From Raw
Sync rules:
- Main tab should contain conference/speaking opportunities only.
Primary Categorycan remainConferenceas the broad bucket, whileSubcategoryexplains keynote/panel/fireside/talk/retreat.- Preserve contact names/emails from existing rows when possible.
- Overwrite stale podcast/press rows if they are present in
Invitations. - After writing, re-read the range and verify row count plus no podcast/press name hits.
Use gog sheets update ... --values-json for bulk updates. Avoid one-cell micro-edits.