Backend Development   •  Cloud Application  •  API Integration  •  Machine Learning
A Python-based custom Slack chatbot built to help members of Minnesota Roller Derby quickly find answers to frequently asked questions and information about league policies, bylaws, leave policies, and other organizational documentation.
The bot runs as a serverless application using AWS Lambda and responds to questions and requests submitted through Slack.
Backend Development: Python  
Cloud Application: AWS Lambda
API Integration: Slack API
Machine Learning: scikit-learn  •  TF-IDF  •  cosine similarity
Features
• Uses an FAQ system for frequently asked questions
• Supports exact, keyword, and fuzzy matching for improved question recognition
• Uses TF-IDF and cosine similarity to identify relevant sections of organizational documents when an FAQ match isn't found
• Includes configurable similarity thresholds to reduce incorrect or unrelated responses
• Handles multiple Slack workspaces
• Logs application activity for troubleshooting and monitoring

Technologies
• Python
• AWS Lambda
• AWS API Gateway
• AWS SAM (Serverless Application Model)
• Slack API
• scikit-learn
• TF-IDF / cosine similarity

How It Works
When a user sends a question to the Slackbot, the application processes the message and attempts to find the most appropriate response first looking at a predefined FAQ list, then searching organizational documents.
The matching process uses several levels of matching, including:
1. Exact matching
2. Keyword matching
3. Fuzzy matching
4. TF-IDF similarity matching against organizational documents
If the similarity score does not meet the threshold, the bot will return no match rather than providing a potentially incorrect answer.
Thanks for looking!
View the code on GitHub:
Back to Top