S Skillsheet Docs

Bullhorn ATS Integration

Overview

Skillsheet integrates with Bullhorn ATS to keep your candidate, job, and placement data synchronized across both platforms. The integration provides a two-way sync: changes made in either system are reflected in the other. This eliminates double data entry and ensures your team always works with up-to-date information regardless of which tool they use.


What Syncs

The Bullhorn integration synchronizes the following data:

Candidates

  • Contact information — Name, email, phone number, location.
  • Resume and work history — Parsed resume data and employment records.
  • Skills and qualifications — Mapped to Skillsheet’s structured skill tags.
  • Custom fields — Configurable field mapping (see Data Mapping below).
  • Notes and activity — Recruiter notes added in either platform.

Jobs

  • Job postings — Title, description, requirements, location, and status.
  • Job metadata — Department, hiring manager, employment type.
  • Pipeline stages — Mapped between Bullhorn’s workflow and Skillsheet’s pipeline.

Placements

  • Placement records — When a candidate is placed in Bullhorn, the corresponding position in Skillsheet is updated.
  • Start dates and compensation — Placement details are synced for reporting purposes.

Setting Up the Connection

You need Bullhorn API credentials to enable the integration. Contact your Bullhorn administrator if you do not have these.

Prerequisites

Info

Before you begin, make sure you have:

  • A Bullhorn account with API access enabled.
  • Your Bullhorn Client ID and Client Secret.
  • Your Bullhorn API Username and API Password.
  • Admin or Owner role in Skillsheet.

Connection Steps

Connect Bullhorn ATS

6 steps
1

Open integrations

Go to Settings > Integrations in Skillsheet.

2

Find Bullhorn

Find Bullhorn ATS in the integration list and click Connect.

3

Enter API credentials

Enter your Bullhorn API credentials:

  • Client ID
  • Client Secret
  • API Username
  • API Password
4

Authenticate

Click Authenticate. Skillsheet will verify the credentials with Bullhorn’s API.

5

Verify connection

If authentication succeeds, you will see a green Connected status.

6

Configure sync preferences

Configure your sync preferences (see below) before running your first sync.


How Sync Works

Nightly Automatic Sync

Info

Skillsheet runs an automatic sync with Bullhorn every night at 2:00 PM UTC.

During this sync:

  • New candidates, jobs, and placements created in either system are synced to the other.
  • Updated records are merged, with the most recent change taking precedence.
  • Deleted records in Bullhorn are flagged in Skillsheet but not automatically removed.

The nightly sync processes all changes since the last successful sync. You can view the timestamp of the last sync on the Integrations settings page.

On-Demand Sync

You can trigger a manual sync at any time:

Trigger a Manual Sync

3 steps
1

Navigate to Bullhorn settings

Go to Settings > Integrations > Bullhorn ATS.

2

Start the sync

Click Sync Now.

3

Wait for completion

The sync runs in the background. You will receive a notification when it completes.

On-demand sync is useful after making bulk changes or when you need data to be current before a meeting or report.

Sync Direction

By default, the integration is bidirectional. You can restrict it under Sync Settings:

  • Two-way — Changes flow in both directions (default).
  • Skillsheet to Bullhorn — Only push data from Skillsheet to Bullhorn.
  • Bullhorn to Skillsheet — Only pull data from Bullhorn into Skillsheet.

Data Mapping

Skillsheet maps its fields to Bullhorn fields automatically for standard data. You can customize the mapping for additional fields.

Default Field Mapping

Skillsheet FieldBullhorn Field
Candidate NamefirstName / lastName
Emailemail
Phonephone
Locationaddress
SkillsskillList
Job Titletitle
Job DescriptionpublicDescription
Pipeline Stagestatus

Custom Field Mapping

Add Custom Field Mappings

5 steps
1

Open field mapping settings

Go to Settings > Integrations > Bullhorn ATS > Field Mapping.

2

Add a new mapping

Click Add Mapping.

3

Select Skillsheet field

Select the Skillsheet field from the dropdown.

4

Select Bullhorn field

Select the corresponding Bullhorn field.

5

Save the mapping

Click Save.

You can map any custom fields you have defined in Bullhorn to custom properties in Skillsheet.


Candidate Matching

When syncing, Skillsheet needs to determine whether a candidate already exists in both systems to avoid duplicates. Candidates are matched using the following criteria, checked in order:

Info

Candidates are matched in priority order to avoid duplicates.

  1. Bullhorn ID — If a candidate in Skillsheet already has a linked Bullhorn ID, the match is immediate.
  2. LinkedIn Handle — If both records share the same LinkedIn profile URL, they are matched.
  3. Name + Company — If the candidate’s full name and current company match across both systems, they are linked.

When no match is found, a new candidate record is created in the target system. You can review and manually merge duplicate records from the Duplicates tab under Integrations.


Viewing Bullhorn Data on Candidate Profiles

Once the integration is active, candidate profiles in Skillsheet display Bullhorn data in a dedicated section.

  • Open any candidate profile.
  • Scroll to the Bullhorn section or click the Bullhorn tab.
  • View synced data including:
    • Bullhorn candidate ID (linked directly to the Bullhorn record).
    • Submission history and placement records.
    • Notes added in Bullhorn.
    • Last sync timestamp for that record.

Click the Bullhorn ID link to open the candidate’s record directly in Bullhorn.


Troubleshooting Sync Issues

Sync Failed Notification

If a sync fails, Skillsheet sends an email notification to the account owner with the error details.

Common causes and solutions:

  • Authentication expired — Bullhorn API tokens expire periodically. Go to Settings > Integrations > Bullhorn ATS and click Re-authenticate.
  • Rate limit exceeded — Bullhorn imposes API rate limits. If you are syncing a large volume of records, wait an hour and try again. The nightly sync handles rate limits automatically with built-in retry logic.
  • Field mapping error — A mapped field may have been renamed or removed in Bullhorn. Check Field Mapping for any fields marked with a warning icon and update them.
Records Not Syncing

If specific records are not appearing after a sync:

  • Verify the record was created or modified after the last sync timestamp.
  • Check that the record type (candidate, job, or placement) is enabled in your sync settings.
  • Look in the Sync Log under Integrations for any per-record errors.
Duplicate Records

If you see duplicate candidates after enabling the integration:

  1. Go to Integrations > Bullhorn ATS > Duplicates.
  2. Review the flagged pairs.
  3. Click Merge to combine duplicates, selecting which fields to keep from each source.
  4. Merging links the records so future syncs keep them unified.

Disconnecting Bullhorn

To disconnect the integration:

Disconnect Bullhorn

3 steps
1

Navigate to Bullhorn settings

Go to Settings > Integrations > Bullhorn ATS.

2

Disconnect

Click Disconnect.

3

Confirm

Confirm the action.

Warning

Disconnecting stops all syncing. Data already synced to Skillsheet is preserved. Bullhorn IDs remain on candidate profiles but will no longer link to live sync. You can reconnect at any time without losing previously synced data.