HRMS migration

Migrate from Tracker to Bullhorn ATS & CRM

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

Tracker logo

Tracker

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

93%

13 of 14

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

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Tracker to Bullhorn is a recruitment data model migration across two ATS platforms with different export mechanisms and API access tiers. Tracker does not publish a documented public REST API for automated migration; most migrations proceed through structured CSV export with custom field ordering and encoding handled per-export. Bullhorn enforces API usage limits across all editions except ATS Growth, which provides no API access at all, and Bullhorn's Activity timeline, field mappings, and placement chain integrity require explicit parent-record resolution during import. We run candidate deduplication against name, email, and phone before Bullhorn import to avoid the duplicate-record accumulation that builds silently under Tracker's unlimited-record model. Automation Playbook sequences, recruiter alerts, and status-update triggers do not export from Tracker and are not migrated by FlitStack AI; we deliver a written inventory of every active automation for the customer's Bullhorn admin to rebuild post-cutover.

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

Tracker logo

Tracker

What's pushing teams away

  • Some users report that advanced customization options are limited compared to larger platforms, causing friction when agency workflows become complex over time.
  • Workflow building for multi-step automation sequences has a steeper learning curve than expected, leading to frustration before teams achieve productive setups.
  • Customer reviews indicate that certain integrations with niche job boards or third-party assessment tools are less mature than competitors.
  • A small number of users describe feeling locked in once candidate and placement data volume grows, making subsequent migrations operationally burdensome.

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

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

Tracker

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Tracker Candidate records map directly to Bullhorn Candidate. Core fields (name, email, phone, resume text, status) migrate as standard field-to-field mapping. We deduplicate on name, email, and phone before Bullhorn import because Tracker积累了无限记录的惯性导致重复数据,导入 Bullhorn 后会产生额外的用户计费影响. Resume files are extracted from Tracker export as separate document attachments and re-linked to the Bullhorn Candidate record using the candidate's Bullhorn ID resolved at import time.

Tracker

Job

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

Tracker Job records map to Bullhorn JobOrder. Job title, description, location, status, and assigned recruiter fields migrate to Bullhorn equivalents. The Job's assigned recruiter resolves to Bullhorn User ID via email match before JobOrder insert. Job status mapping (Open, Closed, On Hold) translates to Bullhorn JobOrder status values. Any custom fields on the Tracker Job enumerate during discovery and map to Bullhorn JobOrder custom fields.

Tracker

Company

maps to

Bullhorn ATS & CRM

ClientCorporation

1:1
Fully supported

Tracker Company records map to Bullhorn ClientCorporation. The company name and address fields migrate directly, and domain normalization supports deduplication during import. ClientCorporation is created before any Candidate or JobOrder that references it so that the clientCorporationID lookup is satisfied at the moment of insert. We preserve the Tracker Company ID as a custom field tracker_company_id__c for audit trail.

Tracker

Contact

maps to

Bullhorn ATS & CRM

ClientContact

1:1
Fully supported

Tracker Contacts (hiring managers and client-side relationships distinct from Candidates) map to Bullhorn ClientContact. Each ClientContact is linked to its parent ClientCorporation via clientCorporationID resolved by company name match. The Tracker contact ID is preserved as tracker_contact_id__c for reconciliation. We flag any Tracker Contacts without a matching Company during deduplication and present a resolution report before committing the import.

Tracker

Placement

maps to

Bullhorn ATS & CRM

Placement

1:1
Fully supported

Tracker Placements map to Bullhorn Placement as the billable event record. We preserve the start date, end date, compensation, bill rate, and any mark-up or margin fields. The Placement's candidate and job references resolve to Bullhorn Candidate ID and JobOrder ID respectively at migration time, preserving the full back-office chain integrity. Historical placement records are critical for agency billing history and must not lose their Candidate-to-JobOrder linkage during import.

Tracker

Activity: Call

maps to

Bullhorn ATS & CRM

Task (TaskSubtype = Call)

1:1
Fully supported

Tracker activity calls migrate to Bullhorn Task with TaskSubtype set to Call. Call disposition, duration, and any notes transfer to Bullhorn custom Task fields. The WhoId on Task points to the migrated Bullhorn Candidate or ClientContact; the WhatId points to the related JobOrder or Placement. ActivityDate preserves the original Tracker timestamp for timeline ordering.

