HRMS migration

Migrate from HR-ON to Bullhorn ATS & CRM

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

HR-ON logo

HR-ON

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

50%

6 of 12

objects map 1:1 between HR-ON and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

HR-ON and Bullhorn serve fundamentally different markets. HR-ON is a Danish-market HRMS focused on employee records, document workflows, and onboarding for small German-speaking organizations. Bullhorn is a recruitment ATS and CRM built for staffing agencies managing candidates, clients, jobs, and placements. A migration between them requires not just record transfer but a conceptual remap: HR-ON employee records become Bullhorn Candidate records, HR-ON organizational structure (stored in systemFields on employees) must be reconstructed as Bullhorn departments or custom fields, and HR-ON document templates attach to the wrong Bullhorn entity type without relinking. We do not migrate workflows or automations because HR-ON's onboarding workflows have no Bullhorn equivalent. We deliver a written inventory of every Bullhorn workflow trigger, condition, and action requiring rebuild by the customer's admin post-migration. Timeline ranges from two to four weeks for straightforward employee record migration to four to eight weeks when custom objects, large document inventories, or multi-department org structures are in scope.

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

HR-ON logo

HR-ON

What's pushing teams away

  • Conflicting public reporting on API availability — some sources say HR-ON has an open API while others state HR-ON Recruit specifically does not. Buyers needing certainty on programmatic access must confirm with HR-ON directly before contracting.
  • Suite plan at €317/month is materially more expensive than Recruit at €167/month — companies that only need ATS functionality may find the upsell to the full Suite expensive.
  • European focus means thinner partner network in North America and APAC compared with global HRIS providers.
  • Reporting and analytics depth lag mid-market HRIS leaders like BambooHR and HiBob.
  • Recruiting-focused entry point means HR-ON requires the Suite tier to cover onboarding and ongoing HR processes.

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 HR-ON objects map to Bullhorn ATS & CRM

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

HR-ON

Employee

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

HR-ON Employee records map to Bullhorn Candidate. The core employee properties (firstName, lastName, email, jobTitle, department, startDate) map directly to Bullhorn Candidate fields (firstName, lastName, email, title, department, dateAdded). We resolve HR-ON systemFields by parsing org metadata (such as location, manager, employment type) and either mapping them to standard Bullhorn Candidate fields or flagging them for Bullhorn Custom Object creation. HR-ON custom properties migrate as custom Candidate fields. The Candidate entity is the Bullhorn ATS core; all other entities reference it.

HR-ON

Employee

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

HR-ON user accounts map to Bullhorn User records when the HR-ON user represents a recruiter or staffing consultant who will log into Bullhorn. We match by email address. HR-ON systemFields indicating admin roles, department ownership, or approval authority map to Bullhorn User permissions and department assignments. Note that Bullhorn ATS Growth does not include API access; User record creation and role assignment may require Bullhorn support coordination depending on edition.

HR-ON

Organizational Structure

maps to

Bullhorn ATS & CRM

Department (or Custom Object)

lossy
Mapping required

HR-ON stores org structure (departments, reporting lines, cost centers) within systemFields on Employee records rather than as separate objects. We parse these systemFields and reconstruct them as Bullhorn Department records or as a Bullhorn Custom Object with department assignments attached to User and Candidate. If the customer uses Bullhorn ATS Growth (which lacks Custom Objects), we map department data to a custom text field on User and note the limitation. This decision is made during scoping based on the destination Bullhorn edition.

HR-ON

Document Template

maps to

Bullhorn ATS & CRM

ContentDocument or Job Template

lossy
Fully supported

HR-ON document templates with name, description, documentType, dateFormat, and language metadata (da_DK, en_US) do not have a direct Bullhorn equivalent. Bullhorn stores documents as ContentDocument records attached to the relevant entity (Candidate, ClientContact, JobOrder). We export the template metadata as a JSON manifest with the original language and dateFormat preserved, and we note each template that requires manual re-creation in Bullhorn or replacement with Bullhorn's document generation (if the Bullhorn edition supports it). Document templates themselves do not migrate as reusable templates.

HR-ON

Document (generated from template)

