HRMS migration

Migrate from Aotal to Bullhorn ATS & CRM

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

Aotal logo

Aotal

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

92%

11 of 12

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

Complexity

CModerate

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Aotal to Bullhorn is a platform-type migration: Aotal is a New Zealand-focused cloud HRMS covering recruitment, onboarding, performance, and learning; Bullhorn is an ATS and CRM purpose-built for staffing agencies. The schema gap is significant. Bullhorn has no native equivalents for Aotal's performance cycles, competency frameworks, learning records, or onboarding checklists. We close that gap by pre-designing Bullhorn Custom Objects for each Aotal module, using Bullhorn's Front Office Growth edition (up to 10 Custom Objects with 55 fields each) or mapping to standard fields where semantically appropriate. We sequence the load order to resolve employee-to-candidate normalization, role-to-placement lookups, and department-to-corporate-structure relationships before cutover. Workflows, automations, and learning management configurations do not migrate; we deliver a written inventory for your 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

Aotal logo

Aotal

What's pushing teams away

  • No publicly listed pricing — pricing requires a sales quote, which is friction for small NZ businesses comparison-shopping against published per-employee SaaS plans.
  • Limited public review footprint compared to global HRIS players — minimal G2/Capterra reviews makes due diligence hard for procurement teams that rely on peer feedback.
  • Regional focus means organizations expanding beyond Australia/New Zealand often outgrow the platform and migrate to global vendors like Workday, SAP SuccessFactors, or BambooHR.
  • Two-product surface area (SnapHire ATS + Talent App Store) can be confusing — customers unsure which product covers a given function may end up duplicating capabilities or buying apps they do not need.
  • Lack of public API documentation makes building custom integrations harder than with platforms that publish OpenAPI specs.

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

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

Aotal

Employee

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Aotal Employee records map to Bullhorn Candidate records as the primary talent entity. Employee first name, last name, date of birth, contact details, address, employment status, and hire date transfer to corresponding Bullhorn Candidate fields. We use Candidate as the target because Bullhorn is an ATS-centric system where the employee record is created from a placement event; the candidate becomes the person record that persists through placement. Historical employee status changes (new hire, active, on leave, terminated) migrate as Candidate record updates with custom fields tracking employment state.

Aotal

Department

maps to

Bullhorn ATS & CRM

ClientCorporation or Custom Object

1:1
Fully supported

Aotal Department records require mapping based on whether they represent the agency's internal org structure or client organisations. Internal departments map to Bullhorn Corporate (ClientCorporation) records with a custom field department_type__c = 'internal' for reconciliation. Client organisations that Aotal manages as hiring entities map directly to Bullhorn ClientCorporation. We resolve the lookup relationship to ensure Candidate records can reference the correct corporate entity.

Aotal

Role / Position

maps to

Bullhorn ATS & CRM

JobOrder or Custom Object

1:1
Fully supported

Aotal Role records (job titles, position descriptions, pay grades, FTE status) map to Bullhorn JobOrder as the recruiting representation, with role-specific fields stored in a Bullhorn Custom Object (role_profile__c) attached to the JobOrder. For agencies that use Aotal roles to track internal headcount planning rather than recruiting, the Custom Object attaches to Candidate or ClientCorporation. We confirm the role usage pattern during discovery.

Aotal

Performance Review / Rating

maps to

Bullhorn ATS & CRM

Custom Object (performance_review__c)

1:1
Fully supported

Aotal performance review cycles with ratings, goals, and manager feedback have no native Bullhorn equivalent. We design a Bullhorn Custom Object (performance_review__c) with fields for review period (start_date__c, end_date__c), rating score (rating_value__c), reviewer name (reviewer__c, picker:user), goals, and free-text feedback. The Custom Object attaches to the Candidate record. Bullhorn Front Office Growth/Enterprise supports up to 10 Custom Objects with 55 fields each; we allocate one to performance data.

