HRMS migration

Migrate from SAP SuccessFactors to Recruit CRM & ATS

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

SAP SuccessFactors logo

SAP SuccessFactors

Source

Recruit CRM & ATS

Destination

Recruit CRM & ATS logo

Compatibility

73%

8 of 11

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

SAP SuccessFactors and Recruit CRM serve different segments of the talent acquisition market, and the migration path reflects that gap. SuccessFactors is a full HXM suite where recruiting is one module among many: Employee Central, Talent Management, Learning, and Onboarding. Recruit CRM is a dedicated ATS and CRM built for recruitment agencies and in-house talent teams that want a focused tool rather than an enterprise HCM suite. The migration moves recruiting-specific data (Candidates, Jobs, Applications, Client Companies, Contacts, Engagements) while leaving SuccessFactors workflows, talent profiles, and compensation data as documented-but-not-migrated scope. The key technical challenge is the SAP OData API's 1,000-record hard ceiling on exports and the absence of server-side cursor pagination, which we resolve with sequential batch extraction and checkpoint tracking. Recruit CRM's API is REST-based with a 60-request-per-minute rate limit, which we respect through request throttling and exponential backoff. We do not migrate SuccessFactors automations, approval workflows, or configured forms; we deliver a written inventory for the customer's admin to rebuild in Recruit CRM's workflow builder.

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

Recruit CRM & ATS logo

Recruit CRM & ATS

What's pulling them in

  • Agencies choose Recruit CRM for its full customizability — pipelines, stages, and fields can be tailored to any recruitment workflow without developer involvement.
  • Small teams value the built-in CRM and ATS combined in one subscription, eliminating the need to purchase and sync separate systems.
  • The Chrome extension for one-click LinkedIn profile collection streamlines candidate sourcing and reduces manual data entry for recruiters.
  • Responsive customer support with fast issue resolution is consistently cited as a reason teams stick with the platform long-term.
  • Automation options including email sequences and workflow triggers allow recruitment agencies to reduce repetitive manual outreach tasks.

Object mapping

How SAP SuccessFactors objects map to Recruit CRM & ATS

Each row shows how a SAP SuccessFactors object lands in Recruit CRM & ATS, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

SAP SuccessFactors

Candidate Profile

maps to

Recruit CRM & ATS

Candidate

1:1
Fully supported

SAP SuccessFactors Candidate (PerPerson and associated PerPersonal HRIS elements) maps to Recruit CRM Candidate records via the Candidate API endpoint. Standard fields (name, email, phone, address) migrate directly. Custom candidate fields stored as MDF picklist or string values migrate to Recruit CRM custom candidate fields, which we create during schema discovery. We resolve the candidate's status (active application vs passive profile) from SuccessFactors application associations. SAP compound employee email (emailPersonal/emailWork) maps to Recruit CRM's email_work and email_home fields with primary email flagged by SAP preferred_email_type.

SAP SuccessFactors

Job Requisition

maps to

Recruit CRM & ATS

Job

1:1
Fully supported

SAP SuccessFactors Job Requisition (RCM Requisition entity) maps to Recruit CRM Job records via the Jobs API. Fields including title, description, department, location, employment type, and salary range migrate directly. SAP's position-to-requisition associations (documented in SAP KB 2925869, where position fields require FORMAT function mapping) are stored as custom job fields in Recruit CRM because Recruit CRM does not maintain a Position Management hierarchy. Requisition status (draft, open, filled, cancelled) maps to Recruit CRM job status with a direct value translation table.

SAP SuccessFactors

Application

maps to

Recruit CRM & ATS

Candidate Job Applied

1:1
Fully supported

SAP SuccessFactors Application records (linking Candidate to Job Requisition with stage and timestamp) map to Recruit CRM Candidate Job Applied records. The application stage (applied, screening, interview, offer, hired, rejected) maps to Recruit CRM's candidate_job_status values. Application submission date and last-modified date migrate as created_at and updated_at timestamps. Historical stage transitions migrate as candidate_job_stage records if Recruit CRM's data model supports stage history, or as a JSON blob in a custom notes field for admin review.

SAP SuccessFactors

Corporate Structure (Foundation Objects)

maps to

Recruit CRM & ATS

Organization / Department

