HRMS migration

Migrate from Breathe to Recruit CRM & ATS

Field-level mapping, validation, and rollback between Breathe and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.

Breathe logo

Breathe

Source

Recruit CRM & ATS

Destination

Recruit CRM & ATS logo

Compatibility

100%

12 of 12

objects map 1:1 between Breathe and Recruit CRM & ATS.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Breathe HRMS and Recruit CRM serve different operational models. Breathe organises its data around employees within an HRIS paradigm: People records, absence balances, sickness entries, performance reviews, and company documents. Recruit CRM is a recruitment ATS and CRM built around Candidates, Job Orders, Clients, and Placements. Migrating between them requires a conceptual transformation, not a direct field copy: employee records become candidate profiles, employment history becomes the candidate's work experience, and absence records require careful placement as notes, custom fields, or compliance documentation. We do not migrate Breathe Workflows, onboarding task definitions, Breathe Learn completion records, or any automation logic, because these have no structural equivalent in Recruit CRM. We deliver a written inventory of every automation and workflow that requires rebuilding in Recruit CRM's settings post-migration.

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

Breathe logo

Breathe

What's pushing teams away

  • Organisations with more than 200 employees report that Breathe lacks the advanced HR features — including rich performance management, payroll integration depth, and configurable workflows — needed for complex operations.
  • Users on G2 and Capterra describe the interface as not user-friendly, with continued usability issues that persist across updates, making day-to-day navigation frustrating for HR administrators.
  • Reviewers who switched away cite limited customisation: custom fields are supported but the platform does not expose a flexible object model for building custom workflows or integrating with non-standard HR processes.
  • Absence reports and advanced analytics require higher tiers or add-on modules, and the reporting interface lacks the drill-down capabilities that growing HR teams expect from modern platforms.

Choosing

Recruit CRM & ATS logo

Recruit CRM & ATS

What's pulling them in

  • Agencies choose Recruit CRM for its full customizability — pipelines, stages, and fields can be tailored to any recruitment workflow without developer involvement.
  • Small teams value the built-in CRM and ATS combined in one subscription, eliminating the need to purchase and sync separate systems.
  • The Chrome extension for one-click LinkedIn profile collection streamlines candidate sourcing and reduces manual data entry for recruiters.
  • Responsive customer support with fast issue resolution is consistently cited as a reason teams stick with the platform long-term.
  • Automation options including email sequences and workflow triggers allow recruitment agencies to reduce repetitive manual outreach tasks.

Object mapping

How Breathe objects map to Recruit CRM & ATS

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

Breathe

Employee (People)

maps to

Recruit CRM & ATS

Candidate

1:1
Fully supported

Breathe Employee records map to Recruit CRM Candidate profiles. Name, email, phone, address, start date, and employment status transfer directly. The Breathe employment status (active, leaver, on leave) maps to Candidate status. Custom fields on the Employee record migrate to Recruit CRM custom fields on the Candidate object, with field types matched (text to text, date to date, picklist to dropdown). Department and job role from Breathe become tags or custom fields on the Candidate record.

Breathe

Department

maps to

Recruit CRM & ATS

Candidate Tags or Custom Field

1:1
Fully supported

Breathe Department records map to Candidate Tags in Recruit CRM for departmental classification. If the customer uses departmental cost-centre codes, these migrate as a custom text field on the Candidate record. Departments are not standalone objects in Recruit CRM, so no lookup resolution is required.

Breathe

Job Role

maps to

Recruit CRM & ATS

Current Position (Candidate field)

1:1
Fully supported

Breathe job role titles migrate to the Candidate's Current Job Title field. If the customer maintains a structured job-role taxonomy in Breathe, we map it to Recruit CRM's Industry or Function fields for reporting consistency.

Breathe

Absence / Leave records

maps to

Recruit CRM & ATS

Candidate Notes or Custom Fields

1:1
Fully supported