Aotal

Competency Profile

maps to

Bullhorn ATS & CRM

Custom Object (competency_profile__c)

1:1
Fully supported

Aotal competency frameworks (skills, certifications, qualifications, licensing) map to a Bullhorn Custom Object (competency_profile__c) with up to 55 fields covering skill name, proficiency level, certification expiry, and issuing body. Bullhorn's Picker fields allow linking competencies to Candidate records. For agencies with licensing or compliance requirements (common in NZ healthcare, construction, and trades), we include expiry date fields with a note to configure Bullhorn reminders or an external compliance tool post-migration.

Aotal

Training Record

maps to

Bullhorn ATS & CRM

Custom Object (training_record__c)

1:1
Fully supported

Aotal training completion records, course enrollments, and certification achievements map to a Bullhorn Custom Object (training_record__c) attached to the Candidate. Fields include course name, completion date, expiry date, training provider, and delivery method (online, in-person). Bullhorn ATS Growth does not include Custom Objects; we recommend Bullhorn ATS (2 Custom Objects) or Front Office Growth (10 Custom Objects) for this migration scope.

Aotal

Onboarding Checklist

maps to

Bullhorn ATS & CRM

Custom Object (onboarding_checklist__c)

1:1
Fully supported

Aotal onboarding task lists and completion status for new hires map to a Bullhorn Custom Object (onboarding_checklist__c) attached to the Placement or Candidate record. Each checklist item migrates as a row with fields for task name, required/optional flag, due date, completion status, and assigned owner. Bullhorn's native Task object can supplement for simple task items; complex onboarding workflows with conditional paths require a documented rebuild plan.

Aotal

Leave / Absence Record

maps to

Bullhorn ATS & CRM

Task or Custom Object (leave_record__c)

lossy
Fully supported

Aotal leave management records (annual leave, sick leave, parental leave) have no direct Bullhorn equivalent. We map to a Bullhorn Custom Object (leave_record__c) attached to the Candidate with fields for leave type, start date, end date, status, and hours taken. Alternatively, for agencies that handle leave in a separate payroll or HRIS system, we flag leave records as out-of-scope for Bullhorn migration and recommend that the customer's payroll admin reconcile leave balances in the target HRIS.

Aotal

Candidate Application / Job Application

maps to

Bullhorn ATS & CRM

Candidate and JobOrder with Placement

1:1
Fully supported

Aotal job applications (candidate applied to a role) map to Bullhorn's Candidate linked to a JobOrder. When a candidate is placed in a role, we create a Bullhorn Placement record that captures the placement date, client, job order, start date, and pay rate. Aotal's application status maps to Bullhorn Opportunity or JobSubmission status values, and the status history migrates as notes or custom status fields on the Candidate.

Aotal

Employee Emergency Contact

maps to

Bullhorn ATS & CRM

Custom Object (emergency_contact__c)

1:1
Fully supported

Aotal emergency contact details stored on the Employee record map to a Bullhorn Custom Object (emergency_contact__c) attached to the Candidate. Bullhorn's Understanding Custom Objects documentation (kb.bullhorn.com) confirms that emergency contact information is a canonical use case for Bullhorn Custom Objects. Fields include contact name, relationship, phone number, and email address.

Aotal

Document / Attachment

maps to

Bullhorn ATS & CRM

ContentDocument (via ContentDocumentLink)

1:1
Fully supported

Binary documents stored in Aotal (contracts, signed agreements, certificates, CVs) migrate as Bullhorn ContentDocument records attached via ContentDocumentLink to the relevant Candidate, ClientCorporation, JobOrder, or Placement. Resume files migrate as Candidate resumes parsed by Bullhorn's native resume parsing on import. Contract and certificate files migrate as general ContentDocument attachments with a custom document_type__c field for classification.

Aotal

Owner / Manager

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

