A Case Study in Developing a Recruitment App: Creating an Applicant Tracking System
Tags: webdev, tutorial, productivity, devops
Published: 2023-03-02 15:17:07

[Originally published at AscendixTech Blog](https://ascendixtech.com/how-to-build-applicant-tracking-system/)

The lack of alignment in hiring processes may seriously obstruct the company’s growth and scale-up potential. However, a wrong talent management system may cripple the whole organization.

Having realized this, a client of ours has reached out to Ascendix Tech for help with custom recruitment app development.

In this post, I’ll walk you through how to build an applicant tracking system with real-life examples, how different it is from a talent management system, and why HRs abandon their tinned recruitment apps.

## **What is an Applicant Tracking System?**

An Applicant Tracking System (ATS) is a recruitment app that streamlines the recruitment process by providing a central location for collecting, organizing, and monitoring job applicants. Sometimes called talent acquisition software or candidate management system, it simplifies the hiring process for recruiters by automating many of the time-consuming, repetitive tasks, like:

- **Applicant tracking**: an ATS can automatically track the candidates’ progress in the hiring process, from the initial application to the final decision.
- **Job posting**: It can automatically post job openings on various job boards, making it easier for recruiters to reach a wider pool of candidates.
- **Communication**: It can automate communication with applicants, such as sending interview invitations and rejection emails, which saves recruiters time.
- **Resume screening**: with a sprinkle of artificial intelligence, ATS is capable of scanning resumes and CVs for specific keywords and qualifications, making it easier to qualify candidates for a specific job.
- **Pre-qualification**: if your ATS is linked to a talent management system (see below) with a pre-specified pool of assessments for different roles, recruiters can assign candidates to the required tests right from the ATS.
- **Reporting**: once an applicant takes an assessment test, your recruitment app can generate reports using pre-specified recruiting metrics.

![What Is an Applicant Tracking System | Main Features](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0m4hhxerplazvemk8gl.png)

## **What Is a Talent Management System?**

A Talent Management System (TMS) is an integrated platform designed to assist with the management of key talent processes within an organization, including but not limited to recruitment, employee onboarding, performance evaluations, training and skill development, management of compensation, and planning for future leadership roles.

## Are Talent Management Systems and Applicant Tracking Software the Same?

They are not. While some of the features of ATS and TMS may overlap, talent management systems are much broader in their application and focus, as apart from recruitment automation, they include functionality for onboarding, learning and development, succession planning, and compensation management.
 
![What is a Talent Management System](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jimblrs34wae0ngxisy3.png)

Development-wise, creating talent management systems involves slightly different development approaches than those to building your own ATS due to an apparently wider scope of functionality and processes covered by the talent management technology. So, make sure to run thorough research to understand what kind of software you need.

However, in this article, I use those terms almost interchangeably, meaning solely recruitment functionality in both.

## **Why Build Your Own ATS vs Getting a Packaged Solution?**

In 2023, leading talent management technology providers are Workday, AG5 Skills Management, and Personio, according to Capterra ([source](https://www.capterra.co.uk/directory/10029/talent-management/software)). Each of these solutions does a great job when it comes to automating or streamlining talent management tasks I mentioned earlier.

However, a common problem with tinned talent management information systems is that they leave close to zero space for customization and scalability. By this I mean that however perfect packaged a recruitment app may look, employers can’t get away without augmenting it to match their niche and organizational needs.

Which is why many companies, just like our client further below, and [other recruiters](https://www.linkedin.com/pulse/i-stopped-using-recruitment-software-purchase-year-ago-colin-ng/) make a tough decision to switch their ATS providers or, even worse, to restore the old way of doing things through Excel sheets.

Other reasons for abandoning tinned talent management software are constant bugs and glitches, poor support service, unintuitive interface, and, obviously, price – any ready-made software will cost you a monthly or yearly subscription.

![Why Recruiters Give Up on Tinned Recruitment Apps](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i4d9rrsrn6ty3o9l3z3f.png)

When creating your own ATS, on the other hand, you tick all these boxes off your list. The main benefits of building your own applicant tracking system include:

- **Customization**: Building an ATS allows a company to tailor the system to their specific needs and processes, making it more efficient and effective for managing the recruitment process.
- **Integration**: A custom ATS can be integrated with other internal systems, such as HR and payroll systems, providing a seamless flow of data and improved decision-making.
- **Cost**: Although often considered as a rather costly option, building your own ATS is definitely more cost-effective in the long run, as there are no ongoing subscription fees.
- **Branding**: A custom ATS can be branded to align with the company’s image and make the recruitment process more consistent with the company’s values and culture.
- **Owning the data**: With a custom ATS, the company owns all the data and can use it as they see fit, unlike with a pre-built ATS where the data belongs to the provider.

## **How We Built a Custom Applicant Tracking System for an Enterprise Client**

Last year, we were involved in the development of a tailored applicant tracking system (ATS) to meet the recruitment needs of our client’s company in the US. The client is a global enterprise with multiple offices and more than 50,000 employees to date – we were engaging with its North American brunch.

The **challenge** this client of ours was facing was that their previous system, ready-made recruitment app Cornerstone, couldn’t fully integrate the client’s corporate and external recruitment activities – which isn’t surprising at all as most ready-made recruitment apps are designated to be utilized by corporate HR-specialists exclusively.

So, the client turned to Ascendix Tech as a technology expert in workflow automation and creating talent management systems to build their own ATS that would flawlessly reflect their two-faceted hiring process.

In **the initial requirements**, the client raised several key points:

- To create a custom corporate platform for applicant tracking that would **align two divisions of the company’s hiring process: corporate recruitment and recruitment through external agencies**. These two parties should have had different sets of rights and permissions within the system.

- To integrate this ATS with the company’s existing solution for applicant assessments and thus automate filtering candidates. Note: _we were familiar with the company’s existing software for candidate assessments as we were the ones who implemented an enhanced security model and rules for assessment calculations within that solution – more on this further below_.

- To implement vacancy opening functionality with multiple stages of candidate progress statuses.

- To ensure basic branding and interface customization capabilities.

## Applicant Tracking System Architecture & Functionality

Having carefully considered client’s requests, we’ve built a custom recruitment app that allows recruiters/HRs to sign in, register new candidates, invite them for new job positions, check statuses of invitations, assign assessments, and view the results of assessments taken.

Speaking of assessments, the client needed us to integrate the new ATS with their current talent assessment system so all aspects of assessment and learning would be happening there. The new ATS, on the other hand, would be picking up assessment statuses, managing vacancies, and handling communication with talents.

Here’s an outline of this synergy:

![How to Create Talent Management System | Architecture and Processes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2bk988bmf2bjmaoycdyp.png)

**User Interface**
The UI of our custom-built ATS web application has been developed with an easily maintainable and clean code approach, with all pages built with the help of visual components.

On the left side bar, users can choose between two view modes – “Candidates” and “Job Positions.” Corporate recruiters may access both entities while contractors can only add, edit, delete, assign, and track the progress of Candidates (and not modify Job Positions) if otherwise is not specified by their corporate colleagues (more on the rights division in the role-based security model section).

**Vacancy opening**
On the “Job Positions” screen corporate recruiters (but not contractors) can open vacancies by clicking a respective button and filling in the required information, like job title, business line, location, etc.

The important step here is to specify the correct language (should match the preferred language of candidates) and Assessment ID – the unique identification code for the relevant Assessment for this job opening. The assessment itself will be happening in the client’s existing learning environment.

**Candidate creation**
Candidate creation was created a very simple and straightforward process. For this a corporate / external recruiter would just need to input the name of the candidate, their preferred language, and reference ID.

**Candidate invitation**
Once a job position and a candidate have been created, corporate recruiters/contractors can assign vacancies to chosen applicants.

There are 2 ways to invite a Candidate for a Job Position:

1. from a Candidate’s perspective – the action ‘Invite For a Job Position’

2. from a Job Position’s perspective – the action ‘Invite Candidate’

In the first option, the recruiter/HR has to select a relevant Job Position that would match Candidate’s Preferred Language (if the language of the Job Position doesn’t match that of the Candidate, it simply won’t show up). The search for Job Positions works by the ‘Title’ and ‘Requisition Number’ fields.

In the second option, the recruiter/HR can select an existing Candidate (only Candidates with the same Preferred Language as specified in the current Job Position will show up). In this case, the search for Candidates works by ‘First Name’, ‘Last Name’, ‘Email’, and ‘Reference ID’ fields.

If the Open Date of the Job Position has already come, an invitation email will be sent to the Candidate within 1 hour after its creation. If the Open Date has not come yet, the invitation email will be sent on the Open Date.

Corporate/external recruiters can review invitations sent both from the “Job Positions” and “Candidates” view mode.

**Invitation / candidate statuses**
After the invitation was sent, recruiters can track the progress of the candidate in the assessment process through invitation statuses.

Statuses of the Invitation represent whether it was just created, sent to the Candidate, whether the Candidate has launched the associated assessment, already completed it, was reminded of it, the invitation expired or the invitation was deleted.

Invitations can be deleted at any of the statuses, and this will unavoidably disable the invitation link previously sent to a Candidate.

Here’s an outline of statuses in our custom-built ATS.

![Invitation Statuses in Our Custom ATS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gmor1kfcs0805hyf407w.png)

## **Technology Solutions**

**Role-based security model**
To split the company’s hiring workflow between respective parties – corporate recruiters and contractors – we’ve implemented a role-based security model with 3 user types, each having different permissions and rights:

- **Corporate recruiters** – professionals working within the client’s human resources (HR) department. Can add, view, edit and delete job positions and candidates, while also having authority to assign specific job positions to their third-party recruiting colleagues.

- **Contractor recruiters** – third-party recruiting agencies offering recruitment services to the client. These users can only add, edit, delete and invite candidates (and not job positions). Access to job positions is authorized by corporate recruiters.

- **Organization administrators** – a supportive role having the same rights as corporate recruiters but also having the managerial rights, e.g., to create users and assign roles, etc.

Here’s an illustration of the main user roles and their relations within our custom-built ATS:

![The Main User Roles in Our Custom-Built ATS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/geybqd3xyntfoe9qxrpo.png)

The ultimate benefits of implementing role-based security model when building your own ATS include:

- **A more efficient and streamlined recruitment process**, with different users able to focus on their specific responsibilities without interfering with the tasks of others;

- **Enhanced security**, as sensitive information can be restricted to only those with the appropriate permissions;

- **Greater scalability**: As the company grows, new roles and permissions can be added to the system to accommodate new employees and their responsibilities.

- **Better user experience**: Role-based security ensures that users are presented with only the features and functionality that are relevant to them, reducing confusion and improving the overall user experience.

**Multi-tenant architecture**

Our custom-built ATS application is based using multi-tenant architecture – a software architecture model which means a server runs a single software instance for multiple tenants within a shared environment.

Each tenant has its own data access, permissions, privileges, and adjustments.

![Single Tenant vs Multi Tenant | Talent Management Technology](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0co2ich2vcmgceqkc1wb.png)

This architecture model is opposite to single tenancy which means that you need to run a separate infrastructure and software instance for each tenant. Here is why we opted for such architecture model:

Lower costs: By having a single instance of the software serve multiple tenants, the costs of hosting and maintaining the application can be shared among all tenants, resulting in lower costs for each tenant.

Scalability: The ability to easily add new tenants and scale the system as needed can be beneficial for a recruitment app, as the number of users and job postings can fluctuate.

Data isolation: Each tenant’s data is kept separate from other tenants’ data, ensuring that confidential information is not shared with other companies.

Easy upgrades: Upgrades and maintenance can be done on a single instance of the software, reducing downtime and minimizing disruptions for tenants.

However, multi-tenant architecture isn’t flawless, and it does have its shortcomings. So, before implementing it, make sure to consult with your technology partner on overcoming risks associated with multi-tenant architecture and the ways to overcome them.


If you want to get more insights on how to build an Applicant Tracking System, check the whole article on [AscendixTech blog](https://ascendixtech.com/how-to-build-applicant-tracking-system/).