Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Read by thought-leaders and decision-makers around the world. Phone Number: +1-650-246-9381 Email: [email protected]
228 Park Avenue South New York, NY 10003 United States
Website: Publisher: https://towardsai.net/#publisher Diversity Policy: https://towardsai.net/about Ethics Policy: https://towardsai.net/about Masthead: https://towardsai.net/about
Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Founders: Roberto Iriondo, , Job Title: Co-founder and Advisor Works for: Towards AI, Inc. Follow Roberto: X, LinkedIn, GitHub, Google Scholar, Towards AI Profile, Medium, ML@CMU, FreeCodeCamp, Crunchbase, Bloomberg, Roberto Iriondo, Generative AI Lab, Generative AI Lab Denis Piffaretti, Job Title: Co-founder Works for: Towards AI, Inc. Louie Peters, Job Title: Co-founder Works for: Towards AI, Inc. Louis-François Bouchard, Job Title: Co-founder Works for: Towards AI, Inc. Cover:
Towards AI Cover
Logo:
Towards AI Logo
Areas Served: Worldwide Alternate Name: Towards AI, Inc. Alternate Name: Towards AI Co. Alternate Name: towards ai Alternate Name: towardsai Alternate Name: towards.ai Alternate Name: tai Alternate Name: toward ai Alternate Name: toward.ai Alternate Name: Towards AI, Inc. Alternate Name: towardsai.net Alternate Name: pub.towardsai.net
5 stars – based on 497 reviews

Frequently Used, Contextual References

TODO: Remember to copy unique IDs whenever it needs used. i.e., URL: 304b2e42315e

Resources

Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

Publication

Build Your Own Resume Chatbot and Share It with Recruiters
Latest   Machine Learning

Build Your Own Resume Chatbot and Share It with Recruiters

Author(s): Boris Dorian Da Silva

Originally published on Towards AI.

Image by playground.com

Introduction

In today’s fast-paced world, Large Language Models (LLMs) are revolutionizing various aspects of our lives, and the job search process is no exception. Traditional resumes, often limited to 1–3 pages, frequently fail to capture the full depth of a candidate’s experience and expertise. This can make it challenging for recruiters to assess whether a candidate is the right fit for a role, potentially leading to missed opportunities or unnecessary interviews.To address this challenge, I’m excited to share with you a Resume Chatbot. This solution allows you to create an interactive, AI-powered chatbot that showcases your skills, experience, and knowledge in a dynamic and engaging way. By deploying this chatbot on a web app service, you can share it with recruiters, enabling them to explore your profile in greater detail and ask specific questions about your background.

Image by author

In this article, I’ll describe the general aspects of this solution, including the technologies involved and some building details.
In the GitHub repository, you will find the code and a step-by-step guide.

Why Use a Resume Chatbot?

A Resume Chatbot offers several advantages over traditional resumes:

  • Interactive Experience: Recruiters can ask specific questions about your experience, skills, and achievements, gaining a deeper understanding of your profile.
  • Dynamic Content: Unlike static resumes, the chatbot can provide tailored responses based on the recruiter’s queries, ensuring relevant and up-to-date information.
  • Time-Saving: Recruiters can quickly assess your fit for a role without scheduling an initial interview, streamlining the hiring process.
  • Enhanced Engagement: A chatbot creates a memorable and innovative impression, setting you apart from other candidates.
  • Data-Driven Insights: The chatbot can track recruiter interactions, providing valuable insights into which aspects of your profile attract the most interest.
  • Multilingual Support: The chatbot can communicate in multiple languages, making your profile accessible to recruiters worldwide.
  • Personalized Experience: The chatbot can adapt its tone and responses to align with the recruiter’s preferences, creating a more engaging interaction.
  • Real-Time Updates: You can instantly update your skills, experiences, or achievements, ensuring recruiters always have access to the most current information.
  • Reduced Bias: By focusing on skills and achievements, the chatbot can help minimize unconscious bias during the initial screening process.

Technologies and Tools Used

To build this Resume Chatbot, I leveraged the following technologies and libraries:

  • OpenAI API: Used to power the chatbot with a state-of-the-art LLM. For this solution, I utilized the β€œgpt-4o-mini” model.
  • LangChain: This framework was instrumental in interacting with the LLM and integrating various tools to enhance the chatbot’s functionality.
  • Azure AI Search: An information retrieval platform that fetches relevant data to provide accurate and context-aware responses to user queries.
  • Azure SQL Server: Used to store user credentials, profile information, and chat history.
  • Streamlit: A library for building the front-end interface of the chatbot.
  • Azure Web App: The solution was deployed on this platform to make it publicly accessible.
Image by author

The complete code for this project is available in the following GitHub repository: https://github.com/bdoriandasilva/resume_chatbot_public

User Interface

