node package manager


Serendipity Bot

What is it?

Serendipity Bot randomly pairs people for 1-1 meetings. This is generally pleasant and productive in organizations larger than a handleful of people, and can be a great way to spread ideas and build relationships between team members.

How do I use it?

Install it

npm i -g serendipity-bot

Make a list of names

Save something like this to a file


Note: if you're using Slack, you may want these to be Slack handles or emoji.

Run the script

To log today's pairing:

serendipity-bot [list_of_names_file]

To post to Slack:

You'll first need to get a token for your Slack account. serendipity-bot [list_of_names_file] --token [slack token] --channel [slack channel]

To see more options

serendipity-bot --help

What then?

Set up a cron job to run the script regularly! Our engineering team at ClassDojo runs the bot every Wednesday and Friday.

How does it work?

The script calculates all 2-combinations of team members and shuffles them deterministically. It also stores an integer index value in a file, whose name is generated by hashing the list of team members.

Whenever the script is run, the index is incremented (mod the number of combinations), and we pick the combination at that index. This way, we cycle through every pairing before repeating.