HRMS migration
Field-level mapping, validation, and rollback between Paylocity and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Paylocity
Source
Bullhorn ATS & CRM
Destination
Compatibility
10 of 12
objects map 1:1 between Paylocity and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Paylocity to Bullhorn is a platform-category migration: Paylocity is a unified HCM suite covering payroll, benefits, time-off, and employee records for internal HR operations; Bullhorn is an ATS and CRM built for recruitment agencies, staffing firms, and staffing-heavy enterprises to manage candidates, job orders, and client relationships. The migration does not replicate payroll processing, tax withholding, or benefits administration capabilities in Bullhorn because Bullhorn does not have those native objects. Instead, we map employee identity to Candidate, employment context to custom Candidate fields, and HCM-specific data (compensation history, benefits enrollments, accrual snapshots) to Bullhorn Custom Objects that the customer's team configures before import. We preserve the composite Paylocity Employee ID plus Company ID as a permanent external ID on Bullhorn Candidate so that future payroll-system integrations can reference the source record by ID.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Paylocity object lands in Bullhorn ATS & CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Paylocity
Employee (composite key: Employee ID + Company ID)
Bullhorn ATS & CRM
Candidate
1:1Paylocity Employee records map to Bullhorn Candidate. The composite Paylocity Employee ID plus Company ID is stored as a permanent external ID field (pcty_employee_id__c + pcty_company_id__c) on the Bullhorn Candidate record. This preserves the full source identity for any future payroll integration or audit trail. Candidate name, email, phone, address, and employment status map to Bullhorn standard Candidate fields. The migration resolves the Paylocity Company ID to a Bullhorn ClientCorporation or Corporate Department reference where applicable.
Paylocity
Employee
Bullhorn ATS & CRM
ClientCorporation
1:1Paylocity Company ID entities map to Bullhorn ClientCorporation records when the migration scope includes mapping internal organizational structure. Each Paylocity Company ID (representing a legal entity, subsidiary, or benefit division) becomes a ClientCorporation with the company's legal name, address, and tax ID. The Company ID is stored as an external ID on the ClientCorporation for reconciliation.
Paylocity
Biographical and Employment Data
Bullhorn ATS & CRM
Candidate (custom fields)
1:1Paylocity biographical fields (legal name, date of birth, address, contact info) and employment data (hire date, termination date, job title, department, employment status, FLSA classification) map to Bullhorn Candidate standard fields and custom fields. Hire date maps to dateAvailable; job title maps to occupation; department maps to a custom Candidate field. We apply Bullhorn's field-type rules (date fields, text fields, picklist fields) during mapping.
Paylocity
Paylocity Company ID Structure
Bullhorn ATS & CRM
ClientCorporation + Department
1:manyOrganizations with multiple Paylocity Company IDs require explicit mapping to Bullhorn's entity structure. We detect all active Company IDs during discovery and create a corresponding ClientCorporation per entity. If the destination Bullhorn org supports departments within a ClientCorporation, we use that for additional granularity. We flag any duplicate Candidate records that would result from an employee ID appearing under multiple Company IDs and apply a de-duplication strategy (prefer active Company ID, archive secondary) before import.
Paylocity
Compensation History
Bullhorn ATS & CRM
Custom Object: Candidate Compensation
1:1Paylocity compensation records (pay rates, salary changes, bonus amounts, pay frequency, effective dates) do not have a native Bullhorn equivalent. We create a Bullhorn Custom Object (CandidateCompensation) linked to Candidate via a lookup relationship, with fields for payType, baseRate, effectiveDate, payFrequency, bonusAmount, and currency. Historical compensation records migrate as read-only reference entries ordered by effective date. Pay-type-aware mapping handles hourly, salary, and commission structures distinctly.
Paylocity
Benefits Enrollments
Bullhorn ATS & CRM
Custom Object: Candidate Benefits Reference
1:1Paylocity benefits enrollment data (carrier, plan name, coverage level, deduction amounts, election status) migrates to a Bullhorn Custom Object (CandidateBenefits) linked to Candidate. The migration preserves benefit plan names, enrollment dates, and deduction amounts as reference records. Plan-level rules, contribution tiers, and eligibility criteria are not migrated because Bullhorn does not have a benefits administration engine and these configurations would have no functional destination.
Paylocity
Payroll / Pay Run History
Bullhorn ATS & CRM
Custom Object: Pay Run Reference
1:1Historical pay run records (gross pay, net pay, tax withholdings, deduction line items) from Paylocity migrate to a Bullhorn Custom Object (PayRunReference) linked to Candidate. These are read-only reference records; Bullhorn does not process payroll and cannot recalculate tax withholding. We preserve the most recent 12-24 months of pay run history as reference data based on customer scope. Retroactive pay adjustments migrate as adjustment entries with a flag noting they are historical reference only.
Paylocity
Federal and State Tax Withholding
Bullhorn ATS & CRM
Custom Object: Tax Withholding Reference
1:1Paylocity W-4 federal allowances, state withholding allowances, and supplemental tax rate elections migrate to a Bullhorn Custom Object (TaxWithholdingRef) linked to Candidate. These records are migrated as a snapshot of the employee's last known tax election as of the migration date. Bullhorn does not have a tax withholding engine, so the migration does not establish any active withholding process; the records serve as a reference for the customer's payroll team to re-enter elections in their chosen payroll system post-migration.
Paylocity
Time-Off Accrual Balances
Bullhorn ATS & CRM
Custom Object: Accrual Balance Snapshot
1:1Paylocity accrual balance snapshots (PTO available, PTO used, sick balance, personal balance, carryover amounts, policy year) migrate to a Bullhorn Custom Object (AccrualSnapshot) linked to Candidate. We capture the balance as of the migration date and flag it as a static snapshot, not a live balance. Bullhorn's accrual engine does not recalculate; if the customer wants live accrual tracking in Bullhorn, they must implement a third-party time-off management integration or custom accrual calculation logic post-migration. We note any Paylocity accrual calculation discrepancies discovered during export so the customer can correct balances before migration.
Paylocity
Custom Fields / Employee Properties
Bullhorn ATS & CRM
Custom Fields on Candidate + Custom Objects
lossyPaylocity allows custom employee properties to be created independently in the HR module and the Payroll module, meaning a custom property may appear in one module's API response but not the other. We query both module-specific endpoints during discovery and reconcile the union of all custom fields. We map text, number, and date custom fields to Bullhorn Candidate custom fields of equivalent type. Picklist and multi-select custom fields map to Bullhorn picklist or multi-select-picklist fields where the allowed values are preserved. Where Paylocity field names overlap but data types differ, we apply explicit type casting and log a discrepancy note in the migration manifest.
Paylocity
Employee Documents
Bullhorn ATS & CRM
Candidate Documents (Bullhorn native)
1:1Employee documents stored in Paylocity (offer letters, signed agreements, certifications, I-9 forms, performance reviews) migrate as Bullhorn Candidate documents. We map file type, employee association, and document category to Bullhorn's document model. Documents are uploaded via Bullhorn's file attachment API and linked to the Candidate record. File naming preserves the original document descriptor from Paylocity. Bullhorn's document size limits apply; documents exceeding Bullhorn's file size threshold are flagged for alternative storage and linked by URL reference.
Paylocity
Paylocity Owner / HR Administrator
Bullhorn ATS & CRM
Bullhorn User
1:1Paylocity employees with HR administrator, payroll processor, or system configuration roles map to Bullhorn User records by email match. Any Paylocity user without a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision before record import resumes. Bullhorn User provisioning (active vs inactive status, role assignment) is the customer's responsibility; we map the role context from Paylocity to Bullhorn role descriptions for the admin's reference.
| Paylocity | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee (composite key: Employee ID + Company ID) | Candidate1:1 | Fully supported | |
| Employee | ClientCorporation1:1 | Fully supported | |
| Biographical and Employment Data | Candidate (custom fields)1:1 | Fully supported | |
| Paylocity Company ID Structure | ClientCorporation + Department1:many | Fully supported | |
| Compensation History | Custom Object: Candidate Compensation1:1 | Mapping required | |
| Benefits Enrollments | Custom Object: Candidate Benefits Reference1:1 | Mapping required | |
| Payroll / Pay Run History | Custom Object: Pay Run Reference1:1 | Fully supported | |
| Federal and State Tax Withholding | Custom Object: Tax Withholding Reference1:1 | Mapping required | |
| Time-Off Accrual Balances | Custom Object: Accrual Balance Snapshot1:1 | Fully supported | |
| Custom Fields / Employee Properties | Custom Fields on Candidate + Custom Objectslossy | Mapping required | |
| Employee Documents | Candidate Documents (Bullhorn native)1:1 | Fully supported | |
| Paylocity Owner / HR Administrator | Bullhorn User1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Paylocity gotchas
Paylocity Weblink API rate limit is 1,500 calls per minute
No public bulk export endpoint requires paginated loop exports
Time-off accrual balances may carry calculation errors from Paylocity
Multiple Paylocity Company IDs require explicit entity mapping
Custom field schemas vary between payroll and HR modules
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
Discovery and multi-Company-ID audit
We audit the Paylocity tenant across employee count, active Company IDs, custom field schemas (HR module and payroll module separately), benefits enrollment records, compensation history volume, time-off accrual snapshots, and employee document count. We identify any multi-Company-ID structures that require entity split or consolidation mapping. We also verify the Bullhorn edition (Team, Corporate, Enterprise) and confirm that the required Custom Object types can be provisioned in the destination org. The discovery output is a written migration scope document with record counts per object type and a Bullhorn schema requirements list for the customer's Bullhorn admin.
Bullhorn Custom Object schema provisioning
Before any data migration, we work with the customer's Bullhorn admin to provision the required Custom Object types: CandidateCompensation, CandidateBenefits, PayRunReference, TaxWithholdingRef, and AccrualSnapshot. We define each Custom Object's field schema (field names, data types, picklist values, required/optional flags) to match the Paylocity source fields being mapped. Custom Objects are deployed in a Bullhorn Sandbox or staging org first for validation before production provisioning. Bullhorn Corporate or Enterprise tier is required for Custom Object support; Bullhorn Team does not include Custom Objects.
Owner and user reconciliation
We extract every distinct Paylocity user with an HR administrator, payroll processor, or employee record ownership role. We match these by email against the Bullhorn destination org's User table. Paylocity users without a matching Bullhorn User go to a reconciliation queue for the customer's Bullhorn admin to provision. Bullhorn User status (active or inactive) must reflect whether the person is currently employed and active in the recruitment workflow. Migration cannot proceed past employee record import until all Owner lookups are resolvable.
ClientCorporation entity mapping and provisioning
For each Paylocity Company ID, we create a Bullhorn ClientCorporation record with the company's legal name, address, and the Paylocity Company ID stored as an external ID. If the customer requires department-level separation within a ClientCorporation, we provision departments during this step. This step must complete before Candidate import so that the ClientCorporation lookup on Candidate is satisfied at insert time. Multi-Company-ID splits are logged with a de-duplication decision record so the customer has an auditable rationale for any record consolidation or splitting.
Candidate and Custom Object import in dependency order
We run production migration in record-dependency order: ClientCorporations (from Company IDs), then Candidates (with external ID fields set from Paylocity composite key, ClientCorporation lookup resolved, biographical and employment data mapped), then Custom Objects linked to Candidate (compensation history, benefits references, pay run snapshots, tax withholding snapshots, accrual balance snapshots). Each phase emits a row-count reconciliation report. Pay run and accrual snapshots migrate in reverse-chronological order with a maximum lookback window defined in the migration scope.
Employee document migration
Employee documents (offer letters, certifications, agreements) migrate as Bullhorn Candidate document attachments. We batch file uploads via Bullhorn's file attachment API, preserving original file names and setting document type based on Paylocity category metadata. Files exceeding Bullhorn's size limits are flagged, and we provide an alternative storage plan with URL-reference linking. Document migration runs after Candidate import completes so that Candidate ID lookups are available for attachment linking.
Cutover, validation, and payroll-handoff documentation
We freeze Paylocity write access during cutover and run a final delta migration of any records modified during the migration window. We validate record counts, spot-check 25-50 random Candidate records against Paylocity source data, and confirm all Custom Object relationships are intact. We deliver a payroll handoff document listing every employee's last payroll date, last pay run reference, and current tax withholding election snapshot so the customer's new payroll system administrator can re-establish payroll processing without gaps. Bullhorn workflows and automations do not migrate; we deliver a written inventory of Bullhorn automation opportunities for the customer's admin to rebuild using Bullhorn's workflow builder.
Platform deep dives
Paylocity
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Paylocity and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Paylocity and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Paylocity and Bullhorn ATS & CRM.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Paylocity: 1,500 calls per minute (Weblink API, as of Nov 2024); per-endpoint rate limits documented on the Paylocity Developer Portal — not publicly aggregated.
Data volume sensitivity
Paylocity doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Paylocity to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Paylocity to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Paylocity
Other ways to arrive at Bullhorn ATS & CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.