HRMS migration

Migrate from HROffice to Bullhorn ATS & CRM

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

HROffice logo

HROffice

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

50%

6 of 12

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

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from HROffice to Bullhorn is a structural migration for staffing agencies that have outgrown HROffice's Dutch-market feature set and need Bullhorn's global ATS ecosystem, API extensibility, and staffing-specific automation. HROffice's assignment-based data model—where workers are placed into temporary or temp-to-perm roles with weekly timecard cycles—does not map directly to Bullhorn's Candidate-Application-Placement model. We do not force assignments into employee records; instead we export assignments as supplemental metadata on the Bullhorn Candidate and create Bullhorn Placement records for active or recently completed assignments, preserving placement type, duration, and pay rate context. Timecard history migrates to Bullhorn's Time & Expense module, subject to the customer's Bullhorn licensing tier. The HROffice API is a paid add-on that we coordinate to enable before migration begins. Workflows, career site content, and employer-branded job posting layouts do not migrate; we deliver a written inventory of these for the customer's Bullhorn admin to rebuild 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

HROffice logo

HROffice

What's pushing teams away

  • The platform has zero public reviews on major directories like G2 and Capterra, making it difficult for prospective customers to validate quality and support responsiveness before committing.
  • No public pricing is published—prospects must contact sales for every quote, which creates friction for organizations comparing mid-market HRMS options quickly.
  • The API is add-on and requires a web developer to implement, making automated data exports or integrations non-trivial for non-technical HR teams.

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

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

HROffice

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

HROffice Candidate records map directly to Bullhorn Candidate. Standard fields (name, contact details, application status, skills, notes) migrate as-is. The HROffice candidate record may carry supplemental assignment history (prior placements, assignment types, time-in-service) that we attach as custom fields on the Bullhorn Candidate to preserve placement context without creating duplicate records. If HROffice candidates have multiple active assignments, each assignment becomes a separate Bullhorn Placement record linked to the same Candidate.

HROffice

Application

maps to

Bullhorn ATS & CRM

Application

1:1
Fully supported

HROffice Applications tied to job postings map to Bullhorn Application records. Application date, status pipeline, and recruiter notes preserve. The HROffice application-to-candidate relationship maps cleanly to Bullhorn's Candidate-to-Application relationship. We use the HROffice candidate ID as a custom field (hroffice_candidate_id__c) on the Bullhorn Candidate for reconciliation after cutover.

HROffice

Job Posting

maps to

Bullhorn ATS & CRM

Job Order

1:1
Fully supported

HROffice Job Postings map to Bullhorn Job Order records. Job title, description, location, department, employment type, and pay range migrate directly. Employer branding content (logos, career site layout, custom CSS) does not migrate—these are CMS assets in HROffice with no Bullhorn equivalent. We export the job description text and metadata and flag branded content requiring rebuild in Bullhorn's career portal configuration. Published date and expiration date map to Bullhorn date fields.

HROffice

Assignment

maps to

Bullhorn ATS & CRM

Placement

1:many
Fully supported

HROffice Assignments (temporary placements, temp-to-perm arrangements, direct placements) represent the core staffing-agency data object. We create Bullhorn Placement records for each active or recently completed HROffice assignment, linking the Placement to the Candidate and the Job Order. Assignment type (temporary, temp-to-perm, direct hire) maps to Bullhorn Placement record type. Start date, end date, and assignment status migrate as Placement fields. The original HROffice assignment record is preserved as a custom object or related list entry on the Bullhorn Candidate for audit purposes. This prevents HROffice's assignment-based model from being forced into a continuous employment record, which would create duplicate or conflicting placement histories.

HROffice

Assignment

maps to

Bullhorn ATS & CRM

Custom Fields on Candidate

lossy
Fully supported

