HRMS migration

Migrate from Personio to Crelate

Field-level mapping, validation, and rollback between Personio and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.

Personio logo

Personio

Source

Crelate

Destination

Crelate logo

Compatibility

83%

10 of 12

objects map 1:1 between Personio and Crelate.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Personio and Crelate serve different primary functions: Personio is an all-in-one HRIS whose recruiting module is a secondary capability, while Crelate is a purpose-built ATS and recruiting CRM for staffing firms and in-house talent teams. Companies moving from Personio to Crelate are typically doing so because Personio's applicant tracking system lacks the pipeline depth, search flexibility, and workflow customization that specialized recruiting teams require. We extract recruiting data from Personio's API including Positions, Applications, and candidate records, map them to Crelate's Jobs, Candidates, Contacts, and Companies, and load via Crelate's REST API with lookup resolution. The main extraction risk is Personio's 300 requests per minute rate limit on the Employees endpoint and the documented inability of the API to retrieve custom_attributes on job application forms; we address both during discovery. We do not migrate Personio absence workflows, onboarding approval chains, or performance review templates as code; these do not transfer to Crelate's recruiting-specific data model and we document them for your admin to rebuild.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Personio logo

Personio

What's pushing teams away

  • Report customization is severely limited — users cannot copy reports between views or apply advanced filters, forcing repeated manual work that outgrows the platform over time.
  • Limited customisation of workflows and fields frustrates companies with non-standard HR processes, complex org structures, or multiple contract types that do not fit Personio's templates.
  • Performance management and feedback tools are considered thin — absence of robust 360-degree review cycles, competency frameworks, and development planning drives churn for HR teams with mature performance cultures.
  • Navigation becomes a friction point at scale — users report difficulty locating documents, nested settings, and specific configuration panels, especially for non-standard HR scenarios.
  • Recruiting analytics contain discrepancies — multiple reviews cite incorrect figures in recruiting reports, undermining data-driven hiring decisions.

Choosing

Crelate logo

Crelate

What's pulling them in

  • Affordable per-seat pricing with transparent tiers makes Crelate accessible for small-to-mid staffing firms evaluating ATS platforms for the first time.
  • Fast implementation reported by customers—some describe getting live in a matter of minutes with support team assistance.
  • Unified ATS + CRM in a single product eliminates the need to buy and synchronize separate recruiting and sales tools.
  • Flexible custom fields across Contacts, Companies, and Opportunities allow recruiting teams to capture firm-specific data without developer involvement.
  • Positive reviews highlight the product's intuitive interface and functional breadth for teams that need recruiting workflows without enterprise overhead.

Object mapping

How Personio objects map to Crelate

Each row shows how a Personio 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.

Personio

Recruiting Position (Job Posting)

maps to

Crelate

Job

1:1
Fully supported

Personio Recruiting Positions map to Crelate Job records. The Personio position title, department, location, status, and hiring manager transfer to Crelate's job_name, department, location, status, and AssignedTo fields. We extract position metadata via the Personio API and POST to Crelate's Jobs endpoint (POST /api3/jobs). Job status mapping follows the customer's agreed mapping table: Personio's Active/Draft/Closed maps to Crelate's Open/Paused/Closed. Note that Crelate Jobs are distinct from Crelate Job Orders in its legacy model; we target the current Jobs API.

Personio

Application (Candidate)

maps to

Crelate

Candidate

1:1
Fully supported

Personio Applications linked to Recruiting Positions map to Crelate Candidate records. Standard fields including name, email, phone, application date, status, and source migrate. Candidate records in Crelate are linked to the destination Job via the submission history. We use the Crelate Candidate endpoint (POST /api3/candidates) with email as the dedupe key. Custom application form attributes are a known gap — see the gotchas section.

Personio

Application Status

maps to

Crelate

Candidate Status + Stage

lossy
Fully supported

Personio application stages (Applied, Screening, Interview, Offer, Hired, Rejected) map to Crelate's candidate status workflow on the Job. We build a status mapping table during scoping that aligns Personio's stage names to Crelate's configurable pipeline stages per Job. Status transitions and rejection reasons transfer to Crelate's activity log.

Personio

