Inspiration
We kept seeing the same gap. People Ops can feel when a team is struggling, but the tools either arrive too late (surveys, exit interviews) or feel like surveillance (message archives, individual rankings).
Slack is where work stress shows up first. We wanted an agent that lives there, looks at team-level patterns only, and helps HR act early without reading private chats or building a creepy dashboard.
What it does
Pulse is a Slack agent for People Ops.
- Ask
@Pulsehow a team is doing and get a Block Kit card with a score, level, and explainable drivers - Run
/pulse healthfor a workspace summary - Get proactive alerts in
#people-opswhen a team crosses a threshold - Click Acknowledge to track follow-through
Everything is team-level. No employee leaderboard. No long-term raw message store.
How we built it
- Slack Bolt agent with Socket Mode (
@Pulse,/pulse, Block Kit) - MCP server for team summaries, open alerts, and acknowledge actions
- Neon PostgreSQL for workspaces, team snapshots, and alert state
- Slack Real-Time Search for optional live context from opted-in channels
- Scoring library that turns aggregate signals into a 0 to 10 team score
- Hosted on a DigitalOcean droplet so judges can test without our laptop running
Challenges we ran into
Slack developer sandboxes have a hard member limit, so we had to move to a fresh sandbox just to invite judges.
Socket Mode tokens are easy when you use slack run, but production needs real bot and app tokens in env. That tripped us up during deploy.
Real-Time Search in a quiet sandbox often returns little data, so we kept seeded team snapshots for a reliable demo and treated live refresh as best effort.
We also had to stay disciplined about privacy. The product only works if we refuse per-person ranking and refuse storing message text.
Accomplishments that we're proud of
- A working Slack-first demo: DM, slash commands, Block Kit cards, and proactive alerts
- MCP plus Real-Time Search plus Neon in one coherent flow
- A privacy story we can stand behind: aggregates and alerts only
- 24/7 hosting so judges can try Pulse in
pulse-sandbox1without us babysitting a terminal
What we learned
Building inside Slack is the product, not a side feature. If People Ops has to leave Slack for a dashboard, adoption dies.
Hackathon demos need a reliable data path. Seeded aggregates plus optional live refresh beat a fragile live-only story.
Deploy matters. An agent that only works on slack run is not judge-ready.
And for wellbeing tools, trust is the feature. Team-level signals are harder to explain than individual scores, but they are the only version we were willing to ship.
What's next for Pulse
- Stronger live scoring when Real-Time Search returns richer channel activity
- Better People Ops workflows after Acknowledge, like suggested check-in templates
- Clearer opt-in controls for which channels Pulse can read
- A thin install and privacy page, still keeping Slack as the main product surface
- More sandbox polish for judge testing and onboarding
Try it
Access: invite sent to slackhack@salesforce.com and testing@devpost.com
Workspace: https://pulse-sandbox1.enterprise.slack.com
DM @Pulse: How is Engineering doing this week?
Then in #people-ops run /pulse check-alerts and click Acknowledge.
Built With
- cli
- drizzle
- mcp
- neon
- openrouter
- postgresql
- rts
- slack
- typescript
Log in or sign up for Devpost to join the conversation.