1:many
Fully supported

SAP SuccessFactors Foundation Objects (Division, Department, Business Unit, Location) map to Recruit CRM's organizational hierarchy. Multi-level SAP hierarchies collapse into Recruit CRM's flat organization structure with department as a primary tag. Cost center codes from SAP migrate as a custom field on the Department record. If SAP uses Position Management for org structure, we extract the reports-to chain and map it to Recruit CRM's user hierarchy for recruiter assignment.

SAP SuccessFactors

JobCode and JobProfile

maps to

Recruit CRM & ATS

Skill

lossy
Fully supported

SAP JobCode and JobProfileLoc MDF objects contain job classification data that has no direct Recruit CRM equivalent. We extract job family, job level, and competency associations as Recruit CRM Skills attached to Job records. Competency names from the SAP Talent Intelligence Hub migrate as Skills with the original SAP competency ID stored in a custom field for reference. Skills without a Recruit CRM equivalent are created during migration and flagged for the customer's admin to assign icons and categories.

SAP SuccessFactors

Recruiting Engagement (Emails, Notes, Tasks)

maps to

Recruit CRM & ATS

Candidate Activity / Notes

1:1
Fully supported

SAP SuccessFactors Recruiting email threads, notes, and tasks attached to candidates or applications map to Recruit CRM Candidate Activities. Email body content migrates as activity records of type email; manual tasks migrate as activity records of type task. Attachments (offer letters, resume files) export via SAP Integration Center attachment outbound integrations and are uploaded to Recruit CRM via the Candidate document endpoint or as base64-encoded file attachments on the candidate record. SAP's SFTP file delivery method requires us to download files before upload, adding a step to the pipeline.

SAP SuccessFactors

Interview and Interview Feedback

maps to

Recruit CRM & ATS

Interview Schedule / Candidate Notes

1:1
Fully supported

SAP SuccessFactors Interview schedules and feedback forms migrate to Recruit CRM interview records and candidate notes. Interview scorecards stored as SAP MDF forms with rating scales require transformation to Recruit CRM's interview rating structure, which may involve collapsing multi-dimension scorecards into a single overall rating or distributing them across multiple custom fields if Recruit CRM's schema supports it. We flag incomplete mappings during schema discovery and deliver a written field-level recommendation.

SAP SuccessFactors

Talent Pool / Candidate Community

maps to

Recruit CRM & ATS

Candidate List / Talent Pool

1:1
Fully supported

SAP SuccessFactors Talent Pools (managed via Recruiting Marketing or Talent Intelligence Hub) map to Recruit CRM Candidate Lists. We extract the talent pool membership records, including creation date and membership source (sourced, referred, applied), and create corresponding Candidate List entries in Recruit CRM. Duplicate candidate detection runs against the merged candidate database to prevent list inflation from candidates already in the system.

SAP SuccessFactors

Offer and Offer Details

maps to

Recruit CRM & ATS

Job Applied (offer status)

1:1
Fully supported

SAP SuccessFactors offer records (offer amount, start date, benefits package, approval status) map to Recruit CRM's candidate_job status with offer extended or offer accepted values. Offer details that exceed Recruit CRM's standard fields migrate as JSON in a custom notes field. Offer approval workflow history from SAP does not migrate as a functional workflow in Recruit CRM; we document the approval chain in a written handoff for the customer's admin to configure in Recruit CRM's workflow builder.

SAP SuccessFactors

Custom MDF Objects (Recruiting)

maps to

Recruit CRM & ATS

Custom Fields (Candidate, Job, Application)

lossy
Fully supported

SAP SuccessFactors custom MDF objects created in the RCM context (documented in SAP KB 3276791 for RCM-to-MDF field mapping) require a schema discovery step against Recruit CRM's candidate and job custom field metadata before migration. We inspect the MDF object field types (picklist, string, date, user, fo-entity) and map them to the closest Recruit CRM field type, flagging any unsupported type (such as SAP Foundation Object entity references) for manual resolution. SAP picklist option IDs migrate as string values with a lookup table delivered alongside the migration output.

SAP SuccessFactors

Employee Central Employee (hired candidate)

maps to

Recruit CRM & ATS

Candidate (flagged as hired)

1:1
Fully supported

