ATS & HRMS migration checklist

Migration Checklist: Moving to Bullhorn

An eight-phase, task-by-task punch list for moving candidates, resumes, contacts, jobs, submissions, sendouts, placements, and historical activity into Bullhorn ATS.

124 tasks 6–16 weeks typical Updated May 27, 2026
Bullhorn ATS & CRM
Employees
Compensation
Benefits
Time Off
Org Structure
Performance
0 of 124 tasks complete

Phase 0

Decide & Plan

Lock scope, ownership, and constraints before any export job runs.

  • Risk if skipped: Mid-project entity additions force re-running mapping, sandbox tests, and the entire load-order sequence from the start.

  • Risk if skipped: A mapping that depends on Custom Objects that the edition does not support forces a last-minute redesign or an unplanned tier upgrade.

  • Risk if skipped: Without a cut-off, the export expands into a multi-year dump that no one budgeted for transforming.

  • Risk if skipped: Legal blocks the import on go-live day when candidate consent or retention review was not completed earlier.

  • Risk if skipped: A cutover during a placement push forces recruiters to log activity in two systems and reconciliation breaks.

Phase 1

Pre-Migration Prep

Source-system cleansing and destination-tenant configuration before any export.

1a. Source-system audit and cleansing

  • Risk if skipped: Duplicate source rows merge into a single Candidate and historical JobSubmissions attach to the wrong person.

  • Risk if skipped: Pipeline reports double-count revenue across split company records.

  • Risk if skipped: Required-field rejections show up mid-import and stop the load until manual triage.

  • Risk if skipped: Orphan rows fail the relationship load and force a stop-and-fix cycle inside the cutover window.

  • Risk if skipped: Without a baseline, post-migration validation cannot prove completeness.

1b. Destination-tenant setup

  • Risk if skipped: Sandbox results that do not reflect production schema mislead the go/no-go decision.

  • Risk if skipped: Records load owned by the migration service account and ownership reports break until manually reassigned.

  • Risk if skipped: Datetime values silently shift by hours and audit-trail timestamps no longer match the source.

  • Risk if skipped: The Custom Object provisioning lead time blows the cutover window because the ticket sat unfiled.

  • Risk if skipped: Custom data lands in nothing and is not discoverable until users complain weeks later.

  • Risk if skipped: An incorrect edit type forces field deletion and re-creation, which loses any data already imported.

  • Risk if skipped: Mid-import picklist rejections halt the load until each new value is added by an admin.

  • Risk if skipped: Migrated records trigger candidate emails, automation drip campaigns, or VMS resubmissions on day one.

  • Risk if skipped: Parser overwrites carefully-mapped fields the first time a recruiter opens a record.

1c. People prep

Phase 2

Source Export

Pull every byte you will need, in a form you can transform — including the things you forgot.

  • Risk if skipped: Resumes without a parent ID become orphan files that cannot re-attach in Bullhorn.

  • Risk if skipped: Without both parent IDs, the pipeline rebuild collapses and reports cannot show placement history.

  • Risk if skipped: Missing user mappings push every record into a single migration account and ownership reports become useless.

  • Risk if skipped: Files above 20 MB silently fail and the missing-document list surfaces only after recruiters look for them.

Phase 3

Transform & Map

Reshape source files into Bullhorn-shaped CSVs with every relationship, picklist, and datetime resolved.

3a. Mapping spreadsheet

  • Risk if skipped: Without one source of truth, mapping decisions drift between engineers and the final load disagrees with the design.

  • Risk if skipped: Without an upsert key, re-runs duplicate rows instead of updating them.

  • Risk if skipped: Field Mappings rejects non-listed picklist values and the row fails the load mid-job.

3b. Data transformation

  • Risk if skipped: Activities appear hours earlier or later than the source and audit reconciliation fails.

  • Risk if skipped: Mojibake on candidate names blocks search and forces a per-row re-load.

  • Risk if skipped: Right-truncation errors halt the import partway and the failed rows must be patched and re-run.

  • Risk if skipped: Notes import as garbled HTML and recruiters spend weeks re-formatting by hand.

  • Risk if skipped: Misparsed delimiters shift columns and silently corrupt every downstream row.

3c. Relationship and audit-trail decisions

  • Risk if skipped: Loading out of order produces orphan rows that the next stage cannot resolve.

  • Risk if skipped: Tenure, time-to-fill, and source-of-hire reports show every record as 'created today' until the custom field is rebuilt.

