HRMS migration
Field-level mapping, validation, and rollback between Darwinbox and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
Darwinbox
Source
Crelate
Destination
Compatibility
11 of 15
objects map 1:1 between Darwinbox and Crelate.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Darwinbox is a full-lifecycle HCM platform covering recruitment, onboarding, attendance, leave, payroll, and performance. Crelate is a recruiting-focused ATS built for staffing and recruiting agencies managing candidates, placements, and client relationships. The two platforms share a candidate record but diverge sharply on everything else: org structure, payroll, attendance, leave, and performance data have no Crelate equivalent and fall outside migration scope. We extract the Darwinbox recruitment module data (candidate profiles, job postings, application stages, interview feedback, offer records) via the privileged API, map it to Crelate's Contacts, Companies, Opportunities (job orders and placements), and custom fields, then load through Crelate's API with batch processing and parent-record resolution. Workflows, approval chains, attendance policies, leave balances, and payroll history do not migrate. We deliver a written inventory of these out-of-scope objects with recommendations for manual setup in Crelate.
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 Darwinbox object lands in Crelate, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Darwinbox
Candidates (Recruitment Module)
Crelate
Contact
1:1Darwinbox candidate records (applicant profiles, contact details, sourcing channel, stage history, ratings, and notes) map to Crelate Contact records. The Darwinbox candidate_id becomes the Crelate externalId for dedupe. Stage history (applied, screening, interview, offer, hired, rejected) migrates as a note on the Contact or as a custom Activity linked to the Contact, preserving the timeline but not the pipeline automation trigger. We extract candidate data via the Darwinbox recruitment API endpoints, which require the privileged API access (see gotcha). Crelate's Contact supports phone, email, address, and custom fields natively.
Darwinbox
Job Postings (Recruitment Module)
Crelate
Job Posting
1:1Darwinbox job postings and requisitions map to Crelate Job Posting records. The Darwinbox job_code, title, department, location, employment type, and job description fields map directly to Crelate's Job Posting fields. Open or closed status from Darwinbox sets the Crelate isOpen flag. We extract active job postings during the initial migration run; closed postings migrate on request with an isOpen=false flag.
Darwinbox
Application / Applicant Record
Crelate
Job Posting + Contact Association
1:manyDarwinbox applications link a candidate to a job posting with a stage, timestamp, and source. Each application creates a Crelate Contact record (if not already present) and associates it with the relevant Job Posting via Crelate's native association. If a single Darwinbox candidate has applied to multiple Darwinbox jobs, we create one Contact per unique candidate email and associate it with all migrated Job Postings. Application source (referral, job board, direct) migrates as a custom field or tag on the Contact in Crelate.
Darwinbox
Interview Feedback and Ratings
Crelate
Note or Custom Field on Contact
lossyDarwinbox interview ratings, interviewer feedback, and scorecards stored against the application record migrate as Crelate Notes linked to the Contact or as custom fields (picklist or numeric) if the customer elects to structure them. We request read access to the feedback schema during discovery to determine whether the data is structured (API-returned as JSON) or unstructured text, which determines whether we can automate field mapping or fall back to note migration.
Darwinbox
Offer Records
Crelate
Opportunity (Placement Track)
1:1Darwinbox offer records (offer letter, offered salary, start date, offer status: accepted, declined, pending) map to Crelate Opportunity records representing placement tracks. The Darwinbox offered_compensation and start_date fields map to Opportunity fields; offer status maps to a custom Opportunity field or stage name in Crelate. We flag that Crelate Opportunity is the container for placement and billing records, not a traditional CRM deal, and confirm the customer's naming convention with them during scoping.
Darwinbox
Employees (as former candidates)
Crelate
Contact
1:1Darwinbox Employee records do not map to Crelate's primary ATS model. However, if the Darwinbox instance contains former applicants who are now employees (and the customer wants to track them as placed candidates in Crelate), we extract employees with a Darwinbox application history, map their employee_id to Crelate contact's externalId, and link them to the relevant Opportunity as a placed candidate. Employees with no prior application record are out of scope unless the customer elects a manual CSV import as a separate step.
Darwinbox
Organisations / Org Structure
Crelate
Out of scope (no equivalent)
1:1Darwinbox hierarchical org units, cost centres, departments, and locations have no Crelate equivalent. Crelate uses Companies (as employer or client entities) and Job Posting departments as free-text or picklist fields, not a full org tree. We do not migrate org structure data. We provide a written list of Darwinbox departments and locations extracted during discovery so the customer's Crelate admin can configure them as picklist values post-migration.
Darwinbox
Attendance Records
Crelate
Out of scope (no equivalent)
1:1Darwinbox attendance punch logs (timestamps, machine IDs, in/out status, shift-date references) have no Crelate equivalent. Crelate is an ATS and does not include time and attendance tracking. We do not migrate attendance data. If the customer needs attendance tracking alongside Crelate, they must configure a separate time-tracking integration post-migration.
Darwinbox
Leave Balances
Crelate
Out of scope (no equivalent)
1:1Darwinbox leave entitlements, accrual rules, and current balances per employee have no Crelate equivalent. Crelate does not include a leave management module. We do not migrate leave data. We deliver a CSV extract of Darwinbox leave balances by employee as a courtesy so the customer's HR admin can record them manually in their chosen leave management tool.
Darwinbox
Payroll / Compensation History
Crelate
Out of scope (no equivalent)
1:1Darwinbox payroll runs, compensation components, effective-dated salary rows, deductions, and tax codes have no Crelate equivalent. Crelate uses Bill and Pay rates on Opportunity (placement) records, not a payroll module. We do not migrate payroll data. Effective-dated compensation history remains in Darwinbox exports or the customer's payroll system of record as a manual step post-migration.
Darwinbox
Performance Reviews
Crelate
Out of scope (no equivalent)
1:1Darwinbox review cycles, ratings, goals, and manager feedback have no Crelate equivalent. Crelate's Opportunity (placement) includes placement notes and status but not a performance review module. We do not migrate performance data. We deliver a CSV extract of Darwinbox performance ratings by employee as a courtesy for HR admin records.
Darwinbox
Custom Fields (Recruitment)
Crelate
Custom Fields (Contacts, Companies, Opportunities)
lossyDarwinbox custom fields on candidate and application records are tenant-specific and not in the public API schema (see gotcha). We introspect the Darwinbox tenant's custom field registry during discovery to identify all candidate and application custom fields by name, type (text, numeric, picklist, date, boolean), and attached object. We then configure matching custom fields in Crelate (which exposes custom fields on Contacts, Companies, and Opportunities with documented logical names for API use) and map values during migration. Both platforms require manual field configuration before data loads begin.
Darwinbox
Documents (Contracts, Certificates, IDs)
Crelate
Out of scope (no equivalent via API)
1:1Darwinbox document blobs (contracts, offer letters, certificates, government IDs stored in the document management module) are not accessible via the public REST API. Crelate does not have a native HR document management module; document storage is typically handled externally or via integrations. We do not migrate documents. We flag this as a manual step requiring Darwinbox vendor-assisted export or manual download, then re-upload to the customer's chosen document storage solution.
Darwinbox
Engagement / Recognition Events
Crelate
Out of scope (no equivalent)
1:1Darwinbox recognition events, peer awards, reward points, and social recognition stored in the engagement module have no Crelate equivalent. Crelate does not include an employee recognition or engagement module. We do not migrate engagement data.
Darwinbox
Users / Roles (Recruitment)
Crelate
User provisioning (manual)
lossyDarwinbox user accounts with recruiter and hiring manager roles map to Crelate user provisioning. We extract the Darwinbox user list (email, name, role) during discovery. Crelate User creation is a manual admin step because Crelate's user provisioning requires the admin to invite users directly within Crelate's settings. We provide a user mapping spreadsheet linking each Darwinbox user to their Crelate email and role so the admin can provision them in bulk.
| Darwinbox | Crelate | Compatibility | |
|---|---|---|---|
| Candidates (Recruitment Module) | Contact1:1 | Fully supported | |
| Job Postings (Recruitment Module) | Job Posting1:1 | Fully supported | |
| Application / Applicant Record | Job Posting + Contact Association1:many | Fully supported | |
| Interview Feedback and Ratings | Note or Custom Field on Contactlossy | Fully supported | |
| Offer Records | Opportunity (Placement Track)1:1 | Fully supported | |
| Employees (as former candidates) | Contact1:1 | Fully supported | |
| Organisations / Org Structure | Out of scope (no equivalent)1:1 | Fully supported | |
| Attendance Records | Out of scope (no equivalent)1:1 | Mapping required | |
| Leave Balances | Out of scope (no equivalent)1:1 | Mapping required | |
| Payroll / Compensation History | Out of scope (no equivalent)1:1 | Mapping required | |
| Performance Reviews | Out of scope (no equivalent)1:1 | Mapping required | |
| Custom Fields (Recruitment) | Custom Fields (Contacts, Companies, Opportunities)lossy | Fully supported | |
| Documents (Contracts, Certificates, IDs) | Out of scope (no equivalent via API)1:1 | Fully supported | |
| Engagement / Recognition Events | Out of scope (no equivalent)1:1 | Fully supported | |
| Users / Roles (Recruitment) | User provisioning (manual)lossy | 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.
Darwinbox gotchas
API access is privileged and request-only
Custom fields are tenant-specific and not in public schema
Attendance records require shift-policy alignment
Effective-dated compensation rows need careful sequencing
Document blobs are not accessible via public API
Crelate gotchas
120 req/min API rate limit throttles bulk migrations
20 custom field per-entity cap forces data model decisions
15,000-record export ceiling on single operations
Sequences and automation workflows do not migrate
API key is a querystring parameter, not a header
Pair-specific challenges
Migration approach
Discovery and Darwinbox API access request
We audit the Darwinbox instance with a focus on the recruitment module: candidate record count, job posting count, application stage history, interview feedback structure, offer records, and any custom fields on candidate or application objects. We simultaneously submit the Darwinbox API access request ([email protected]) with the required privileged user credential scope. We audit Crelate's existing instance: existing Contacts, Companies, Opportunities, custom fields, and user list. We deliver a discovery report with record counts, a preliminary object map, and a Darwinbox custom field registry request list. If Darwinbox API access is not granted within the scoping window, we escalate with the Darwinbox vendor and agree on a fallback CSV export approach with the customer.
Schema design and custom field configuration
We design the Crelate destination schema based on the Darwinbox recruitment data we expect to migrate. This includes confirming which Crelate custom fields (on Contact, Company, Opportunity) will receive Darwinbox candidate and application data, confirming picklist values for status fields, and designing the Opportunity (placement) structure for Darwinbox offer records. The customer must create all destination custom fields in Crelate admin settings before migration day using the field map we provide. We validate the Crelate schema via a test API call before proceeding to migration build.
Crelate API development and sandbox test migration
We build the migration pipeline to Crelate's API using Crelate's documented REST endpoints for Contacts, Companies, Opportunities, and custom field writes. We run a test migration into a Crelate sandbox or dev environment using a subset of Darwinbox candidate records (typically 100-200 records) to validate field mapping, dedupe logic (by candidate email), and parent-record resolution (Opportunity lookup from Job Posting association). The customer reviews the test output and confirms mapping correctness before we proceed to production migration build.
Production migration in dependency order
We run production migration in this order: Companies (employer or client entities from Darwinbox job posting department data), Job Postings (active and optionally closed requisitions), Contacts (candidates with full profile and application history), custom field values on Contact records, Opportunities (placement tracks from Darwinbox offer records), and finally Activity history (interview feedback notes, stage-change timestamps as Notes on Contact). Each phase emits a row-count reconciliation report. We use Crelate API batch endpoints where available and handle rate-limit responses with exponential backoff.
Verification and cutover
We perform a verification pass comparing migrated record counts to Darwinbox source counts, spot-checking 25-50 candidate records against Darwinbox source data for field-level accuracy. The customer performs a user acceptance test in Crelate, reviewing migrated Contacts, Job Postings, and Opportunities. We deliver the out-of-scope inventory document listing all Darwinbox data that could not migrate (org structure, attendance, leave, payroll, performance, documents) with CSV extracts where applicable and manual setup guidance for Crelate admin. We do not cut over until the customer signs off on the verification report.
Workflow rebuild handoff and hypercare
We deliver a written inventory of Darwinbox recruitment workflow configurations, approval chains, and any automated stage routing that cannot migrate to Crelate. Crelate workflow and sequence configuration is a separate rebuild step handled by the customer's Crelate admin or a Crelate implementation partner. We support a one-week hypercare window after cutover to resolve any data quality issues arising from the migration. We do not provide post-migration admin support, training, or workflow rebuild as standard scope; these are separate engagements.
Platform deep dives
Darwinbox
Source
Strengths
Weaknesses
Crelate
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 Darwinbox and Crelate.
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
Darwinbox: Enforced via Istio service mesh policies; specific quotas not publicly published.
Data volume sensitivity
Darwinbox 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 Darwinbox to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your Darwinbox to Crelate migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Darwinbox
Other ways to arrive at Crelate
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.