maps to

Bullhorn ATS & CRM

ContentDocument

1:1
Fully supported

HR-ON generated documents (binary blobs or PDF links) attached to Employee records migrate as Bullhorn ContentDocument records linked via ContentDocumentLink to the corresponding Bullhorn Candidate. The original document language (da_DK or en_US) and dateFormat metadata are stored in a Bullhorn Custom Object field or as notes on the ContentDocument for post-migration reassignment if the document attaches to the wrong Bullhorn template. We flag any document over 25 MB for customer review because Bullhorn's file size limits may require chunking.

HR-ON

Custom Properties (Employee)

maps to

Bullhorn ATS & CRM

Custom Fields or Custom Object Fields

lossy
Fully supported

HR-ON supports custom properties on Employee records beyond systemFields. We extract all non-systemFields and assess data type compatibility with Bullhorn's field type options (text, number, date, picklist, checkbox, multi-select picklist). Bullhorn ATS Growth allows 2 Custom Objects with 55 fields each; Bullhorn Front Office Growth/Enterprise allows 10. Multi-select picklist values from HR-ON map to Bullhorn multi-select picklist fields with the same option set. We pre-create the destination fields in a Bullhorn Sandbox before production migration.

HR-ON

Date Metadata (multiple formats)

maps to

Bullhorn ATS & CRM

Date Fields (ISO 8601)

lossy
Fully supported

HR-ON stores dates in four formats depending on locale and template settings: DD-MM-YYYY, DD/MM/YYYY, YYYY-MM-DD, or written form. Bullhorn expects ISO 8601 (YYYY-MM-DD) for all date fields. We normalize every date value from HR-ON to ISO 8601 during the extraction phase, validate against the destination Bullhorn field requirements, and flag any dates outside the range 1900-01-01 to 2100-12-31 for manual review. The original HR-ON dateFormat metadata is preserved in a custom field for audit.

HR-ON

Language Preferences

maps to

Bullhorn ATS & CRM

Candidate fields or Custom Fields

1:1
Fully supported

HR-ON stores language preferences per template and employee at da_DK (Danish) and en_US (English). We carry this through as Bullhorn Candidate custom fields (candidateLanguage and templateLanguage) so that localized content rendering is preserved. Bullhorn does not have native multi-language template support, so the language field serves informational purposes and is used by the customer to manually reassign document templates post-migration.

HR-ON

HR-ON systemFields

maps to

Bullhorn ATS & CRM

Candidate Custom Fields or Custom Object

lossy
Fully supported

HR-ON systemFields on Employee records (such as employeeStatus, employmentType, costCenter, location, managerId, terminationDate) are parsed and mapped. Standard-compatible fields map directly to Bullhorn Candidate. Fields without a Bullhorn equivalent (such as custom HR-ON cost codes or approval chains) require Bullhorn Custom Object fields, which must be created by Bullhorn Support before migration. We include these in the Custom Object Setup Sheet and coordinate the support ticket as part of the migration approach.

HR-ON

HR-ON role and permission structure

maps to

Bullhorn ATS & CRM

Bullhorn User Role

lossy
Fully supported

HR-ON user roles (Admin, Manager, Employee) map to Bullhorn User roles with different permission models. Bullhorn's role-based access control operates at the entity and field level. We map default HR-ON roles to the nearest Bullhorn equivalents (Standard User, Admin) and flag any HR-ON-specific permissions (such as payroll access or approval authority) that have no Bullhorn User Role equivalent. These are noted for the customer's Bullhorn admin to configure post-migration.

HR-ON

Users

maps to

Bullhorn ATS & CRM

User

1:1
Mapping required

HR-ON user accounts map to Bullhorn User records by email address match. Any HR-ON user without a corresponding Bullhorn User goes to a reconciliation queue where the customer's Bullhorn admin provisions the missing account. Bullhorn User records are required before Candidate records with assigned owners can be imported because OwnerId references must be satisfied at insert time. We validate User existence before record migration begins.

HR-ON

Employee historical timestamps

maps to

Bullhorn ATS & CRM

Candidate custom date fields

1:1
Fully supported

