In CleverIT, we faced a critical challenge in our candidate selection process. Initially, we managed this task manually. As the number of job applications increased, it became increasingly evident that we required more human intervention in order to cope with the amount of candidates that were applying. This intervention was necessary to meticulously review candidates' experiences, compare them to available opportunities, and conduct technical assessments. The growing workload became an unsustainable challenge to handle manually.
To address this challenge, we turned to the powerful technology of GPT-3, which is applicable to a wide range of use cases, including textual comprehension, automated responses, and specifically, resume selection. Recognizing the versatility of this technology, we decided to embrace an innovative solution based on Azure Open AI.
This solution allowed us to automate the task of summarizing candidates' experiences and extracting their key skills, greatly simplifying the comparison with available job opportunities. Additionally, it provided us with the capability to automatically generate technical assessments, significantly enhancing our ability to efficiently prequalify candidates. Specific details regarding this latter functionality will be explained in a subsequent blog post.
In summary, our journey began with a document loading process that used OCR and regular expressions to extract crucial information from applicants' CVs. However, the effectiveness of this approach was questionable, and the success rate was low. Therefore, we decided to embark on a series of functional tests using Azure Open AI to address this challenge. We started with a proof of concept that operated as follows...
Essentially, our document loading process began with placing CVs into a Cloud Storage. The resumes were stored in a folder named "unprocessed" within Google Cloud Storage. This process triggered an event that was sent to a Pub/Sub service, specifically an "object finalize" event. We had a cloud function subscribed to this event responsible for processing the event's information.
This function downloaded the resume's PDF and proceeded to transform its content into JSON format and assign the value to a variable called extractedText. Subsequently, through a straightforward request (prompt), we obtained the necessary information for our system to display the required data. Once the information was successfully processed, we moved the file from the "unprocessed" directory to another directory called "processed."
Our prompt, which was quite straightforward, appeared as follows:
In this process, "extractedText" variable represents the content extracted from reading the PDF in plain text format. This strategy has proven to be highly effective in directly transferring this information to our database. It ensured that our Applicant Tracking System (ATS) had access to the details of each applicant, greatly facilitating subsequent evaluation by our technical team.
The implementation of this solution was carried out using Azure Open AI Services. This platform allowed us to obtain multiple output options through the use of a simple prompt.
Subsequently, we further refined this solution by integrating it asynchronously into our platform, ensuring it was connected to the candidate entry flow. This meant that processing capability was directly embedded in our application, resulting in an online resume validation and summarization process.
This process is conducted online, and in the case of CV validation, it takes no more than 6 seconds for each validation and summarization. This achieves a considerable level of performance for an online process.
Today, we have encapsulated this technique and made it a common capability across all our developments. We have observed that the applicability of this technique significantly enhances a process that was previously carried out through Robotic Process Automation (RPA), for example. This technique even allows us to address online document validation. In fact, we have already initiated a project that utilizes this technique to validate extensive forms, where efficiently verifying information is crucial.