HRMS migration
Field-level mapping, validation, and rollback between Occupop and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.
Occupop
Source
Recruit CRM & ATS
Destination
Compatibility
8 of 10
objects map 1:1 between Occupop and Recruit CRM & ATS.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Occupop to Recruit CRM is a migration between two ATS platforms built for different primary audiences: Occupop for SMB hiring teams, Recruit CRM for recruitment agencies and executive search firms. Recruit CRM's strength is its ATS-plus-CRM design with AI resume parsing, candidate matching, and a kanban view for both candidates and deals, but its custom field ceiling (15 on Pro, 150 on Business and Enterprise) is the first constraint to verify against your Occupop tenant's field count. We extract Occupop's Jobs, Candidate profiles, stage sequences, and user accounts through Occupop's export capabilities, transform custom fields and stage names during a scoping phase, and land records into Recruit CRM via its REST API with parent-lookup resolution. Workflow configurations, automation rules, and offer/onboarding state do not migrate; we deliver a written inventory of these for your 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 Occupop 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.
Occupop
Job (Position)
Recruit CRM & ATS
Position
1:1Occupop Jobs map to Recruit CRM Positions. Each Job carries title, description, department, location, and status (active/closed). We preserve the original Occupop Job ID as source_job_id__c for audit traceability. Active Jobs are imported with their status; closed Jobs are imported with a Closed status flag and excluded from the active pipeline count. Board-distribution history (Indeed, LinkedIn, Reed, etc.) is exported as a structured JSON list per Job and surfaced as a separate sidecar file post-migration for your team to re-create postings in Recruit CRM's multi-posting interface.
Occupop
Candidate (Applicant)
Recruit CRM & ATS
Candidate
1:1Occupop Candidate records map to Recruit CRM Candidates. Standard fields (name, email, phone, current company, current title, LinkedIn URL, source) migrate directly. The AI screening score and rank within the Job's candidate pool migrate as numeric fields to Recruit CRM's candidate rating or custom score fields. Candidates are linked to their destination Position during import using the Job slug-to-position-id lookup resolved at migration time.
Occupop
Workflow Stage
Recruit CRM & ATS
Pipeline Stage
lossyEach Occupop Job defines an ordered stage sequence (e.g. Applied, Screening, Interview, Offer). We export the full stage sequence per Job and map stage names to Recruit CRM pipeline stages. If Recruit CRM's default stage set does not match the customer's naming convention, we configure custom stages during the schema design phase. Stage probabilities are preserved if stored in Occupop and mapped to Recruit CRM stage weight fields.
Occupop
User (Hiring Team Member)
Recruit CRM & ATS
Team Member
1:1Occupop Users with Admin, Hiring Manager, Recruiter, and Viewer roles map to Recruit CRM Team Members. We export by email match and flag any Occupop role with no direct Recruit CRM equivalent. The customer's admin provisions the matching user accounts in Recruit CRM before migration so that OwnerId references are satisfied at import time. Inactive Occupop users are mapped to inactive Recruit CRM users to preserve historical assignment.
Occupop
CV and Attachment
Recruit CRM & ATS
Resume / File Attachment
1:1CV files linked to Occupop Candidates are exported as raw files alongside the candidate mapping. We re-attach each CV to the corresponding Recruit CRM Candidate record using the candidate slug resolved at migration time. File naming uses the convention candidate_[id]_cv.[ext] for traceability. If Occupop stores multiple attachments per Candidate, each is mapped individually to the Candidate record.
Occupop
Interview Feedback and Scorecard
Recruit CRM & ATS
Notes
1:1Occupop interview notes and scorecard responses are stored per Candidate per stage. Recruit CRM does not expose a native interview-feedback object; we land the full feedback text and numeric scores as Notes on the Candidate record with a note type field indicating the stage (e.g. Interview - Screening, Interview - Final Round). The original interviewer name and date are preserved in the note body for audit purposes.
Occupop
Custom Fields
Recruit CRM & ATS
Custom Fields
lossyOccupop Custom Fields are arbitrary tenant-defined key-value pairs on Candidate records. We inspect the source tenant's custom field definitions during scoping, count them against the target Recruit CRM plan limit (15 on Pro, 150 on Business and Enterprise), and flag any overage before migration begins. If the count exceeds Pro's limit, the customer upgrades to Business or Enterprise. We map each Occupop custom field to an equivalent Recruit CRM custom field by type (text, number, date, picklist), preserving field labels as configured in Recruit CRM.
Occupop
Score and Ranking Data
Recruit CRM & ATS
Candidate Rating / Custom Score Field
1:1Occupop's AI screening score (0-100) and candidate rank within a Job's pool migrate as structured fields on the Recruit CRM Candidate record. The score lands in a numeric custom field (e.g. ai_screening_score__c), and the rank lands as candidate_rank__c. If Recruit CRM's native rating field (1-5 stars) is preferred, we normalise the score to the 1-5 scale using the customer's agreed conversion formula during the transform phase.
Occupop
Offer and Onboarding Records
Recruit CRM & ATS
(Not migrated)
1:1Offer letters, employment contracts, and onboarding workflow state live in Cezanne HR's broader suite post-acquisition and are not accessible via Occupop's ATS export. We do not migrate offer or onboarding records. The customer exports these directly from Cezanne HR before migration begins. This exclusion is documented in the migration scope and signed off before data extraction starts.
Occupop
Job Board Distribution History
Recruit CRM & ATS
Sidecar JSON / Structured Notes
1:1Occupop tracks which job boards each Job was distributed to (Indeed, LinkedIn, Reed, Glassdoor, etc.) and the posting date. Recruit CRM does not natively store board-distribution history per job. We export this as a structured JSON sidecar file keyed by Job ID and also append it as a formatted note on the Position record so recruiters can re-create distributions manually in Recruit CRM's multi-posting channel without losing the original board list.
| Occupop | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Job (Position) | Position1:1 | Fully supported | |
| Candidate (Applicant) | Candidate1:1 | Fully supported | |
| Workflow Stage | Pipeline Stagelossy | Fully supported | |
| User (Hiring Team Member) | Team Member1:1 | Fully supported | |
| CV and Attachment | Resume / File Attachment1:1 | Fully supported | |
| Interview Feedback and Scorecard | Notes1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Score and Ranking Data | Candidate Rating / Custom Score Field1:1 | Fully supported | |
| Offer and Onboarding Records | (Not migrated)1:1 | Not supported | |
| Job Board Distribution History | Sidecar JSON / Structured Notes1:1 | 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.
Occupop gotchas
Cezanne HR acquisition may change data residency and contract terms
Offer and onboarding data lives outside Occupop's ATS scope
Custom Fields schema varies by tenant and may require mapping
Job posting board-distribution history does not map to standard ATS fields
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 custom field audit
We audit the source Occupop tenant across Jobs, Candidates, stage sequences, custom field definitions, user accounts, CV file inventory, and interview feedback volume. We count every custom field definition and compare against Recruit CRM plan limits (15 on Pro, 150 on Business and Enterprise). If the field count exceeds Pro's ceiling, we recommend the Business or Enterprise plan and update the scope accordingly. We also identify any Cezanne HR offer/onboarding data that requires separate export. The discovery output is a written migration scope document with record counts, field map draft, and plan recommendation signed off by the customer before data extraction begins.
Schema design and field mapping
We design the destination schema in Recruit CRM. This includes provisioning custom fields (matched to Occupop field names and types), configuring pipeline stages (mapped from Occupop stage sequences per Job), and setting up the team member structure. We build the field mapping table that governs every import run: Occupop field name, data type, transformation rule (direct map, normalisation, or fallback), and the corresponding Recruit CRM field. The field map is validated against a sample of 50-100 records before any full-scale import to catch type mismatches or truncation risks.
CV file export and staging
We extract all CV files from Occupop linked to Candidate records, verify file integrity (format, size, naming), and stage them alongside the candidate mapping CSV. Each CV is associated with its candidate ID for re-attachment in Recruit CRM. Large CV libraries (over 2 GB combined) are chunked for import in batches to avoid timeout during the file attachment phase. We flag any corrupted or missing CV files and report them to the customer for manual recovery before the final import run.
Sandbox migration and reconciliation
We run a full migration into Recruit CRM using a test environment or a subset of production data (typically 10-20% of records selected by the customer). The customer reconciles record counts (Positions, Candidates, Notes, attachments), spot-checks 25-50 candidate records for field accuracy, and validates that stage names, custom field values, and CV attachments appear correctly. Any mapping corrections are applied to the field map and the sandbox run is repeated until reconciliation passes. Sign-off on sandbox results is required before production migration begins.
Owner and user provisioning
We extract every distinct Occupop user referenced on Candidate, Job, and feedback records and match by email against Recruit CRM team member accounts. The customer's Recruit CRM admin provisions any missing accounts before production migration so that OwnerId references are satisfied. Inactive Occupop users are mapped to inactive Recruit CRM users to preserve historical assignment without licensing implications. Migration cannot proceed past this step if OwnerId lookups remain unresolved.
Production migration in dependency order
We run production migration in record-dependency order: Positions (Jobs) first, then Candidates (with Position slug resolved to Recruit CRM Position ID), then Notes (interview feedback and board-distribution history), then file attachments (CVs re-linked to Candidate records). Each phase emits a row-count reconciliation report. Board-distribution history is delivered as a structured JSON sidecar and appended as formatted notes on each Position. Custom fields are imported last after standard fields are validated. After all phases complete, we run a final delta scan to capture any records modified during the migration window.
Cutover, validation, and automation handoff
We freeze Occupop writes during cutover and run a final delta migration of any records modified during the window. We validate the production import: candidate count matches, CV attachment rate above 95%, custom field values present for all mapped fields. We deliver the automation and workflow inventory document listing every Occupop Workflow or stage-configuration rule that requires rebuilding in Recruit CRM. We support a one-week hypercare window for reconciliation issues. We do not rebuild Occupop Workflows as Recruit CRM automations inside migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Occupop
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 Occupop 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
Occupop: Not publicly documented.
Data volume sensitivity
Occupop 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 Occupop to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
Walk through your Occupop 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 Occupop
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.