SAP SuccessFactors Employee Central records created from a hired candidate (PerPerson with hire date set) migrate to Recruit CRM as Candidate records with a custom hired flag set to true. We do not migrate the full Employee Central HRIS data model (compensation, benefits, time off) as that falls outside Recruit CRM's scope as a recruitment platform. The candidate's hire date, start date, and initial job title from SAP EC migrate as fields on the Recruit CRM candidate record for reporting purposes.

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

Recruit CRM & ATS logo

Recruit CRM & ATS gotchas

High

API rate limits are license-scaled and can throttle bulk migration

Medium

Custom field schemas vary per organization and require field-level mapping

Medium

Files and email attachments require separate extraction and re-upload

Low

Email sequences and automation logic do not transfer between platforms

Pair-specific challenges

  • SAP OData 1,000-record ceiling requires batch sequencing

    SAP SuccessFactors OData API enforces a hard 1,000-record ceiling per request on Compound Employee and Employee Central exports (confirmed in SAP KB 2925125 and source platform documentation). There is no $offset or cursor mechanism. We implement checkpoint-based sequential extraction: we request records 1–1,000, capture the last record's key as a checkpoint, request 1,001–2,000 using the checkpoint as the filter anchor, and repeat until the full dataset is extracted. This approach is slower than cursor pagination but guaranteed complete. Without this, records 1,001 and beyond are silently truncated with no error response, resulting in partial candidate and application histories at the destination.

  • SAP MDF custom fields lack universal export schema

    SAP SuccessFactors Managed Framework (MDF) objects are customer-defined, meaning field names, picklist IDs, and effective-dating behavior vary between tenants. The SAP RCM-to-MDF mapping documented in SAP KB 3276791 shows that even standard RCM fields require FORMAT function transformations to map into MDF objects. We perform a schema discovery run against the target SAP tenant's generic-object metadata endpoint before building the field map. Any MDF field referencing a Foundation Object entity (division, department, location) requires an additional lookup to resolve the FO external code at migration time. Migrations that skip schema discovery produce null or rejected fields at the Recruit CRM destination.

  • Recruit CRM API rate limit of 60 requests/minute constrains throughput

    Recruit CRM's API enforces 60 requests per minute per API token (confirmed in Recruit CRM API documentation). This is a lower throughput ceiling than many enterprise APIs. We implement request throttling at 50 requests/minute to stay within the limit with a 10-request buffer for error recovery retries. For migrations exceeding 10,000 candidate records, this extends the total migration duration because we cannot parallelize writes. SAP's OData export is typically the bottleneck, not the Recruit CRM write rate, but large delta migrations after cutover may be rate-limited.

  • SAP SFTP attachment export requires intermediate file handling

    SAP SuccessFactors exports binary attachments (resume files, offer letter PDFs, signed contracts) via Integration Center SFTP outbound integrations rather than the OData API. Recruit CRM accepts file uploads via its REST API as multipart form data or base64-encoded JSON. We download SAP SFTP exports to an intermediate storage bucket, validate file types and sizes against Recruit CRM's upload limits, then upload to Recruit CRM linked to the corresponding candidate or application record. This two-step file pipeline adds latency and requires the customer to configure the SAP SFTP outbound integration before migration begins.

  • SAP position-to-requisition mapping requires manual field transformation

    SAP Knowledge Base article 2925869 documents that position fields are not available in the Position-to-Job Requisition mapping rule and require FORMAT function transformation to map as text fields. Positions stored in SAP Employee Central Position Management have attributes (budgeted headcount, reports-to, job association) that Recruit CRM does not model as structured objects. We extract position data as flat custom fields on the Job record and document the position hierarchy separately for the customer's admin to recreate as Recruit CRM organizational tags if needed.

