How to get candidate statuses from applicant tracking systems

Applicant tracking systems (ATSs), also known as recruiting systems, help increase efficiency, reduce your administrative burden, enhance candidates' experiences, improve compliance with hiring rules, and build a talent pipeline for future hiring needs.

However, you can only realize these benefits if your ATS has access to the relevant data for the entire hiring workflow.

This can prove challenging, as organizations often use different systems and data storages for some categories of data, creating data silos. For example, you may have candidates who have applied through different platforms, each with its own candidate status classification. Tracking the progress of these candidates across your hiring process and optimizing your recruitment strategy would be convoluted and challenging without unifying the information.

In this tutorial, you'll see how you can get candidates and the relevant fields to update their candidate status from three popular ATSs—Workable, BambooHR, and ApplicantStack— by using Merge.

Note: this article uses three ATSs because they offer free trial accounts. Merge also offers integrations to more than thirty other recruiting systems, including Greenhouse, Lever, and more. You can adapt the steps in this tutorial to the ATSs you work with.

What Is Merge?

Before we get into the tutorial, let's consider what Merge is and how it can help you unify your applicant data.

Using Merge, you can build to a single API (Merge) and gain access to hundreds of integrations that span across ATSs, HRISs, CRMs, file storage solutions, and more.

To simplify the development and management of your unified solution, Merge provides an intuitive user interface, comprehensive dashboard, and multiple SDKs in various programming languages, such as Python, Ruby, and Java.

Its single, central API link and programming interface lets you link your third-party accounts and access, query, and update your data, eliminating the need for separate API calls. Merge intelligently integrates your data sources to ensure that data is synced harmoniously, and it uses common data models that have been standardized across platforms.

By providing centralized data access to all associated data sources, accompanied by standardized data models and customizable synchronization, Merge enables you to merge data from multiple ATS platforms, resulting in easier reporting, streamlined maintenance, and reduced complexity and effort. It also helps you eliminate data silos, enhance data integrity, and embrace a unified approach to promote efficient, data-driven decision-making.

How to Integrate Data from Multiple ATS Platforms with Merge

Let's explore how you can use Merge to integrate with multiple ATS platforms.

In the sections that follow, you’ll first link accounts for three popular ATS platforms to Merge—Workable, ApplicantStack, and BambooHR—and authenticate them using API tokens. You’ll then query the Merge Unified API using its Python client to retrieve candidate status information.

Remember that you can use the same steps below to integrate with any of the other ATS platforms available via Merge.


To follow along with this tutorial, you will need the following:

Link ATS Accounts to Merge

This section is adapted from Merge's well-documented process for integrations that takes into account the unique features of each platform.

From your Merge Dashboard, click on Linked Accounts on the left panel under Overview.

Linked Accounts on Merge home page

On the Linked Accounts page, you’ll see Production Linked Accounts and Test Linked Accounts. Test accounts let you explore Merge's features and the linking process, so you'll be using it for this tutorial.

Click on Test Linked Accounts, then Launch Test Link to start up Merge's simple wizard for linking accounts and integrating platforms. You’ll first see the various categories offered on Merge, from Human Resource Information System to File Storage.

Available integrations on Merge

Select Applicant Tracking System to see all the available integrations under this category.

The process that follows is similar for all platforms, but let's start with Workable. Scroll down and click on the Workable icon. You will be given a breakdown of the types of data Merge will be able to access from your Workable account.

Workable authorization request

Click Continue. You will be offered two methods for authenticating your account with Workable. The recommended method is to use an access token, which offers an additional layer of security and guarantees a more secure and streamlined authentication process. Alternatively, you can choose to authenticate through the Workable website's login process.

For the access token option, you will need to enter your Workable subdomain. For example, if your domain is, your subdomain will be touchstone.

After that, you will be given detailed instructions on how to generate an access token on your Workable account.

Workable access token

Complete the steps, copy your access token into the space provided, and continue with the Merge wizard.

The last step in the wizard gives you the chance to set data permissions and tweak your integration to Merge to your organization's data management policies and preferences.

For the purpose of this tutorial, go ahead and click Finish. Your Workable integration will now be set up.

Workable last step

Because the process for integrating into a platform from Merge is standardized, the steps are very similar for other platforms. You can therefore repeat the steps above for BambooHR and ApplicantStack to end up with three test accounts.

Test accounts

How to Get Data Using Merge

Now that you have successfully integrated your ATS platforms with Merge, you'll pull data from the integrations using the Merge Python client, which allows you to generate standardized data from the Merge API.

To begin, go into your virtual environment and execute the following command to install the Merge client in your Python virtual environment.

pip install --upgrade MergePythonClient

Note: This tutorial was written based on version 0.2.1 of the Merge Python Client. You can use the following command to check the version you have installed:

pip show MergePythonClient

Next, generate an API key on Merge, which will be used to authenticate requests for your Merge account.

Merge test API key

Lastly, you need tokens from your test accounts. You can get these by clicking on the test account and copying the token on the right.

Test account token

You can use the Merge Python client to generate data on the candidates from your ATS platforms. Merge will format the data to output information about the candidates (name, last interaction, email address) and their application (job they are applying for, current stage).

Create a new Python file and copy the following code into the file:


## Importing python packages

import merge
from merge.client import Merge
from pprint import pprint

## Add in your Merge API-Key and account token
merge_client = Merge(

    # the 'candidates' resource offers several functions and parameters 
    # See []( for a list of all supported configuration parameters.
    api_response = merge_client.ats.candidates.list()
except Exception as e:
    print("Exception when calling CandidatesApi->candidates_list: %s\n" % e)


This code generates a list of your candidates and the information surrounding their application.

Before executing the Python file, be sure to replace {Merge-API-Key} with your actual Merge API key and {Test-Account-Token} with the token of your test account obtained previously.

Save the file and execute it on your Python virtual environment to get similar results:

PaginatedCandidateList(next=None, previous=None, results=[Candidate(id='ca34777c-c819-4c87-91f1-57a1e48544d1', remote_id='a446sgwjuu0j', first_name='Michael', last_name='Turner', company=None, title=None, remote_created_at='2023-06-07T17:26:00Z', remote_updated_at=None, last_interaction_at=None, is_private=None, can_email=None, locations=['Atlanta'], phone_numbers=[PhoneNumber(value='924-555-7845', phone_number_type=None, modified_at='2023-06-07T16:32:45.337198Z')], email_addresses=[EmailAddress(value='', email_address_type=None, modified_at='2023-06-07T16:32:45.216174Z')],……

To benefit from the full range of features from your unified data, you can also use the Merge client to connect Merge to the backend of your solution.


Unifying your data from multiple ATS platforms with Merge allows you to overcome the challenges of scattered data and get the full benefits of these systems.

In this article, you learned how you can use Merge to unify data from multiple ATS platforms—namely Workable, BambooHR, and ApplicantStack—to streamline reporting, simplify maintenance, and reduce the complexity of your solution.

Merge provides a comprehensive unified API platform that empowers you to access, query, and update data from various third-party data sources across HRISs, ATSs, ticketing systems, CRMs, file storage categories, and more. In addition, Merge can consolidate your data into common models, allowing you to have standardized fields across platforms and gain a holistic view of your data.

To get started with Merge, you can sign up for a free account and/or schedule a demo with one of our integration experts.