AI-powered Slack insights for engineering managers. Get summaries of team activity, sentiment analysis, and communication pattern detection to help you stay connected with your team.
- Team Insights: Monitor individual team member activity, sentiment, and communication patterns
- Company Insights: Summarize channel activity across your organization with filterable action items and highlights
- To-Do Management: Track action items from insights, mark them complete, and stay on top of follow-ups
- Custom Team Groups: Create and manage your own team groupings (e.g., "Sales Engineers", "Leadership")
- Custom Channel Categories: Define categories for your channels (e.g., "HQ", "Sales", "Support")
- Sentiment Analysis: Detect positive, negative, or mixed sentiment in communications
- Communication Tone Detection: Identify early warning signals like terseness or tension
- 1:1 Preparation: Get suggested topics for your next 1:1 based on recent activity
- Slack Deep Links: Click through to original messages for full context
Caution
π Security Warning β No Authentication currently implemented
This application has no built-in authentication or access control. Anyone with the URL of a deployed instance can access it and all of its functionality.
The app requires a Slack User OAuth Token (xoxp-...) which grants broad read access to your Slack workspace β including message history, channel listings, and user information. If this application is exposed publicly, anyone could read your Slack workspace data.
Do NOT deploy this to a publicly accessible URL without first implementing your own authentication layer. This project is intended for local development or private/restricted deployments only.
Never commit your .env file or Slack token to version control.
Before you begin, you'll need:
- A Vercel account
- A Slack workspace where you have permission to create apps
- Node.js 18+ installed locally (for development)
Or clone and deploy manually:
git clone https://github.com/bseymour/The-Curator-v4.git
cd The-Curator-v4
npm install
vercelThe Curator uses Upstash Redis to store your configuration (tracked channels and team members).
- Go to your project in the Vercel Dashboard
- Navigate to Storage tab
- Click Create Database β KV (Upstash)
- Follow the prompts to create a new KV database
- The environment variables
KV_REST_API_URLandKV_REST_API_TOKENwill be automatically added
- Create an account at Upstash
- Create a new Redis database
- Copy the REST API credentials
- Add to your Vercel project environment variables:
KV_REST_API_URL- Your Upstash Redis REST URLKV_REST_API_TOKEN- Your Upstash Redis REST token
You need to create a Slack app to access your workspace's messages.
- Go to Slack API Apps
- Click Create New App β From scratch
- Name it "The Curator" (or your preferred name)
- Select your workspace
- In your app settings, go to OAuth & Permissions
- Under User Token Scopes, add the following scopes:
| Scope | Purpose |
|---|---|
channels:history |
Read messages from public channels |
channels:read |
List public channels |
groups:history |
Read messages from private channels |
groups:read |
List private channels |
search:read |
Search messages (for team member activity) |
users:read |
Get user information |
users:read.email |
Get user email addresses |
Note: We use User Token Scopes (not Bot Token Scopes) because the app needs to access channels and search on behalf of a user. The user installing the app must have access to the channels they want to monitor.
- Go to Install App in the sidebar
- Click Install to Workspace
- Review and authorize the permissions
- Copy the User OAuth Token (starts with
xoxp-)
Add the token to your Vercel project:
- Go to your project in Vercel Dashboard
- Navigate to Settings β Environment Variables
- Add:
- Name:
SLACK_USER_OAUTH_TOKEN - Value: Your
xoxp-...token
- Name:
The Curator uses Vercel's AI Gateway for generating summaries and analysis.
- Go to your project in the Vercel Dashboard
- Navigate to Settings β AI
- Enable the AI Gateway
- The gateway is preconfigured to work with multiple AI providers
The app uses the AI SDK with Vercel AI Gateway, which supports:
- OpenAI (GPT-4, GPT-4o, etc.)
- Anthropic (Claude)
- And other providers
The default configuration uses the gateway's automatic routing. No additional API keys are required if you're using the Vercel AI Gateway.
| Variable | Required | Description |
|---|---|---|
SLACK_USER_OAUTH_TOKEN |
Yes | Slack User OAuth token (xoxp-...) |
KV_REST_API_URL |
Yes | Upstash Redis REST API URL |
KV_REST_API_TOKEN |
Yes | Upstash Redis REST API token |
- Open the app and navigate to Settings
- Create your channel categories (optional but recommended):
- Examples: "HQ", "Sales", "Engineering", "Support"
- These help organize your channel insights
- Add channels you want to monitor:
- Search for channels by name
- Assign them to your custom categories
- Create team groups (optional but recommended):
- Examples: "Sales Engineers", "Managers", "My Direct Reports"
- Assign team members to groups for filtered insights
- Add team members you want to track:
- Search for users by name
- Set their role (IC/Manager) and relationship to you (Direct Report/Skip)
- Home (
/): Overview dashboard with quick access to all features - Team Insights (
/team): View activity summaries, sentiment, and communication patterns for each team member. Filter by team groups. - Company Insights (
/company): View channel summaries with filterable action items and highlights. Add items directly to your to-do list. - To-Dos (
/todos): Manage action items from insights. Mark complete, delete, or add new items manually.
Select different time ranges for analysis:
- Last 24 hours
- Last 7 days
- Last 14 days
- Last 30 days
- Specific week (for historical analysis)
Warning
This app has no authentication. See the security warning at the top of this README.
- No access control: Anyone who can reach the deployed URL can use the app and read Slack data
- The app only accesses channels that the installing user is a member of
- All data is processed through Vercel's AI Gateway
- Configuration is stored in your own Upstash Redis instance
- No message content is stored permanently; it's only used for real-time analysis
- Never expose your Slack User OAuth Token β it grants read access to your workspace
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run buildMake sure you've added the SLACK_USER_OAUTH_TOKEN environment variable in Vercel and redeployed.
The user whose OAuth token is being used must be a member of the channel. Join the channel in Slack and try again.
- The channel may have no recent activity in the selected time range
- Try selecting a longer time range
Slack has rate limits on API calls. If you're monitoring many channels or team members, you may occasionally see rate limit errors. The app will retry automatically.
MIT