Aotal employee records with manager assignments map to Bullhorn User records. We resolve by matching Aotal employee email to Bullhorn User email. Any Aotal employee without a matching Bullhorn User goes to a reconciliation queue for the customer's admin to provision the User before record import resumes. Manager reporting relationships are stored in a custom field manager_user__c (picker:user) on the User or Candidate 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.

Aotal logo

Aotal gotchas

High

Data lives in multiple microservices across the Talent App Store

Medium

SnapHire ATS and Talent App Store are distinct products with different data shapes

Medium

Vendor-assisted extraction is likely required given no public API docs

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 has no performance, learning, or onboarding modules

    Aotal's performance review cycles, competency frameworks, learning records, and onboarding checklists are HRMS-native features that have no direct Bullhorn ATS equivalent. Bullhorn's Custom Objects (Front Office Growth/Enterprise: up to 10, with 55 fields each; Bullhorn ATS: 2) must be pre-designed to absorb these modules before migration begins. We scope and document the Custom Object schema in discovery, deploy it to Bullhorn via API, and validate field limits before data load. If the migration includes five or more Aotal talent modules, the Bullhorn ATS Growth edition (0 Custom Objects) is insufficient; we recommend Front Office Growth or Enterprise.

  • Aotal employee records do not map 1:1 to Bullhorn candidates

    Aotal stores Employee as the central HRMS entity with roles, performance, and training attached. Bullhorn stores Candidate as the ATS entity, and the Employee record only exists as a Placement outcome when a Candidate is placed in a job. We must normalize Aotal employees into Bullhorn candidates, determine which employees represent placed candidates versus internal staff (admin, HR, finance) that belong in Bullhorn's User table, and flag the reconciliation before schema design begins. This distinction affects Bullhorn licensing because Users are licensed seats; Candidates are not.

  • Bullhorn API rate limits require batched migration

    Bullhorn's REST API enforces rate limits that require batched, chunked requests during bulk data import. We use Bullhorn's Bulk API with exponential backoff and batch chunking (typically 200 records per batch) to avoid limit violations. Custom Object inserts with 55-field payloads consume API quota faster than standard object inserts; we space these batches and monitor limit responses. Bullhorn's developer documentation (developer.bullhorn.com) specifies the applicable rate limit thresholds that govern our chunking strategy.

  • Schema mismatches between Aotal HRMS fields and Bullhorn typed fields cause silent rejections

    Data type mismatches (date formats, picklist values, required field constraints) between Aotal and Bullhorn can cause record-level rejections without explicit error messages if the migration tool is not monitoring Bullhorn's API response codes per batch. We validate a representative sample (50 records per object type) in a Bullhorn sandbox before production migration, and we emit a row-count reconciliation report after each batch. Bullhorn's validation rules and required field constraints must be identified during discovery and either temporarily disabled or bypassed with a migration-context user during import.

  • Custom Object limits by Bullhorn edition constrain talent module preservation

    Bullhorn ATS Growth has zero Custom Objects, Bullhorn ATS supports 2, and only Front Office Growth and Enterprise support 10. If Aotal has more than 10 distinct talent modules to preserve, some must be consolidated into shared Custom Objects (for example, combining emergency contacts and leave records into a single hr_admin__c object) or excluded from Bullhorn migration with a documented rebuild plan in the target system. We confirm the Bullhorn edition during discovery to scope what can be migrated natively versus what requires a separate HRIS for post-migration.

