HRMS migration
Field-level mapping, validation, and rollback between Sympa and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Sympa
Source
Bullhorn ATS & CRM
Destination
Compatibility
5 of 12
objects map 1:1 between Sympa and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Sympa HRMS and Bullhorn serve fundamentally different operating models. Sympa is an employee lifecycle HRMS built for multi-country workforce management, with core objects for employees, org units, compensation timelines, and time-off balances. Bullhorn is an ATS and recruitment CRM built for staffing agencies, with a data model centered on Candidates, Contacts, Corporations, Jobs, and Placements. There is no native employee-hire-to-offboarding object in Bullhorn. We close that gap during migration by mapping Sympa Employee records to Bullhorn Candidate records with all employment history, compensation, and time-off data stored as custom fields or custom objects, subject to Bullhorn's edition-specific limits. We perform live schema discovery on the Sympa API during scoping, audit every custom field before field mapping, and resolve the Bullhorn edition tier early so that custom object allocations match the data volume being migrated.
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 Sympa 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.
Sympa
Employee
Bullhorn ATS & CRM
Candidate (primary) and Contact (secondary)
1:1Sympa Employee records map to Bullhorn Candidate as the primary record type. We map Employee ID to Bullhorn candidateID, firstName and lastName to the standard name fields, employmentStartDate to a custom date field (since Bullhorn Candidate has hireDate and terminationDate fields scoped to placements, not general employment), and employmentStatus to a custom picklist field capturing active, on_leave, and terminated states. Where the migration also serves a client-facing CRM function, we create parallel Contact records for individuals who appear in both an HR capacity and a client or vendor capacity, using a custom field employeeSourceID__c to link the two records and avoid duplication.
Sympa
Organizational Structure (Org Unit and Department)
Bullhorn ATS & CRM
Corporation and custom object or custom fields
1:manySympa stores org units and department hierarchies with parent-child relationships. Bullhorn does not have a native org chart object; department and division information lives on the Corporation record or requires a custom object. We map each Sympa Org Unit to a Bullhorn Corporation record when the unit represents a legal employer entity, and to a custom Department object (linked to Corporation via a lookup) when it represents an internal cost center or team. Reporting chain information (manager relationships) migrates as a custom managerID__c field on the Candidate record, populated by resolving the manager's Employee ID to a Bullhorn User or to the manager's Candidate record.
Sympa
Compensation History
Bullhorn ATS & CRM
Custom object (Compensation Record) or custom fields on Candidate
1:manySympa stores salary, bonus, and equity records as effective-dated entries per Employee. Bullhorn has no standard compensation object on Candidate. We create a custom Compensation Record object with fields for effectiveDate, baseSalary, bonusAmount, equityGrant, and currency, linked to the Candidate via a lookup relationship. If Bullhorn Enterprise is in use, we use one of the ten available custom objects for this; if Bullhorn ATS (capped at two custom objects) is the destination, we store the most recent compensation record as a set of custom fields on the Candidate object and document the full compensation timeline for manual re-entry or a payroll integration setup.
Sympa
Time-Off Balances
Bullhorn ATS & CRM
Custom fields or manual reconfiguration
lossySympa tracks accrued time-off balances per Employee per leave type as snapshot values. Bullhorn ATS does not have a native time-off or PTO object. We assess whether the destination Bullhorn edition has a Bullhorn Time & Expense module (a separate product formerly myPeopleNet) that handles PTO tracking. If so, we document the time-off balance import requirements for that module. If not, we migrate the most recent balance values as custom fields on the Candidate record (e.g., vacationBalance__c, sickBalance__c) and flag for the customer's admin that accrual rules must be configured manually post-migration. Accrued balances are point-in-time snapshots and cannot be reconciled against accrual rules during migration.
Sympa
Employment History
Bullhorn ATS & CRM
Custom fields or custom object on Candidate
1:manySympa records job title changes, department transfers, and manager updates as effective-dated events per Employee. Bullhorn Candidate has a title field and a employmentHistory custom field, but no native employment history object. For short tenure histories (fewer than five role changes per employee), we store the most recent role as the standard title field and previous roles in a custom multi-line text field or a custom Employment History object. For complex histories, we create a custom object linked to Candidate to preserve the full chronological sequence.
Sympa
Users and Roles
Bullhorn ATS & CRM
User (Bullhorn) and role configuration
1:1Sympa HRMS assigns roles and permissions to Users who may or may not map 1:1 to Employee records. We distinguish between Sympa users who are HR administrators (mapped to Bullhorn User records with Admin usertype), users who are employees without system access (mapped to Candidate only, no Bullhorn User), and users who are recruiters or staffing managers (mapped to Bullhorn User with appropriate role). Bullhorn role and permission settings require manual configuration post-migration; we provide a role mapping document listing each Sympa role and its recommended Bullhorn permission set.
Sympa
Custom Fields
Bullhorn ATS & CRM
Custom fields or custom objects on Bullhorn entities
lossySympa allows administrators to create custom fields on Employee and related objects without schema governance controls. We audit every custom field during scoping by requesting a full custom field export from the customer's Sympa tenant. Each custom field is then mapped to a Bullhorn custom field on the appropriate entity (Candidate, Contact, Corporation, Job, Placement) or to a custom object if Bullhorn's 55-field limit per entity is reached. Bullhorn ATS editions impose different custom object caps: Bullhorn ATS Growth has zero, Bullhorn ATS has two, and Front Office Growth and Enterprise have ten. We confirm the destination edition during scoping and adjust the mapping strategy accordingly.
Sympa
Documents (contracts, certifications, compliance records)
Bullhorn ATS & CRM
FileAttachments on Candidate or Contact
1:1Employee documents such as contracts, certifications, and compliance records attach to Employee records in Sympa. We migrate file attachments and map them to Bullhorn's FileAttachments linked to the corresponding Candidate record. Bullhorn supports file uploads via its REST API with a 25 MB per-file limit. We validate that all source document types (PDF, DOCX, image formats) are supported by Bullhorn's file preview, and we flag any file that exceeds the size limit for manual handling. Where Sympa stores document metadata (issue date, expiry date, document type), we map these to custom fields on the FileAttachment or to a custom document metadata object.
Sympa
Job (Sympa recruitment module, if in use)
Bullhorn ATS & CRM
JobOrder (Bullhorn)
1:1If the Sympa tenant includes a recruitment or job posting module, open positions migrate to Bullhorn JobOrder records. We map jobTitle to title, jobDescription to description, employmentType to employmentType, and location to address. Sympa job categories map to Bullhorn categories using a lookup table built during scoping. Job status (open, filled, closed) maps to Bullhorn JobOrder status values. Candidate applications attached to Sympa job postings migrate as CandidateSubmission records in Bullhorn, preserving the candidate-to-job relationship.
Sympa
Leave Requests
Bullhorn ATS & CRM
Custom fields or external leave management
lossySympa leave request records represent historical time-off approvals. Bullhorn ATS does not have a leave request object. We migrate leave request records as entries in a custom Leave Request object or as rows in a structured custom text field on the Candidate record, capturing leaveType, startDate, endDate, status, and approvalDate. We flag that active leave request workflows from Sympa do not migrate to Bullhorn, and that the customer should configure leave request approval processes in Bullhorn or in a separate HR system post-migration.
Sympa
Employee Benefits Enrollment
Bullhorn ATS & CRM
Custom fields or documentation
lossySympa may store benefit enrollment information (health plan, dental, retirement contribution rates) per Employee. Bullhorn ATS has no benefits enrollment object. We map active benefit enrollments to custom fields on the Candidate record (benefitPlan__c, retirementContributionRate__c, etc.) and store historical enrollment records as a custom Benefits History object if Bullhorn Enterprise is the destination and a custom object slot is available. We document benefit enrollment data that cannot be mapped as a CSV export for the customer's benefits administrator to reconcile.
Sympa
Candidate (Sympa recruitment module, if in use)
Bullhorn ATS & CRM
Candidate (Bullhorn)
1:1Where Sympa's recruitment module is in use, candidate profiles stored in Sympa migrate to Bullhorn Candidate records directly. We map candidate name, email, phone, and address to Bullhorn's standard Candidate fields. Work history and education from Sympa migrate to Bullhorn's custom2 and custom3 fields or to a custom Work History object. Skills and competencies stored as custom fields in Sympa map to Bullhorn skillCustomText fields or to a custom Skills object. Candidate status in Sympa maps to a custom picklist reflecting the customer's recruitment pipeline stages.
| Sympa | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee | Candidate (primary) and Contact (secondary)1:1 | Fully supported | |
| Organizational Structure (Org Unit and Department) | Corporation and custom object or custom fields1:many | Fully supported | |
| Compensation History | Custom object (Compensation Record) or custom fields on Candidate1:many | Mapping required | |
| Time-Off Balances | Custom fields or manual reconfigurationlossy | Mapping required | |
| Employment History | Custom fields or custom object on Candidate1:many | Mapping required | |
| Users and Roles | User (Bullhorn) and role configuration1:1 | Mapping required | |
| Custom Fields | Custom fields or custom objects on Bullhorn entitieslossy | Mapping required | |
| Documents (contracts, certifications, compliance records) | FileAttachments on Candidate or Contact1:1 | Fully supported | |
| Job (Sympa recruitment module, if in use) | JobOrder (Bullhorn)1:1 | Fully supported | |
| Leave Requests | Custom fields or external leave managementlossy | Fully supported | |
| Employee Benefits Enrollment | Custom fields or documentationlossy | Fully supported | |
| Candidate (Sympa recruitment module, if in use) | Candidate (Bullhorn)1: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.
Sympa gotchas
No public API documentation or developer portal
Custom fields require manual audit before migration
Time-off balance migration depends on destination accrual rules
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
Scoping, edition confirmation, and Sympa API discovery
We begin by confirming the destination Bullhorn edition (Team, Corporate, or Enterprise) and the Bullhorn Time & Expense add-on status, since these decisions determine custom field and custom object allocation. We request Sympa API credentials and perform live schema discovery to enumerate all available objects, fields, custom fields, and relationship endpoints. We also request a full custom field export from the customer's Sympa tenant. The scoping output is a written migration scope document including the confirmed Bullhorn edition, the object-to-object mapping matrix, the custom field audit results, and the Bullhorn custom object request ticket (if Enterprise is required).
Bullhorn custom object and custom field provisioning
If the migration scope requires Bullhorn custom objects (for compensation history, org structure, or benefits enrollment), we prepare and submit the Bullhorn Custom Object Setup Spreadsheet to Bullhorn Support before migration begins. Bullhorn Support provisions the custom objects, which must exist in the Bullhorn tenant before any data can be loaded into them. While waiting for provisioning, we configure standard Bullhorn custom fields on the Candidate, Contact, and Corporation entities using Bullhorn's Field Mappings tool (Admin > Field Mappings), defining field display names, data types, picklist values, and required/optional status. We set up record types and page layouts for any non-standard Candidate workflows.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn sandbox environment using production-like data volume. The customer's Bullhorn administrator reconciles record counts (Candidates in, Contacts in, Corporations in, custom object records in), spot-checks 25-50 random records against the Sympa source data, and reviews custom field values for accuracy. Bullhorn saved searches and reports are validated to confirm the migrated data surfaces correctly in Bullhorn's reporting tools. Any mapping corrections are documented and applied to the production migration plan before cutover. Bullhorn's New Candidate List has different field logic than the legacy list; we test searches against both until the customer confirms which Candidate List experience is in use.
User and role reconciliation
We extract every distinct Sympa User referenced on Employee, Org Unit, and Document records and categorize each as an HR administrator, employee without system access, or staffing manager. HR administrators map to Bullhorn User records with Admin usertype; employees without access map to Candidate records only; staffing managers map to Bullhorn User records with the appropriate Bullhorn role. The customer's Bullhorn administrator provisions any missing Bullhorn Users and assigns roles. Migration cannot proceed past user provisioning because OwnerId and assignedTo references are required on Candidate and JobOrder records.
Production migration in dependency order
We run production migration in record-dependency order: Bullhorn Users (manual, validated), Corporations (from Sympa Org Units), Candidates (with employment date, status, and org assignment custom fields resolved), Contacts (for dual-role individuals), custom object records for compensation and benefits history (if Bullhorn Enterprise), JobOrders (for Sympa recruitment module records), FileAttachments (via Bullhorn REST API file upload), and CandidateSubmissions (linking candidates to job orders). Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn's REST API handles custom field population and file uploads; we apply rate-limit handling and exponential backoff per Bullhorn's documented API limits.
Cutover, validation, and automation rebuild handoff
We freeze Sympa write access during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver a written inventory of any Sympa automations, workflows, or approval processes that cannot migrate to Bullhorn as code, with Bullhorn configuration equivalents noted for each. This includes leave request approval workflows (to be configured in Bullhorn or a separate HR system), role-based access rules (to be set in Bullhorn Admin > Users), and any Bullhorn saved searches that require adjustment for the New Candidate List field behavior. We support a one-week hypercare window for reconciliation issues and do not rebuild Sympa workflows, automations, or approval chains as part of the standard migration scope.
Platform deep dives
Sympa
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 2 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Sympa and Bullhorn ATS & CRM.
Object compatibility
2 of 7 objects need a mapping; the rest are 1:1.
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
Sympa: Not publicly documented in the SympaHR Integration API documentation — confirmed during scoping..
Data volume sensitivity
Sympa 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 Sympa to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Sympa 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 Sympa
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.