Skip to content
Infinite-Growth-Inboundsys
Case studies /

Real-Time & Batch Synchronization Between Bullhorn ATS and HubSpot CRM

How Inboundsys connected recruitment intelligence with CRM execution for Divia

Less than one month

Completed

Bullhorn ATS + HubSpot CRM

Staffing and recruiting

Dual-layer synchronization architecture

Dual-layer synchronization architecture

THE OUTCOME

A resilient dual-layer integration that combines a complete historical backfill with continuous real-time updates, giving sales and recruiting teams current Bullhorn tearsheet membership data directly inside HubSpot.

Client Divia
Industry Staffing and recruiting
Platform Bullhorn ATS + HubSpot CRM
Duration Less than one month
Status Completed

Executive summary

Divia uses Bullhorn as its applicant tracking system to manage candidates, client contacts and tearsheets, while HubSpot supports sales and recruiting activities. The two platforms served important but separate purposes. Without synchronization, the recruiting intelligence held in Bullhorn was not available to the teams operating in HubSpot.

Inboundsys designed and delivered a custom integration that brings Bullhorn tearsheet memberships into a dedicated HubSpot contact property named bullhorn_lists. The solution combines two complementary synchronization methods: a resumable scheduled batch process for historical records and an event-driven process for ongoing changes.

This architecture closed the visibility gap without relying on manual updates. It also introduced progress tracking, structured logging, automated error handling and safeguards against duplicate processing—creating a reliable foundation that can scale with the client’s operations.

Project at a glance

Project Real-Time & Batch Synchronization Between Bullhorn ATS and HubSpot CRM
HubSpot scope Marketing Hub, Sales Hub and Smart CRM
Departments Sales, Operations and IT
Core deliverables Custom properties, workflows and automation, custom views and record layouts, custom API integration
Migration Contacts; historical data backfill included
Technology PHP, Bullhorn REST API, HubSpot CRM API and scheduled cron jobs

The client context

Bullhorn ATS was the operational source for candidates, client contacts and tearsheet membership information.

HubSpot was the working CRM for sales and recruiting activities.

Teams needed recruitment data inside HubSpot to segment contacts, prioritize outreach and manage relationships.

The engagement had to be completed rapidly, with delivery achieved in less than one month.

The challenge: valuable data trapped between systems

The central problem was not a lack of data; it was the inability to use that data where day-to-day CRM work happened. Bullhorn contained tearsheet memberships, but HubSpot users could not see or act on them. This created a practical information gap between recruiting operations and sales execution.

Business impact before integration
Fragmented customer data Important contact context remained distributed across Bullhorn and HubSpot.
Poor sales visibility HubSpot users could not see Bullhorn tearsheet memberships on contact records.
Limited segmentation Teams could not reliably filter, group or route contacts using Bullhorn list membership.
Manual dependency Keeping records aligned required avoidable checking or intervention.
Scalability risk A one-off import would become stale and would not support continued growth.

What Divia wanted to achieve

Centralize relevant customer and recruiting data inside HubSpot.

Enable real-time synchronization of Bullhorn tearsheet memberships.

Improve sales productivity through better contact visibility and segmentation.

Reduce manual work and the risk of stale or inconsistent information.

Support business growth with a monitored, scalable integration approach.

DESIGN REQUIREMENT

The solution had to solve two different synchronization problems at once: move historical data safely and keep future changes continuously aligned.

Why a dual-layer model was necessary

A purely real-time integration would only capture new changes and leave historical tearsheet relationships unavailable. A batch-only approach could load the past but would gradually fall out of date. Inboundsys therefore combined both patterns into one coordinated solution.

THE INBOUNDSYS SOLUTION

1. A HubSpot data model built for action

Inboundsys created the custom HubSpot contact property bullhorn_lists to store Bullhorn tearsheet memberships. This made recruitment context visible on the CRM record and available to HubSpot’s segmentation and automation capabilities.

Custom property for Bullhorn tearsheet membership data.

Custom record layouts and views so teams could see the information in context.

A structure suitable for contact filtering, list building, routing and workflows.

A consistent HubSpot destination for both historical and real-time updates.

2. Resumable batch synchronization for historical data

The batch layer handled the historical backfill. Because the integration needed to process a potentially large body of existing data through Bullhorn’s non-standard REST API, reliability was more important than a fragile one-pass import.

Scheduled cron jobs initiated and managed batch processing.

Progress tracking allowed the process to resume rather than restart after an interruption.

Duplicate-processing safeguards protected data quality during retries.

Structured logs created an operational record for monitoring and diagnosis.

Automated error handling reduced the need for manual supervision.

3. Event-driven updates for continuous alignment

After the historical baseline was established, the real-time layer kept HubSpot aligned with ongoing Bullhorn changes. Current tearsheet information could flow into the CRM without waiting for a manual export or a future bulk migration.

Ongoing Bullhorn changes triggered updates to the corresponding HubSpot contact.

The bullhorn_lists property reflected the latest available tearsheet memberships.

Sales and recruiting users gained continuous visibility in the system where they worked.

Fresh data could support faster segmentation, outreach and decision-making.

Overcoming the biggest technical challenge

The most demanding part of the project was integrating with Bullhorn’s non-standard REST API while synchronizing historical data at scale without losing records or processing the same work twice. This required more than a simple point-to-point field update.

