🧠 Inspiration

The original Hubot-based CFPB Government Bot was a powerful assistant that lived inside workflows β€” but over time, Hubot scripts broke, dependencies went unmaintained, and Slack evolved. I wanted to revive that classic utility, modernize it for Slack’s Socket Mode, and make it installable without a server or Redis. This hackathon gave us the perfect push to remaster it with today’s tools, and also, this bot will help the CFPB consumer response support team be more efficient when dealing with inquiries from consumers, because of its quick search functions and other worker-productive functions

πŸ€– What it does

CFPB Government Bot Remastered is a modern Slack bot that brings Hubot-style chat interactions together with slash commands β€” no external hosting required.

Hubot-style listeners: hubot help, hubot rules, highfive @user

standup β†’ mirrored into a configured channel

map me , math , meme me ; ; translate to , youtube , cfgov search

Slash commands: /help, /rules, /highfive, /standup, /searchcfgov, /maps, /math, /meme, /translate, /youtube, /treat, /kv

Persistent KV storage (no Redis needed): /kv set project green β†’ /kv get project

It runs entirely in Slack Socket Mode, so you can use it without deploying to the public internet.

πŸ›  How I built it

We used Node.js with @slack/bolt in Socket Mode to listen for events and slash commands. We ported the original Hubot behaviors into a modular index.js using regex listeners, and added a JSON-based KV store (data/kv.json) for persistence. This approach made it possible to recreate classic Hubot behavior without Redis or external infrastructure.

🧱 Challenges I ran into

Token mix-ups between xoxb and xapp during setup caused several invalid_auth errors.

Converting legacy Hubot scripts to Slack Bolt event listeners required rethinking some regex patterns.

Managing both Hubot-style text triggers and slash commands in one codebase required careful event routing.

App Home and distribution settings had to be carefully toggled to avoid not_enabled errors during testing.

πŸ† Accomplishments that I'm proud of

Revived a fully working Hubot-style Slack bot without relying on outdated Hubot infrastructure.

Added slash command support for modern Slack UX.

Built a zero-infrastructure deployment (Socket Mode + local JSON storage).

Cleaned and open-sourced the bot with clear setup instructions for anyone to use.

πŸ“š What I learned

Deep understanding of Slack App tokens, Socket Mode, and OAuth scopes.

How to modernize legacy bots to fit new Slack APIs.

How to keep the spirit of Hubot alive while embracing new slash command workflows.

Built With

Share this project:

Updates