HR-ON stores hireDate, terminationDate, and other employment timestamps. We map these to Bullhorn Candidate date fields (dateAdded for hire, custom terminationDate field if needed). Historical employment dates before Bullhorn's earliest supported range are stored as text fields to avoid validation errors. We flag records with termination dates for Bullhorn admin review because Bullhorn ATS treats inactive candidates differently from HR-ON's active/inactive employee model.

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.

HR-ON logo

HR-ON gotchas

High

No bulk export endpoint forces sequential reads

Medium

Date format normalization required before import

Low

Language-specific document types may not map directly

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

  • HR-ON has no bulk export endpoint

    HR-ON's REST API v1 exposes only per-record endpoints for employee retrieval. There is no batch read, paginated list, or bulk export endpoint. We retrieve each Employee record individually via GET calls to the /v1/staff/employees endpoint using JWT authentication. For large employee bases (over 1,000 records), this extends extraction timelines significantly compared to platforms with bulk endpoints. We implement request chunking in batches of 50 records with retry logic and exponential backoff to handle any undocumented rate limiting and keep the migration on schedule.

  • Bullhorn Custom Objects require a support ticket to create

    Bullhorn Custom Objects cannot be created via the REST API by the customer; Bullhorn Support must provision them using the Custom Object Setup Sheet. This means that before we can map HR-ON custom properties and systemFields to Bullhorn Custom Object fields, the customer must submit a ticket to Bullhorn Support with the spreadsheet provided during scoping. Custom Object creation typically takes 3-5 business days. If the customer is on Bullhorn ATS Growth (which only supports 2 Custom Objects) or standard ATS (which supports none), we map to standard fields or use a text-based workaround, and we document the limitation before migration begins.

  • Date format normalization across four HR-ON variants

    HR-ON stores dates in DD-MM-YYYY, DD/MM/YYYY, YYYY-MM-DD, or written forms depending on locale and template settings. Bullhorn requires ISO 8601 (YYYY-MM-DD) for all date fields. We normalize every extracted date to ISO 8601 before loading into Bullhorn. Records with dates stored in written form (July 20, 2021) require a date parsing step that may produce unexpected results for non-English locales. We validate the output and flag any parsing failures for manual correction before production load.

  • Bullhorn's staffing-focused data model differs from HR-ON's HRMS model

    Bullhorn is architected for recruitment workflows: Candidates, Jobs, Placements, and ClientContacts are the core entities. HR-ON stores internal employee records and org structure. A direct 1:1 mapping does not exist for every HR-ON object. For example, HR-ON's organizational hierarchy (departments, cost centers) stored in systemFields must be reconstructed in Bullhorn as either Department records or Custom Object fields on User and Candidate. We flag these schema gaps during scoping and design the mapping approach before any data moves. Migrations that skip this step produce orphaned records or data in the wrong Bullhorn entity type.

  • HR-ON language-specific documents may require manual relinking in Bullhorn

    HR-ON generates documents from templates with language variants (da_DK, en_US) and stores the language metadata on each document. Bullhorn does not have a native multi-language document template system. We export the document and its metadata and attach it to the Bullhorn Candidate as a ContentDocument, but the language metadata does not automatically trigger the correct Bullhorn template. After migration, the customer's Bullhorn admin reviews each document and reassigns it to the correct template if needed. We deliver a document manifest listing each file, its original language, and the recommended Bullhorn template.

Migration approach