Breathe absence entries (annual leave, sick leave, other) have no direct equivalent in Recruit CRM. We extract full absence history including leave type, dates, duration, and approval status from Breathe Reports and store it as structured notes on the Candidate record or as custom fields if the customer requires absence data in searchable form. Leave balance carry-forward figures require independent verification against entitlement settings and approval records before migration, as Breathe calculates balances internally and the pre-calculated fields may not reflect a point-in-time snapshot.

Breathe

Sickness records

maps to

Recruit CRM & ATS

Candidate Notes

1:1
Fully supported

Breathe sickness entries are a distinct record type with dates, reasons, and Fit Note references. Sickness history migrates as structured notes on the Candidate record with date, type, and outcome preserved. Fit Note references are included as text in the note body. There is no native sickness object in Recruit CRM, so this data does not appear as a separate list view.

Breathe

Performance reviews

maps to

Recruit CRM & ATS

Candidate Notes

1:1
Mapping required

Breathe Performance Review records (available on Professional and Enterprise tiers) map to notes on the Candidate record. Review cycle, overall rating, and individual competency scores transfer as structured note content. Recruit CRM has no native performance review module, so review history appears as chronological notes rather than a formal review object. Review templates themselves do not migrate as templates; we document the template structure in the handoff inventory.

Breathe

Remuneration / Payroll data

maps to

Recruit CRM & ATS

Candidate Custom Fields or Notes

1:1
Mapping required

Breathe Remuneration Report (salary, additional payments, benefits, auto-enrolment) and Payroll exports are available via Reports. We extract these as structured records and load them to Recruit CRM Candidate custom fields or as salary/notice-period notes. Compensation data is sensitive; we apply encrypted handling throughout the migration and do not store it in staging environments beyond validation.

Breathe

Onboarding tasks

maps to

Recruit CRM & ATS

Written inventory (not migrated)

1:1
Fully supported

Breathe onboarding records track new-hire tasks, pending documents, and workflow steps. Onboarding task definitions and workflow logic do not migrate because Recruit CRM's onboarding model is different. We extract the task list and completion status for each employee as notes on the Candidate record and deliver a written onboarding task inventory to the customer's admin for rebuild in Recruit CRM or a separate onboarding tool.

Breathe

Breathe Learn completion records

maps to

Recruit CRM & ATS

Candidate Notes

1:1
Fully supported

Breathe Learn (available on Professional and Enterprise tiers) tracks compliance training completion. Completion records migrate as structured notes on the Candidate record showing course name, completion date, and status. Course definitions and learning paths do not migrate as content; we deliver a written list of active Breathe Learn courses for the customer's L&D admin to recreate or replace.

Breathe

Custom Fields (Employee)

maps to

Recruit CRM & ATS

Candidate Custom Fields

1:1
Fully supported

Breathe custom fields on the Employee record map to Recruit CRM custom fields on the Candidate object. We extract field names and values from the People Data Export, match field types to Recruit CRM field types (text, date, number, dropdown), and create the destination fields before migration. Any bespoke custom fields created outside Breathe's standard framework are flagged during the pre-migration audit and handled on a case-by-case basis.

Breathe

Documents (Company and Employee)

maps to

Recruit CRM & ATS

Manual migration required

1:1
Not supported

Breathe stores Company documents (policies, handbooks) and Employee documents (contracts, IDs) in two separate silos with no bulk export API. Documents must be downloaded individually from the Breathe UI. We flag this as a mandatory manual step, provide a guided download checklist covering Company > Company documents and Profile > More > Documents, and advise beginning document archiving at the scoping stage. Upload into Recruit CRM is performed by the customer's admin after migration using Recruit CRM's file attachment interface.

Breathe

Owner (HR admin)

maps to

Recruit CRM & ATS

Recruit CRM User

1:1
Fully supported

Breathe users who are assigned as record owners or approvers map to Recruit CRM User accounts. We match by email address. Any Breathe user without a matching Recruit CRM account enters a reconciliation queue for the customer's admin to provision before the production migration phase 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.

Breathe logo

Breathe gotchas

High

No bulk document export — manual download required

