Work recap: scopes & troubleshooting
Work recap gathers your Slack messages (and optionally Linear updates) into markdown for a time range you choose. You must be signed in to applib; Slack and Linear tokens are sent only when you click Generate and are never stored.
Saved recaps
When “Save recap to my account” is enabled (default), each run stores the Slack-only markdown, optional Linear-only markdown, and the full combined file as plain text in your applib account so you can download or revisit older exports. No API tokens are persisted—only generated markdown.
Slack token
Best option is a Slack user token (xoxp-…) for your own account. Add these OAuth scopes to your Slack app and reinstall the app to the workspace:
- Required (search):
search:read.public - Usually needed:
search:read.im,search:read.mpim - Private channels:
search:read.private - Optional:
search:read.files
Bot token (xoxb-…)
Some workspaces return not_allowed_token_type for search.messages with a bot token. Prefer a user token, or set mode to crawl and provide your Slack user id (U…). Crawl mode typically needs: public channels channels:read, channels:history; private groups:read, groups:history (and the app in the channel); DMs im:read, im:history; group DMs mpim:read, mpim:history.
Linear
Optional: a Linear personal API key (lin_api_…). The recap lists issues assigned to you updated in the time window and state transitions from issue history in that window.
Troubleshooting
missing_scope/ incomplete results: add the missingsearch:read.*scopes and reinstall the Slack app.- Search can cap results (often around 1k). Narrow the window, add a channel filter, or split by date in the override query.
from:meworks best with a user token. With a bot token, set your Slack user id so the query can usefrom:<@U…>.