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 stepsOpen integrations
Go to Settings > Integrations in Skillsheet.
Find Bullhorn
Find Bullhorn ATS in the integration list and click Connect.
Enter API credentials
Enter your Bullhorn API credentials:
- Client ID
- Client Secret
- API Username
- API Password
Authenticate
Click Authenticate. Skillsheet will verify the credentials with Bullhorn’s API.
Verify connection
If authentication succeeds, you will see a green Connected status.
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 stepsNavigate to Bullhorn settings
Go to Settings > Integrations > Bullhorn ATS.
Start the sync
Click Sync Now.
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 Field | Bullhorn Field |
|---|---|
| Candidate Name | firstName / lastName |
| Phone | phone |
| Location | address |
| Skills | skillList |
| Job Title | title |
| Job Description | publicDescription |
| Pipeline Stage | status |
Custom Field Mapping
Add Custom Field Mappings
5 stepsOpen field mapping settings
Go to Settings > Integrations > Bullhorn ATS > Field Mapping.
Add a new mapping
Click Add Mapping.
Select Skillsheet field
Select the Skillsheet field from the dropdown.
Select Bullhorn field
Select the corresponding Bullhorn field.
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.
- Bullhorn ID — If a candidate in Skillsheet already has a linked Bullhorn ID, the match is immediate.
- LinkedIn Handle — If both records share the same LinkedIn profile URL, they are matched.
- 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:
- Go to Integrations > Bullhorn ATS > Duplicates.
- Review the flagged pairs.
- Click Merge to combine duplicates, selecting which fields to keep from each source.
- Merging links the records so future syncs keep them unified.
Disconnecting Bullhorn
To disconnect the integration:
Disconnect Bullhorn
3 stepsNavigate to Bullhorn settings
Go to Settings > Integrations > Bullhorn ATS.
Disconnect
Click Disconnect.
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.