Six steps for a successful HR-ON to Bullhorn ATS & CRM data migration

  1. Discovery and edition review

    We audit the source HR-ON portal across API endpoint availability, JWT credentials, employee record count, systemFields usage, custom property definitions, document template inventory, and date format distribution. We pair this with a Bullhorn edition review: ATS Growth covers 2 Custom Objects and is API-accessible; Front Office Growth/Enterprise covers up to 10 Custom Objects with 55 fields each. We identify which Bullhorn edition the customer currently holds or needs, and we confirm whether Bullhorn Support ticket submission for Custom Object creation has been or will be initiated. The discovery output is a written migration scope with object mapping, a Bullhorn edition gap analysis, and the Custom Object Setup Sheet ready for support submission.

  2. Bullhorn Custom Object provisioning coordination

    For migrations requiring Bullhorn Custom Objects (to hold org structure data, HR-ON systemFields, or language metadata), we coordinate the Bullhorn Support ticket. The customer submits the completed Custom Object Setup Sheet to Bullhorn Support, which typically takes 3-5 business days to provision. We confirm the Custom Object names and field definitions in the destination Bullhorn Sandbox before any data migration. If the customer is on a Bullhorn edition that does not support Custom Objects, we document the limitation and map incompatible fields to text or picklist fields on the standard Candidate entity.

  3. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn Sandbox using a representative subset of production data (typically 10-20% of total records). The customer's Bullhorn admin reconciles record counts (Candidates imported, Documents attached, Custom Object instances created), spot-checks field mappings against 25-50 random HR-ON records, and validates date normalization output. We resolve any mapping corrections in the sandbox before production migration begins. Sandbox migration typically takes one to three days depending on record count and Bullhorn API responsiveness.

  4. Date normalization and document metadata extraction

    We run the date normalization phase as a pre-processing step before any Bullhorn load. Every HR-ON date field is parsed, validated, and converted to ISO 8601. Written-form dates (July 20, 2021) are parsed using locale-aware logic; any parsing failures are flagged in a reconciliation report for the customer's review. Simultaneously, we extract document template metadata and generate a document manifest listing each file, its associated HR-ON employee, language variant, and dateFormat. This manifest is used post-migration to reassign documents to the correct Bullhorn templates.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Bullhorn Users (validated first because OwnerId references are required), Candidate records (with date-normalized fields and systemFields mapped to standard or Custom Object fields), Document ContentDocument attachments (linked to Candidates via ContentDocumentLink), and Custom Object instances (last because they often reference Candidates or Users). Bullhorn REST API pagination and rate limit handling use exponential backoff. Each phase emits a row-count reconciliation report before the next phase begins. Any HR-ON date values that failed normalization appear in a flagged report for the customer's Bullhorn admin to correct manually.

  6. Cutover, validation, and document relink handoff

    We freeze HR-ON as the system of record during cutover and run a final delta migration of any HR-ON records modified during the migration window. We deliver the document manifest to the customer's Bullhorn admin for manual template relinking. We do not rebuild HR-ON workflows or automations because HR-ON's onboarding document workflows have no Bullhorn equivalent; we deliver a written inventory of every HR-ON automation requiring rebuild in Bullhorn's workflow builder or Bullhorn Automation (if licensed). We support a one-week hypercare window where we resolve any record linkage issues or field mapping discrepancies raised by the customer's team.

Platform deep dives

Context on both ends of the pair

HR-ON logo

HR-ON

Source

Strengths

  • REST API at api.hr-on.com with documented endpoints for employees and document templates.
  • Supports multi-language document generation with Danish and English locale handling.
  • Structured systemFields on Employee records provide consistent metadata for extraction.
  • JWT authentication enables programmatic access without complex OAuth flows.
  • 4.6 rating on G2 with user praise for ease of use and helpful HR features.

Weaknesses

  • No publicly documented bulk export endpoint; data retrieval depends on per-record API calls.
  • Limited object types beyond Employees and Document Templates, reducing migration scope options.
  • Small market presence (34 G2 reviews) means less community knowledge and fewer migration guides.
  • No Wikipedia article indicates limited public documentation depth compared to major HRMS platforms.
  • Danish-market focus means English documentation and support resources are less comprehensive.
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 HR-ON 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

    HR-ON: Not publicly documented..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your HR-ON 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 two and four weeks for straightforward employee record transfers under 2,000 records with no custom objects and no document template relinking. Migrations with 2,000-10,000 records, custom objects, document template inventories, or multi-department org structures move to four to eight weeks because of Bullhorn Custom Object support coordination, document metadata mapping, and org structure reconstruction. The Bullhorn Support ticket for Custom Object creation adds 3-5 business days to the timeline before data migration can begin.

Adjacent paths

Related migrations to explore

Ready when you are

Move from HR-ON.
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