HRMS migration

Migrate from SAP SuccessFactors to Bullhorn ATS & CRM

Field-level mapping, validation, and rollback between SAP SuccessFactors and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.

SAP SuccessFactors logo

SAP SuccessFactors

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

83%

10 of 12

objects map 1:1 between SAP SuccessFactors and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

8-12 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from SAP SuccessFactors to Bullhorn is a domain shift from enterprise HCM to staffing-specific ATS-CRM. SuccessFactors stores the full employee lifecycle as PerPerson, PerEmployment, and MDF records; Bullhorn stores candidates, jobs, and placements as separate entities with a CRM layer for client relationships. We split the SuccessFactors PerPerson record into a Bullhorn Candidate (for active job-seekers) and a Contact (for placed or passive records), preserving employment dates, compensation components, and manager relationships in Bullhorn custom fields and placement history. The SuccessFactors Foundation Object hierarchy (corporate structure, cost centers, locations) maps to Bullhorn's corporate structure as nested Companies and Divisions. Bullhorn's Front Office editions limit custom objects to 10 (with 55 fields each on Enterprise); we scope custom MDF objects against that ceiling before migration. Workflows, performance forms, learning enrollments, and approval histories do not migrate; we deliver a written inventory for the customer's admin to rebuild in Bullhorn's automation framework.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

SAP SuccessFactors logo

SAP SuccessFactors

What's pushing teams away

  • The user interface is consistently described as complex and unintuitive, with even basic tasks requiring multiple clicks or steps that simpler HR tools handle directly.
  • Configuration and customization demand specialized SAP SuccessFactors expertise that organizations often lack internally, creating dependency on external consultants for routine changes.
  • Report creation is rigid and time-consuming compared to modern BI tools, frustrating HR analysts who need ad-hoc workforce insights.
  • Steep total cost of ownership — implementation alone runs $100K to over $1M, plus per-user licensing and ongoing consultant fees for a system that employees frequently resist adopting.
  • Organizations with lighter HR needs find SuccessFactors over-engineered for their use case and migrate to simpler platforms like BambooHR or ADP Workforce Now.

Choosing

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

What's pulling them in

  • Agencies choose Bullhorn because it combines ATS and CRM in one platform, eliminating the need to switch between separate tools for candidate management and client relationship tracking.
  • The resume parser extracts contact details, work history, and skills into structured, searchable candidate profiles automatically without manual data entry, reportedly driving 24% more placements per recruiter.
  • Bullhorn's placement and split-billing model natively supports contract staffing workflows, handling start/end dates, overtime rules, and multi-party pay/charge rates in a single record.
  • The platform offers extensive third-party integrations through its Recruitment Cloud Marketplace, connecting with back-office, onboarding, and payroll systems used by staffing agencies.
  • 72% of Bullhorn customers are teams with fewer than 10 users, and Bullhorn's implementation team handles setup and data migration for small agencies going live within weeks.

Object mapping

How SAP SuccessFactors objects map to Bullhorn ATS & CRM

Each row shows how a SAP SuccessFactors 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.

SAP SuccessFactors

PerPerson / PerPersonal (Employee Central)

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

SAP SuccessFactors PerPerson records (the core HRIS element) map to Bullhorn Candidate records. We extract name, email, phone, address, and nationality from PerPersonal and map them to Bullhorn's Candidate firstName, lastName, email, phone, and address fields. The SuccessFactors personIdExternal becomes a custom Bullhorn field ssf_person_id__c for dedupe and reconciliation. Active job-seekers (identified by a targetJobApplication status in the recruiting module) are prioritized as Candidate records; we preserve employment status and current title in Bullhorn custom fields rather than native fields since Bullhorn's Candidate model is ATS-centric.

SAP SuccessFactors

PerPerson / PerPersonal

maps to

Bullhorn ATS & CRM

Contact

1:1
Fully supported

SuccessFactors employees who will not be active candidates in the Bullhorn ATS (past employees, passive talent in the pipeline, or contractor records) migrate as Bullhorn Contact records. We map the same PerPersonal fields to Bullhorn Contact, with ssf_person_id__c carrying the original identifier. Contact records do not enter the ATS pipeline but are available for CRM workflows and candidate pools.

SAP SuccessFactors

PerEmployment (Employment Details)

maps to

Bullhorn ATS & CRM

