Speaking
Use this for Peter's speaking-opportunity workflow.
Sources
- Strategy (read first, always):
/Users/steipete/Projects/manager/CONFERENCES.md — standing decisions (e.g. no TED, no paid talks), 2027 budget, anchor plan, triage tiers.
- 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 Category can remain Conference as the broad bucket, while Subcategory explains 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.
1---2name: speaking3description: Speaking ops: invites, keynotes, panels, Gmail/calendar, conferences.4---5
6# Speaking
7
8Use this for Peter's speaking-opportunity workflow.
9
10## Sources
11
12- **Strategy (read first, always): `/Users/steipete/Projects/manager/CONFERENCES.md`** — standing decisions (e.g. no TED, no paid talks), 2027 budget, anchor plan, triage tiers.
13- Repo: `/Users/steipete/Projects/conferences`
14- Sheet: `Peter Steinberger Inbounds`
15- Sheet URL: https://docs.google.com/spreadsheets/d/1dNt5EjgfgvPoAx5fa-igk681gniCkzL-IZ2FmjFl8fs/edit?gid=0#gid=0
16- Main tab: `Invitations`
17- Main brief: `/Users/steipete/Projects/conferences/conference-opportunities.md`
18- One note per opportunity: `/Users/steipete/Projects/conferences/opportunities/NNN-slug.md`
19
20Use `gog` first for Google data when available:
21
22```bash
23gog gmail search 'speaker OR keynote OR panel OR fireside OR conference OR summit after:2026-01-01' --json --no-input
24gog gmail read <thread-or-message-id> --json --no-input
25gog calendar events primary --time-min 2026-01-01T00:00:00Z --time-max 2026-12-31T23:59:59Z --json --no-input
26gog sheets get 1dNt5EjgfgvPoAx5fa-igk681gniCkzL-IZ2FmjFl8fs 'Invitations!A1:Q110' --json --no-input
27```
28
29## Scope
30
31Track:
32
33- conferences, summits, retreats, keynotes, panels, firesides, workshops, university talks, high-signal private rooms
34- calendar holds that look like speaking commitments
35- email invites where Peter expressed interest, declined, or needs to respond
36
37Do not track in the conference list:
38
39- podcasts
40- press interviews
41- generic networking dinners without a speaking/event ask
42- vague intro calls with no event or audience
43
44Talks and firesides are welcome. Do not delete them just because they are not classic conferences.
45
46## Evaluation
47
48Score with these heuristics:
49
50- Audience leverage: developers, founders, AI researchers, senior enterprise buyers/advisors, policy/media only if strategic.
51- Role quality: keynote/main stage/fireside > panel > passive attendance.
52- Proof: verified email thread, named organizer, calendar invite, public event page, agenda, attendee size.
53- Fit: OpenClaw, agents, developer tools, AI-native software, open source, founder story, OpenAI-aligned narrative.
54- Logistics: date conflicts, visa, travel, time zone, prep burden, travel/hospitality coverage.
55- Risk: platform politics, employer comms approval, geopolitical/compliance concerns, weak organizer quality.
56
57Priority language:
58
59- `accept`: committed or clearly worth doing.
60- `strong consider`: high value but needs missing logistics/details.
61- `review`: plausible, needs more info.
62- `pass`: declined, stale, low leverage, bad fit, or user explicitly said no.
63
64## Verification
65
66Before changing status:
67
681. Search Gmail for the event name, organizer, contact email, and likely aliases.
692. Read the full thread, not just snippets.
703. Check Google Calendar for matching holds/invites.
714. Treat calendar-only holds as unverified unless email supports them.
725. Preserve Peter corrections: OMR/ORM is not a commitment; do not mark accepted unless Peter explicitly reverses that.
73
74Useful status meanings:
75
76- `CALENDARED`: calendar plus email evidence, or accepted invite.
77- `INBOX`: needs response or still open.
78- `INBOX / CALENDAR HOLD`: calendar hold exists, but details still need confirmation.
79- `PASS`: do not pursue.
80- `Done`: declined, stale, or already passed.
81
82## Repo Notes
83
84Per-opportunity files should stay short and structured:
85
86```markdown
87# Event Name
88
89- Number: N
90- Index: [Conference Opportunities Brief](../conference-opportunities.md)
91
92## Brief
93
94- Date/location:
95- Host/ask:
96- Format:
97- Audience/scale:
98- Impact:
99- Fit:
100- Risks:
101- Status:
102- Recommendation:
103- Sources:
104```
105
106When adding an opportunity:
107
1081. Pick next number from `opportunities/*.md`.
1092. Add `opportunities/NNN-slug.md`.
1103. Add the link to `conference-opportunities.md`.
1114. Update the shortlist only if it changes prioritization.
1125. Keep podcasts and press out.
113
114## Sheet Sync
115
116Use the sheet headers from `Invitations!A1:Q1`:
117
118`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`
119
120Sync rules:
121
122- Main tab should contain conference/speaking opportunities only.
123- `Primary Category` can remain `Conference` as the broad bucket, while `Subcategory` explains keynote/panel/fireside/talk/retreat.
124- Preserve contact names/emails from existing rows when possible.
125- Overwrite stale podcast/press rows if they are present in `Invitations`.
126- After writing, re-read the range and verify row count plus no podcast/press name hits.
127
128Use `gog sheets update ... --values-json` for bulk updates. Avoid one-cell micro-edits.