High

No direct migration path between Breathe accounts

Medium

People Data Export may omit data in non-standard modules

Medium

Leave balance carry-forward requires manual verification

Low

Tier-gated features may limit export coverage

Recruit CRM & ATS logo

Recruit CRM & ATS gotchas

High

API rate limits are license-scaled and can throttle bulk migration

Medium

Custom field schemas vary per organization and require field-level mapping

Medium

Files and email attachments require separate extraction and re-upload

Low

Email sequences and automation logic do not transfer between platforms

Pair-specific challenges

  • No bulk document export from Breathe

    Breathe exposes no bulk document export API. Company documents and Employee documents must be downloaded individually from the UI, which is time-consuming for organisations with hundreds of employee records. This is the most common cause of migration delay in Breathe projects. We advise starting document archiving at the scoping stage and provide a step-by-step checklist covering both document silos. Recruit CRM document upload is a manual step performed by the customer's admin post-migration. We do not include document download or upload in the standard migration scope.

  • Breathe workflows and automations do not migrate

    Breathe Workflows (absence approval chains, onboarding task triggers, alert rules) have no structural equivalent in Recruit CRM. The automation models differ fundamentally: Breathe uses module-triggered workflows with conditional branching, while Recruit CRM uses its own automation rule framework. We do not migrate workflows as code. We deliver a written inventory of every active Breathe Workflow with its trigger, conditions, actions, and recommended Recruit CRM automation equivalent, and the customer's admin rebuilds them in Recruit CRM's settings post-migration.

  • HRMS-to-ATS schema transformation is not a direct copy

    Breathe and Recruit CRM use different data models. Breathe organises records around the Employee; Recruit CRM organises around the Candidate. Absence management, sickness records, performance reviews, and onboarding tasks have no native equivalent in Recruit CRM and must be stored as notes, custom fields, or compliance attachments. We flag each object requiring non-standard mapping during scoping, validate the target schema in a staging environment, and confirm the mapping logic with the customer's admin before production migration begins.

  • Leave balance carry-forward requires independent calculation

    Breathe calculates leave balances internally from entitlement settings and approval records. The pre-calculated balance figures exported from Breathe may not reflect a clean point-in-time snapshot if approvals were in flight. We extract entitlement settings and approval records independently, compute expected balances, and compare against any pre-calculated fields before loading. Any discrepancy is flagged to the customer for verification before the leave data is committed to Recruit CRM.

  • Breathe Learn and tier-gated modules may not export fully

    Breathe Learn completion records are only available on Professional and Enterprise tiers. Organisations on the Starter tier cannot export e-learning data. Additionally, custom third-party add-ons and data in bespoke custom fields created outside the standard framework may be omitted from the standard People Data Export. We perform a pre-migration data audit against the customer's active module list and flag any modules requiring additional extraction steps before we guarantee full coverage.

Migration approach

