HRMS migration
Field-level mapping, validation, and rollback between Bullhorn Connexys ATS and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Bullhorn Connexys ATS
Source
BambooHR
Destination
Compatibility
9 of 11
objects map 1:1 between Bullhorn Connexys ATS and BambooHR.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Bullhorn Connexys ATS to BambooHR is a shift from a recruitment-agency ATS/CRM hybrid to a core HRIS with embedded applicant tracking. Bullhorn Connexys centres on Candidates, JobOrders, Accounts, and Placements with a Salesforce-backed data model and configurable pipelines; BambooHR centres on Employees, Applicants, and standard HR fields (PTO, benefits, payroll) with a lightweight ATS layer. The migration requires a careful split: recruiting-active candidates who represent future hires map to BambooHR Applicants, while employee records map to BambooHR Employee files. Placement records (hires made) map as completed employee records with start date and compensation preserved. Bullhorn Custom Objects, Job Reporting stage history, and Bullhorn-specific pipeline stages do not have direct BambooHR equivalents; we document these as configuration items for the customer to rebuild post-migration. We do not migrate Bullhorn Workflows, Sequences, or automation rules; we deliver a written inventory of these for the customer's admin to rebuild in BambooHR or a connected workflow tool.
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 Bullhorn Connexys ATS object lands in BambooHR, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Bullhorn Connexys ATS
Candidate
BambooHR
Applicant or Employee (split required)
1:manyBullhorn Candidate records split at migration time based on status. Candidates with no associated Placement and an active Application status map to BambooHR Applicant records via the BambooHR ATS Hiring API. Candidates with an associated Placement record (a hire outcome) map to BambooHR Employee records with the Placement start date, salary, and status preserved as the Employee start date and employment status. We flag any Candidate record with GDPR consent flags for the customer's admin to review before import, since BambooHR handles consent tracking differently from Bullhorn's native GDPR consent management.
Bullhorn Connexys ATS
Account (Client Company)
BambooHR
Company
1:1Bullhorn Account records representing client companies map to BambooHR Company records, which store the client's name, industry, and address. Bullhorn's billing and company-size fields map to custom fields in BambooHR. Account is created before any linked Contact or Placement import so that the relationship is satisfied at insert time. Multi-office Bullhorn Accounts (where one client has multiple offices) require a decision during scoping: flatten to one Company in BambooHR or use BambooHR's Locations feature to distinguish offices.
Bullhorn Connexys ATS
Contact
BambooHR
Employee (contact fields) or Applicant (contact fields)
1:1Bullhorn Contact records representing hiring managers and client-side contacts map to Employee records in BambooHR if they are internal employees of the company, or to Applicant contact fields if they are external contacts being tracked for reference. We preserve the Contact's email, phone, title, and any custom fields and map them to the corresponding BambooHR standard or custom fields. Account-Contact associations are preserved via the Company relationship in BambooHR.
Bullhorn Connexys ATS
JobOrder (Job)
BambooHR
Job Opening
1:1Bullhorn JobOrder records map to BambooHR Job Openings, which represent active and historical job postings. The JobOrder title, description, requirements, and salary range migrate as Job Opening fields. Bullhorn's job status (Open, Filled, Cancelled) maps directly to BambooHR Job Opening status. We map custom job fields as BambooHR custom fields on the Job Opening object. Any Bullhorn job fields that have no BambooHR equivalent are flagged as configuration items for the customer's admin to address post-migration.
Bullhorn Connexys ATS
Placement
BambooHR
Employee (completed hire)
1:1Bullhorn Placement records, representing confirmed hires that link Candidate to JobOrder with start date, salary, and placement status, map to BambooHR Employee records. The Placement start date becomes the Employee hire date. The placement fee (if tracked) migrates as a custom field. Placement status (Active, Extended, Terminated, Declined) requires a scoping decision: Active and Extended map to active Employee records; Terminated and Declined require a decision on whether to import as terminated Employee records or to exclude from the active migration scope.
Bullhorn Connexys ATS
Pipeline Stages (Job Reporting)
BambooHR
Applicant Stage
1:1Bullhorn's Job Reporting junction object tracks each Candidate's movement through pipeline stages with timestamps and associated User. BambooHR's ATS models applicant stages as a configurable pipeline (Applied, Phone Screen, Interview, Offer, Hired, Rejected). Bullhorn stage history (which tracks every transition through Application, Submittal, Interview, Offer, Placement) does not have a direct BambooHR equivalent. We migrate the most recent stage and the date of that transition as an Applicant custom field; full stage history is documented as a manual-rebuild item. Incomplete or inaccurate Job Reporting records in Bullhorn are flagged during discovery for the customer's admin to address before migration.
Bullhorn Connexys ATS
User (Owner/Recruiter)
BambooHR
Employee (with hiring role)
1:1Bullhorn User records representing recruiters, administrators, and managers map to BambooHR Employee records with the BambooHR user role set to reflect the Bullhorn access level. Owner assignment on Candidate, JobOrder, and Placement records links to the corresponding BambooHR Employee via the hireUserId field on Job Openings and Applicants. We resolve owners by email match and flag any Bullhorn User without a matching BambooHR Employee for the customer's admin to provision before record import.
Bullhorn Connexys ATS
Custom Object
BambooHR
Custom Fields (configuration required)
lossyBullhorn Custom Objects (extending Candidate, Contact, Account, Job, and Placement) with up to 55 fields each do not have a standalone equivalent in BambooHR. We migrate each Custom Object as a set of BambooHR custom fields on the corresponding standard object (Employee, Applicant, Company, Job Opening). Limits vary by Bullhorn edition: 2 Custom Objects on Bullhorn ATS, 10 on Front Office Growth/Enterprise. We audit the field types during discovery and map text, number, date, and picklist fields to their BambooHR equivalents; Bullhorn-specific types (Picker:Candidate, Picker:Client) require manual mapping decisions during scoping.
Bullhorn Connexys ATS
Attachment / Resume
BambooHR
Document
1:1Bullhorn resume files and attachments export via the REST API. We chunk large attachment batches to stay within Bullhorn's 100,000 API call monthly ceiling and 50 concurrent session cap. Resume files migrate to BambooHR Documents attached to the corresponding Applicant (for candidate resumes) or Employee (for onboarding documents) record. Parsed resume data from Bullhorn's resume parser migrates as standard and custom fields on the Applicant record rather than as raw file attachments alone.
Bullhorn Connexys ATS
Tax Info and Compliance Data
BambooHR
Employee (custom fields)
1:1Bullhorn Candidate Tax Info captures federal filing status and exemptions that may be relevant for placed employees. GDPR consent flags on Candidate records require special handling: we map consent status to BambooHR Employee custom fields for GDPR-relevant records and flag any consent records that need explicit re-collection under the customer's data governance policy post-migration. Regional compliance fields vary by Bullhorn instance configuration and are mapped individually during discovery.
Bullhorn Connexys ATS
Activity / Notes
BambooHR
Note or Comment
1:1Bullhorn activity feeds and notes on Candidate, Contact, JobOrder, and Placement records export via API with timestamps and note body text. We map note content to BambooHR Notes on the corresponding Applicant or Employee record. Activity type (email, call, meeting, task) does not have a structured equivalent in BambooHR; we store the activity type as a Note tag or custom field. Bullhorn's activity timeline ordering is preserved by sorting on the original timestamp during import.
| Bullhorn Connexys ATS | BambooHR | Compatibility | |
|---|---|---|---|
| Candidate | Applicant or Employee (split required)1:many | Fully supported | |
| Account (Client Company) | Company1:1 | Fully supported | |
| Contact | Employee (contact fields) or Applicant (contact fields)1:1 | Fully supported | |
| JobOrder (Job) | Job Opening1:1 | Fully supported | |
| Placement | Employee (completed hire)1:1 | Fully supported | |
| Pipeline Stages (Job Reporting) | Applicant Stage1:1 | Fully supported | |
| User (Owner/Recruiter) | Employee (with hiring role)1:1 | Fully supported | |
| Custom Object | Custom Fields (configuration required)lossy | Fully supported | |
| Attachment / Resume | Document1:1 | Fully supported | |
| Tax Info and Compliance Data | Employee (custom fields)1:1 | Mapping required | |
| Activity / Notes | Note or Comment1: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.
Bullhorn Connexys ATS gotchas
API rate limits cap bulk migration throughput
Connexys edition tier governs Custom Object limits
Job Reporting stage history can be incomplete
Bullhorn does not publish pricing publicly
BambooHR gotchas
Undocumented API rate limits can trigger 503 errors
Per-employee pricing model requires active record count verification
API credentials must be sent on every request to avoid extra round trips
Custom field schema varies per account and requires manual inventory
Document and attachment exports are not covered by standard report exports
Pair-specific challenges
Migration approach
Discovery and Bullhorn edition audit
We audit the source Bullhorn Connexys ATS instance across edition tier (Bullhorn ATS, Corporate, or Front Office Growth/Enterprise), API access credentials, Candidate and Placement volumes, active JobOrder count, Custom Object definitions and field counts, Job Reporting completeness, and Bullhorn Workflow inventory. We also establish whether the migration scope includes active recruiting pipelines (Candidates with no Placement) or historical placement records only, or both. The discovery output is a written migration scope document and a Bullhorn-to-BambooHR field mapping matrix.
Candidate-to-Applicant and Placement-to-Employee split design
We design the split logic for Bullhorn Candidate records: active candidates without a Placement become BambooHR Applicants; candidates with a Placement become BambooHR Employee records. We define the Placement status handling (Active, Extended, Terminated, Declined) and confirm with the customer's HR lead before migration runs. We design the BambooHR custom field schema to accommodate Bullhorn Custom Object data and flag any field types without a direct BambooHR equivalent for manual resolution during scoping.
BambooHR sandbox setup and field mapping validation
We set up a BambooHR test environment and deploy the custom field schema. We validate the field mapping matrix by running a pilot migration of a representative subset (50-100 records) of Bullhorn Candidates and Placements. The customer's HR lead reviews the imported records against the source system, confirms the Applicant versus Employee split logic, and signs off before production migration begins. Any mapping corrections happen here, not in production.
Owner reconciliation and user provisioning
We extract every distinct Bullhorn User referenced on Candidate, Placement, and JobOrder records and match by email against the BambooHR destination account's Employee table. Any Bullhorn User without a matching BambooHR Employee goes to a reconciliation queue. The customer's admin provisions any missing BambooHR users (with appropriate role assignments) before record import proceeds. Owner assignments on Bullhorn records are stored as a custom field on the corresponding BambooHR record during migration.
Production migration in dependency order
We run production migration in record-dependency order: Companies (from Bullhorn Accounts), Job Openings (from Bullhorn JobOrders), Employees (from Bullhorn Placements), Applicants (from Bullhorn Candidates without Placements), Documents and resumes, Notes and activity history, and custom field data last. Bullhorn API rate-limit pacing applies throughout the export phase; we chunk large record sets and run exports during off-peak periods to stay within the 100,000-call monthly ceiling. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and Workflow rebuild handoff
We freeze Bullhorn writes during cutover, run a final delta migration of any records modified during the migration window, then enable BambooHR as the system of record for HR data. We deliver the Bullhorn Workflow and automation inventory document to the customer's admin team. We support a one-week hypercare window where we resolve any data reconciliation issues raised by the customer's HR team. We do not rebuild Bullhorn Workflows as BambooHR automations inside the migration scope; that work is a separate engagement.
Platform deep dives
Bullhorn Connexys ATS
Source
Strengths
Weaknesses
BambooHR
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Bullhorn Connexys ATS and BambooHR.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Bullhorn Connexys ATS and BambooHR.
Object compatibility
All 7 core objects map 1:1 between Bullhorn Connexys ATS and BambooHR.
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
Bullhorn Connexys ATS: 100,000 API calls per month per org; 50 concurrent sessions maximum.
Data volume sensitivity
Bullhorn Connexys ATS exposes a bulk API — large-volume migrations stream efficiently.
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 Bullhorn Connexys ATS to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Bullhorn Connexys ATS to BambooHR migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Bullhorn Connexys ATS
Other ways to arrive at BambooHR
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.