Migration approach

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

  1. Discovery and Bullhorn edition assessment

    We audit the Aotal instance across modules in use: employee records, departments, roles, performance reviews, competency profiles, training records, onboarding checklists, leave records, and attachments. We pair this with a Bullhorn edition assessment to determine whether Front Office Growth or Enterprise is required to hold the Custom Object count, or whether Bullhorn ATS with two Custom Objects is sufficient if some Aotal modules are excluded. The discovery output is a written migration scope with a Custom Object allocation plan and a Bullhorn edition recommendation.

  2. Custom Object schema design and Bullhorn sandbox deployment

    We design the Bullhorn Custom Objects (name, API name, fields with types, edit type per field, attachment layout) using Bullhorn's Custom Object Setup Sheet template. Schema is deployed to a Bullhorn sandbox org first for validation. Bullhorn's 55-field limit per Custom Object and 20-field limit on interactive edit types (checkboxes, drop-downs, pickers) govern the field design. We configure the Custom Object tabs on Overview and Edit views per Bullhorn's documentation. The customer reviews the sandbox schema and signs off before production deployment.

  3. Sandbox migration and reconciliation

    We run a full migration into the Bullhorn sandbox using a representative data volume. The customer's HR and recruitment leads reconcile record counts, spot-check 30-50 records per object type against Aotal source data, and validate that Custom Object attachments appear correctly on Candidate records. Any field mapping corrections, data quality issues (duplicate candidates, missing department references), and Custom Object field adjustments happen in the sandbox phase. Production migration does not begin until sign-off.

  4. Employee-to-Candidate normalization and User provisioning

    We normalize Aotal employees into Bullhorn candidates and internal staff into Bullhorn Users. For each Aotal employee, we determine whether they represent a recruitment candidate (maps to Candidate), an internal recruiter or admin (maps to User), or both (maps to User with a linked Candidate record). We extract manager assignments and map to Bullhorn User lookup fields. Any Aotal employee without a matching Bullhorn User goes to a reconciliation queue for the customer's admin to provision before record import resumes.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Bullhorn Users (provisioned by admin, validated by FlitStack AI), ClientCorporations (from Aotal departments and client organisations), JobOrders (from Aotal roles), Candidates (with Custom Object attachments for performance, competency, training, onboarding, and leave), ContentDocuments (resume files, contracts, certificates), and finally a delta scan for any records modified during the migration window. Each phase emits a reconciliation report; the next phase does not begin until row counts match.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Aotal write access during cutover, run a final delta migration of records modified during the window, then enable Bullhorn as the system of record. We deliver a written inventory of every Aotal workflow, automation, performance cycle configuration, and learning management setup that requires rebuild. We do not rebuild automations, performance workflows, or learning paths as Bullhorn configurations; those are separate engagements or internal admin tasks. We support a one-week hypercare window for reconciliation issues raised by the recruitment team.

Platform deep dives

Context on both ends of the pair

Aotal logo

Aotal

Source

Strengths

  • Local NZ-based vendor with regional support, valued by Aotearoa corporates
  • Microservices model in Talent App Store lets customers buy only the modules they need
  • Broad functional coverage across ATS, onboarding, performance, learning, payroll, time, analytics, benefits, and self-service
  • SnapHire ATS has a long track record in the NZ corporate recruiting market
  • Pre-integrated app architecture reduces typical HR-tech integration headache

Weaknesses

  • No published pricing — every quote is sales-led
  • Limited public review footprint and small community resources
  • Regional focus limits suitability for multi-region/multi-country employers
  • Two-product split (SnapHire + Talent App Store) can confuse buyers
  • Public API documentation is not indexed, complicating custom integration builds
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?

Moderate HRMS migration. 4 of 7 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Aotal and Bullhorn ATS & CRM.

  • Object compatibility

    C

    4 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

    Aotal: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Aotal to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations under 1,000 employee records with fewer than five Aotal talent modules in use (performance, learning, onboarding) typically land between four and six weeks. Migrations with active performance review cycles, competency matrices, training record libraries, or complex department hierarchies requiring Bullhorn Custom Objects move to eight to twelve weeks. Bullhorn edition selection (ATS Growth, ATS, Front Office Growth, Enterprise) also affects timeline because Custom Object schema design and deployment require sandbox validation before production migration begins.

Adjacent paths

Related migrations to explore

Ready when you are

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