HRMS migration
Field-level mapping, validation, and rollback between Employ and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.
Employ
Source
Recruit CRM & ATS
Destination
Compatibility
7 of 10
objects map 1:1 between Employ and Recruit CRM & ATS.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Employ to Recruit CRM is a recruiter-focused migration that requires careful handling of three Employ-specific data structures: AI-generated interview scores stored as metadata on the Candidate record, customer-configured pipeline stages with no standard schema, and I-9 and E-Verify documents that must transfer with regulatory integrity rather than triggering re-verification in Recruit CRM. We audit the full object inventory during discovery, map each stage to its Recruit CRM equivalent, flag any without a direct counterpart, and write AI scores into a custom field on the Candidate so that evaluation history survives the move. Recruit CRM's REST API at https://api.recruitcrm.io/v1 handles the load, and its three-tier pricing (Pro, Business, Enterprise) defines which workflow automation features are available post-migration. Workflows, automations, and job board distribution settings do not migrate; we deliver a written inventory for the customer's team to rebuild.
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 Employ 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.
Employ
Candidate
Recruit CRM & ATS
Candidate
1:1Employ Candidates map to Recruit CRM Candidates. The core contact fields (name, email, phone, work history, education) migrate directly. AI interview scores generated by Employ's AI Recruiter are stored as metadata on the Candidate; we extract these during the data audit, create a custom field on the Recruit CRM Candidate object, and write the score values during the load phase. We use the Recruit CRM Candidates API endpoint (POST /v1/candidates) for initial creation and update associated fields via the /associated-field endpoint with field_id and value pairs.
Employ
Job Posting
Recruit CRM & ATS
Job
1:1Employ Jobs map to Recruit CRM Jobs. Title, description, department, location, and job status transfer directly. We create Recruit CRM Jobs first during migration so that Job IDs are available for resolving Application-to-Job lookups during the Candidates and Applications load phases. Job posting status (Open, Closed, Draft) maps to Recruit CRM's status field.
Employ
Application
Recruit CRM & ATS
Application
1:1Employ Applications link a Candidate to a Job and track pipeline stage. We map Applications to Recruit CRM's candidate-job association, preserving stage history and stage-entry timestamps as activity records. The Application-to-Candidate and Application-to-Job lookups are resolved using the IDs created during the earlier Job and Candidate load phases. Application notes migrate as Comments or activity entries against the Candidate record.
Employ
Hiring Pipeline and Stages
Recruit CRM & ATS
Pipeline and Stages
lossyEmploy allows per-customer pipeline stage configurations with no standard schema. We extract every active stage name during discovery and match them to Recruit CRM pipeline stages. Any Employ stage without a direct Recruit CRM equivalent is flagged for manual assignment before the Applications load phase to prevent candidates landing in a null or default stage. Stage-entry timestamps are preserved as activity records in Recruit CRM.
Employ
AI Interview Scores
Recruit CRM & ATS
Custom Field on Candidate
lossyEmploy AI Recruiter generates interview evaluation scores as metadata on the Candidate record, not as a standalone object. We identify all Candidates with AI scores during the data audit, extract the structured score values, create a custom field on the Recruit CRM Candidate object, and write the scores during the Candidate load phase. The field name is agreed with the customer during scoping. This extraction step is the primary reason migrations with high AI-evaluated candidate volume require additional time during discovery.
Employ
I-9 and E-Verify Records
Recruit CRM & ATS
Document / Attachment on Candidate or Employee
1:1Employ I-9 and E-Verify records are regulatory compliance documents associated with the hired Employee. We carry these as encrypted file attachments linked to the Candidate or Employee record in Recruit CRM rather than triggering re-verification. Before migration, the customer confirms whether Recruit CRM will accept pre-completed I-9 forms; some compliance configurations require manual re-entry at the destination, which we flag explicitly in the pre-migration compliance summary. The original document files are base64-encoded and uploaded as ContentDocument records.
Employ
Employee (Post-Hire)
Recruit CRM & ATS
Candidate (hired status)
1:1Employ Employee records created after a candidate is hired (holding start date, department, manager, employment status) map to Recruit CRM Candidates with a hired status flag. We preserve the employment start date, department, and manager as fields on the Recruit CRM Candidate record. If Recruit CRM is used purely as an ATS, hired candidates remain as Candidates with status fields; if the agency uses Recruit CRM for internal placements, the record structure is agreed with the customer during scoping.
Employ
User and Role
Recruit CRM & ATS
User
1:1Employ Users assigned as Recruiters, Hiring Managers, or Admins map to Recruit CRM Users. Role names from Employ are mapped to Recruit CRM role equivalents during scoping. We extract all User records and email addresses to create a reconciliation queue: any Employ User without a matching Recruit CRM User is held for the customer to provision before record migration proceeds.
Employ
Custom Fields
Recruit CRM & ATS
Custom Fields
lossyEmploy supports custom fields on Jobs, Candidates, and Applications with no published schema documenting which fields exist per customer. We conduct a field-level discovery during scoping, extracting the complete list of active custom fields and their data types from the source export. We create matching custom fields on the Recruit CRM equivalent objects (via the Recruit CRM API or admin interface) before the load phase begins. Custom field creation is a prerequisite for the Candidate and Application phases.
Employ
Job Board Distributions
Recruit CRM & ATS
Not Migrated
1:1Employ tracks job board distribution settings as platform-specific configuration rather than as data records. These settings are not transferable to Recruit CRM because the destination's job multiposting configuration (available on Enterprise, reaching 5,000+ channels) requires re-authentication and re-setup by the customer. We document the list of configured boards in the migration summary and recommend setting up Recruit CRM's Job Multiposting on the Enterprise plan after go-live.
| Employ | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Job Posting | Job1:1 | Fully supported | |
| Application | Application1:1 | Fully supported | |
| Hiring Pipeline and Stages | Pipeline and Stageslossy | Fully supported | |
| AI Interview Scores | Custom Field on Candidatelossy | Mapping required | |
| I-9 and E-Verify Records | Document / Attachment on Candidate or Employee1:1 | Mapping required | |
| Employee (Post-Hire) | Candidate (hired status)1:1 | Fully supported | |
| User and Role | User1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Job Board Distributions | Not Migrated1:1 | Not 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.
Employ gotchas
AI interview scores stored as metadata on Candidate, not as a native object
I-9 and E-Verify records require compliance-aware handling
Pipeline stages are customer-configured with no standard schema
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 scoping
We audit the source Employ account across all object types: Candidates, Applications, Jobs, pipeline stage configurations, custom fields, AI interview score presence, Employee records, and User accounts. We extract a representative sample of candidate records to identify whether AI scores are present and in what format. We produce a written migration scope that lists all objects, estimated record counts per object, all custom field names and types, and all pipeline stage names with their job associations. This scope is the foundation for the Recruit CRM schema design.
Schema design and Recruit CRM field creation
We design the destination schema in Recruit CRM. This includes creating custom fields on Candidate and Job objects to receive any Employ custom field values, including the AI interview score custom field agreed with the customer. We configure pipeline stages in Recruit CRM by mapping each named Employ stage to its Recruit CRM equivalent, flagging any without a direct match for the customer's admin to resolve before the Applications phase. Recruit CRM's API endpoint POST /v1/candidates with associated_fields is used for custom field writes; we test a small batch of records via the sandbox API before production load.
Sandbox migration and reconciliation
We run a migration into a Recruit CRM test or staging environment using a representative data subset. The customer's operations lead spot-checks 20-30 randomly selected Candidates and Applications against the Employ source records, verifying field-level accuracy, pipeline stage placement, and custom field values. AI score values are verified explicitly against the original Employ Candidate metadata. The customer signs off on the sandbox results before production migration begins. Any mapping corrections or field creation gaps surface here.
Owner and User reconciliation
We extract every distinct Employ User referenced on Candidates, Applications, and Employee records and match by email address against Recruit CRM Users. Any Employ User without a matching Recruit CRM User is held in a reconciliation queue. The customer provisions missing Recruit CRM Users before the production migration proceeds, because OwnerId and assignment references on Candidate and Application records require a valid User in the destination to resolve.
Production migration in dependency order
We run production migration in record-dependency order: Jobs first (creating IDs for later lookup resolution), Candidates with AI scores and custom field values written via the Recruit CRM associated_fields endpoint, Applications linked to resolved Job and Candidate IDs with stage timestamps preserved as activity records, I-9 and E-Verify documents uploaded as encrypted ContentDocument records, and Employees (post-hire) mapped to Candidate records with hired status. Each phase emits a row-count reconciliation report before the next phase begins. Recruit CRM's API rate limits are respected via exponential backoff on 429 responses.
Cutover, validation, and workflow rebuild handoff
We freeze Employ writes during cutover, run a final delta migration of records modified during the migration window, then mark Recruit CRM as the system of record. We validate the Candidate count, Application count, Job count, and pipeline stage distribution against the Employ source. We deliver a written migration inventory covering all migrated objects, custom fields, pipeline stage mapping, and I-9/E-Verify document locations. Workflow and automation rebuild guidance is documented separately because these are not migrated as code. We support a post-go-live reconciliation window for the customer's team to raise record-level issues.
Platform deep dives
Employ
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 Employ 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
Employ: Documented separately per brand; Lever ~10 requests/sec per token, Jobvite plan-tier dependent, JazzHR not extensively documented.
Data volume sensitivity
Employ 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 Employ to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
Walk through your Employ 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 Employ
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.