Migration approach

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

  1. Discovery and source tenant audit

    We audit the SAP SuccessFactors tenant across modules licensed (RCM, EC, Talent Management, Learning), record volumes per entity (candidates, applications, job requisitions, attachments), active MDF objects in the RCM context, and existing SFTP attachment exports configured in Integration Center. We pair this with a Recruit CRM account audit to identify active pipeline stages, custom fields already configured, user count, and API token access. The discovery output is a written migration scope with entity counts, a preliminary field map for the ten core objects, and a list of MDF fields requiring schema discovery before mapping.

  2. MDF schema discovery and field map construction

    We run a schema discovery step against SAP's generic-object metadata endpoint for each active RCM-related MDF object to retrieve field names, data types, picklist option IDs, and FO entity references. We simultaneously inspect Recruit CRM's candidate, job, and candidate_job custom field metadata via the Recruit CRM API. We then construct the field map, resolving SAP picklist option IDs to readable label values (delivered as a CSV lookup table), SAP FO entity external codes to Recruit CRM department and location IDs, and SAP effective-dated fields to static snapshot values taken at the migration date.

  3. Checkpoint-based SAP data extraction in batches

    We export all source entities using our checkpoint-based batch extraction against the SAP OData API. We process records in groups of 1,000 using the last-seen record key as the anchor for the next batch, tracking each checkpoint in a migration state file. This ensures that no records are silently truncated. For attachments, we trigger and wait for the SAP Integration Center SFTP export, then download files to an intermediate S3 bucket. Each extraction phase emits a row count reconciled against the source system before transform begins.

  4. Transform, deduplicate, and validate

    We transform extracted records against the field map: SAP picklist IDs become label values, FO entity codes resolve to Recruit CRM IDs, MDF fields map to custom fields or JSON blobs, and candidate status derives from application associations. We run a deduplication pass against the existing Recruit CRM database to identify candidates already present (by email match) and either skip, update, or create based on the customer's dedupe policy. We validate field lengths, required fields, and date formats against Recruit CRM's API constraints and surface any failures before write begins.

  5. Rate-limited write to Recruit CRM API with reconciliation

    We write transformed records to Recruit CRM via the REST API with throttling at 50 requests per minute. We batch related records (candidate first, then applications, then activities) to respect parent-record dependency order. Each write phase emits a row-count reconciliation report: candidates written vs candidates extracted, jobs written vs jobs extracted, applications written vs applications extracted. Attachments upload as a separate phase with file-type validation. Any write failures retry once with exponential backoff before surfacing to the migration engineer for manual resolution.

  6. Cutover, delta sync, and workflow handoff

    We freeze SAP source writes during the cutover window, run a final delta extraction of any records modified since the last extraction checkpoint, apply the delta to Recruit CRM, and enable Recruit CRM as the system of record. We deliver a written inventory of SAP SuccessFactors workflows, approval chains, and configured forms that require rebuilding in Recruit CRM's workflow builder. We do not migrate automations as code. We support a one-week post-cutover window for reconciliation issues raised by the talent team's users. Recruitly's documented migration process (data discovery, initial import, quality check) serves as a structural reference for the customer onboarding steps that follow our migration.

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.
Recruit CRM & ATS logo

Recruit CRM & ATS

Destination

Strengths

  • Fully customizable pipelines, stages, and fields without requiring developer involvement
  • Combines recruitment CRM and ATS in one subscription for staffing agencies and small teams
  • Built-in email sequences and automation reduce manual outreach work
  • Chrome extension enables one-click LinkedIn profile collection directly into the CRM
  • Responsive customer support cited across multiple reviews with fast resolution times

Weaknesses

  • Several features are gated as paid add-ons rather than included in the base subscription
  • Email functionality has been reported as unreliable by multiple users
  • Interface occasionally lags during high-activity periods in large pipelines
  • Pricing is considered higher than comparable recruitment CRMs by some customers
  • Limited native reporting — users request pre-made report exports rather than manual data pulls

Complexity grading

How hard is this migration?

Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    1 of 7 objects need a mapping; the rest are 1:1.

  • 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 Recruit CRM & ATS 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 Recruit CRM & ATS data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 10,000 candidates, 500 job requisitions, and standard MDF fields land between three and five weeks. Migrations with large MDF field sets, multi-language competency libraries, historical application stages exceeding 50,000 rows, or split SAP tenant configurations (Employee Central separate from RCM) extend to eight to twelve weeks. The SAP OData 1,000-record batch ceiling and Recruit CRM's 60-requests-per-minute API rate limit are both sequential constraints that add linear time with dataset size.

Adjacent paths

Related migrations to explore

Ready when you are

Move from SAP SuccessFactors.
Land in Recruit CRM & ATS, 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