Tracker

Activity: Email

maps to

Bullhorn ATS & CRM

EmailMessage + Task

1:1
Fully supported

Tracker email activities migrate to Bullhorn EmailMessage records (the email content) linked to an Activity Task record (the timeline entry). The email body and subject migrate directly; attachments migrate as Bullhorn ContentDocument records linked via ContentDocumentLink. WhoId and WhatId on the Task resolve to migrated Bullhorn Candidate or ClientContact and the related JobOrder or Placement respectively.

Tracker

Activity: Meeting

maps to

Bullhorn ATS & CRM

Event

1:1
Fully supported

Tracker meeting activities migrate to Bullhorn Event records. StartDateTime, EndDateTime, and Location migrate directly. Attendee lists from Tracker resolve to Bullhorn EventRelation records linked to the migrated Candidate, ClientContact, and User. Meeting notes migrate to the Event description field or attach as ContentDocument if the Tracker meeting had an associated document.

Tracker

Activity: Note

maps to

Bullhorn ATS & CRM

Note

1:1
Fully supported

Tracker Notes linked to Candidates or Jobs migrate to Bullhorn Note records attached via ContentDocumentLink to the parent Candidate, ClientContact, JobOrder, or Placement. Rich text formatting in Tracker notes is preserved in Bullhorn Note body. If the Tracker note references any external attachments, those files are extracted and re-linked to the Bullhorn Note record.

Tracker

Activity: Task

maps to

Bullhorn ATS & CRM

Task

1:1
Fully supported

Tracker task activities migrate to Bullhorn Task with Status, Priority, and ActivityDate preserved. Task assignment migrates by resolving the Tracker recruiter ID to Bullhorn User ID via email match. Any Tracker task without a matching User is assigned to a migration-system service account for the customer's Bullhorn admin to reassign post-migration.

Tracker

Pipeline Stage

maps to

Bullhorn ATS & CRM

JobOrder custom field or status mapping

lossy
Fully supported

Tracker pipeline stage names and candidate-stage associations map to Bullhorn JobOrder status values or a Bullhorn custom picklist field. We enumerate the complete set of Tracker stage names during discovery and configure corresponding Bullhorn JobOrder status values (or a custom field if the stage model is non-standard). Stage-level automation rules in Tracker do not migrate and are included in the automation rebuild inventory.

Tracker

Custom Field

maps to

Bullhorn ATS & CRM

Custom Field

1:1
Fully supported

Tracker custom fields on Candidate, Job, and Company objects enumerate during discovery. Each Tracker custom field name and type (text, number, date, picklist, checkbox) maps to an equivalent Bullhorn custom field on the corresponding Bullhorn entity. Bullhorn entity-level custom field limits apply; if a Tracker object has more custom fields than Bullhorn's per-entity allowance, we identify the overflow and recommend Bullhorn Custom Object for the excess fields.

Tracker

Document: Resume

maps to

Bullhorn ATS & CRM

ContentDocument (linked to Candidate)

1:1
Fully supported

Resume files, cover letters, and uploaded attachments stored against Tracker Candidate records are extracted from the export and re-associated to the corresponding Bullhorn Candidate record using the Bullhorn ID resolved at import time. Each document becomes a ContentDocument with a ContentDocumentLink pointing to the Candidate. We preserve the original file name and MIME type metadata.

Tracker

Placement Commission

maps to

Bullhorn ATS & CRM

Placement custom field

1:1
Fully supported

Any commission, bonus, or split-revenue fields stored on Tracker Placements migrate to Bullhorn Placement custom fields. Commission percentage, recruiter split, and manager override fields are preserved as Bullhorn number or currency fields on the Placement object. If Tracker stores commission in a separate related object, we flatten it during the transform phase before Placement insert.

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.

Tracker logo

Tracker gotchas

High

Automation workflows do not migrate as functional rules

Medium

CSV export is the primary migration path for most customers

Medium

