This project is a Slack-based matchmaking bot for START Munich. The bot allows users to upload their CVs and find matches based on skills and experiences.
The entry point of the application. It initializes the database and starts the Slack service.
Handles interactions with the Slack API, including:
- Receiving messages and file uploads
- Routing messages to the appropriate handlers
- Initializing the Slack bot
Manages all database operations using SurrealDB. Key functions include:
- Initializing the database connection
- Saving and updating user profiles
- Performing similarity searches on CV contents
The bot uses vector search to find matches. Here's how it works:
- CVs are converted into numerical representations (embeddings)
- These embeddings are stored in the database
- When searching, the query is converted to an embedding
- The database finds CVs with similar embeddings to the query
This allows for "fuzzy" matching, finding relevant skills even if the exact words don't match.
Contains the core logic for processing messages and performing searches using LangChain. It defines several "chains" (sequences of operations) for different bot functionalities.
Stores the prompts used by the language model to generate responses. These prompts define the bot's personality and guide its responses.
Contains data models used throughout the application:
startie.py
: Defines the Startie class, representing a user profilechunk.py
: Defines the Chunk class, representing a piece of CV content
A command-line interface for testing the bot's functionality without Slack integration (not currently used).
- Install dependencies:
pip install -r requirements.txt