Six steps for a successful Breathe to Recruit CRM & ATS data migration

  1. Discovery and module audit

    We audit the source Breathe account across tier (Starter, Professional, Enterprise), active modules (Absence, Sickness, Performance, Breathe Learn, Onboarding), custom field count, document volume, and employee record count. We confirm which modules are tier-gated and request exports from the appropriate licensed sections. The discovery output is a written migration scope, a data audit report listing every object to be migrated, a document download checklist, and a confirmed timeline for the pre-migration document archiving window.

  2. Schema design and field mapping

    We design the Recruit CRM destination schema based on the audit findings. Candidate custom fields are created to match Breathe's Employee custom field names and types. Leave history, sickness records, and performance review data are mapped to either custom fields or structured note templates depending on the customer's preference for searchability versus preservation of format. Any absence of a native equivalent (onboarding workflows, Breathe Learn) is documented in the handoff inventory rather than forced into a mismatched field.

  3. Sandbox migration and reconciliation

    We run a full migration into a Recruit CRM staging environment using production-like data volume. The customer's HR lead or Recruit CRM admin reconciles record counts against the source Breathe export, spot-checks 25-50 random candidate records for field accuracy, and validates that absence history and custom fields are present in the expected format. Any mapping corrections occur in this phase. No production records are touched until the sandbox sign-off is received.

  4. Document archiving guidance

    We provide the customer with a structured document download checklist covering Breathe Company documents and Employee documents. We advise beginning this step at the scoping meeting, as it is a manual UI-only task that cannot be automated. We do not include document download or Recruit CRM upload in the standard migration scope, but we can provide a separate statement of work for managed document migration if the customer requires it.

  5. Production migration in dependency order

    We run production migration in this order: Candidate records first (with department tags, job role, and employment status), then employment history as structured notes, absence history and sickness records, performance review notes, remuneration data as custom fields or notes, and Breathe Learn completion records last. Custom fields are created in Recruit CRM before any data loads. Owner resolution (matching Breathe users to Recruit CRM users by email) completes before candidate import to ensure every record has an assigned owner. Each phase emits a row-count reconciliation report.

  6. Cutover, validation, and workflow handoff

    We freeze writes to Breathe during the cutover window, run a final delta migration of any records modified during the migration window, then mark Recruit CRM as the system of record. We deliver the Workflow and Automation Inventory document, the Onboarding Task Inventory, and the Breathe Learn Course List to the customer's admin. We support a one-week post-go-live window for reconciliation issues. We do not rebuild Breathe workflows as Recruit CRM automations inside the migration scope; that work requires a separate scoping engagement with the customer's Recruit CRM admin.

Platform deep dives

Context on both ends of the pair

Breathe logo

Breathe

Source

Strengths

  • Transparent per-employee pricing with no hidden fees for core HR features
  • Covers the full SME HR lifecycle — onboarding, absence, performance, documents — in one platform
  • Breathe Learn satisfies standard compliance training (GDPR, health and safety) out of the box
  • Clear tiered feature table published publicly, simplifying purchase decisions
  • Document storage for both company-wide and employee-specific records is integrated rather than requiring a separate DMS

Weaknesses

  • Limited scalability: customers report Breathe works well only up to approximately 200 employees, after which advanced HR features are insufficient
  • No direct migration tool between two Breathe accounts; customers must export manually and re-import
  • Interface usability issues cited by multiple G2 reviewers as a persistent pain point
  • Bulk document export is not available via API; documents must be downloaded individually from the UI
  • Advanced analytics, custom reports, and payroll integration depth are tier-gated add-ons rather than core features
Recruit CRM & ATS logo

Recruit CRM & ATS

Destination

Strengths

  • Fully customizable pipelines, stages, and fields without requiring developer involvement
  • Combines recruitment CRM and ATS in one subscription for staffing agencies and small teams
  • Built-in email sequences and automation reduce manual outreach work
  • Chrome extension enables one-click LinkedIn profile collection directly into the CRM
  • Responsive customer support cited across multiple reviews with fast resolution times

Weaknesses

  • Several features are gated as paid add-ons rather than included in the base subscription
  • Email functionality has been reported as unreliable by multiple users
  • Interface occasionally lags during high-activity periods in large pipelines
  • Pricing is considered higher than comparable recruitment CRMs by some customers
  • Limited native reporting — users request pre-made report exports rather than manual data pulls

Complexity grading

How hard is this migration?

Standard HRMS migration. 1 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 Breathe and Recruit CRM & ATS.

  • Object compatibility

    B

    1 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

    Breathe: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Breathe to Recruit CRM & ATS 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 Breathe to Recruit CRM & ATS data migrations

Answers to the questions buyers ask most during Breathe to Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Breathe to Recruit CRM & ATS 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 accounts with fewer than 500 employee records, no performance review history, and no tier-gated Breathe modules. Migrations with 500+ records, Breathe Learn completion data, multiple absence types, extensive custom fields, or a non-standard organisational structure move to eight to twelve weeks because of the data audit, sandbox reconciliation, and leave balance verification steps.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Breathe.
Land in Recruit CRM & ATS, 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