Bamboo Coffee is the opensource version of the tool we use at GetYourGuide to pair random people for having a virtual coffee break together during this work-from-home season.
From the list of employees, the program does run NUMBER_OF_TRIALS
simulations. Each time it generates a random subsets of GROUP_SIZE
employees, then calculates the diversity score for this simulation based on the criteria in OPTIMIZED_FEATURE
. At the end, the simulation with the highest diversity score is chosen. Each subset of employees is sent an email invitation to get together for a coffee break.
The following prerequisites are assumed for the setup:
-
The HR system, from which employees data is pulled, is BambooHR. If yours is different, make the change in method
load_df()
-
The employee data has the fields: 'displayName', 'workEmail', 'department', 'location', 'jobTitle', 'firstName'
-
Emails are sent via SMTP protocol.
The provided config file template config_template.txt includes a list of expected configuration options.
Section GROUPING
:
- FEATURES: comma-separated (without space) list of employees data fields
- WHITELIST_LOCATIONS: comma-separated (without space) list of office locations from which employees are invited (we use this to only include offices from a specific timezone)
- OPT_OUT_EMPLOYEES:comma-separated (without space) email list of employees to be excluded from invitations
- GROUP_SIZE: how many people should be in a group
- OPTIMIZED_FEATURE: the feature for which the diversity is optimized.
- 'department' means we optimize to have people from different departments in each group.
- 'location' means we optimize to have people from different office locations in each group.
- NUMBER_OF_TRIALS: how many times we want to run the simulations
Sections BAMBOO
and SMTP
contain configuration related to BambooHR and SMTP.
Install python dependencies:
pip3 install -r requirements.txt
Provide your own configuration by copying the template config file and adjusting it to your needs:
cp config_template.txt config.txt
Make sure you have the following configured properly:
WHITELIST_LOCATIONS
(needs to match the values from your BambooHR, otherwise no pairings are generated)APIKEY
inBAMBOO
section (get it from your BambooHR portal)SUBDOMAIN
inBAMBOO
section (use the part coming before .bamboohr.com)SMTP
section (to allow sending of emails)
Run and print the result to stdout, no emails sent:
python3 bamboo_coffee.py
Run and send only 1 invitation email to the provided recipient:
python3 bamboo_coffee.py test abc@example.com
Run and send invitation emails to everyone
python3 bamboo_coffee.py send
For security issues please contact security@getyourguide.com.
Copyright 2021 GetYourGuide GmbH.
BambooCoffee is licensed under the Apache License, Version 2.0. See LICENSE for the full text.