Who we are

Contacts

1815 W 14th St, Houston, TX 77008

281-817-6190

Artificial Intelligence Bot HR

Streamlining Talent Acquisition with HireBot, your AI Powered Recruiter

Introduction

HireBot is a chatbot designed to streamline the initial screening process of candidate resumes and profiles for recruiters and hiring managers. It leverages natural language processing to interpret resumes, allowing users to query candidate information through a natural language interface. The primary issue HireBot addresses is the time-consuming nature of manual resume screening, reducing the time recruiters spend identifying qualified candidates.

Technologically, HireBot integrates with AWS OpenSearch for efficient data storage and retrieval, facilitating the transformation of unstructured resume text into queryable vectors. The bot is accessible through a Slack app, providing a familiar and interactive platform for users to engage with the system. Infrastructure deployment and management are handled via Terraform, ensuring a scalable, repeatable, and version-controlled infrastructure setup across development and production environments.

Conceptual Overview

Retrieval augmented generation (RAG) leverages a combination of machine learning techniques to parse and understand natural language within unstructured data, in this case, resumes and candidate profiles. HireBot employs RAG to extract meaningful information from resumes, such as skills, experience, and educational background, by querying a vector database populated with pre-processed resume data. This method improves upon traditional keyword search by allowing for more nuanced queries that can understand context and variations in how information is presented in resumes.

The primary value proposition of HireBot is its ability to reduce the manual effort involved in screening resumes, thereby accelerating the recruitment process. By automating the initial screening, HireBot allows recruiters to focus on candidates who meet the specific criteria for a role, enhancing the efficiency of the recruitment pipeline. Furthermore, HireBot’s integration as a Slack application enables real-time interaction with the recruitment team, allowing for immediate queries and responses, which further streamlines the recruitment process.

In the broader HR and recruitment technology ecosystem, HireBot fills a critical gap between the initial receipt of candidate applications and the more in-depth review process typically conducted by recruiters or hiring managers. Unlike other HR technologies that may focus on applicant tracking systems (ATS) or candidate relationship management (CRM), HireBot specifically targets the initial screening phase, offering a more efficient and accurate assessment of candidate qualifications. Its deployment within Slack, a widely used collaboration tool in many organizations, ensures that it seamlessly integrates into existing workflows, making it a complementary tool to other technologies in use.

Data Preparation

Data Collection Process

The system ingests resumes and profiles in various formats (PDF, DOCX, HTML). We automate the extraction of textual content, focusing on diversity to cover a broad range of job roles and industries.

Challenges with Unstructured Text

Unstructured text from resumes presents multiple challenges: inconsistent formatting, varied language use, and non-standardized presentation of information (e.g., employment history, education). The variability in document structure and content requires robust preprocessing to ensure data quality.

Cleaning and Standardizing Data

We employ a series of text normalization techniques:

  • Removal of irrelevant characters (e.g., emojis, special characters).
  • Standardization of date formats and educational credentials.
  • Keyword extraction to identify skills, certifications, and job titles. This step is critical for reducing noise and improving the accuracy of subsequent vectorization.

Preparation for Vectorization

The cleaned data is then structured to highlight key attributes for vectorization. This involves, among other steps, mapping extracted information to predefined categories (skills, experience level, education, etc.).

{
  "name": "joe candidate",
  "location": "TX, USA",
  "Education:" "B.S. in Computer Science, UT",
  "Work experience": "job title at employer, 2019-present",
  "skills": [
    "data engineering": "5years"
  ]
}

Data Loading and Vectorization

AWS OpenSearch Overview

AWS OpenSearch Service facilitates scalable search and analytics, suitable for applications like HireBot which require fast text search and aggregation capabilities. In HireBot, OpenSearch serves as the backend for querying candidate profiles.

Transforming Unstructured Text to Searchable Vectors

  1. Preprocessing: Initial text cleanup involves removing irrelevant sections (e.g., headers, footers) and standardizing formats (e.g., date formats, headings).
  2. Normalization: Text is converted to lowercase, and punctuation is removed. Tokenization splits text into individual terms or tokens.
  3. Vectorization: Two primary techniques are employed:
  • Embeddings: Use pretrained models to convert tokens into dense vectors, capturing semantic similarities between terms.
  • TF-IDF: Term Frequency-Inverse Document Frequency highlights important words in each resume, converting them into sparse vectors based on their uniqueness across the dataset.

Loading Vectors into AWS OpenSearch

  1. Index Creation: Define an OpenSearch index with appropriate settings and mappings to accommodate the vector data structure and optimize for search performance.
  2. Data Ingestion: Convert resumes into vectors using the selected vectorization technique. Each resume is then indexed in OpenSearch as a document within the predefined index.
  3. Batch Processing: For efficiency, resumes are processed in batches. AWS Lambda can automate this process, triggered by new resume uploads to an S3 bucket.

Querying

With vectors stored in OpenSearch, queries are executed by converting search terms into vectors using the same vectorization process. The search then leverages cosine similarity or other distance metrics to identify the most relevant candidate profiles based on query vectors.

This approach enables HireBot to perform nuanced searches over candidate profiles, matching on skills, experience, and other criteria beyond simple keyword matching.

Building the Frontend: Slack Application

Platform Choice

Slack was selected due to its widespread adoption in corporate environments and its comprehensive API for building interactive applications. The platform facilitates immediate engagement with users in their daily communication environment, making it a practical choice for HireBot’s deployment.

Development Process

The development of the HireBot Slack application required several steps, focusing on both functionality and user interaction. The process involved:

  1. Workspace and App Configuration: Initiated by creating a Slack app in the developer portal, configuring OAuth permissions, and installing the app in a designated workspace. Essential permissions included those for reading user input and posting messages.
  2. Interactive Components: Development of interactive UI elements such as buttons for initiating candidate searches, modals for displaying candidate details, and message blocks for presenting search results. These components were designed to be intuitive, minimizing the learning curve for end-users.
  3. Integration Mechanics: The core of the integration involved setting up event listeners for Slack commands and interactions. This setup required configuring a server endpoint to receive events from Slack, parsing the events to understand user queries, and responding appropriately. For example, a “/candidate_search” command would trigger a query to the backend, fetch relevant candidate profiles, and present the results in Slack.

Command Handling and Interactions

Command handling was implemented using Slack’s Events API, enabling HireBot to respond to predefined commands and user interactions. Each command was mapped to a specific function, such as querying candidate information or refining search parameters.

Notifications

HireBot utilized Slack’s messaging API for sending notifications, such as alerts about new candidates matching search criteria or updates to candidate profiles. Notifications were designed to be non-intrusive, providing valuable information without overwhelming users.

The development and integration of HireBot into Slack required careful planning and execution to ensure a seamless user experience. The chosen methodologies and technologies were aimed at creating a functional and efficient interface for interacting with HireBot directly within the Slack environment.

Conclusion

HireBot automates candidate screening by interpreting resumes and responding to queries in natural language. This tool reduces the manual effort involved in initial candidate assessments and accelerates the recruitment process. We invite HR professionals, recruiters, and tech enthusiasts to explore HireBot’s functionality, provide feedback, or contribute to its ongoing development.

For inquiries, demonstrations, or collaboration opportunities, please contact us at [email protected].

Your input and collaboration are valuable as we continue to refine HireBot to meet industry needs.