The user interface (UI) is built using the Streamlit framework and consists of two main components:

  • Login Interface: This is a login screen that authenticates users by verifying credentials stored in the Azure SQL Server database. This step is optional but recommended to ensure that only authorized users can access the chatbot.
Image by author
  • Chat Interface: Once logged in, users are greeted with a simple and intuitive chat interface. A welcome message explains the purpose of the chatbot and guides recruiters on how to interact with it.
Image by author

The code of the user interface is in the app.py file.

Backend

The backend of the Resume Chatbot is structured into three key modules:

  • chatbot.py: Handles the core logic of interacting with the LLM, processing user queries, and generating responses.
  • db_manager.py: Manages database operations, including storing and retrieving user credentials, profile data, and chat history.
  • retriever.py: Integrates with Azure AI Search to fetch relevant information from your resume data and provide context for the prompt sent to the LLM model.

Additional Features

The solution has different features that are describe below:

  • Query Limit per User: Each user can be assigned a query limit, which is stored in their profile information in the SQL database. After logging in, the solution calculates the number of queries the user has made in the past and ensures it does not exceed the defined limit.
Image by author
  • Conversation History Storage: The chatbot stores conversation history for each user. Apart from being used to facilitate follow-up conversations with the chatbot, this data can also be analyzed in an ad-hoc analysis to understand recruiters’ interest in your profile. (Note: Analysis of this data is not part of the scope of this solution.)
  • Set the Last N Messages for Prompt Inclusion: This allows you to specify the number of recent messages from the user-chatbot interaction to be included in the LLM prompt. By configuring this, you can control how much conversation history is provided as context to the model.

Azure AI Search Index Creation

To create and populate the Azure AI Search index, a Jupyter notebook is provided in the notebooks/upload_index.ipynb file. This notebook contains the necessary schema and scripts to create the index and prepare it for use.

Before running the code, ensure that the Azure AI Search service has been created and configured in your Azure environment.

The process is divided into two main parts:

  1. Index Creation:
    The first part includes a JSON script to create the index directly from the Azure AI Search portal. This script defines the structure of the index, including fields for unique IDs, titles, metadata, and embeddings.
  2. Document Splitting and Embedding:
    The second part automates the preparation of your resume data for indexing. Before running this section, it is essential to divide your resume into separate documents, with each document representing a distinct section (e.g., work experience, education, skills). This strategy ensures that unrelated sections are not combined into the same chunk, improving retrieval performance.
Image by author

Ensure that the name of each document is representative of its content, as this name will be uploaded into the β€œtitle” field of the index. Since the retrieval process applies a hybrid query in Azure AI Search (combining text and vector queries in a single search request), this field is considered in the query alongside the vector content.

The script uses a RecursiveCharacterTextSplitter to divide each document into smaller, manageable chunks (with a specified chunk size and overlap). It then leverages OpenAI embeddings to generate vector representations of the content. Each chunk is assigned a unique ID, title, and metadata, and the results are stored in a structured list for further processing or indexing.
The script iterates through a folder containing all the resume sections, processes each file, and compiles a comprehensive list of structured data ready for integration into the index.

Database Tables Creation

To create and test the database, a Jupyter notebook is provided in the notebooks/database_creation.ipynb file.

Before running the code, ensure that the Azure SQL Server service has been created and configured in your Azure environment.

The notebook is divided into two main sections:

  1. Database Table Creation:
    The first section contains the SQL script to create the two tables required for the database. These tables are designed to store user credentials, profile information, and chat history.
  2. Database Testing:
    The second section includes example scripts to test the database functionality.

Since there is no dedicated interface for uploading users, the population of user data was performed directly through the Azure Data Studio application, which I installed locally.

Lines of Improvement

While the current solution provides a functional foundation, there are several areas where enhancements can be made to improve usability, security, and scalability. Here you have some examples:

  • Interface for Uploading New Users:
    Currently, the Users table is populated directly through Azure Data Studio application. To streamline this process, a user-friendly interface could be developed to allow administrators to upload and manage user data directly within the application.
  • Enhanced Login Security:
    The current implementation uses a simple approach for user authentication. To bolster security, it is recommended to adopt more robust authentication mechanisms, such as OAuth2. This method would provide stronger protection against unauthorized access and improve overall system security.

Conclusion

Building a Resume Chatbot is a powerful way to modernize your job application process and stand out in a competitive job market. By leveraging cutting-edge technologies like OpenAI, LangChain, and Azure services, you can create a dynamic and interactive tool that showcases your expertise in a way that traditional resumes simply cannot.

Ready to get started? Check out the GitHub repository for the complete code and step-by-step instructions: https://github.com/bdoriandasilva/resume_chatbot_public

If you found this article helpful, feel free to share it with your network or leave a comment below.

Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming aΒ sponsor.

Published via Towards AI

Feedback ↓