This project was built as part of the Crustdata API Chatbot Challenge, where I developed a chatbot named CrustBot that assists users in querying Crustdata's APIs. The chatbot was designed and implemented incrementally through multiple levels of functionality, as outlined below. 🚀
- Implemented a basic chat interface where users can ask questions about Crustdata's APIs.
- The chatbot provides accurate technical answers based on the API documentation.
- Examples of supported queries include:
- Searching for people by title, company, and location.
- Understanding API error responses and resolving issues.
- Status: ✅ Completed and deployed.
- Validates API request examples before sharing them with the user.
- Automatically checks for errors in API requests and suggests corrections.
- Supports conversational mode, allowing users to ask follow-up questions within the same thread.
- Status: ✅ Implemented and functional.
- Added the ability to ingest and integrate additional knowledge bases, including:
- Questions and answers from Crustdata’s support Slack channels.
- Updated API documentation.
- Additional resources to improve chatbot accuracy.
- Status: ✅ Integrated.
- Integrated the chatbot into Slack as a Slack bot:
- Works within specific channels.
- Accessible to designated users only.
- Drafts responses for messages in real-time.
- Status: ✅ Fully functional Slack bot deployed.
The complete code for this project is available on my GitHub: Crustdata Chatbot Repository
Question: "How do I search for people given their current title, current company, and location?"
Answer:
Use the endpoint api.crustdata.com/screener/person/search. Here’s a sample cURL request:
curl --location 'https://api.crustdata.com/screener/person/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token $token' \
--data '{
"filters": [
{
"filter_type": "CURRENT_COMPANY",
"type": "in",
"value": [
"openai.com"
]
},
{
"filter_type": "CURRENT_TITLE",
"type": "in",
"value": [
"engineer"
]
},
{
"filter_type": "REGION",
"type": "in",
"value": [
"San Francisco, California, United States"
]
}
],
"page": 1
}'Question: "I get an error when using the region filter. How should I format my input?"
Answer: Ensure that the region value matches one of the supported options from the list here: Updated Region Values.
For any queries, feel free to reach out via LinkedIn or open an issue on the repository.
Thank you for reviewing my project! 😊