HRMS migration
Field-level mapping, validation, and rollback between ADP Workforce Now and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.
ADP Workforce Now
Source
Recruit CRM & ATS
Destination
Compatibility
8 of 11
objects map 1:1 between ADP Workforce Now and Recruit CRM & ATS.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from ADP Workforce Now to Recruit CRM is a targeted extraction of recruitment and pre-hire employee data from an HCM suite into a purpose-built applicant tracking system. ADP Workforce Now is built around the Worker object with payroll and compliance depth; Recruit CRM is built around the Candidate and Job Order objects with sourcing, Boolean search, and client tracking for staffing agencies. We extract Workers, job assignments, and contact data from ADP via the Worker Management API, map them to Recruit CRM Candidates and Job Orders, and load via Recruit CRM's bulk import endpoints. We flag that ADP's Talent Management module (performance reviews, goal setting, compensation planning) is not accessible via API and does not migrate. We also flag that Worker Custom Fields are write-only in ADP, requiring a reference file from the customer for any fields in active use. Workflows, approval sequences, and onboarding automation built inside ADP do not migrate; we deliver a written inventory for the customer's admin to rebuild in Recruit CRM.
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 ADP Workforce Now 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.
ADP Workforce Now
Worker
Recruit CRM & ATS
Candidate
1:1ADP Workers map to Recruit CRM Candidates. The Worker's legal name (givenName, familyName, preferredName), date of birth, gender, and ethnicity migrate to Candidate profile fields. SSN migrates to Candidate as a tax identification number for background check and onboarding workflows, stored with encrypted access controls in Recruit CRM. Work authorization status from ADP Job Data migrates to the Candidate's work authorization field. We use the ADP Worker Management API v2 /workers endpoint to extract, deduplicating by workerID.
ADP Workforce Now
Job Data (Work Assignment)
Recruit CRM & ATS
Job Order
1:1ADP Job Data entries (position title, jobCode, businessUnit, departmentIdentifier, locationCode) map to Recruit CRM Job Orders. The ADP job title maps to Job Order title; department and location map to Job Order department and office fields. ADP does not expose a native requisition or job posting object via API — if the customer used ADP Workforce Now Recruitment for job requisitions, we extract the requisition data via the Recruitment module API and map it to active Job Orders in Recruit CRM. Closed or filled requisitions in ADP become archived Job Orders.
ADP Workforce Now
Worker Custom Fields
Recruit CRM & ATS
Candidate Custom Fields
lossyADP supports 8 types of Worker Custom Fields (amount, code, date, indicator, number, percentage, string, telephone) at the Worker and Worker Person levels. However, the ADP API does not expose a read endpoint for these fields — they are write-only via API. We document which custom fields are in use during scoping, request a reference file of current values from the customer, and map those values to Candidate custom fields in Recruit CRM. Without a reference file, custom field values are flagged as data loss and excluded from migration with a reconciliation note.
ADP Workforce Now
Locations and Departments
Recruit CRM & ATS
Client
1:manyADP Locations (legal entity and work site) and Departments (reporting hierarchy) map to Recruit CRM Clients or to the internal Client record if the organization uses Recruit CRM to manage its own placements. If the customer is a staffing agency, ADP Departments that represent their own internal HR structure map to Recruit CRM's internal company record. ADP job locations map to Job Order office/location fields in Recruit CRM. We validate the location hierarchy via ADP's Validation Tables API before import.
ADP Workforce Now
Worker Personal Communication
Recruit CRM & ATS
Candidate Contact Info
1:1ADP Worker contact methods (personalEmail, personalMobile, homeAddress) map to Candidate email, phone, and address fields in Recruit CRM. We extract work email and work phone from ADP's workCommunication if the Worker record has them. Multiple phone numbers are supported as separate phone type entries. The ADP mailingAddress and workAddress objects map to Candidate primary and secondary address fields.
ADP Workforce Now
Employment Status and Termination Date
Recruit CRM & ATS
Candidate Status and Archive Flag
1:1ADP employmentStatus (active, inactive, terminated, leave) and terminationDate map to Candidate status in Recruit CRM. Active Workers in ADP migrate as active Candidates with status 'Available' or 'Placed'. Inactive Workers (on leave) migrate with status 'On Hold'. Terminated Workers migrate as archived Candidates with a termination flag and last placement date. We set the Candidate's current employment status from the most recent ADP Job Data entry.
ADP Workforce Now
Payroll Deduction Instructions
Recruit CRM & ATS
Candidate Notes / Compliance Record
1:1ADP voluntary deduction instructions (health, retirement, benefits) map to Candidate records as a compliance note in Recruit CRM, not as a native deduction object (Recruit CRM does not have a payroll deduction object). Garnishments and Involuntary Withholding Orders cannot be migrated via ADP API — the Deduction Instruction API explicitly lists these as unsupported. We flag all active garnishment orders during scoping and provide a manual reconciliation checklist for the customer's HR admin to recreate in the destination HR system.
ADP Workforce Now
Benefit Plans and Enrollments
Recruit CRM & ATS
Candidate Intake Form / Onboarding Record
1:1ADP benefit enrollment data (health plan, dental, vision, retirement contribution rate) maps to Candidate onboarding intake fields in Recruit CRM if the customer uses Recruit CRM's onboarding intake feature. Plan configurations (employer-specific benefit tiers) are ADP-instance-specific and do not migrate; we document the benefit plan names and enrollment elections as candidate notes for the HR admin to re-enter during new-hire onboarding. External Benefit Plans exposed via ADP's Benefits API migrate as enrollment records attached to the Candidate.
ADP Workforce Now
Time Off and Leave Records
Recruit CRM & ATS
Candidate Notes (Compliance)
1:1ADP time off balance records (accrued hours, leave type, leave event dates) map to Candidate records as a note entry for compliance and background purposes. Leave plan configurations and accrual rules are not exposed via API and do not migrate. We extract leave event history via the Time Off Requests API and record it as a candidate note in Recruit CRM noting the leave period, type, and duration.
ADP Workforce Now
ADP Workforce Now Recruitment Module (Applicant Data)
Recruit CRM & ATS
Candidate + Job Application
1:1If the customer used ADP Workforce Now Recruitment for active requisitions and applicant tracking, we extract candidate application data via the Recruitment module API. Each ADP applicant record maps to a Recruit CRM Candidate with an associated Job Application linked to the corresponding Job Order. ADP applicant stages map to Recruit CRM pipeline stages. We preserve the ADP application date, source (referral, job board, direct), and any score or rating submitted by ADP recruiters as candidate notes or custom fields.
ADP Workforce Now
Validation Tables (Job Titles, Cost Numbers)
Recruit CRM & ATS
Job Order Custom Fields / Department Tags
lossyADP Validation Tables store reference values for Job Titles, Cost Numbers, Locations, and other domain lists. We map these to Recruit CRM Job Order custom fields (dropdown or tag) to maintain data consistency after migration. The ADP validation table structure is employer-specific — we extract the active values via the Validation Tables API and pre-populate the corresponding picklist or tag options in Recruit CRM before candidate import begins.
| ADP Workforce Now | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Worker | Candidate1:1 | Fully supported | |
| Job Data (Work Assignment) | Job Order1:1 | Fully supported | |
| Worker Custom Fields | Candidate Custom Fieldslossy | Mapping required | |
| Locations and Departments | Client1:many | Fully supported | |
| Worker Personal Communication | Candidate Contact Info1:1 | Fully supported | |
| Employment Status and Termination Date | Candidate Status and Archive Flag1:1 | Fully supported | |
| Payroll Deduction Instructions | Candidate Notes / Compliance Record1:1 | Mapping required | |
| Benefit Plans and Enrollments | Candidate Intake Form / Onboarding Record1:1 | Fully supported | |
| Time Off and Leave Records | Candidate Notes (Compliance)1:1 | Mapping required | |
| ADP Workforce Now Recruitment Module (Applicant Data) | Candidate + Job Application1:1 | Fully supported | |
| Validation Tables (Job Titles, Cost Numbers) | Job Order Custom Fields / Department Tagslossy | 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.
ADP Workforce Now gotchas
ADP API access requires a signed developer agreement
API rate limits are per-client and not publicly documented
Worker Custom Fields are write-only via the ADP API
Reports-based ADP integrations have known sync reliability issues
Involuntary Withholding Orders and Company Loans are not supported in the API
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
API access and credentials provisioning
We confirm API Central is active on the ADP Workforce Now contract, obtain the production API Gateway credentials (client ID and client secret), and authenticate against the ADP OAuth 2.0 token endpoint. We validate connectivity by issuing a test call to the /workers endpoint with a single record. If API Central is not yet provisioned, we document the steps and estimated timeline (typically 3-10 business days through ADP procurement) before migration scoping begins. We also confirm the SFTP credentials for ADP's Automatic Export Service if it is configured, as SFTP is our preferred extraction path for large record sets.
Source data audit and scope definition
We run a discovery extraction against the ADP Worker Management API to map the full Worker schema: demographics, employment status, job data, compensation, custom fields, deduction instructions, and benefit enrolments. We cross-reference with the customer's ADP custom field report (requested in advance). We identify any active garnishment orders via the Deduction Instruction API and flag them for manual reconciliation. We confirm whether the customer used ADP Workforce Now Recruitment for any active requisitions and include those in scope. The output is a written data inventory: record counts per object, unmappable fields, and manual steps required.
Schema design and Recruit CRM configuration
We configure Recruit CRM's destination schema: custom fields on Candidate (aligned to ADP Worker custom fields where values are provided), Job Order pipeline stages (mapped from ADP applicant stages or job requisition statuses), Client records (mapped from ADP Departments or Locations), and any tags or picklists sourced from ADP Validation Tables. We configure Recruit CRM's intake form fields to receive ADP benefit enrollment data as candidate notes. We create the migration user in Recruit CRM with appropriate permissions for bulk record creation and validate the Recruit CRM API rate limits for the import batch sizing plan.
Data extraction and transformation
We extract data from ADP via the Worker Management API v2 in batches, using the SFTP AES export as the primary source where available (for its daily cadence and sync reliability) and supplementing with API calls for delta records and custom fields not present in the AES file. We transform each record according to the object mapping: Workers to Candidates, Job Data to Job Orders, contact methods to Candidate contact fields, and deduction and benefit data to candidate notes. We apply the termination and employment status logic to set Candidate archival flags. Any records with unmappable custom fields are written to a separate reference file for the customer's HR admin to review.
Bulk import and parent-record resolution
We import into Recruit CRM in dependency order: Clients (from ADP Departments/Locations), Job Orders (from ADP Job Data), then Candidates (with Client and Job Order lookups resolved). We use Recruit CRM's bulk import endpoints with batch chunking appropriate to the destination rate limits. After each phase, we emit a row-count reconciliation report comparing ADP source counts to Recruit CRM destination counts. We flag any records that failed import due to validation errors (required fields, format mismatches) for correction and a second-pass import. Garnishment and deduction records are not imported; they are documented in the manual reconciliation checklist delivered alongside the migration.
Validation, cutover, and workflow handoff
We run a post-migration validation comparing ADP source record counts against Recruit CRM destination record counts for each object, spot-checking 25-50 random Candidate records for field-level accuracy. We deliver the migration summary report, the unmapped custom field reference file, and the garnishment reconciliation checklist. We do not migrate ADP recruitment workflows, approval sequences, or onboarding automation as code; we deliver a written inventory of every active ADP workflow and onboarding sequence with a Recruit CRM equivalent recommendation. We support a one-week hypercare window for reconciliation issues raised by the recruiting team. Post-migration admin support and workflow rebuild are outside standard scope.
Platform deep dives
ADP Workforce Now
Source
Strengths
Weaknesses
Recruit CRM & ATS
Destination
Strengths
Weaknesses
Complexity grading
Moderate HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ADP Workforce Now 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
ADP Workforce Now: Per-client rate limits and concurrency limits — specific thresholds not publicly documented.
Data volume sensitivity
ADP Workforce Now doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 ADP Workforce Now to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
Walk through your ADP Workforce Now 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 ADP Workforce Now
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.