HRMS migration
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
Source
Recruit CRM & ATS
Destination
Compatibility
8 of 11
objects map 1:1 between SAP SuccessFactors and Recruit CRM & ATS.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
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 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
Recruit CRM & ATS
Candidate
1:1SAP 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
Recruit CRM & ATS
Job
1:1SAP 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
Recruit CRM & ATS
Candidate Job Applied
1:1SAP 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)
Recruit CRM & ATS
Organization / Department
1:manySAP 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
Recruit CRM & ATS
Skill
lossySAP 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)
Recruit CRM & ATS
Candidate Activity / Notes
1:1SAP 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
Recruit CRM & ATS
Interview Schedule / Candidate Notes
1:1SAP 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
Recruit CRM & ATS
Candidate List / Talent Pool
1:1SAP 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
Recruit CRM & ATS
Job Applied (offer status)
1:1SAP 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)
Recruit CRM & ATS
Custom Fields (Candidate, Job, Application)
lossySAP 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)
Recruit CRM & ATS
Candidate (flagged as hired)
1:1SAP 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.
| SAP SuccessFactors | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Candidate Profile | Candidate1:1 | Fully supported | |
| Job Requisition | Job1:1 | Fully supported | |
| Application | Candidate Job Applied1:1 | Fully supported | |
| Corporate Structure (Foundation Objects) | Organization / Department1:many | Fully supported | |
| JobCode and JobProfile | Skilllossy | Fully supported | |
| Recruiting Engagement (Emails, Notes, Tasks) | Candidate Activity / Notes1:1 | Fully supported | |
| Interview and Interview Feedback | Interview Schedule / Candidate Notes1:1 | Fully supported | |
| Talent Pool / Candidate Community | Candidate List / Talent Pool1:1 | Fully supported | |
| Offer and Offer Details | Job Applied (offer status)1:1 | Fully supported | |
| Custom MDF Objects (Recruiting) | Custom Fields (Candidate, Job, Application)lossy | Fully supported | |
| Employee Central Employee (hired candidate) | Candidate (flagged as hired)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.
SAP SuccessFactors gotchas
Hard 1000-record API transfer ceiling
Default 1000 records per request causes timeout on heavy entities
Talent Intelligence Hub migration produces duplicate competencies
Learning module API has independent rate limits
Custom MDF objects require schema inspection before migration
Recruit CRM & ATS gotchas
API rate limits are license-scaled and can throttle bulk migration
Custom field schemas vary per organization and require field-level mapping
Files and email attachments require separate extraction and re-upload
Email sequences and automation logic do not transfer between platforms
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
SAP SuccessFactors
Source
Strengths
Weaknesses
Recruit CRM & ATS
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 1 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 SAP SuccessFactors and Recruit CRM & ATS.
Object compatibility
1 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
SAP SuccessFactors: 40 req/sec for OData APIs, 20 req/sec for SFAPIs; Learning OData APIs have separate stricter limits.
Data volume sensitivity
SAP SuccessFactors 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 SAP SuccessFactors to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave SAP SuccessFactors
Other ways to arrive at Recruit CRM & ATS
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.