HRMS migration

Migrate from CIPHR to Bullhorn ATS & CRM

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

CIPHR logo

CIPHR

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

64%

9 of 14

objects map 1:1 between CIPHR and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from CIPHR to Bullhorn is a cross-category migration from a mid-market HRMS into a dedicated recruitment-agency ATS and CRM. CIPHR stores recruitment data as part of a broader HR suite (employee records, payroll, onboarding, learning), while Bullhorn is purpose-built for staffing agencies with Candidate, ClientCorporation, ClientContact, JobOrder, and Placement as first-class entities. We extract the recruitment subset from CIPHR — applicants, job postings, onboarding completions, and candidate documents — and map it to Bullhorn's relational ATS schema, using Bullhorn's REST API with its 1,500-request-per-minute rate limit. The CIPHR payroll module and absence histories do not map to Bullhorn (Bullhorn's back-office payroll products are separate); we flag these for the customer's admin to configure post-migration. Bullhorn automations, workflows, and sales engagement cadences do not migrate as code; we deliver a written inventory for the 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

CIPHR logo

CIPHR

What's pushing teams away

  • Pricing is cited as a significant pain point — customers note the platform is expensive and does not fully remove admin burden despite the cost, leading some to seek lower-cost alternatives.
  • Some customers report issues with the payroll and bureau service, including problems when specific support contacts leave the account, indicating inconsistency in payroll service delivery.
  • The reporting tool has received criticism from customers who want more flexible or powerful analytics, suggesting organisations with complex reporting needs may outgrow the built-in capabilities.
  • Smaller organisations within the 200-employee lower bound may find the platform over-specified for their needs, prompting migration to simpler HR tools as they scale.

Choosing

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

What's pulling them in

  • Agencies choose Bullhorn because it combines ATS and CRM in one platform, eliminating the need to switch between separate tools for candidate management and client relationship tracking.
  • The resume parser extracts contact details, work history, and skills into structured, searchable candidate profiles automatically without manual data entry, reportedly driving 24% more placements per recruiter.
  • Bullhorn's placement and split-billing model natively supports contract staffing workflows, handling start/end dates, overtime rules, and multi-party pay/charge rates in a single record.
  • The platform offers extensive third-party integrations through its Recruitment Cloud Marketplace, connecting with back-office, onboarding, and payroll systems used by staffing agencies.
  • 72% of Bullhorn customers are teams with fewer than 10 users, and Bullhorn's implementation team handles setup and data migration for small agencies going live within weeks.

Object mapping

How CIPHR objects map to Bullhorn ATS & CRM

Each row shows how a CIPHR object lands in Bullhorn ATS & CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

CIPHR

Recruitment / Applicants (CIPHR)

maps to

Bullhorn ATS & CRM

Candidate (Bullhorn)

1:1
Fully supported

CIPHR applicant records map to Bullhorn Candidate. We extract candidate name, contact details, source, application date, status, and any candidate custom properties. CIPHR application stage maps to a Bullhorn custom field application_status__c since Bullhorn stage is managed via JobSubmission records tied to JobOrder. Candidate documents (CVs, resumes) migrate as ContentDocument records linked via ContentDocumentLink.

CIPHR

Recruitment / Job Postings (CIPHR)

maps to

Bullhorn ATS & CRM

JobOrder (Bullhorn)

1:1
Fully supported

CIPHR vacancy records map to Bullhorn JobOrder. The CIPHR job title, job description, location, employment type, and vacancy status map to corresponding Bullhorn JobOrder fields (title, description, address, employmentType, status). We resolve the owning recruiter in CIPHR to a Bullhorn User by email match. Custom vacancy fields in CIPHR map to Bullhorn custom fields on JobOrder.

CIPHR

Job Submission (CIPHR application-to-vacancy link)

maps to

Bullhorn ATS & CRM

JobSubmission (Bullhorn)

1:1
Fully supported

CIPHR application-to-vacancy associations map to Bullhorn JobSubmission records that link Candidate to JobOrder. The submission date, current stage, rejection reason, and submission notes migrate. Bullhorn's Application V2 entity (with its history records) is the target; we preserve submission stage history as JobSubmission custom fields where the Bullhorn edition supports it.

CIPHR

Employees (CIPHR)

maps to

Bullhorn ATS & CRM

Candidate (Bullhorn, for placed candidates)

1:1
Fully supported

CIPHR employee records that originated as recruitment applicants and have been hired map to Bullhorn Candidate records with a placement record attached. We use the employee identifier in CIPHR to link back to the original applicant Candidate in Bullhorn, preserving the source application history. Manager relationships from CIPHR map to Bullhorn custom fields or User lookups.

CIPHR

Employment Details (CIPHR)

maps to

Bullhorn ATS & CRM

Placement (Bullhorn) + Custom Fields on Candidate

1:many
Fully supported

CIPHR employment details (start date, job title, department, cost centre, employment type, contract terms) attach to hired candidates as Bullhorn Placement records. The Placement holds start date, end date (for contract workers), pay rate, and bill rate. Employment type (permanent, contract, temp) maps to Bullhorn's employmentType field. Contract terms and cost centre data map to custom fields on the Placement or Candidate.

CIPHR

Onboarding (CIPHR)

maps to

Bullhorn ATS & CRM

Bullhorn Onboarding (formerly Able) + Candidate Custom Fields

lossy
Fully supported

CIPHR onboarding task checklists and document acceptance records do not have a direct Bullhorn ATS equivalent. We export onboarding completion status and document acceptance flags, then map them to Bullhorn Onboarding task records or Candidate custom fields (onboarding_complete__c, documents_signed__c). Bullhorn Onboarding is a separate product; configuration of onboarding workflows requires the customer's admin to set up in Bullhorn Onboarding post-migration.

CIPHR

Documents (CIPHR)

maps to

Bullhorn ATS & CRM

ContentDocument + ContentDocumentLink (Bullhorn)

1:1
Fully supported

CIPHR employee and applicant documents (contracts, signed policies, ID records, CVs) migrate as Bullhorn ContentDocument records linked to the parent Candidate or ClientContact via ContentDocumentLink. Document type in CIPHR maps to a custom field doc_type__c on ContentDocument. We extract document metadata and binary content where accessible via CIPHR export; filenames and type labels are preserved for identification in Bullhorn.

CIPHR

Custom Properties (CIPHR)

maps to

Bullhorn ATS & CRM

Custom Fields or Custom Objects (Bullhorn)

lossy
Fully supported

CIPHR custom fields on applicant and employee records map to Bullhorn custom fields on Candidate, JobOrder, or JobSubmission. Bullhorn editions limit custom fields by entity: Candidate supports up to 55 custom fields depending on field type mix. If the CIPHR schema exceeds Bullhorn's per-entity field limit, we propose Custom Objects (Front Office Growth/Enterprise: up to 10 Custom Objects with 55 fields each; Bullhorn ATS: 2; ATS Growth: none) and configure them during schema design.

CIPHR

Payroll Records (CIPHR)

maps to

Bullhorn ATS & CRM

Not migrated to Bullhorn ATS

1:1
Fully supported

CIPHR payroll histories (historical pay data, deductions, tax codes, pension contributions, year-to-date figures) do not map to Bullhorn ATS. Bullhorn Time and Expense handles timesheet and expense tracking for placed contractors, not historical payroll. We export the payroll record set from CIPHR as a separate data package for the customer's payroll team to load into their preferred payroll system or Bullhorn Time and Expense post-migration.

CIPHR

Absence and Leave (CIPHR)

maps to

Bullhorn ATS & CRM

Not migrated to Bullhorn ATS

1:1
Fully supported

CIPHR leave balances (sickness, holiday, accrual history) have no Bullhorn ATS equivalent. Bullhorn Onboarding tracks onboarding task completions but not absence management. We export current leave balances and leave history from CIPHR as a separate data package. If the customer manages contractor absence in Bullhorn Time and Expense, we provide a custom field mapping for absence records to be configured post-migration.

CIPHR

Learning / Training Records (CIPHR)

maps to

Bullhorn ATS & CRM

Not migrated to Bullhorn ATS

1:1
Fully supported

CIPHR learning completions, course assignments, and quiz results map to Bullhorn only if the customer licenses Bullhorn Learning separately. Standard Bullhorn ATS does not include an LMS. We export training history as a separate data package and flag Bullhorn Learning or a third-party LMS as the destination if the customer requires training record continuity.

CIPHR

Users and System Access (CIPHR)

maps to

Bullhorn ATS & CRM

User (Bullhorn) — reconciliation required

1:1
Fully supported

CIPHR user accounts, roles, and permission sets do not map directly to Bullhorn User records. Bullhorn Users must be provisioned within Bullhorn's admin interface, not imported. We extract the CIPHR user list (names, emails, roles) as a provisioning reference for the customer's Bullhorn admin. We resolve CIPHR recruiter assignments on job orders and candidates by email match against Bullhorn User records after provisioning.

CIPHR

Organisations / Departments (CIPHR)

maps to

Bullhorn ATS & CRM

ClientCorporation (Bullhorn) or custom fields

lossy
Fully supported

CIPHR org hierarchy (departments, locations, cost centres) does not have a direct Bullhorn ATS equivalent. Bullhorn ClientCorporation stores client company records, not internal org structure. We map CIPHR departments and locations to Bullhorn custom fields on Candidate and JobOrder (dept__c, location__c). If the customer manages temporary or contract workers in Bullhorn, we use Bullhorn's corporate structure for client-side org tracking rather than the internal HR org tree.

CIPHR

Performance Appraisals (CIPHR)

maps to

Bullhorn ATS & CRM

Custom Object (Bullhorn) or notes

lossy
Fully supported

CIPHR appraisal records, ratings, and 360 feedback do not have a standard Bullhorn ATS equivalent. If the customer licenses Bullhorn Front Office Growth or Enterprise, we configure a Custom Object (appraisal_history__c) with fields for appraisal date, rating, reviewer, and comments linked to the Candidate record. Custom appraisal templates in CIPHR require manual mapping or recreation in Bullhorn.

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.

CIPHR logo

CIPHR gotchas

Medium

No public pricing means migration budget estimates are harder to pin down

High

Payroll bureau clients face higher migration complexity

Medium

Absence balance recalculation at the destination can cause accrual discrepancies

Low

Custom onboarding templates require manual pre-mapping

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM gotchas

High

ATS Growth edition has no API access

High

Attachments excluded from CSV bulk exports

Medium

Custom Object limits vary sharply by edition

Medium

Opportunity pipeline stages are recruitment-specific

Low

Resume parse quality varies by document format

Pair-specific challenges

  • Bullhorn API caps at 1,500 requests per minute

    Bullhorn's REST API rate limit of 1,500 requests per minute applies to all migration write operations. High-volume candidate imports (tens of thousands of records) require chunking, pagination, and retry logic with exponential backoff. Bullhorn auth tokens also expire every hour, so any pipeline must refresh tokens mid-run. We handle this with batch processing and token refresh in the migration engine; customers attempting manual CSV imports via Bullhorn's bulk loader may hit timeout or silent record drops on large datasets.

  • Bullhorn Custom Objects are edition-gated and capped

    CIPHR custom fields on applicants, employees, and related objects can exceed Bullhorn ATS's custom field limits per entity. Bullhorn ATS supports only 2 Custom Objects; ATS Growth supports none; Front Office Growth and Enterprise support 10 Custom Objects with 55 fields each. During scoping we audit the full CIPHR custom property set and either consolidate fields into fewer custom objects or recommend a Bullhorn edition upgrade before migration begins.

  • Leave accrual recalculation causes opening balance discrepancies

    CIPHR calculates leave accruals using its own rules engine. Bullhorn ATS does not include an absence management module, and absence records do not migrate as native data. When leave history is exported and the customer implements a separate absence management tool post-migration, opening balances may diverge from CIPHR values. We flag this risk during scoping, export the current balance snapshot from CIPHR for customer review, and recommend a pre-migration leave audit to identify and document discrepancies before the go-live date.

  • Payroll bureau clients must retrieve RTI and HMRC records separately

    Organisations using CIPHR's managed payroll bureau service do not have payroll data in a fully exportable format within CIPHR's standard export tooling. Historical PAYE data, RTI submissions, pension contribution records, and P60/P45 documents must be retrieved from HMRC systems or archived CIPHR records separately. We coordinate with the customer's payroll team during scoping to ensure PAYE history is preserved and mapped correctly, and we treat payroll data as a separate migration package outside Bullhorn ATS scope.

  • Bullhorn automations and tearsheets do not migrate from any source

    Bullhorn's automation layer (tearsheets, hotlists, automations for candidate nurturing) and Bullhorn's workflows are not destination-migratable features; they are recreated in Bullhorn by the customer's admin. We do not migrate Bullhorn automations as code from any source system. We deliver a written inventory of Bullhorn automations that the customer is currently using in their existing Bullhorn instance, with a handoff note for the admin to configure equivalents post-migration. CIPHR's own automation records similarly do not migrate.

Migration approach

Six steps for a successful CIPHR to Bullhorn ATS & CRM data migration

  1. Discovery and recruitment data audit

    We audit the CIPHR recruitment module scope: applicant records, vacancy counts, application stage distributions, document attachment volumes, custom properties on applicant and employee records, and onboarding task structures. We run a record count against each CIPHR object and flag the payroll bureau and absence modules as separate export packages. We also confirm the customer's Bullhorn edition (Team, Corporate, or Enterprise) to determine Custom Object limits before finalising the schema design.

  2. Bullhorn schema design and custom field provisioning

    We design the destination Bullhorn schema based on the audit output. This includes configuring JobOrder record types (one per CIPHR vacancy pipeline), setting up custom fields on Candidate and JobOrder for CIPHR custom properties, designing JobSubmission field mappings for application stages, and provisioning Custom Objects if the CIPHR custom property count exceeds per-entity limits. Bullhorn edition is confirmed and any upgrade requirements are surfaced before schema is deployed to the customer's Sandbox.

  3. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn Sandbox using production-equivalent data volumes. The customer's Bullhorn admin reconciles record counts (Candidates in, JobOrders in, JobSubmissions in, Placements in), spot-checks 25-50 records against CIPHR source data, and reviews document attachments. Any mapping corrections, field limit issues, or custom object scope adjustments happen in Sandbox before production migration begins.

  4. User provisioning and recruiter reconciliation

    We extract the list of CIPHR users assigned as recruiters, hiring managers, or system administrators on recruitment records and match them by email against Bullhorn User accounts. Any CIPHR user without a Bullhorn User is added to a reconciliation queue for the customer's Bullhorn admin to provision before record import resumes. Owner lookups on JobOrder and Candidate are resolved at this stage.

  5. Production migration in dependency order

    We run production migration in Bullhorn in record-dependency order: JobOrders first (no dependencies), then ClientCorporations (for client-side org tracking), ClientContacts, Candidates (with User owner resolved), JobSubmissions (with Candidate-to-JobOrder lookups resolved), Placements (with Candidate and JobOrder lookups resolved), ContentDocument records for documents, and Custom Objects last. Bullhorn API rate limits are enforced via batch chunking and exponential backoff. Each phase emits a row-count reconciliation report.

  6. Cutover, validation, and non-migrated data handoff

    We freeze CIPHR writes during cutover, run a final delta migration for any records modified during the migration window, then enable Bullhorn as the system of record for recruitment operations. We deliver a separate data package for payroll records, leave balances, and training histories with a note on the recommended destination (Bullhorn Time and Expense, Bullhorn Onboarding, or a separate payroll/LMS system). We deliver the Bullhorn automation inventory for the admin to rebuild. We support a one-week hypercare window for reconciliation issues.

Platform deep dives

Context on both ends of the pair

CIPHR logo

CIPHR

Source

Strengths

  • Integrated HR, payroll, recruitment, and learning under one vendor contract.
  • Award-winning UK payroll module with strong compliance credentials.
  • Consistently praised customer support team with specialist product knowledge.
  • Suitable for UK mid-market organisations with 200–2,000 employees.
  • Robust API framework with SOC 2 certification and existing third-party integrations.

Weaknesses

  • No public pricing — quotes are custom and opaque, making cost comparison difficult before purchase.
  • Reporting and analytics are considered limited by some customers compared to dedicated BI tools.
  • Payroll bureau service quality has been inconsistent according to customer feedback.
  • May be over-specified for smaller organisations below the 200-employee target range.
  • Expenses module data is not currently supported for migration out of CIPHR.
Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

Destination

Strengths

  • Unified ATS and CRM on one platform purpose-built for staffing agencies, eliminating separate tools for candidates and clients.
  • Automated resume parsing extracts structured candidate data—contact details, work history, skills—into searchable profiles instantly.
  • Native placement and split-billing model handles contract staffing workflows including start/end dates and overtime rules.
  • Bullhorn Recruitment Cloud Marketplace offers 100+ pre-validated third-party integrations spanning the full recruiting lifecycle.
  • 24/7 global support coverage from 350+ support staff with dedicated account management included at all tiers.

Weaknesses

  • Widely regarded as old and bloated with an unintuitive interface and steep learning curve for new recruiters.
  • Slow page loads and performance lag cited in over 200 verified G2 reviews during high-volume recruiting periods.
  • Pricing is opaque—custom-negotiated per organization with significant upfront implementation fees that vary by deal.
  • ATS Growth edition excludes API access entirely, preventing automated data export without upgrading first.

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 CIPHR and Bullhorn ATS & CRM.

  • 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

    CIPHR: Not publicly documented by CIPHR directly.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your CIPHR to Bullhorn ATS & CRM 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 under 10,000 applicant records, a single vacancy pipeline, and no payroll bureau data to separate. Migrations with high-volume candidate databases (over 50,000 records), multi-stage application histories, large document attachment sets, or concurrent payroll bureau extraction move to eight to twelve weeks because of Bullhorn API rate-limit handling, Custom Object scope decisions, and the separate payroll data package work.

Adjacent paths

Related migrations to explore

Ready when you are

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