For candidates with historical assignment records where a full Placement is not warranted (short-term fill-in assignments, reference-only placements), we store assignment summary data as custom fields on the Bullhorn Candidate: last_assignment_type__c, last_assignment_start__c, last_assignment_end__c, last_pay_rate__c, total_assignments_completed__c. This preserves staffing history without overpopulating the Bullhorn Placement object with low-value historical records.

HROffice

Timecard

maps to

Bullhorn ATS & CRM

Bullhorn Time & Expense

1:1
Fully supported

HROffice weekly timecard records (hours worked, submission dates, approval status) map to Bullhorn Time & Expense entries if the customer licenses Bullhorn Time & Expense or Bullhorn Middle Office. Timecards link to the Bullhorn Placement record representing the assignment. Hours worked, work dates, and pay rate migrate to the time entry. If the customer does not license Bullhorn Time & Expense, we export timecard history as a standalone custom object (hroffice_timecard__c) on the Placement for record retention purposes.

HROffice

Compensation

maps to

Bullhorn ATS & CRM

Placement Pay and Bill Rates

lossy
Mapping required

HROffice compensation records (pay type, hourly rate or salary, effective dates for each assignment) map to Bullhorn Placement pay rate and bill rate fields. HROffice's pay_type property (hourly, salary, temp-to-perm fixed) maps to Bullhorn's payRateType and billRateType fields. We validate rate formats during import because HROffice may store rates as decimal strings and Bullhorn expects numeric values. Overtime rates, shift premiums, and expense allowances from HROffice migrate as custom fields on the Placement record.

HROffice

Job Posting: Custom Fields

maps to

Bullhorn ATS & CRM

Custom Fields on Job Order

lossy
Fully supported

HROffice job postings may carry custom career site fields specific to the organization's branded job portal. We export these as Bullhorn custom fields on the Job Order entity (e.g., department_cost_center__c, hiring_manager_email__c, remote_policy__c). The employer branding fields (logo, banner image, CSS) do not map and are flagged for rebuild in Bullhorn's career portal. Department and location metadata from HROffice map to Bullhorn Job Order standard fields.

HROffice

User

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

HROffice internal users (recruiters, administrators, hiring managers) map to Bullhorn User records. We extract HROffice users by email address as the dedupe key and match against the Bullhorn destination org's User table. User role and permission sets from HROffice do not have a direct Bullhorn equivalent; we flag the HROffice role assignments in the migration deliverable and the customer's Bullhorn admin provisions corresponding Bullhorn permission sets post-migration. Any HROffice user without a matching Bullhorn User goes to a reconciliation queue.

HROffice

User

maps to

Bullhorn ATS & CRM

Candidate (for contractor or temporary worker users)

lossy
Fully supported

HROffice may track temporary workers or contractors as users for timecard submission purposes. These are not system users in the Bullhorn sense but rather candidates on assignment. We identify these HROffice user records during discovery and migrate them as Bullhorn Candidate records with the assignment history attached, rather than as Bullhorn User records. The customer's Bullhorn admin reviews and provisions system access as needed post-migration.

HROffice

Benefits

maps to

Bullhorn ATS & CRM

Custom Fields on Candidate or Placement

lossy
Mapping required

HROffice benefit enrollment records (plan type, enrollment date, coverage level, dependent information) migrate as custom fields on the Bullhorn Candidate or, for benefits tied to a specific assignment, on the Placement record. Bullhorn does not have a native benefits management module; benefit data is stored as structured custom fields. We preserve the benefit plan name, effective date, and coverage tier as separate custom fields and flag the benefit data for the customer's HR admin to validate post-migration.

HROffice

Engagement: Notes

maps to

Bullhorn ATS & CRM

Note

1:1
Fully supported

HROffice recruiter notes attached to candidates, applications, or assignments migrate to Bullhorn Note records linked via ContentDocumentLink to the parent Candidate, Job Order, or Placement. Rich text formatting from HROffice note bodies preserves in Bullhorn Note where the format is compatible (plain text and basic HTML; complex CSS-styled content is simplified). Note creation date and author (HROffice user) migrate with author preserved as a text string if the user does not have a Bullhorn User record.

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.