Placement

1:1
Fully supported

SuccessFactors PerEmployment records carry job title, manager relationship, employment type (full-time, part-time, contractor), start date, and probation end date. We map these to Bullhorn Placement records attached to the Candidate, with employment type mapped to Bullhorn's empType field and manager chain preserved as a text custom field (since Bullhorn does not have a native manager hierarchy on Placement). Compensation components from MDF-based pay structures migrate as custom fields on the Placement record or as separate custom objects if the customer licenses Bullhorn Enterprise.

SAP SuccessFactors

JobCode / JobProfileLoc (Job Definitions)

maps to

Bullhorn ATS & CRM

Job Order

1:1
Fully supported

SAP SuccessFactors Recruiting Management job requisitions (jobReqNumber, jobReqTitle, jobReqStatus, hiringManager) map to Bullhorn JobOrder records. We extract the job title, description (rich text), requirements, and status from SuccessFactors Job Requisition OData endpoints and map them to Bullhorn JobOrder title, description, requirements, and status. The SuccessFactors jobReqId becomes jobOrderID for reconciliation. Open, on-hold, and filled statuses map directly to Bullhorn's JobOrder status values.

SAP SuccessFactors

Foundation Objects: Locations

maps to

Bullhorn ATS & CRM

Branch

1:1
Fully supported

SuccessFactors Foundation Object Locations (address, city, state, country, locationCode) map to Bullhorn Branch records. Bullhorn Branch stores office or branch location for staffing operations. We extract the location tree from Employee Central Foundation Object OData and reconstruct it as Bullhorn Branch records with address fields mapped 1:1. Multiple SuccessFactors locations map to one Branch if the customer consolidates offices.

SAP SuccessFactors

Foundation Objects: Divisions, Departments, Cost Centers

maps to

Bullhorn ATS & CRM

Company (corporate structure)

1:many
Fully supported

SuccessFactors corporate structure (BU-POD-Division-Department hierarchy from Foundation Objects) maps to Bullhorn Company records representing the customer's own corporate entities. We extract the full org tree from Foundation Object OData endpoints, preserve the parent-child hierarchy as Bullhorn Company records with a parentCompanyId reference, and store costCenterCode and divisionId as custom fields. This is a structural mapping, not a candidate-company mapping, and is scoped separately from external client Companies in Bullhorn.

SAP SuccessFactors

Custom MDF Objects

maps to

Bullhorn ATS & CRM

Custom Object

lossy
Mapping required

SuccessFactors MDF (Managed Framework) objects are customer-defined entities with custom fields, picklists, and effective-dating behavior. We perform schema discovery against the SuccessFactors generic-object metadata endpoint to enumerate all active MDF objects, then map them to Bullhorn custom objects. Bullhorn Enterprise editions allow up to 10 custom objects with 55 fields each (Front Office Growth/Enterprise) or 2 custom objects on ATS Growth. We audit the customer's MDF field count against this ceiling before migration and flag any overflow to the customer's Bullhorn admin for consolidation or archival. Custom field types (picklist, text, number, date) map to equivalent Bullhorn field edit types per the Bullhorn field type reference.

SAP SuccessFactors

Learning Assignments / Enrollments

maps to

Bullhorn ATS & CRM

Certification (on Candidate)

1:1
Fully supported

SAP SuccessFactors Learning course completions and certifications map to Bullhorn CandidateCertification records. We extract course title, completion date, expiration date, and certification status from the SuccessFactors Learning OData API (which operates under separate stricter rate limits from the main HXM Suite). Bullhorn CandidateCertification records are linked to the Candidate by candidateID. Active course enrollments (not yet completed) are optionally mapped to a custom field on Candidate if the customer requires in-progress training visibility; we scope this decision during discovery.

SAP SuccessFactors

Competency / Skill Profiles

maps to

Bullhorn ATS & CRM

Skill (on Candidate)

1:1
Fully supported

SuccessFactors Talent Intelligence Hub competency libraries and skill profiles (including translations across language packs) map to Bullhorn CandidateSkill records. We deduplicate the competency library before migration (SAP TIH migration is documented to produce duplicate competencies in target systems per SAP KB), flag inactive job-to-competency associations for customer review, and map competency names to Bullhorn CandidateSkill skillName. Proficiency level maps to Bullhorn skillLevel if populated in SuccessFactors.