Unlimited record model can mask deduplication needs

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

  • Automation Playbook sequences do not export from Tracker

    Tracker Automation Playbook sequences (email drips, SMS triggers, recruiter alerts, status-update rules) are stored as platform-native workflow logic that has no export mechanism. Bullhorn Automation (formerly Herefish) uses a different trigger-and-action model with distinct configuration semantics. We do not migrate automation sequences as functional rules. We deliver a written inventory of every active Tracker Automation Playbook sequence with its trigger conditions, delay steps, action types, and a recommended Bullhorn Automation equivalent for the customer's Bullhorn admin to rebuild post-migration. Agencies relying heavily on automated candidate engagement should plan the rebuild effort alongside the migration timeline to avoid losing automated sequences during the transition window.

  • CSV export is the primary Tracker migration path

    Tracker does not publish a public REST API with documented migration endpoints. Most Tracker-to-Bullhorn migrations proceed via CSV export and re-import, which handles standard fields (name, contact, status) well but requires custom extraction logic for attachments, activity history with timestamp ordering, and custom object associations. We build a structured CSV import pipeline for Bullhorn that accounts for Tracker-specific field ordering and encoding, parent-record lookup resolution before insert, and batch chunking to stay within Bullhorn's 1,500 calls-per-minute API ceiling. Without this structured approach, orphaned records, silently dropped custom fields, and broken placement chains surface weeks after go-live.

  • Unlimited Tracker records require deduplication before Bullhorn import

    Tracker bundles unlimited candidate and job storage across all tiers without per-record billing pressure, which causes duplicate records to accumulate without organizational penalty. Bullhorn bills per user and may impose record-count considerations depending on edition. We run candidate deduplication against name, email, and phone before Bullhorn import and present a duplicate resolution report to the customer before committing the import. Deduplication scope directly affects migration timeline and cost; large candidate databases (50,000+) with significant duplicate rates require extended reconciliation phases.

  • Bullhorn ATS Growth edition has no API access

    Bullhorn's ATS Growth edition (the entry-level tier) explicitly excludes API access. If the customer's Bullhorn destination is ATS Growth, FlitStack AI cannot use the Bullhorn REST API and must instead rely on Bullhorn's CSV import capability, which has different field coverage than the API. We confirm the Bullhorn edition during scoping and adjust the migration strategy accordingly. All other Bullhorn paid tiers (Starter, Enterprise) include API access with published limits of 100,000 calls per month and 1,500 calls per minute.

  • Bullhorn field-level security and validation rules can block import

    Bullhorn orgs commonly enforce field-level security profiles, required format validation rules, and picklist whitelists that the migrating data must satisfy during import. Bullhorn's field mappings tool controls which fields display on record edit pages, but validation rules enforce data integrity at insert time. We coordinate with the customer's Bullhorn admin before migration to grant the migration service account the appropriate object and field-level permissions, and we either temporarily relax validation rules during the load window or extend them with a migration-context exemption. Skipping this step results in record rejection rates of 5-25 percent on the first import attempt.

