Yurii Shunkin
Yurii Shunkin
On-Demand Webinar "From Traditional Automation to AI Agents: What fits your project best"
Contact us

Leonardo: Leobit’s AI-Powered HR Assistant

Custom development of an enterprise-grade AI-powered workplace assistant

ABOUT
the project

Client:

Leobit's Internal Project

Location:

Country flag

UK

|

London

Company Size:

100+ Employees

Industry:

Information Technology

Technologies:

.NET

C#

Azure

Azure Functions

Azure Blob Storage

Azure Open AI

Google Drive API

Slack API

MCP

 

Leonardo is an enterprise-grade AI-powered workplace assistant implemented as a Slack bot. The solution works as an HR assistant for Leobit employees. By securely accessing the company’s database and employee information, it can respond to questions on coworkers, vacations, and company policies, as well as provide dynamic corporate documentation.

Leonardo is a friendly AI companion that is ready to answer any company questions. The solution includes several innovative architectural decisions designed to optimize its performance, manageability, and response precision. It empowers our employees, boosts their productivity, and helps us streamline communication and knowledge sharing within the company.

Yurii-Shunkin

Yurii Shunkin

R&D Director at Leobit

landscape image of a personal computer

Customer

It was Leobit’s internal project aimed at empowering our employees and enhancing our HR team’s productivity.

Business Challenge

Leobit’s employees often need to quickly access company information, colleague details, and dynamic business data. Sometimes, this process takes time, as our specialists spend time and effort searching through various systems and documents, as well as messaging our HR managers.

Project
in detail

The implementation of Leonardo can be roughly divided into the planning stage and three stages of active development.

Project in deatil

First, we planned the solution and its core features. Our specialists analyzed common employee requests to start developing a solution capable of covering them. After that, our software development team prepared a database with curated company data. We also planned the system’s architecture.

Upon planning the platform’s critical features, our specialists implemented the solution’s cloud-based infrastructure. We built a serverless architecture consisting of separate Azure Functions. This stateless design simplifies scalability, allowing the system to handle varying loads and multiple concurrent requests with ease. Since each function operates independently and without maintaining a persistent state, new instances can be spun up seamlessly in response to demand, which ensures the solution’s high availability and responsiveness. We also implemented a smart caching strategy for enhanced solution performance.

We integrated Leonardo with Azure AI services. The primary integrations include Azure Open AI and Azure Cognitive Services. They ensure natural language processing and system output. A custom data pre-processing algorithm optimizes the content for large language models.

During the next stage, our specialists applied customized ERP APIs for multi-source dynamic data integration. The system quickly retrieves relevant information from the company database via APIs. In addition, it uses Azure Cognitive Search to retrieve relevant documentation. We also integrated the system with Slack to make it work as an efficient Slack chatbot.

landscape image computer
4 Layers Responsible for Different Functions

4 Layers Responsible for Different Functions

  1. Integration layer that is responsible for communication with external platforms like Slack and Microsoft Teams. It involves a multi platform webhook receiver.
  2. Business logic layer manages event processing, orchestrates AI workflows, and coordinates interactions between components.
  3. Data processing layer responsible for ingesting, transforming, and preparing content from various sources in an automated manner.
  4. Data access layer based on custom written and publicly available SDKs for ERP, Azure, Google Drive. This tier is responsible for retrieving data from Leobit’s curated data sources.
Decoupled Serverless Architecture

Decoupled Serverless Architecture

While implementing the platform, we were focused on isolating concerns and ensuring independent platform scaling. As a result, we applied a dual serverless architecture that consists of a bot and a data harvester. Our main bot handles real-time interactions. Meanwhile, the data harvester runs on schedule to collect information from the company database.

Intelligent Data Processing Pipeline

Intelligent Data Processing Pipeline

We applied a custom preprocessing script for efficient AI indexing of data from company databases. The point is that human-readable content isn’t optimized for LLM consumption. Our custom script extracts information from embedded text, reformats it for structured representation, removes redundancy, and optimizes tokens, ultimately making this information fit for AI consumption. The same pipeline is responsible for standardizing the format of AI responses, making them human-optimized.

The solution provides an abstract messaging interface that efficiently integrates with Slack. It applies a modular webhook that connects to platform-specific adapters. To ensure responsiveness and prevent timeouts imposed by third-party platforms (such as Slack webhooks), we designed the system to deliver an immediate placeholder response. The actual AI processing and data retrieval are offloaded to background tasks, allowing the platform to later update or edit the original message with the final results. Leonardo can be accessed directly through Slack or tagged in any conversation to assist with text summarization, fact-checking, or providing relevant information within the ongoing chat. In the future, we plan to extend our webhook contract to connect the platform with Microsoft Teams and other platforms.

Extensible Support for Messaging Platforms

The solution provides an abstract messaging interface that efficiently integrates with Slack. It applies a modular webhook that connects to platform-specific adapters. To ensure responsiveness and prevent timeouts imposed by third-party platforms (such as Slack webhooks), we designed the system to deliver an immediate placeholder response. The actual AI processing and data retrieval are offloaded to background tasks, allowing the platform to later update or edit the original message with the final results.

Leonardo can be accessed directly through Slack or tagged in any conversation to assist with text summarization, fact-checking, or providing relevant information within the ongoing chat. In the future, we plan to extend our webhook contract to connect the platform with Microsoft Teams and other platforms.

Technology Solutions

  • A hybrid approach to data processing, which combines cached indexed content and real-time API calls to ensure dynamic content freshness while maintaining fast performance.
  • Decoupled serverless architecture that consists of a bot and a data harvester; designed to ensure an efficient separation of concerns.
  • A well-organized 4-layer architecture notable for its excellent manageability.
  • A modular webhook that efficiently integrates the solution with Slack, allowing users to access Leonardo directly through Slack or tag it in any conversation.
  • Response time below 3 seconds and a 4-messages conversation history with the expansion capability.
  • Efficient data pipeline that automatically optimizes user requests for LLM processing and provides human-optimized responses.
  • Intelligent caching strategy for enhanced system performance.

Value Delivered

  • A comprehensive solution that successfully bridges the gap between conversational AI and enterprise data systems.
  • An intelligent AI-powered solution that efficiently deals with non-sensitive information about employees, like name, surname, position, manager, available vacation and more.
  • A solution that successfully bridges conversational AI with enterprise data systems, featuring real-time data retrieval, automated content processing, and intelligent document indexing.
  • Seamless integration with Slack and possibilities for further integration with other enterprise collaboration tools, such as Microsoft Teams.