SAP SuccessFactors

Time Off / Absence Records

maps to

Bullhorn ATS & CRM

Custom Object or Note

1:1
Fully supported

SuccessFactors time-off balances and absence records (entitlements, accrual rates, taken/pending balances) depend on the Time Off module being licensed. We export entitlement rows and balance data from Employee Central OData and map them to Bullhorn custom objects (if Bullhorn Enterprise with available custom object slots) or as formatted Note records attached to the Candidate. Approval history and comment threads are not exposed via standard OData and do not migrate. The customer's Bullhorn admin configures time-off tracking in Bullhorn or a paired payroll system post-migration.

SAP SuccessFactors

Compensation Information (MDF Pay Components)

maps to

Bullhorn ATS & CRM

Custom Fields on Placement or Custom Object

1:1
Fully supported

SuccessFactors compensation records (base salary, bonus, allowances, stock, pay frequency, currency) are stored in MDF-based pay structures with value types (fixed, percent, lump-sum) that require field-level mapping. We extract payComponent, payCompFixedAmount, currency, frequency, and effectiveDate from the SuccessFactors Compensation Information OData export and map them to Bullhorn custom fields on Placement (salary, bonusAmount, currency) or to a Compensation custom object. Effective-dated history (multiple compensation records over time) is stored as separate rows in Bullhorn with periodDate marking the effective period.

SAP SuccessFactors

Document Attachments (Employee Central)

maps to

Bullhorn ATS & CRM

Content Document Link (on Candidate)

1:1
Fully supported

Employee document attachments (offer letters, contracts, performance reviews stored in Employee Central) export via SuccessFactors Integration Center attachment outbound integrations. We route binary files to an SFTP target for Bullhorn to ingest, then link them to the corresponding Candidate record via Bullhorn's ContentDocumentLink mechanism. Only documents linked to the Candidate record (not org-level documents) migrate. The customer's Bullhorn admin configures the document storage repository before migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

SAP SuccessFactors logo

SAP SuccessFactors gotchas

High

Hard 1000-record API transfer ceiling

Medium

Default 1000 records per request causes timeout on heavy entities

Medium

Talent Intelligence Hub migration produces duplicate competencies

Medium

Learning module API has independent rate limits

Low

Custom MDF objects require schema inspection before migration

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM gotchas

High

ATS Growth edition has no API access

High

Attachments excluded from CSV bulk exports

Medium

Custom Object limits vary sharply by edition

Medium

Opportunity pipeline stages are recruitment-specific

Low

Resume parse quality varies by document format

Pair-specific challenges

  • Employee Central PerPerson maps to two Bullhorn record types

    SAP SuccessFactors PerPerson is a single unified employee record that carries personal details, employment details, and manager relationships in compound OData responses. Bullhorn does not have an equivalent single record. We must split each PerPerson into either a Candidate (active job-seeker or active placement) or a Contact (past employee, passive talent, contractor) based on the employee's status and the customer's intended use of Bullhorn. This split is designed during discovery and applied as a transform rule before any data is written. Migrations that skip this step create ambiguous records that cannot enter the Bullhorn ATS pipeline cleanly.

  • SuccessFactors 1000-record hard ceiling on OData exports

    SAP SuccessFactors OData API enforces a hard 1000-record ceiling per request (SAP KB 2925125). There is no $offset, no cursor, and no server-side continuation token. For migrations with headcounts above 1,000 employees, we implement sequential $top=1000 pagination with checkpoint state tracked between runs. This applies to PerPerson, PerEmployment, compensation records, and any MDF entity with more than 1,000 rows. Without chunking, the export silently truncates records with no error at the destination, producing incomplete data loads that are difficult to detect without a record-count reconciliation step.

  • Bullhorn custom object field limits vary by edition

    Bullhorn editions enforce hard limits on custom objects and fields: Front Office Growth and Enterprise allow up to 10 custom objects with 55 fields each, ATS Growth allows 2 custom objects with 55 fields, and ATS Growth (no suffix) allows none. SuccessFactors custom MDF objects can have dozens of fields per entity. We audit the customer's SuccessFactors MDF field inventory against the target Bullhorn edition's ceiling before migration begins. Any overflow (fields beyond 55 per custom object, or custom objects beyond the edition limit) is flagged for consolidation, archival, or a Bullhorn edition upgrade before migration proceeds.

  • SuccessFactors Talent Intelligence Hub competency migration risks duplicates

    SAP's documented migration failure mode for Talent Intelligence Hub includes duplicate competencies accumulating in the target system, inactive job-to-competency associations mapping to multiple roles, and incomplete competency translations across language packs. We run a pre-migration deduplication scan against the existing competency library before inserting new records and flag inactive job-competency associations for customer review. Without this step, Bullhorn CandidateSkill records accumulate duplicates that degrade search and reporting.

  • Learning module API has independent stricter rate limits

    SAP's rate-limiting postponement for the main HXM Suite (2H 2022) explicitly does not apply to Learning APIs, which were already under stricter rate limits before the announcement. We throttle Learning enrollment and completion exports to stay within documented Learning OData API limits, separate from any throttling applied to core Employee Central exports. For customers with large learning histories (thousands of course completion records), this adds sequential export time that extends the overall migration timeline.