Challenge-to-solution mapping
API complexity The integration isolated Bullhorn-specific behavior within a structured custom integration layer.
Large historical workload A resumable batch process divided the backfill into controlled, trackable work.
Interruption risk Progress tracking allowed safe continuation from the last confirmed state.
Duplicate risk Processing safeguards reduced repeated updates during retries.
Operational visibility Structured logging and automated error handling made the integration easier to monitor and support.
Freshness requirement Event-driven synchronization handled ongoing changes after the historical load.

Delivery approach

Inboundsys covered the integration lifecycle from discovery through post-launch support. The activities were sequenced to reduce ambiguity early, validate the architecture before go-live and support adoption after deployment.

01 Discovery workshops Clarified the systems, data relationships, users and business objective.
02 Process mapping Mapped how tearsheet membership should move from Bullhorn into HubSpot.
03 Solution architecture Defined the dual-layer batch and real-time model.
04 Configuration Created the HubSpot property, views, layouts and supporting automation.
05 Data migration Executed the historical contact-data backfill.
06 Integration development Built the PHP-based API integration and scheduled jobs.
07 Testing Validated mapping, synchronization, retries, errors and CRM visibility.
08 Go-live support Supported controlled production activation.
09 Post-launch support Provided continuity after launch and a basis for monitoring.

HubSpot configuration and operational enablement

The work was designed around practical use inside HubSpot—not simply transferring values between databases. Once synchronized, tearsheet information became part of the CRM context available to Sales, Operations and IT.

Marketing Hub Supports audience segmentation and targeted engagement using synchronized contact context.
Sales Hub Gives sales users relevant Bullhorn membership visibility inside CRM records and views.
Smart CRM Provides the shared contact model and custom property used by the integration.
Workflows & automation Enables downstream processes to respond to synchronized data.
Custom views & layouts Presents the new information where users can find and act on it.
Counts shown are derived directly from the supplied project form; no performance percentages or record volumes were provided.

Counts shown are derived directly from the supplied project form; no performance percentages or record volumes were provided.

Quality, reliability and scalability principles

01

Completeness: historical backfill established a usable baseline rather than synchronizing only future changes.

02

Freshness: event-driven updates prevented the CRM copy from becoming stale.

03

Recoverability: resumable processing reduced the impact of interruptions.

04

Traceability: structured logs made synchronization behavior easier to review.

05

Data integrity: duplicate-processing controls reduced repeated work and inconsistent results.

06

Maintainability: a clearly separated batch and real-time design simplified monitoring and future support.

Results and business impact

Exact quantitative metrics were not available in the supplied project information. The verified results are therefore presented as operational outcomes rather than estimated percentages.

Verified outcomes
Centralized customer data Bullhorn tearsheet membership became accessible within HubSpot contact records.
Real-time visibility Sales and recruiting teams could work with current membership information rather than stale snapshots.
Reduced manual work The integration replaced repeated manual reconciliation with automated synchronization.
Improved data accuracy Historical backfill and ongoing updates established a more dependable CRM view.
Improved productivity Teams could segment, prioritize outreach and make decisions without switching systems for basic context.
Scalable processes Resumable batches, logging and automated error handling created a stronger foundation for growth.

MOST IMPORTANT RESULT

Continuous visibility into Bullhorn tearsheet memberships inside HubSpot eliminated the core information gap between the ATS and CRM.

Long-term value

The implementation created value beyond the initial migration. Divia now has an integration pattern that addresses both existing data and new events, rather than a temporary export-and-import exercise. The custom HubSpot property also turns Bullhorn data into a reusable CRM asset.

Teams can build segmentation and outreach processes around synchronized recruitment context.

New tearsheet changes can remain visible without another bulk migration.

Operations and IT gain better supportability through logs, progress tracking and error handling.

The solution can accommodate growing data volumes more safely than manual reconciliation.

HubSpot workflows, views and future automation can build on the centralized property.

Why this is a strong integration case study

It combines a large historical backfill requirement with continuous event-driven synchronization.

It converts ATS-specific recruitment intelligence into actionable CRM data.

It demonstrates a robust response to a non-standard third-party REST API.

It balances speed of delivery—less than one month—with recoverability and operational control.

It delivers visible business value to sales and recruiting teams while giving IT a maintainable architecture.

Solution blueprint

Source system Bullhorn ATS
Source data Candidates, client contacts and tearsheet memberships
Integration layer Custom PHP application using the Bullhorn REST API and HubSpot CRM API
Historical sync Scheduled, resumable batch synchronization through cron jobs
Ongoing sync Real-time, event-driven updates
HubSpot destination Contact property: bullhorn_lists
HubSpot usage Custom views, record layouts, segmentation, routing, workflows and automation
Reliability controls Progress tracking, structured logging, automated error handling and duplicate-processing safeguards

Technology stack

PHP Custom integration logic
Bullhorn REST API Access to ATS records and tearsheet membership data
HubSpot CRM API Contact property updates in HubSpot
Scheduled cron jobs Controlled historical batch execution

About Inboundsys

Inboundsys designs and delivers HubSpot CRM implementations, custom integrations, data migrations, automation and digital growth solutions. For this engagement, the team connected Bullhorn ATS and HubSpot CRM through a reliable synchronization architecture built around visibility, data integrity and long-term scalability.


Share this study