HRMS migration
Field-level mapping, validation, and rollback between Keka and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.
Keka
Source
Recruit CRM & ATS
Destination
Compatibility
10 of 12
objects map 1:1 between Keka and Recruit CRM & ATS.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Keka to Recruit CRM is a category-shift migration: Keka bundles HR, payroll, time tracking, and hiring in one platform, while Recruit CRM is purpose-built as an ATS and CRM for recruitment agencies. We migrate the recruiting-specific objects—Candidates, Jobs, Client Contacts, and Interview Activities—from Keka Hire into Recruit CRM's equivalent structures, preserving custom field data and interview notes. Keka's Core HR data (payroll runs, leave balances, attendance logs, PSA billing records, performance reviews) has no equivalent in Recruit CRM and is documented for the customer as excluded scope. Keka Hire workflows and position-based hiring configurations do not migrate as code; we deliver a written inventory for the customer's team to rebuild in Recruit CRM. Recruit CRM stores data in AWS with AES-256 encryption and operates under a per-user pricing model that differs from Keka's tiered per-seat structure.
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 Keka 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.
Keka
Employees
Recruit CRM & ATS
Candidate
1:1Keka Employee records map to Recruit CRM Candidates, but the data model differs significantly. Keka stores employees as interactive HR profiles with employment details, compensation, and org assignments. Recruit CRM stores candidates as ATS records with pipeline stage, source, and placement status. We extract candidate-relevant fields from Keka Employee profiles (name, email, phone, location, department, current title) and map them to Recruit CRM Candidate fields. Employment history, compensation details, and org hierarchy assignments become custom text fields on the Candidate record for reference rather than native structured data.
Keka
Hire: Candidates
Recruit CRM & ATS
Candidate
1:1Keka Hire Candidate records map directly to Recruit CRM Candidate records. We map candidate name, email, phone, source, current stage in the pipeline, scorecard ratings, and interview feedback notes. Keka's candidate custom fields map to Recruit CRM candidate custom fields using a field-level mapping table the customer reviews during scoping. Any candidate attachments (resumes, portfolio files) migrate as document links if Recruit CRM's attachment storage is available, or are exported as a separate file package for manual re-upload.
Keka
Hire: Job Requisitions
Recruit CRM & ATS
Job
1:1Keka Hire job requisitions map to Recruit CRM Jobs. The job title, description, location, employment type, and department from Keka map directly to equivalent Recruit CRM fields. Keka's position-based hiring (multiple positions per requisition) is decomposed: each distinct position becomes a separate Recruit CRM Job, preserving the parent requisition name as a custom field for audit. Job status from Keka (Draft, Open, On Hold, Filled, Cancelled) maps to Recruit CRM job status equivalents.
Keka
Hire: Positions
Recruit CRM & ATS
Job
1:manyKeka's late-2024 position-based hiring feature (multiple positions per job requisition) requires decomposition. Each position record under a requisition becomes a separate Job in Recruit CRM, with the parent requisition name and position number preserved in custom fields. This prevents position-level hiring data from being collapsed into a single job record and losing granularity.
Keka
Hire: Scorecards and Interview Feedback
Recruit CRM & ATS
Candidate Activity + Note
1:1Keka Hire scorecards and interview feedback map to Recruit CRM Candidate Activity records and attached notes. We preserve the reviewer name, rating, and feedback text as a structured note on the Candidate record. Rating scales from Keka (configurable bands like Exceeds, Meets, Needs Improvement) are preserved as text labels in custom fields rather than numeric equivalents, since Recruit CRM's rating model may differ.
Keka
Legal Entity, Business Unit, Department, Location
Recruit CRM & ATS
Candidate (custom fields)
lossyKeka enforces a four-tier organizational hierarchy (Legal Entity → Business Unit → Department → Location) that Recruit CRM does not model natively. We flatten all four tiers as text properties on the Candidate record (kea_legal_entity__c, kea_business_unit__c, kea_department__c, kea_location__c) so the customer retains the org context. The customer's Recruit CRM admin can decide how to use these fields post-migration or consolidate them into a single organizational field.
Keka
Time Off / Leave Requests
Recruit CRM & ATS
Candidate Activity
1:1Keka leave balances and request records do not have a native equivalent in Recruit CRM's ATS model. We export leave balances as snapshot records (employee ID, leave type, balance, as-of-date) and map leave request history to Candidate Activity notes on the corresponding employee-turned-candidate record. This preserves the data as reference but does not create active leave management in Recruit CRM.
Keka
Attendance Records
Recruit CRM & ATS
Candidate Activity
1:1Keka attendance logs (check-in/check-out timestamps, shift assignments, overtime) are not trackable in Recruit CRM. We export attendance summary records as Candidate Activity notes for compliance reference, but Recruit CRM does not have a native attendance or time-tracking module. Customers needing attendance tracking post-migration must evaluate dedicated time-tracking tools.
Keka
Payroll History and Pay Components
Recruit CRM & ATS
(excluded — no destination equivalent)
1:1Keka payroll runs, pay components, statutory deductions (PF, TDS, ESI), and reimbursement records have no equivalent object in Recruit CRM. We export payroll history as a structured data package (CSV/JSON) for the customer's finance team to retain outside Recruit CRM. We do not load payroll data into Recruit CRM as it would create orphan records with no functional purpose in an ATS-plus-CRM platform.
Keka
Performance Reviews and Bands
Recruit CRM & ATS
(excluded — no destination equivalent)
1:1Keka Perform review cycles, review instances, and performance band assignments have no equivalent in Recruit CRM's object model. We export review history as a structured data package. Keka's configurable performance band labels (Exceeds, Meets, Needs Improvement) are preserved as text in the export. Customers requiring performance management post-migration need a dedicated HCM tool.
Keka
Documents and Custom Document Fields
Recruit CRM & ATS
Candidate Attachment
1:1Keka document storage, document templates, and custom document fields holding employee-specific data map to Candidate attachments in Recruit CRM where attachment storage is available. Custom document field placeholders are evaluated: if a custom field maps to a candidate property (e.g., a government ID field), we map it to the corresponding Recruit CRM custom field. Template documents that are system-generated rather than candidate-specific are exported separately for the customer's records.
Keka
PSA: Projects, Time Entries, Billing Records
Recruit CRM & ATS
(excluded — no destination equivalent)
1:1Keka PSA projects, billable time entries, retainer billing records, invoices, and credit notes have no equivalent in Recruit CRM. We export project assignments, time entries, and billing records as a structured data package for the customer's finance team. Recruit CRM does not include PSA or billing functionality; customers requiring these features post-migration should evaluate dedicated PSA or billing platforms.
| Keka | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Employees | Candidate1:1 | Fully supported | |
| Hire: Candidates | Candidate1:1 | Fully supported | |
| Hire: Job Requisitions | Job1:1 | Fully supported | |
| Hire: Positions | Job1:many | Fully supported | |
| Hire: Scorecards and Interview Feedback | Candidate Activity + Note1:1 | Fully supported | |
| Legal Entity, Business Unit, Department, Location | Candidate (custom fields)lossy | Fully supported | |
| Time Off / Leave Requests | Candidate Activity1:1 | Fully supported | |
| Attendance Records | Candidate Activity1:1 | Fully supported | |
| Payroll History and Pay Components | (excluded — no destination equivalent)1:1 | Mapping required | |
| Performance Reviews and Bands | (excluded — no destination equivalent)1:1 | Mapping required | |
| Documents and Custom Document Fields | Candidate Attachment1:1 | Mapping required | |
| PSA: Projects, Time Entries, Billing Records | (excluded — no destination equivalent)1:1 | Mapping required |
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.
Keka gotchas
Effective-dated compensation and payroll history sequencing
Organizational hierarchy decomposition required
PSA billing model translation
Performance review band label customisation
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 data audit
We audit the Keka portal for active hiring pipelines, candidate records, job requisitions, client contact data, custom fields on candidates and jobs, interview scorecards and feedback, and document attachments. We identify which Keka modules are in scope (Keka Hire) and which are out of scope (Core HR, Payroll, PSA, Performance). We produce a written migration scope document listing all candidate records, job records, client contacts, and custom fields to migrate, with object counts and estimated volumes.
Custom field mapping and schema alignment
We generate a field-level mapping table for every Keka custom field on candidates and jobs. The customer reviews and approves the mapping, confirming which fields map to native Recruit CRM fields and which become custom fields. We also design the organizational hierarchy flattening (Keka's four-tier structure mapped to custom text fields on Candidate) and confirm the position-to-job decomposition strategy for Keka's late-2024 position-based hiring feature.
Staging migration and reconciliation
We run a full migration into a Recruit CRM staging environment using production-like volumes. The customer's recruiting lead reconciles record counts (Candidates in, Jobs in, Client Contacts in), spot-checks 25-50 candidate records against the Keka source for field accuracy, and reviews the organizational hierarchy flattening. Any mapping corrections happen at this stage before production migration begins.
Document attachment preparation
We extract candidate document attachments (resumes, portfolio files, certificates) from Keka and package them for import into Recruit CRM's attachment storage. If Recruit CRM's attachment limits or storage model constrain bulk upload, we export attachments as a file package with a manifest linking each file to its candidate record ID for manual re-upload post-migration. The customer decides the attachment strategy during scoping.
Production migration in dependency order
We run production migration in record-dependency order: Client Contacts first (for reference data), then Jobs, then Candidates with org hierarchy fields resolved, then interview Activity notes and scorecards, then document attachments. Each phase emits a row-count reconciliation report before the next phase begins. We flag any records that fail import (e.g., duplicate email conflicts) to the customer for resolution before resuming.
Cutover, validation, and workflow handoff
We freeze Keka Hire writes during cutover, run a final delta migration of any records modified during the migration window, then enable Recruit CRM as the system of record for recruiting. We deliver the Keka Hire workflow inventory document with Recruit CRM automation equivalents to the customer's team. We support a one-week hypercare window for reconciliation issues. We do not rebuild Keka workflows in Recruit CRM as that requires the customer's admin to configure within Recruit CRM's own automation builder.
Platform deep dives
Keka
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 Keka 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
Keka: Not publicly documented.
Data volume sensitivity
Keka 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 Keka to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
Walk through your Keka 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 Keka
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.