HRMS migration
Field-level mapping, validation, and rollback between HR-ON and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.
HR-ON
Source
Recruit CRM & ATS
Destination
Compatibility
6 of 11
objects map 1:1 between HR-ON and Recruit CRM & ATS.
Complexity
BStandard
Timeline
3-5 weeks
Overview
HR-ON and Recruit CRM serve different primary functions: HR-ON manages employee records, document workflows, and onboarding for small to mid-sized organizations in German-speaking markets, while Recruit CRM is an ATS and recruitment CRM built for staffing and recruitment agencies managing candidates, job orders, and client relationships across 100+ countries. Migrating from HR-ON to Recruit CRM is not a simple record transfer—it requires transforming a general HR employee data model (with org metadata in systemFields) into a recruitment-specific model centered on Candidates, Clients, Jobs, and Placements. We extract employee records individually via HR-ON's per-record API, normalize all date formats to ISO 8601, map custom employee properties to candidate custom fields, and reconstruct organizational relationships within Recruit CRM's client and candidate structures. Document templates migrate as metadata associations with manual relinking flagged for the customer's admin post-migration. Workflows, automations, and document generation templates do not migrate as code.
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 HR-ON 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.
HR-ON
Employee
Recruit CRM & ATS
Candidate
1:1HR-ON Employee records map to Recruit CRM Candidate records. Standard employee properties (firstName, lastName, email, phone, hireDate, department) map to Candidate's corresponding fields. HR-ON's systemFields containing organizational metadata (department, manager, location) are parsed and stored in Candidate custom fields for reference. We use HR-ON's POST /v1/staff/employees endpoint with JWT auth to retrieve records individually and resolve any existing candidate records in Recruit CRM by email deduplication before insert.
HR-ON
Custom Fields (Employee)
Recruit CRM & ATS
Candidate Custom Fields
1:1HR-ON custom properties on Employee records that lack a standard Candidate field equivalent map to Recruit CRM's custom fields on the Candidate object. We extract all non-systemFields from HR-ON, validate data types (text, number, date, single-select map cleanly; multi-select requires configuration in Recruit CRM), and flag any with incompatible formats. The customer's admin reviews the custom field schema in Recruit CRM before migration to confirm field creation and data type assignment.
HR-ON
Organizational Structure (systemFields)
Recruit CRM & ATS
Company / Client
lossyHR-ON stores department and organizational hierarchy metadata within systemFields on Employee records rather than as separate objects. We extract these values, deduplicate departments into Company or Client records in Recruit CRM, and link each Candidate to their employing Client. If HR-ON tracks multiple employers or organizational units, we create separate Client records and resolve the Candidate-to-Client relationship at migration time using the department field as the linking key.
HR-ON
Document Templates
Recruit CRM & ATS
Candidate Document (attachment metadata)
1:1HR-ON document templates with name, description, documentType, dateFormat, and language (da_DK, en_US) are exported as metadata associations rather than migrated as functional templates. Recruit CRM stores candidate documents as file attachments linked to the Candidate record. We export each document's template name, language, and dateFormat as metadata fields on the attachment record and flag the customer for manual relinking of any document types that require template recreation in Recruit CRM's document generation tool.
HR-ON
User
Recruit CRM & ATS
User
1:1HR-ON user accounts map to Recruit CRM User records for team members who will access the recruitment platform. Role and permission structures differ between HR-ON and Recruit CRM; HR-ON role definitions do not map directly to Recruit CRM's permission model. We extract user email, name, and status, and flag the customer to configure Recruit CRM User roles and access levels post-migration based on their recruitment team structure.
HR-ON
Language Preferences (Employee)
Recruit CRM & ATS
Candidate Language Preference
1:1HR-ON stores language preference at da_DK (Danish) and en_US (English) per template and employee. We carry these through to a Candidate custom field (preferred_language__c) in Recruit CRM to preserve locale context for candidate communications, job board postings, and localized email templates. This is especially relevant for organizations migrating from Danish-market HR-ON to Recruit CRM for English-language or multi-language recruitment.
HR-ON
Date Metadata
Recruit CRM & ATS
Candidate Date Fields
lossyHR-ON stores dates in four distinct formats depending on locale and template settings: DD-MM-YYYY, DD/MM/YYYY, YYYY-MM-DD, or written form (July 20, 2021). We parse and normalize all date values to ISO 8601 during extraction and validate against Recruit CRM's expected date field formats before loading. This includes hireDate, startDate, documentDate, and any custom date fields on Employee records.
HR-ON
Job Posting Data (if applicable)
Recruit CRM & ATS
Job
lossyHR-ON does not have a native Job or Position object; however, if HR-ON tracks open roles or requisitions within employee systemFields or related records, we extract these as Candidate-to-Job associations in Recruit CRM. For organizations using HR-ON for internal hiring alongside employee management, we reconstruct the hiring pipeline as Recruit CRM Job records linked to Candidates in relevant pipeline stages.
HR-ON
Engagement / Activity History
Recruit CRM & ATS
Candidate Activity / Notes
1:1If HR-ON stores engagement history (onboarding tasks, document completion events, status updates) on Employee records, we extract these as Activity records or Notes attached to the corresponding Candidate in Recruit CRM. HR-ON's engagement scope is narrower than a full CRM activity timeline; we map onboarding milestones and document events to Candidate Notes for audit continuity.
HR-ON
None (new object)
Recruit CRM & ATS
Client
lossyRecruit CRM distinguishes between Clients (organizations the agency places candidates with or serves) and Candidates (job seekers). HR-ON has no equivalent to the Client object. We create Client records during migration based on HR-ON department and organizational unit data, or leave Client creation for the customer's admin to configure post-migration if their use case involves external clients rather than internal organizational units.
HR-ON
None (new object)
Recruit CRM & ATS
Pipeline / Stage
lossyRecruit CRM's recruitment pipeline (Applied, Screening, Interview, Offer, Hired, Rejected) has no direct HR-ON equivalent because HR-ON does not manage candidate hiring pipelines. We configure a default pipeline structure in Recruit CRM during migration setup, with the customer's admin defining custom stages that reflect their recruitment process. The pipeline configuration is delivered as a written specification for admin setup.
| HR-ON | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Custom Fields (Employee) | Candidate Custom Fields1:1 | Fully supported | |
| Organizational Structure (systemFields) | Company / Clientlossy | Fully supported | |
| Document Templates | Candidate Document (attachment metadata)1:1 | Mapping required | |
| User | User1:1 | Fully supported | |
| Language Preferences (Employee) | Candidate Language Preference1:1 | Fully supported | |
| Date Metadata | Candidate Date Fieldslossy | Mapping required | |
| Job Posting Data (if applicable) | Joblossy | Fully supported | |
| Engagement / Activity History | Candidate Activity / Notes1:1 | Fully supported | |
| None (new object) | Clientlossy | Fully supported | |
| None (new object) | Pipeline / Stagelossy | 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.
HR-ON gotchas
No bulk export endpoint forces sequential reads
Date format normalization required before import
Language-specific document types may not map directly
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
Scoping and data audit
We extract a representative sample (50-100 records) from HR-ON via the POST /v1/staff/employees endpoint using JWT authentication to map the actual field inventory, identify custom properties, and assess systemFields usage for organizational metadata. We audit date format distributions, language variant prevalence, and document template types across the sample. We pair this with a Recruit CRM sandbox setup to confirm the target schema and identify any required custom field creation. The scoping output is a written migration scope with field mapping, date normalization strategy, and document relinking requirements.
Date normalization and data cleansing
We process all employee records from HR-ON in batches of 50 using the sequential API read pattern. During extraction, we parse date fields using locale-aware logic based on the employee record's language setting and the template dateFormat value, normalizing all dates to ISO 8601. We deduplicate organizational units extracted from systemFields into a candidate Client list and flag any ambiguous date values for customer validation. Custom properties with incompatible data types (e.g., multi-select vs. text) are flagged and resolved according to the customer's preference during the staging review.
Schema design and Recruit CRM preparation
We configure the Recruit CRM target schema based on the scoping findings. This includes creating custom fields on the Candidate object to receive HR-ON custom properties and systemField-derived data, creating Client records from extracted organizational units, and configuring a default recruitment pipeline with stages (Applied, Screening, Interview, Offer, Hired). We deploy schema changes to a Recruit CRM sandbox environment for validation before production migration begins. User role configuration is documented separately for the customer's admin to complete post-migration.
Sandbox migration and staging validation
We run a full migration into the Recruit CRM sandbox using production-equivalent record volume. The customer reviews 25-50 randomly sampled Candidate records, validates the accuracy of mapped fields, confirms date normalization, and checks that document metadata associations are preserved. Any mapping corrections are made in the staging environment before the production migration begins. The customer signs off on the staging validation report before we proceed to production.
Production migration in dependency order
We run production migration in record-dependency order: Client records (from HR-ON organizational units) are created first, followed by Candidate records with resolved Client associations, document attachment metadata, and activity history from HR-ON engagement records. Each phase emits a row-count reconciliation report showing records extracted, records loaded, and any records flagged for manual review. We freeze write access to HR-ON during the production migration window to prevent new record creation that would be missed in the final delta.
Cutover, validation, and handoff
We run a final delta migration for any records created or modified during the production migration window, then enable Recruit CRM as the system of record. We deliver a written document specifying the document template relinking steps for the customer's admin to complete, a user role configuration guide, and a pipeline stage customization recommendation. We support a one-week hypercare window to resolve any data reconciliation issues. We do not rebuild HR-ON workflows or automations in Recruit CRM as these require rebuilding in Recruit CRM's automation builder by the customer's admin.
Platform deep dives
HR-ON
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 HR-ON 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
HR-ON: Not publicly documented..
Data volume sensitivity
HR-ON 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 HR-ON to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
Walk through your HR-ON 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 HR-ON
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.