Migration approach

Six steps for a successful SAP SuccessFactors to Bullhorn ATS & CRM data migration

  1. Discovery and edition alignment

    We audit the source SAP SuccessFactors tenant across licensed modules (Employee Central, Recruiting Management, Learning, Talent Management), headcount (PerPerson record count), org-structure depth (Foundation Object node count), active custom MDF object definitions, compensation data volume, and learning transcript count. We pair this with a Bullhorn edition assessment: Front Office Enterprise ($200/user/month) covers most migrations with up to 10 custom objects and 55 fields each; ATS Growth covers smaller migrations with 2 custom objects. The discovery output is a written migration scope, a custom object field-count reconciliation against the Bullhorn edition ceiling, and a recommendation for any Bullhorn edition upgrade needed before migration begins.

  2. Schema design and employee-to-candidate split rule

    We design the Bullhorn destination schema: custom objects (provisioned via Bullhorn admin, max 10 on Enterprise with 55 fields each), custom fields on Candidate and Placement (typed per Bullhorn field edit types), Branch records from SuccessFactors locations, and Company records for the corporate org structure. We define the employee-to-candidate split rule: employees with active job applications in SuccessFactors Recruiting map to Bullhorn Candidate; all others map to Bullhorn Contact. The rule is validated against sample data during this phase and adjusted before any production migration begins.

  3. SuccessFactors OData extraction with chunking

    We extract employee data from SAP SuccessFactors using the Compound Employee API and Foundation Object OData endpoints. PerPerson, PerEmployment, and PerPersonal records are extracted in sequential $top=1000 batches with checkpoint state tracked between runs to handle the hard 1000-record ceiling. Compensation data, learning enrollments, and competency profiles are extracted separately under their respective API rate limits. Any MDF entities use the generic-object metadata endpoint for schema discovery before field extraction. All extraction runs against a named read-only API user with minimal required permissions.

  4. Transformation and field mapping

    We transform the SuccessFactors extraction into Bullhorn-compatible payloads: PerPerson splits into Candidate or Contact records per the discovery rule; PerEmployment maps to Placement records with manager relationship stored as custom text; compensation pay components map to custom fields on Placement or a Compensation custom object; Foundation Object tree reconstructs as Bullhorn Company hierarchy; competencies deduplicate and map to CandidateSkill; learning completions map to CandidateCertification. All SuccessFactors IDs are preserved as custom fields (ssf_person_id__c, ssf_jobreq_id__c) for reconciliation after load. Language-pack translations on competencies and job profiles are carried as a secondary language field in Bullhorn.

  5. Bullhorn sandbox migration and reconciliation

    We run a full migration into Bullhorn's sandbox environment using production-like data volume. The customer's Bullhorn admin reconciles record counts (Candidates in, Contacts in, Placements in, Companies in, JobOrders in, Certifications in), spot-checks 25-50 random Candidate records against the SuccessFactors source, and validates the org-structure hierarchy in Bullhorn Companies. Any mapping corrections happen in sandbox before production migration. Bullhorn edition field limits are re-checked against the actual custom field count before production load.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Companies (corporate structure from Foundation Objects), Branches (locations), JobOrders (from SuccessFactors job requisitions), Candidates (with employee-to-contact split applied), Contacts (for non-candidate employees), Placements (with Compensation custom fields), CandidateSkill (competency deduplication applied), CandidateCertification (learning completions), and any custom object records last (after confirming Bullhorn edition ceiling is not exceeded). Each phase emits a row-count reconciliation report before the next phase begins. SuccessFactors API calls use exponential backoff on 429 responses; Bullhorn API calls use standard retry with the documented rate limit.

  7. Cutover, validation, and handoff

    We freeze SuccessFactors writes 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 all SuccessFactors workflows, approval chains, performance forms, and learning modules that do not migrate (Bullhorn does not have equivalent objects for these), with recommended rebuild steps in Bullhorn Automation or manual reconfiguration. We support a one-week hypercare window for reconciliation issues. Post-migration admin support, Bullhorn training, and automation rebuild are outside standard scope and require a separate engagement.