HROffice logo

HROffice gotchas

High

Zero public review presence limits due diligence

High

API is a paid add-on, not self-service

Medium

Assignment-based data model does not map directly to standard HRMS

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

  • Assignment-to-Placement transformation requires manual business-rule definition

    HROffice's assignment-based data model does not map automatically to Bullhorn's Placement object. An assignment in HROffice may represent a single temporary placement, a temp-to-perm trial period, or a direct hire with a defined end date. Bullhorn Placement is tied to both a Candidate and a Job Order and carries pay/bill rates. We do not automatically convert every HROffice assignment to a Bullhorn Placement because that would overpopulate the Placement object with historical or reference-only records. The customer defines the transformation rule during scoping: which HROffice assignment statuses (active, completed, cancelled) produce Bullhorn Placements versus supplemental Candidate fields. Skipping this step results in either missing active placements or a cluttered placement history.

  • HROffice API requires coordination to enable before migration

    HROffice's API access is a paid add-on, not a self-service feature. If the customer has not purchased API access, we coordinate directly with HROffice to enable it before migration begins. There is no bulk export button for non-technical teams. If HROffice delays API provisioning or the API connection is not active, migration cannot proceed on the scheduled timeline. We flag API readiness as a dependency in the project plan and recommend customers confirm API access is active during discovery, not at migration kickoff.

  • Timecard migration requires Bullhorn Time & Expense licensing

    HROffice's weekly timecard records are a core part of its temporary staffing workflow. Bullhorn stores time entries in Bullhorn Time & Expense or Bullhorn Middle Office, which are separate paid modules from the core Bullhorn Platform ATS. If the customer does not license Bullhorn Time & Expense, we export timecard history as a custom object (hroffice_timecard__c) attached to the Placement for record retention, but the records will not appear in Bullhorn's native time-tracking workflow. We flag this licensing requirement during scoping so the customer can evaluate Bullhorn Time & Expense pricing before migration begins.

  • Zero HROffice review data limits migration risk assessment

    HROffice has no published user reviews on G2 or Capterra as of the research date. This means we cannot ground migration risk assessments in independent feedback about data reliability, support quality, or known data loss patterns from other HROffice migrations. We treat HROffice as an opaque source and plan longer validation cycles than we would for platforms with rich review histories. We recommend requesting direct customer references from HROffice during procurement if possible, and we extend the discovery and sandbox migration phases to account for schema surprises.

  • Employer branding and career site content do not migrate

    HROffice's branded career website builder produces employer-branded job posting layouts, logos, banners, and CSS-styled pages that are stored in HROffice's CMS layer. Bullhorn's career portal is a separate configuration with its own template system. We export the job description text and structured metadata from HROffice job postings, but we do not transfer branded career site layouts, embedded media, or custom CSS. We deliver a written handoff document listing every HROffice career site page and its job posting count so the customer's Bullhorn admin can rebuild the career portal structure post-migration.