Employee (core HR record)

maps to

Crelate

Contact

1:1
Fully supported

Personio Employees map to Crelate Contact records if the migration scope includes internal employee data or if former employees are being imported as candidate prospects. Employee name, email, department, job title, manager, and employment dates transfer. We extract via GET Employees (rate-limited at 300 req/min) and POST to Crelate's Contacts endpoint. If the customer is only migrating recruiting data, the Employee-to-Contact mapping is optional and scoped during discovery.

Personio

Department

maps to

Crelate

Department (tag or field)

1:1
Fully supported

Personio Departments transfer as Crelate tags on Job and Candidate records, or as a custom Department picklist field on Contact if the customer requires org-structure reporting in Crelate. We preserve the department hierarchy as a flat tag list during migration, with the customer's admin confirming the preferred tagging strategy during scoping.

Personio

Document (Employee file)

maps to

Crelate

Document attachment on Contact/Company

1:1
Fully supported

Personio employee documents (contracts, certificates, ID scans) stored against the Employee record can be attached to the corresponding Crelate Contact record as document links. Document naming conventions vary by company in Personio, so we map file names to a consistent Crelate document type structure (Contract, Certificate, ID, Other). Documents are downloaded from Personio via the document retrieval API and uploaded to Crelate's document storage linked to the Contact record.

Personio

Absence Record

maps to

Crelate

Not migrated to Crelate

1:1
Fully supported

Personio Absence records (vacation, sick leave, time-off balances) do not map to Crelate's ATS/CRM data model. Crelate does not have an absence or time-off management module. If the customer needs to retain absence history for compliance or reporting, we export absence records as a CSV inventory delivered alongside the migration. The customer's HR team retains absence data in Personio's read-only state or exports to a separate HR system.

Personio

Payroll Record

maps to

Crelate

Not migrated to Crelate

1:1
Fully supported

Personio Payroll records (salary, bonus, compensation entries, effective-dated changes) do not migrate to Crelate. Crelate is a recruiting ATS/CRM and does not have a payroll module. We export payroll data as a typed CSV with effective_date preserved and deliver it to the customer's finance or HR team for import into their payroll system of record.

Personio

Performance Review

maps to

Crelate

Not migrated to Crelate

1:1
Fully supported

Personio Performance Reviews and Goals (OKRs) do not migrate to Crelate. Crelate does not support a performance management data model. We export review status, ratings, and goal progress as a CSV inventory for the customer's HR team. The customer's admin rebuilds performance review templates in their chosen performance management tool (Personio, Lattice, BambooHR, or another HRIS) post-migration.

Personio

Custom Attributes (Employee)

maps to

Crelate

Custom Fields on Contact

lossy
Fully supported

Personio custom employee attributes (attributes not in the standard Personio employee schema) map to Crelate custom fields on Contact. We discover all custom attributes via Personio's API schema introspection and create matching Crelate custom fields under Settings > Core Records > Contacts before migration. Field types are mapped: text attributes to Crelate Text fields, date attributes to Crelate Date fields, numeric attributes to Crelate Number (Decimal) fields.

Personio

Custom Attributes (Application)

maps to

Crelate

Custom Fields on Candidate or Activity Form

1:1
Fully supported

