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.
Quality, reliability and scalability principles
Completeness: historical backfill established a usable baseline rather than synchronizing only future changes.
Freshness: event-driven updates prevented the CRM copy from becoming stale.
Recoverability: resumable processing reduced the impact of interruptions.
Traceability: structured logs made synchronization behavior easier to review.
Data integrity: duplicate-processing controls reduced repeated work and inconsistent results.
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.