Over the past decade, Robotic Process Automation (RPA) has emerged as one of the most prominent and widely adopted technologies in the tech industry, with numerous companies making substantial investments. TMA is no exception to this trend. As a result, we have embarked on the journey of integrating RPA into our HR Department, specifically within our Recruitment team.

Project Goals

In the beginning, our team aimed to harness the potential of RPA as a catalyst for promoting digital transformation within TMA. With this goal in mind, we saw no better place to start than within our own department. We initiated contact with the Recruitment team, hoping to collaborate and seize the opportunity to implement RPA. 

Our belief was that by solving our own challenges within the organization, we could extend our capabilities to address the challenges faced by others as well.


Background information

During a series of meetings between the RPA team and the Recruitment team, a recurring theme emerged — the overwhelming burden of manual tasks that had persisted for years. Among these tasks was the arduous process of handling a massive volume of resumes daily, involving adherence to predefined rules and the painstaking input of data into a web-based tool.

In their pursuit of relief from this ongoing challenge, the Recruitment team considered an alternative solution: modifying the web-based tool to automatically parse data from resume files. However, this path posed its own set of challenges. It would not only demand significant time and effort from developers due to the legacy language in which the tool was built but also entail ongoing maintenance complexities.

Faced with these intricacies, we collectively arrived at a pivotal decision — to leverage RPA as the solution that would alleviate their pain. We elucidated this choice by showcasing the effectiveness of RPA through a series of demo videos, featuring workflows that we had previously implemented in the Logistics field.

What may seem like routine tasks gained a new perspective when one considered the sheer magnitude — approximately 1,000 hours per week — of work that the Recruitment team had diligently undertaken over the past 5 to 6 years. RPA offered a transformative solution that not only drastically reduced the time investment but also eliminated the need for manual labor, culminating in a significant boost in efficiency.

All that RPA requires is an unused PC with a minimum hardware requirement system to set up an RPA Robot. It's remarkably straightforward, isn't it?

In our quest to address the myriad challenges encountered by the Recruitment team, we made a deliberate choice to utilize open-source solutions in combination with Python, as opposed to relying on commercial RPA platforms like UiPath or Automation Anywhere. This decision not only allowed us to realize substantial cost savings but also provided a fertile ground for crafting our very own RPA framework. 

It was within this context that Tbot was born, a testament to our commitment to innovation and cost-effective automation solutions.


Problems occur and how to solve them

When developing and implementing RPA in the recruitment team, we encountered the following issues that you may also experience in your organization:

  • Lack of understanding of the recruitment process: We struggled to fully understand the specific steps involved in the recruitment process.
  • Too many separate steps: The recruitment process is often fragmented into many different steps, making it difficult to identify opportunities for automation.
  • Lack of a testing environment: We did not have a dedicated environment for testing our RPA bots.
  • Communication challenges: The recruitment team and the technical team operate in different worlds, which can make communication and collaboration difficult.

These challenges can all be traced back to one root cause: the lack of a common language. The recruitment team is not familiar with technical terms, and the technical team may not understand the specific needs of the recruitment team.

To overcome these challenges, we need to take more time to explain our ideas and goals to the recruitment team. We need to help them understand how RPA can help them to automate their tasks and free up their time for more strategic work.

To create a testing environment, we carefully requested assistance from the IT department to clone the recruitment team's web-based tool. With the help of other departments at TMA, we were able to accelerate the implementation process.


Not only the non-tech issues bothered my team, but also some technical issues came out of nowhere and slowed down our development process. 

  1. Difficulty in finding a method to run the Robot while the PC was locked and ensure that it executed at predefined times

To address this challenge, we adopted a two-fold solution.

Firstly, we made the interactions with the browser invisible by utilizing the HEADLESS mode in Selenium, ensuring that the automation processes remained discreet. Additionally, we employed Windows Task Scheduler   to automate the execution of the main Python file at predefined intervals.


To ensure the setup was correctly configured, it's important to remember to check the option Run whether user is logged on or not. This step ensures that your script runs seamlessly even if your PC is locked.


  1. Multitude of exceptions that could occur while the Robot interacted with a web browser

Given that we were developing a Robot designed to replicate each human action meticulously, unforeseen circumstances could potentially lead to process failures. 

One such instance is when the internet connection is slow during the browser loading phase, causing the Python code to pause and potentially result in a failure. 

To mitigate this type of behavior, we implemented a function that patiently waits until the web page is fully loaded, with a specific timeout (typically set at 30 seconds by default) to ensure the reliability of our product.

In this code, we employed a waiting mechanism to ensure that the 'email' element became visible before inputting the desired text. This approach allowed us to effectively replicate human behavior and achieve successful automation.


  1. Some elements might be hard to work with

During our development process, we encountered elements that posed considerable challenges in terms of interaction. However, due to the limitations of this blog format, we will introduce one of the well-known challenges we faced. 

Each day, a significant number of resumes are stored in the Recruitment system, which may include resumes that are already present in the system.


As a result, we needed to implement a mechanism to identify whether the data within each resume, specifically the phone number and email address, was duplicated or appeared in the TMA blacklist. This information was crucial for informing the Recruitment team effectively.


By utilizing a function that checks the visibility of elements, we were able to discern each unique case and promptly relay the information to the team.

For more detailed information on handling special elements, you can refer to the following page:https://www.softwaretestingmaterial.com/dynamic-xpath-in-selenium/ 


  1. An error could occur unexpectedly without prior warning

Despite successfully addressing many critical errors during the development process, an unexpected error surfaced after clicking the   button in the trial phase, prompting us to intensify our efforts. 

To rectify this issue, we implemented a proactive approach of verifying the success of each action following the button click. This involved monitoring specific events or elements that indicated successful data storage in the system, such as the appearance of a small notification.

Furthermore, we proactively addressed unforeseen errors by implementing Try-Catch blocks and capturing screenshots. This approach not only helped us manage unexpected errors but also facilitated the identification and resolution of bugs more efficiently.


  • The result when applying RPA into daily tasks

Have more time for the Recruitment team to do more complex / human-decision tasks. Increase productivity.

  • Establish the TMA RPA Center to customers to satisfy customer needs.
  • Write a little bit about what will be shown in Part 2

In conclusion, the implementation of RPA in our daily tasks has yielded significant benefits and saved about 90% of their effort and 85% of their time. It has liberated valuable time for the Recruitment team, allowing them to focus on more complex and human-centric decision-making tasks, ultimately leading to increased productivity. 

Furthermore, this successful integration has paved the way for the establishment of the TMA RPA Center, a testament to our commitment to meeting the unique needs of our customers. As we continue our journey into Part 2, we will delve deeper into the intricacies of RPA, explore advanced automation techniques, and unveil more exciting developments on the horizon.