Migration approach

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

  1. Discovery and API readiness

    We audit the HROffice source environment across candidates, applications, job postings, assignments, timecards, users, and any custom fields in use. We confirm whether the HROffice API add-on is active and, if not, coordinate with HROffice to enable it before migration begins. We extract a complete record count per object and identify the assignment-to-placement transformation rule the customer wants to apply: which assignment statuses produce Bullhorn Placements versus Candidate custom fields. We also confirm whether the customer licenses Bullhorn Time & Expense or plans to add it. The discovery output is a written migration scope document covering record counts, object mapping rules, and any HROffice API dependencies.

  2. Bullhorn schema preparation

    We configure the Bullhorn destination environment in coordination with the customer's Bullhorn admin. This includes creating custom fields on Candidate (hroffice_candidate_id__c, assignment history fields), Job Order (any migrated custom fields from HROffice job postings), and Placement (pay rate, bill rate, assignment type, original HROffice assignment ID). If the customer licenses Bullhorn Time & Expense, we configure the time entry structure to receive HROffice timecard records. If Bullhorn Time & Expense is not licensed, we create the hroffice_timecard__c custom object. We also configure any required Record Types on Placement for assignment type differentiation (temporary, temp-to-perm, direct hire). Bullhorn schema changes are deployed to a Bullhorn Sandbox org first for validation.

  3. Sandbox migration and reconciliation

    We run a full migration into Bullhorn Sandbox using production-like data volume. The customer's Bullhorn admin and recruitment operations lead reconcile record counts (Candidates in, Placements in, Timecards in, Job Orders in), spot-check 25-50 random records against the HROffice source, and validate that assignment history appears correctly on Candidate records and Placements. Any mapping corrections, custom field additions, or transformation rule adjustments happen in this phase. No data moves to production until the Sandbox migration is signed off.

  4. User reconciliation and provisioning

    We extract every distinct HROffice user referenced on Candidate, Application, Assignment, and timecard records and match by email against the Bullhorn destination org's User table. HROffice users that represent temporary workers on assignment (identified during discovery) are excluded from User matching and migrated as Candidates. System users without a matching Bullhorn User go to a reconciliation queue. The customer's Bullhorn admin provisions any missing Bullhorn Users (active or inactive) before production migration resumes. This step is required because OwnerId and assignedTo fields in Bullhorn reference User records.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Bullhorn Users (validated from Step 4), Job Orders (from HROffice job postings), Candidates (with assignment history fields populated), Placements (from active HROffice assignments linked to Candidates and Job Orders), Applications (linked to Candidates and Job Orders), Timecard records (linked to Placements if Bullhorn Time & Expense is licensed, or to the custom timecard object), and engagement notes. Each phase emits a row-count reconciliation report before the next phase begins. Assignments that fall outside the customer's defined transformation rule are logged and reviewed with the customer before being applied as Candidate custom fields.

  6. Cutover, validation, and admin handoff

    We freeze HROffice writes during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver the HROffice career site and branded job posting inventory to the customer's Bullhorn admin for career portal rebuild. We deliver the workflow and automation inventory (HROffice recruiter workflows and assignment-based rules) as a written map for Bullhorn rebuild in Bullhorn Automation or Bullhorn workflows. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's recruitment team. We do not rebuild HROffice workflows as Bullhorn automations inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

HROffice logo

HROffice

Source

Strengths

  • Bundles ATS, career site builder, and temporary staffing workflows in one Dutch-language platform.
  • Referral recruitment tool and branded career website creation are included without separate module costs.
  • Built-in timecard and weekly payroll cycle support for temporary worker populations.
  • Customer Success team available Monday through Friday 08:30–17:15 Dutch time by phone and email.
  • Part of the Adver-Online Group, providing stability and a local presence in the Netherlands.

Weaknesses

  • No public pricing—every quote requires a sales contact, slowing down vendor evaluation.
  • Zero reviews on G2 or Capterra as of the research date, making independent quality assessment impossible.
  • API is a paid add-on requiring a web developer to integrate, limiting self-service export options.
  • Limited public documentation on data model, schema, or field-level API details.
  • Target audience is primarily Dutch mid-market and staffing firms; less suited for international or enterprise-scale HRMS replacement.
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. 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 HROffice and Bullhorn ATS & CRM.

  • 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

    HROffice: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your HROffice 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 four and eight weeks for accounts under 10,000 candidates, 3,000 assignments, and no timecard history requiring Bullhorn Time & Expense configuration. Migrations with large timecard histories (over 100,000 rows), multiple active assignment types, custom career site field exports, or multi-division Bullhorn orgs move to ten to sixteen weeks because of assignment-to-placement transformation logic, timecard-to-Time & Expense mapping, and extended sandbox validation. HROffice API readiness is a prerequisite that can add one to two weeks if API access is not yet active.

Adjacent paths

Related migrations to explore

Ready when you are

Move from HROffice.
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