Platform deep dives

Context on both ends of the pair

SAP SuccessFactors logo

SAP SuccessFactors

Source

Strengths

  • Native integration with SAP S/4HANA and SAP ECC reduces the need for middleware when HR and finance systems must share data.
  • Comprehensive HCM coverage from recruiting through retirement reduces the number of HR tools an enterprise must manage and contract.
  • Scalable architecture handles organizations with 50,000+ employees without performance degradation under normal loads.
  • Standard MDF framework allows organizations to extend the data model for industry-specific or company-unique entities.
  • AI-first, suite-first strategy (SAP's stated direction) means continuous investment in embedded intelligence across the HXM Suite.

Weaknesses

  • User interface complexity and steep learning curve generate consistent negative feedback even from power users.
  • Report creation is rigid compared to modern BI platforms — ad-hoc workforce analysis often requires external tools.
  • API pagination is limited — large entities default to 1000 records per request with no $offset or cursor mechanism, causing timeouts on heavy objects.
  • Configuration requires specialized SuccessFactors consulting expertise, creating ongoing vendor dependency and high total cost of ownership.
  • Learning module API has separate rate limits that are stricter than the main HXM Suite OData API.
Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

Destination

Strengths

  • Unified ATS and CRM on one platform purpose-built for staffing agencies, eliminating separate tools for candidates and clients.
  • Automated resume parsing extracts structured candidate data—contact details, work history, skills—into searchable profiles instantly.
  • Native placement and split-billing model handles contract staffing workflows including start/end dates and overtime rules.
  • Bullhorn Recruitment Cloud Marketplace offers 100+ pre-validated third-party integrations spanning the full recruiting lifecycle.
  • 24/7 global support coverage from 350+ support staff with dedicated account management included at all tiers.

Weaknesses

  • Widely regarded as old and bloated with an unintuitive interface and steep learning curve for new recruiters.
  • Slow page loads and performance lag cited in over 200 verified G2 reviews during high-volume recruiting periods.
  • Pricing is opaque—custom-negotiated per organization with significant upfront implementation fees that vary by deal.
  • ATS Growth edition excludes API access entirely, preventing automated data export without upgrading first.

Complexity grading

How hard is this migration?

Standard HRMS migration. All 7 core objects map 1:1 between SAP SuccessFactors and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across SAP SuccessFactors and Bullhorn ATS & CRM.

  • Object compatibility

    A

    All 7 core objects map 1:1 between SAP SuccessFactors and Bullhorn ATS & CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    SAP SuccessFactors: 40 req/sec for OData APIs, 20 req/sec for SFAPIs; Learning OData APIs have separate stricter limits.

  • Data volume sensitivity

    A

    SAP SuccessFactors exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your SAP SuccessFactors to Bullhorn ATS & CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about SAP SuccessFactors to Bullhorn ATS & CRM data migrations

Answers to the questions buyers ask most during SAP SuccessFactors to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your SAP SuccessFactors to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between eight and twelve weeks for organizations under 5,000 employees with no custom MDF objects and a straightforward org structure. Migrations with custom MDF entities, multi-layer Foundation Object hierarchies (over 100 nodes), compensation history with multiple pay components, or learning enrollment data with thousands of course records extend to fourteen to twenty weeks because of schema discovery overhead, MDF-to-custom-object remapping against Bullhorn edition ceilings, and sequential rate-limit handling on the SuccessFactors Learning API side.

Adjacent paths

Related migrations to explore

Ready when you are

Move from SAP SuccessFactors.
Land in Bullhorn ATS & CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day