Skip to main content

User's Manual

VibeCheck is a BeReal-inspired Slack bot that sends daily prompts to your workspace and connects team members with shared interests.


Quick Start Guide

Once the bot is in your workspace:

  1. Run /help to see all available commands.
  2. Run /setchannel #your-channel to pick where prompts get posted.
  3. Run /picktags to set your interest tags.
  4. Run /vibestatus to check the bot setup.

The bot will post a daily prompt to the channel you set. Reply in-thread when it goes out.


Installation

Prerequisites

  • A Slack workspace where you have permission to install apps
  • A MongoDB Atlas account
  • A Groq API account
  • Python 3.8 or higher

Step 1: Slack App Setup

Go to https://api.slack.com/apps and create a new app.

  1. Click Create New App -> create From scratch.
  2. Enter an app name and select your Slack workspace.
  3. Open program in Socket Mode and enable it.
  4. In Basic Information, create an app-level token with the connections:write scope. Save it as SLACK_APP_TOKEN (starts with xapp-).
  5. Copy the Signing Secret from Basic Information and save it as SLACK_SIGNING_SECRET.
  6. Open OAuth & Permissions and add the following Bot Token Scopes:
ScopePurpose
chat:writeSend messages as the bot
chat:write.publicPost in channels without being invited
commandsRegister and respond to slash commands
channels:readList and look up channels
channels:historyRead messages in public channels
im:writeOpen and send direct messages
im:historyRead messages in DMs
mpim:writeCreate and post to group DMs (mentor program)
reactions:readRead emoji reactions on messages
users:readLook up user profile information
app_mentions:readReceive events when the bot is mentioned
  1. Under Redirect URLs, add your redirect URI (e.g. https://your-host/slack/oauth_redirect) and save it as SLACK_REDIRECT_URI.
  2. Click Install App to Workspace.
  3. Copy the Bot Token (starts with xoxb-) and save it as SLACK_BOT_TOKEN.
  4. Copy the Client ID and Client Secret from Basic Information and save them as SLACK_CLIENT_ID and SLACK_CLIENT_SECRET.

Step 2: Register Slash Commands

In your app settings, go to Slash Commands and register each of the following:

CommandDescription
/helpShow setup guide and list of all commands
/setchannelSet the channel where daily prompts are posted
/forcepromptImmediately post a vibe check prompt
/vibestatusDisplay the current bot configuration
/checkvibesShow response stats for the current channel
/picktagsSet your personal interest tags
/picktopicSet a topic for the next prompt
/picktimeManually pick a time slot (1–17) for today's prompt
/findtimeShow the currently scheduled prompt time and mode
/connectRun the social connector to match users by shared tags
/streakView your current vibe check response streak
/promptstatsShow prompt send statistics (admin use)
/mentorMentor-mentee program commands

Step 3: Groq API Key

Go to https://console.groq.com/, create an API key, and save it as GROQ_API_KEY.

Step 4: MongoDB Setup

  1. Create a free cluster at https://www.mongodb.com/atlas.
  2. Create a database user and allow network access from your server's IP.
  3. Copy the connection string and save it as MONGO_URI.

Step 5: Create the .env File

Create a .env file in the project root:

SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_APP_TOKEN=xapp-your-app-token
SLACK_CLIENT_ID=your-client-id
SLACK_CLIENT_SECRET=your-client-secret
SLACK_SIGNING_SECRET=your-signing-secret
SLACK_REDIRECT_URI=https://your-host/slack/oauth_redirect
MONGO_URI=mongodb+srv://your-connection-string
GROQ_API_KEY=your-groq-api-key

Step 6: Run the Bot

pip install -r requirements.txt
python src/app.py

You should see:

⚡️ Bolt app is running in Socket Mode!

Uninstalling

To remove the bot from a workspace, go to your Slack workspace settings -> Apps -> find VibeCheck -> Remove App. To fully remove from apps, delete the app at https://api.slack.com/apps and shut down where the server is running.


Configuration

Setting the Prompt Channel

Use /setchannel #channel-name to set which channel receives daily prompts. Only one channel is active per workspace at a time.

Collections

CollectionContents
installationsOAuth install records per workspace
workspace_statePer-workspace configuration (channel, mode, time, active days)
user_interestsUser interest tags used for social matching
promptsPrompt library with topic categories
prompt_trackerRecord of prompts sent and response counts
streaksPer-user response streak data
mentor_profilesMentor-mentee signup records and pairings

Application Functions

User Commands

CommandWhat it does
/picktagsPick your interest tags
/connectGet matched with someone who shares your interests
/streakSee your response streak and the leaderboard
/checkvibesSee who responded to today's prompt
/mentor signup mentorSign up as a mentor
/mentor signup menteeSign up as a mentee
/mentor statusCheck your mentor pairing status
/mentor leaveLeave the mentor program
/helpSee all commands

Admin Commands

CommandWhat it does
/setchannel #channelSet the channel where prompts are posted
/forcepromptPost a prompt right now
/forceprompt #channelPost a prompt to a specific channel
/picktime [1-17]Set the prompt time slot for today
/findtimeCheck the current scheduled time and mode
/vibestatusSee the full bot config for this workspace
/picktopic [topic]Set the topic for the next prompt
/promptstatsSee prompt history and response counts
/mentor matchPair up mentors and mentees
/mentor adminSee the mentor program summary