Personio custom_attributes on job application forms are a known API gap — the Personio API does not expose these fields. We ask the customer during scoping to provide the full list of custom application form fields and a data export (screen scrape, manual export, or the customer's own record). We map these to Crelate custom fields on the Candidate record or as Activity Form questions with field mappings to the Contact. The customer must enumerate the field names and data manually; we cannot extract them via API.

Personio

Recruiting Reports / Analytics

maps to

Crelate

Not migrated

1:1
Fully supported

Personio recruiting pipeline analytics and reports are not migrated because the data is known to contain discrepancies. Crelate's native reporting (Advanced Reports and Analytics on the Business plan) replaces these from the date of go-live. We advise the customer to treat Personio's recruiting analytics as historical reference rather than authoritative data and to verify figures against actual application records before migration scoping begins.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Personio logo

Personio gotchas

High

GET Employees API rate limit of 300 req/min

High

Custom attributes on recruiting application forms not in API

Medium

Domain migration from .de to .com but API stays on .de

Medium

Date and number format inconsistencies by locale

Low

Recruiting report figures are not always accurate

Crelate logo

Crelate gotchas

High

120 req/min API rate limit throttles bulk migrations

High

20 custom field per-entity cap forces data model decisions

Medium

15,000-record export ceiling on single operations

Medium

Sequences and automation workflows do not migrate

Low

API key is a querystring parameter, not a header

Pair-specific challenges

  • Personio API does not return custom_attributes on application forms

    The Personio community has documented and we confirm that custom_attributes configured on job application forms cannot be retrieved via any documented Personio API endpoint. These fields appear to candidates during the application process but are not exposed in the applications endpoint response. During migration scoping, we explicitly ask customers to provide the complete list of custom application form fields, their types, and a data export of the values. Without this step, custom candidate data will be missed entirely and not transferred to Crelate. We flag this gap in the discovery report and require the customer to supply the enumeration before application data migration begins.

  • Personio GET Employees rate limit of 300 req/min constrains extraction speed

    Personio enforces a rate limit of 300 requests per minute on the GET Employees endpoint with a burst capacity of 15 requests per second as of May 2024. For organizations with hundreds of employees and a migration scope that includes core HR records alongside recruiting data, we implement paginated extraction with exponential backoff and request queuing to stay within the limit without losing records or extending timelines. Exceeding the limit returns a 429 error and can delay extraction; we monitor response headers and throttle proactively rather than reactively.

  • Crelate lookup fields require Id resolution before insert

    Crelate's API uses lookup-Id resolution on writes: when creating a Candidate or Job, any reference to a related record (for example, a Contact linked to a Company, or an Activity linked to a Candidate) requires the destination system's Id field, not just a name string. If the Id field is blank and a name is provided, Crelate creates a new record and links it. We pre-resolve all lookup references during the transform phase so that every write lands on the correct existing record rather than generating duplicates. This is especially important for the Contact-to-Company relationship during candidate migration.

  • Personio API remains on developer.personio.de after domain migration

    Personio completed its web access migration from personio.de to personio.com in March 2025, but the Public API remains at developer.personio.de. We whitelist developer.personio.de in all connection configurations and explicitly flag this in the IT requirements checklist. Customers who whitelist only personio.com will experience API connection failures during extraction, causing migration delays. We confirm both domains are accessible before migration begins.

  • Two export windows are required; some vendors charge for data exports

    Crelate's own migration documentation recommends at least two data exports from the source system: one for initial mapping and validation, and one for the final cutover. Personio does not charge for API access, but some ATS platforms charge for database exports. We confirm export policies during discovery and plan for two extraction windows spaced two to three weeks apart for large datasets. Delays in providing the second export extend the migration timeline and may incur additional charges.

Migration approach

Six steps for a successful Personio to Crelate data migration

  1. Discovery and data inventory

    We audit the Personio account across the recruiting module (Positions, Applications, Candidates), core HR (Employees, Departments, Documents), and any custom application form fields. We extract a schema snapshot via the Personio API and conduct a data inventory call with the customer's admin to enumerate custom attributes, confirm field values, and identify any data quality issues (duplicate records, missing fields, incorrect dates). The output is a written migration scope document covering all objects in scope, all objects not migrating, and the custom attribute enumeration form the customer must complete.

  2. Crelate schema preparation

    We set up the Crelate destination environment before migration begins. This includes creating custom fields on Contact, Company, Job, and Candidate records to match Personio custom attributes, configuring Job pipeline stages to align with Personio position statuses, and setting up user roles and API access under Settings > Advanced Settings > User Roles. Crelate requires API access to be explicitly enabled per user; we confirm the migration service account has API access and capture the API key from Settings > My Settings & Preferences.

  3. Personio data extraction with rate-limit handling

    We extract data from Personio using the REST API at developer.personio.de. For the Employees endpoint, we implement paginated extraction with exponential backoff to respect the 300 req/min rate limit. For Recruiting Positions, we extract via the recruiting/positions endpoint and merge with application data. We handle the custom_attributes gap by mapping the customer-provided enumeration to a staging table. All dates are normalized to ISO 8601 during extraction. The first extraction serves as the mapping baseline; the second extraction (scheduled near cutover) captures any changes made during the migration window.

  4. Transformation and lookup resolution

    We transform Personio records to Crelate schema in a staging environment. This includes mapping application statuses to Crelate pipeline stages, resolving Contact-to-Company lookups by matching company names to existing Crelate Company Ids, splitting candidate records by application status for targeted insertion, and mapping custom attributes to their corresponding Crelate custom fields. Any Personio custom application fields are merged from the customer-provided data enumeration into the candidate record. We generate a transformation report showing source value, transformed value, and any records that failed mapping rules for customer review.

  5. Test migration and validation

    We run a full test migration into the customer's Crelate sandbox or a designated test environment before production. The customer's recruiting leads review a sample of migrated candidate records, verify pipeline stage assignments, confirm document attachments, and spot-check custom field values against the Personio source. We correct any mapping errors and re-run the test migration. The customer signs off on the test results before we schedule the production cutover. Crelate's own documentation recommends this step and we align with that best practice.

  6. Production migration and cutover

    We schedule the production migration during a low-activity window (Crelate recommends evenings or weekends). We freeze new Personio recruiting writes during cutover, run the final extraction, apply the transformation, and insert records into Crelate in dependency order: Companies first (for lookup resolution), then Contacts, then Jobs, then Candidates with their Job submission links. We run a post-migration reconciliation report comparing record counts and spot-checking field values. We deliver the migration inventory document listing all objects migrated, all objects excluded, and a written handoff for any workflows or approval chains requiring rebuild in Crelate.

Platform deep dives

Context on both ends of the pair

Personio logo

Personio

Source

Strengths

  • All-in-one HR coverage from a single vendor reduces tool fragmentation for SMEs
  • European-headquartered with strong GDPR compliance and multi-country employment law support
  • Fast implementation: four-week average time-to-live from contract signing
  • Competitive entry pricing at $5 per employee per month for base HR functionality
  • Intuitive employee and manager self-service portal reduces HR admin burden

Weaknesses

  • Report builder lacks copy, filter, and export capabilities that power users need
  • Performance management module is shallow compared to dedicated performance tools
  • Customisation is constrained — complex org structures and non-standard contract types require workarounds
  • Recruiting analytics contain data discrepancies that undermine reporting accuracy
  • Document storage and retrieval interface is difficult to navigate for non-standard HR files
Crelate logo

Crelate

Destination

Strengths

  • Unified ATS and CRM in a single platform reduces data synchronization overhead for recruiting teams.
  • Fast setup with guided implementation reported as a significant time saver for small teams.
  • Transparent per-seat pricing without surprise fees at the base tier.
  • Flexible custom field configuration across core objects without developer dependency.
  • Export capability supports up to 15,000 records per operation for Contacts, Companies, and Opportunities.

Weaknesses

  • API rate limit of 120 requests per minute restricts bulk migration throughput.
  • Custom field cap of 20 per entity requires field consolidation for complex recruiting schemas.
  • All advanced features (Activities, Activity Forms, Core Record Field customization) are tier-gated add-ons.
  • Customer service responsiveness receives consistent negative feedback in reviews.
  • Resume parsing quality trails competitors and generates support requests.

Complexity grading

How hard is this migration?

Standard HRMS migration. 2 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Personio and Crelate.

  • Object compatibility

    B

    2 of 7 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Personio: 300 requests per minute on GET Employees endpoint; 15 req/s burst.

  • Data volume sensitivity

    B

    Personio doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Personio to Crelate migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Personio to Crelate data migrations

Answers to the questions buyers ask most during Personio to Crelate migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Personio to Crelate migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for organizations with up to 2,000 candidate records and 50 active job postings. Migrations with large historical application archives (over 10,000 records), multiple custom application form fields requiring manual data enumeration, or organizations that also need core HR data extraction alongside ATS data extend to seven to ten weeks. Crelate's own migration documentation cites 1-3 weeks for standard ATS-to-Crelate moves; Personio adds extraction complexity due to rate-limit handling and the custom attributes gap.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Personio.
Land in Crelate, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day