Migration approach

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

  1. Discovery and Bullhorn edition confirmation

    We audit the source Tracker instance across tier (Launch/Core/Professional/Enterprise), active users, candidate volume, job volume, placement history, custom field enumerations, Automation Playbook sequence inventory, and activity history volume. We pair this with Bullhorn edition confirmation: if the customer is on ATS Growth (no API access), we use Bullhorn's CSV import capability; all other editions allow Bullhorn REST API with published rate limits of 100,000 calls per month and 1,500 calls per minute. The discovery output is a written migration scope with record counts, deduplication estimates, and a Bullhorn API versus CSV import decision.

  2. Deduplication and duplicate resolution

    We run candidate deduplication against Tracker candidate records using name, email, and phone as composite dedupe keys. We generate a duplicate resolution report grouped by match confidence (exact email, fuzzy name+phone, exact name only) and present it to the customer for resolution decisions before migration commits. Duplicate resolution scope directly affects migration timeline; large candidate databases with high duplicate rates require extended reconciliation phases. Tracker job records are not typically duplicated but we validate against ClientCorporation name for any duplicate Companies.

  3. Bullhorn field mapping and schema configuration

    We enumerate Tracker custom fields on Candidate, Job, Company, Contact, and Placement during discovery and configure the Bullhorn destination schema accordingly. This includes creating Bullhorn custom fields on the corresponding entities (Candidate, JobOrder, ClientCorporation, ClientContact, Placement) to receive Tracker custom field values, configuring field-level permissions for the migration service account, and mapping Tracker stage names to Bullhorn JobOrder status values. If Tracker custom field count exceeds Bullhorn's per-entity limit, we identify overflow and recommend Bullhorn Custom Object for the excess. Bullhorn Field Mappings (Admin > Field Mappings) are configured to control field display behavior on record edit pages.

  4. Parent-record dependency ordering and resolution

    Bullhorn requires parent records to exist before child records that reference them. We establish the following insert order: ClientCorporation (from Tracker Company), then ClientContact (linked to ClientCorporation), then JobOrder (linked to ClientCorporation and assigned User), then Candidate, then Placement (linked to Candidate, JobOrder, and ClientCorporation). Activity history migrates last using the resolved Bullhorn IDs for WhoId (Candidate or ClientContact) and WhatId (JobOrder or Placement). Owner resolution maps Tracker recruiter IDs to Bullhorn User IDs via email match; any Tracker owner without a matching Bullhorn User is held in a reconciliation queue for the customer's Bullhorn admin to provision before that phase resumes.

  5. Production migration in dependency order

    We run production migration in record-dependency order: ClientCorporation, ClientContact, JobOrder, Candidate, Placement, then Activity history. Activity migration (calls, emails, meetings, tasks) uses Bullhorn REST API with batch chunking and rate-limit handling (1,500 calls per minute, exponential backoff on 429 responses). Each phase emits a row-count reconciliation report before the next phase begins. Resume and document attachments migrate as Bullhorn ContentDocument with ContentDocumentLink to the parent Candidate record. Automation Playbook sequences are not migrated; the inventory document is delivered at this step for the customer's Bullhorn admin to begin rebuild parallel to migration.

  6. Cutover, final delta, and automation handoff

    We freeze Tracker writes during cutover, run a final delta migration of any records created or modified during the migration window, then enable Bullhorn as the system of record. We deliver the Automation Playbook inventory document listing every active sequence with its trigger, conditions, actions, and recommended Bullhorn Automation equivalent. We deliver the duplicate resolution log and a post-migration reconciliation report comparing Tracker record counts to Bullhorn imported record counts. We support a one-week hypercare window where we resolve any reconciliation issues raised by the agency's recruiting team. We do not rebuild Tracker Automation Playbook sequences as Bullhorn Automation rules inside the migration scope; that is a separate engagement or an internal Bullhorn admin task.

Platform deep dives

Context on both ends of the pair

Tracker logo

Tracker

Source

Strengths

  • Unlimited candidates and jobs on all tiers removes per-record billing friction for high-volume agencies.
  • Integrated video interviewing with mobile candidate recording reduces the need for third-party video tools.
  • Recruiter-facing automation for email, SMS, and qualification forms is built in rather than requiring separate subscriptions.
  • Dedicated account team model is cited by customers moving from Bullhorn as a key differentiator during onboarding.
  • Per-seat pricing starting at $95/month is competitive for small to mid-sized recruitment agencies.

Weaknesses

  • Automation sequences and workflow logic do not export as portable artifacts, requiring manual rebuild at the destination.
  • Limited public API documentation makes programmatic migration more dependent on CSV export and manual mapping.
  • Custom field logic and stage-level automation rules require careful discovery before migration to avoid data arriving without intended structure.
  • Some reviews note that advanced customization and third-party integration depth trails larger ATS platforms.
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 Tracker 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

    Tracker: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Tracker to Bullhorn migrations land between two and four weeks for agencies with under 20,000 candidates, 3,000 jobs, and 2,000 placements with no extensive custom field or activity history complexity. Migrations with large candidate databases requiring deduplication across name and email, placement history with full back-office chain resolution, or multi-object custom field enumeration move to six to ten weeks. Bullhorn's own migration documentation notes that small agencies are typically operational within weeks and mid-size agencies within two to six weeks with Bullhorn's implementation team managing the process.

Adjacent paths

Related migrations to explore

Ready when you are

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