Three setup options
OAuth is the recommended path for end users. The bot token + Workspace info are captured automatically. See OAuth (recommended) for the generic flow.
Option A — OAuth (one click)
chat:write,chat:write.public,channels:read,groups:read.
After OAuth completes, set the channel you want briefings in:
Option B — Incoming Webhook (simplest)
- Go to https://api.slack.com/apps → Create New App → From scratch.
- Pick a name and your workspace.
- Incoming Webhooks → toggle ON → Add New Webhook to Workspace → pick the channel.
- Copy the webhook URL.
Option C — Bot Token (manual)
- Same Slack app setup as above.
- OAuth & Permissions → Bot Token Scopes:
chat:writechat:write.public(optional — to post in channels the bot isn’t a member of)
- Install to workspace, copy the Bot User OAuth Token (starts with
xoxb-). - Find your channel ID (right-click channel → View channel details → bottom of the modal).
- Threading — every day’s run replies under one thread per app per day, keeping the channel clean.
- Approval buttons — proposed actions in
agentMode: "write"show inline Approve / Reject buttons that hit/v1/cofounder/actions/:id/reviewdirectly.
Conversational replies
Once the OAuth bot is installed and invited to your briefing channel, you can talk to the agent like a teammate. Two ways to start a conversation:- Reply in a briefing thread — the agent recognizes the thread and continues the conversation about that app.
@App Co-founderanywhere — works in any channel the bot is in; defaults to your most recently active app.
list_apps— show connected appslist_tracked_keywords— current keyword watchlist for an appget_keyword_rank— rank + recent movement for a single keywordget_competitor_snapshot— current competitor listlist_recent_actions— proposed / approved / executed actions
agentMode: "write" (set in preferences), it also gets:
track_keyword/untrack_keyword— manage the keyword watchlistadd_competitor— add a competitor by App Store idtrigger_run— kick off a fresh briefing right nowapprove_action/reject_action— review proposed actionsupdate_preferences— change tone, mode, language, integrations
channels:history, groups:history, im:history, app_mentions:read, reactions:write.
If you started before these scopes were added, run the OAuth flow again to refresh the bot token.
Memory shortcuts
In addition to natural-language Q&A, the agent recognizes a handful of! prefix shortcuts inside the briefing thread or any @mention. They’re a fast path for memory operations from your phone without opening the dashboard:
Examples:
! shortcuts are convenience-only — anything else is treated as a normal question and goes through the full reasoner with semantic memory in context.
What gets posted
Every run when Slack is enabled, a single message is posted with:- Header —
App Co-founder — <date> - Headline section
- Top 5 highlights (one bullet each, with impact emoji)
- Top 3 prioritized actions (with priority labels)
Disable
"slack" from the array). The credentials remain stored — re-enable any time without re-setup.