3d. ATS-specific transforms

  • Risk if skipped: Parser-driven imports overwrite cleanly mapped Candidate fields with whatever the resume happens to contain.

  • Risk if skipped: Pipeline reports collapse because submissions and placements lose their JobOrder parent.

  • Risk if skipped: Marketing attribution reports cannot answer 'which channel placed which candidate' because every row reads 'Other'.

  • Risk if skipped: EEOC reports run on populated fields with inconsistent values and the OFCCP audit trail breaks.

  • Risk if skipped: Time-in-stage and recruiter-velocity reports cannot be reproduced after the cutover.

  • Risk if skipped: Activity feed shows every historical note timestamped at the import moment.

  • Risk if skipped: Header mismatch causes Data Loader to silently skip columns and the data lands in nothing.

Phase 4

Sandbox Test Migration

Catch every problem in the sandbox before it costs you in production.

  • Risk if skipped: Skipping the sample run means every defect surfaces during cutover instead of during a low-stakes test.

  • Risk if skipped: Broken chains discovered in production force a stop-and-rebuild during the cutover window.

  • Risk if skipped: Late-evening activities silently land on the wrong day after the timezone shift.

  • Risk if skipped: A panicked double-click during cutover doubles the loaded data and a mass-delete-and-restart eats the day.

Phase 5

Production Cutover

Execute the load in a tightly sequenced window with capture, checkpoint, and reversibility at every step.

  • Risk if skipped: Late source-side writes never make it to Bullhorn and surface as missing data weeks later.

  • Risk if skipped: Migrated records trigger candidate emails or automation drip campaigns the moment they land.

  • Risk if skipped: Parser auto-runs and overwrites freshly-loaded structured Candidate fields.

  • Risk if skipped: Orphan submissions or placements break pipeline reports and require per-row patching.

  • Risk if skipped: Oversized files silently fail and the missing-document list surfaces only after recruiters look for them.

  • Risk if skipped: Quietly dropped rows accumulate and undermine the final reconciliation.

Phase 6

Validate

Prove the migration was correct before letting users into Bullhorn.

6a. Reconciliation

  • Risk if skipped: An unreconciled delta becomes silent data loss after the source is decommissioned.

6b. Relationship validation

  • Risk if skipped: Broken chains discovered after the source is read-only force a manual rebuild from screenshots.

6c. Audit and compliance

  • Risk if skipped: An OFCCP audit finds a distribution mismatch and the migrated EEOC data must be re-loaded.

6d. User-acceptance check

6e. Sign-off

Phase 7

Post-Migration Cleanup

Close out so the team can move on and Bullhorn becomes the single source of truth.

Watch list

Risks to track throughout

These risks live across multiple phases — keep an eye on them from kickoff through cutover.

  • Eastern Time storage shifts every datetime in your data

    Bullhorn stores every dateTime field server-side in Eastern Time. Source data captured in any other timezone shifts by hours when loaded naively, and late-evening activities cross day boundaries. Track this across Phase 1 (document the offset from every source timezone), Phase 3 (apply the conversion in transform, not at load), Phase 4 (test edge-of-day activities in the sandbox), and Phase 6 (sample 25 activities across timezones for date accuracy).

  • Custom Import duplicates everything on a double click

    On step 7 of the Custom Import wizard, clicking Next more than once creates a second copy of every record that just imported. There is no in-tool undo; recovery is a mass-delete-and-restart. Track this across Phase 1 (write the rule into the runbook), Phase 4 (rehearse the click sequence in the sandbox), and Phase 5 (have two people present for every wizard-driven cutover load).

  • Custom Object provisioning is a support-ticket bottleneck

    Custom Objects must be created by Bullhorn Support before they accept any data, and the edition's tier caps them at 10/2/0 searchable Custom Objects per entity. Late-discovered need for a Custom Object can delay the cutover by days. Track this in Phase 0 (confirm the edition's tier), Phase 1 (file the support ticket the week prep starts), and Phase 3 (have a fallback plan that folds the data into existing custom fields if the ticket stalls).

  • Resume Parser overwrites compound during cutover

    The Resume Parser overwrites Candidate fields on re-parse. A cutover that does not stage the Candidate load with the parser disabled can lose the carefully-mapped structured data the team spent weeks building. Track this across Phase 1 (confirm parser settings), Phase 3 (sequence the Candidate-then-resume load), and Phase 5 (re-confirm parser state before the Candidate load begins).

Pair this with the long-form guide

The complete Bullhorn ATS & CRM migration guide

Same research, written as prose: data model, import mechanisms, mapping strategy, pitfalls, and partner landscape.