12-Step Checklist: Migrating From Bullhorn ATS in 2026
Key Takeaways
Migrating from Bullhorn is a complex data operation that most teams underestimate — the typical migration takes 60–90 days from kickoff to go-live, not the "2–3 weeks" vendors often suggest.
Candidate records, tearsheets, placements, and email history are the four highest-risk data categories; each requires a distinct export and validation strategy.
The top reasons recruiting firms leave Bullhorn are pricing at scale, lack of native automation, and UI friction — and the decision to leave should be evaluated against the actual migration cost, not just the subscription delta.
Crelate and JobAdder are the two platforms most commonly evaluated as Bullhorn alternatives; each wins on different criteria.
US Tech Automations helps staffing firms automate the data validation and workflow configuration steps that otherwise require weeks of manual effort during migration.
A Bullhorn migration is not a platform switch — it is a data operation that, if done incorrectly, results in orphaned candidate records, broken client relationships, and lost placement history. Teams that have gone through it without a structured plan have spent weeks trying to reconcile data that should have been exported cleanly on day one.
This checklist covers the 12 steps that separate migrations that go smoothly from those that consume months of cleanup.
TL;DR: The 12 steps fall into four phases: Pre-Migration Audit (Steps 1–3), Data Export and Cleaning (Steps 4–6), New Platform Configuration (Steps 7–9), and Go-Live and Post-Migration (Steps 10–12). Each phase has verification checkpoints that must pass before moving to the next.
Who This Checklist Is for
This guide is written for recruiting firm operations managers, agency directors, and technical leads responsible for managing an ATS migration from Bullhorn. It is most applicable to:
Staffing and direct-hire agencies with 10–200 recruiters
Firms with 2+ years of Bullhorn history (candidate, placement, and contact records)
Teams migrating to Crelate, JobAdder, Loxo, or a custom ATS build
Red flags: Skip this guide if you are a solopreneur recruiter with fewer than 500 candidate records — for that use case, a simple CSV export and manual import may be all you need. Also skip if your primary reason for switching is a feature you have not yet verified exists in the target platform — confirm feature parity before planning the migration.
Why Teams Leave Bullhorn (And What to Weigh Before You Decide)
The decision to leave Bullhorn should be made with clear eyes about what the migration actually costs. The typical total cost of migration includes:
Data export and cleaning labor: 40–80 hours for a mid-sized firm
New platform configuration: 20–40 hours
Team training: 8–16 hours across the team
Productivity loss during the transition: typically 1–2 weeks of reduced output
Risk of data gaps if the export is incomplete
The most common reasons teams leave Bullhorn are: pricing increases at higher user counts, the perception that competitors offer more native automation, and UI friction that slows recruiter workflows. All of these are valid — but they should be quantified against the migration cost before the decision is finalized.
White-collar time-to-fill remains a key benchmark for staffing firm competitiveness, according to SHRM 2024 Talent Acquisition Benchmarks — and any platform transition that increases time-to-fill for 4–8 weeks effectively costs the firm in placement fees, making the migration window and speed a financial consideration.
Average time-to-fill for professional roles: 44 days according to SHRM 2024 Talent Acquisition Benchmarks — a metric that can increase 30–50% during an ATS migration if recruiters lose access to historical candidate pipelines.
ATS adoption rate among mid-market staffing firms exceeds 85% according to Bullhorn's 2025 Global Recruiting Insights Report — making platform choice a meaningful competitive differentiator rather than a purely administrative decision.
Recruiter productivity drops 15–25% during ATS transitions of 6+ weeks according to Staffing Industry Analysts 2024 operations study — reinforcing why pre-migration data work matters as much as the go-live itself.
The 12-Step Migration Checklist
Phase 1: Pre-Migration Audit (Steps 1–3)
Step 1: Inventory your Bullhorn data objects
Before exporting anything, know what you have. Bullhorn's data model includes: candidate records, contact records (client contacts), job orders, placements, tearsheets (lists), submissions, notes, tasks, email history, and custom fields. Not all of these migrate cleanly to every target platform.
Create a data inventory table:
| Object Type | Estimated Record Count | Target Platform Equivalent | Migration Priority |
|---|---|---|---|
| Candidate records | — | Candidate/Talent | Critical |
| Contact records | — | Contact/Client | Critical |
| Job orders (all time) | — | Job/Role | High |
| Active placements | — | Placement/Assignment | Critical |
| Tearsheets/Lists | — | Lists/Tags | High |
| Notes (all time) | — | Notes/Activity | High |
| Email history | — | Activity/Email log | Medium |
| Custom fields | — | Custom fields | High |
Fill in your record counts before proceeding.
Step 2: Identify your active pipeline and freeze it
Before the export window opens, identify all open requisitions and candidates in active stages. These are your highest-risk records during migration. Create a "migration freeze" document that lists every active job order and the candidates currently in process — this document is your reconciliation baseline after go-live.
Step 3: Confirm target platform data model compatibility
Every ATS uses different data structures. Before exporting, verify with your target platform vendor that the following objects have direct equivalents and confirmed import paths:
Candidate records with resume attachment
Placement records with start/end dates, pay/bill rates, and client/candidate links
Custom fields (most platforms import to custom fields, but the mapping must be documented)
Notes with author and timestamp preserved
If the vendor cannot confirm a migration path for any critical object, document it as a risk item before proceeding.
Phase 2: Data Export and Cleaning (Steps 4–6)
Step 4: Export all data from Bullhorn
Bullhorn provides data export capabilities through its DataMirror product and through direct API export. For most migrations, the cleanest export path is API-to-CSV using Bullhorn's REST API. Request exports for:
All candidate records (active and inactive)
All contact and account records
All job orders (open, closed, and archived)
All placement records
All notes and activities
All tearsheets with member lists
Export everything — even records you think you will not need. Storage is cheap; missing history is expensive.
According to LinkedIn Talent Insights 2024, recruiter InMail acceptance rates are a key performance metric for staffing firms, meaning the contact relationship history stored in Bullhorn has direct revenue implications — exporting incomplete contact records can cost future placements.
Step 5: Clean the exported data
Raw Bullhorn exports contain duplicates, legacy candidate records with outdated contact info, and job orders from years ago that have no active relevance. Data cleaning before import is faster and less painful than cleaning after.
Minimum cleaning steps:
Deduplicate candidate records (Bullhorn accumulates duplicates over time due to portal submissions)
Standardize phone number formats (Bullhorn stores them inconsistently)
Flag records with no activity in 3+ years for a separate "archive" import, not your active database
Verify that every placement record has a valid candidate ID and contact ID (broken links are a common export issue)
Step 6: Validate the export against your baseline
Before importing anything, validate that your export matches your Step 2 baseline:
Active pipeline records: every open job order and in-process candidate should be in the export
Placement history: total placement count in the export should match Bullhorn's placement report
Contact count: total contact records should match within 2% (some variance from deduplication is expected)
If validation fails, rerun the export before proceeding.
Phase 3: New Platform Configuration (Steps 7–9)
Step 7: Configure your new ATS before importing data
Do not import data into an unconfigured platform. Build your workflow stages, pipeline templates, custom fields, and user roles before the first record is imported. This ensures that imported records land in the correct place rather than requiring manual reassignment.
Configuration checklist:
- Define candidate stages (must match your current Bullhorn stages or your new workflow design)
- Build job order templates for each position type you fill
- Configure custom fields to match your Bullhorn custom field exports
- Set up user roles and permissions
- Connect email (Google Workspace or Microsoft 365)
- Configure any ATS-native automation rules
Step 8: Run a test import with a sample dataset
Before importing your full dataset, import 100–200 records across all object types. Verify:
Candidate records appear with all fields populated
Resume attachments open correctly
Notes appear with correct author and timestamp
Placement records link correctly to candidate and contact records
Custom field data is in the correct field
Fix any import errors before proceeding to the full import.
Step 9: Import in order of dependency
Bullhorn records have dependencies: a placement record requires both a candidate record and a contact record to exist before it can be imported. Import in this order:
Account/company records
Contact records (linked to accounts)
Candidate records
Job order records
Placement records (linked to candidates, contacts, and job orders)
Notes (linked to all of the above)
Tearsheets/lists
Phase 4: Go-Live and Post-Migration (Steps 10–12)
Step 10: Run parallel systems for 2 weeks
Do not shut off Bullhorn access immediately after go-live. Run both systems in parallel for 2 weeks, with new activity logged in the new ATS and read-only access to Bullhorn for historical reference. This catches records that were missed in the export or incorrectly imported.
Step 11: Reconcile active pipeline post-import
Using your Step 2 freeze document, verify that every active job order and in-process candidate is correctly reflected in the new ATS. This reconciliation should be done by the recruiters responsible for those accounts — they are best positioned to identify if a candidate is missing or in the wrong stage.
Step 12: Retire Bullhorn access on a scheduled date
Set a specific date for Bullhorn access retirement — typically 30 days after go-live. Communicate this date to your team before go-live, not after. Announce it again at the 2-week mark. On retirement day, export a final snapshot of Bullhorn data and archive it offline. Cancel the Bullhorn subscription.
Platform Comparison: Bullhorn vs. Crelate vs. JobAdder vs. US Tech Automations
| Feature | Bullhorn | Crelate | JobAdder | US Tech Automations |
|---|---|---|---|---|
| Recruiting-specific workflow | Yes | Yes | Yes | Via ATS integration |
| Native automation rules | Limited | Strong | Moderate | Full orchestration |
| Pricing at mid-market scale | High ($$$) | Moderate ($$) | Moderate ($$) | Custom |
| Email integration depth | Strong | Strong | Strong | Yes |
| Reporting and analytics | Strong | Moderate | Moderate | Aggregated |
| Data migration support | Paid services | Included | Included | Yes |
| API access | Full REST API | Full REST API | Full REST API | Yes |
| Best for | Large staffing firms with enterprise needs | Mid-market staffing (best Bullhorn alternative) | ANZ and UK-focused agencies; mid-market global | Agencies needing automation across their entire stack |
Crelate wins on Bullhorn migration experience. For firms specifically migrating from Bullhorn, Crelate has the most developed migration tooling and a data model closest to Bullhorn's structure — which reduces custom field mapping complexity. JobAdder wins for agencies with strong ANZ or UK presence or those looking for a more modern UI with solid API access.
When NOT to use US Tech Automations: If your primary goal is simply switching ATS platforms and your workflow automation needs are minimal, the native features of Crelate or JobAdder may be sufficient without adding an orchestration layer. The orchestration layer is most valuable for staffing firms that, post-migration, need to connect their new ATS to their sourcing tools, LinkedIn Recruiter, email sequences, and reporting dashboards — and those connections don't work out-of-the-box.
Common Migration Mistakes to Avoid
Migrating too much data. Importing 8 years of legacy candidate records, many of which have outdated contact information and no recent activity, pollutes your new database and slows search performance. Define a recency threshold (e.g., any candidate active within 3 years) for your primary import, and archive the rest.
Not testing the email history import. Email history is frequently the most complex data object to migrate because it requires matching email threads to specific candidate and contact records. Test this category with 20–30 records before the full import — if it fails, you will want to know early.
Skipping recruiter training before go-live. If your recruiters are entering data in the new ATS before they understand the workflow, they will create inconsistent records that are harder to fix than records that were simply not created.
Treating go-live as the finish line. The most time-consuming phase of a migration is the 30 days after go-live, when edge cases, missing records, and workflow gaps surface. Plan for 20+ hours of post-go-live support before the team is fully operational in the new platform.
Migration Timeline Benchmarks
The US staffing industry generates substantial annual revenue, according to Staffing Industry Analysts 2025 forecast — and every week of reduced recruiter productivity during a poorly planned migration has a direct revenue cost. Use this benchmark table to plan realistically.
| Phase | Small Firm (1–10 recruiters) | Mid-Market (10–50 recruiters) | Larger Firm (50–200 recruiters) |
|---|---|---|---|
| Pre-migration audit | 1 week | 2 weeks | 3–4 weeks |
| Data export and cleaning | 1 week | 2–3 weeks | 4–6 weeks |
| Platform configuration | 1 week | 2 weeks | 3–4 weeks |
| Test import and validation | 3 days | 1 week | 2 weeks |
| Parallel running period | 1 week | 2 weeks | 2–4 weeks |
| Full go-live and stabilization | 1–2 weeks | 2–3 weeks | 3–4 weeks |
| Total timeline | 6–8 weeks | 11–14 weeks | 17–24 weeks |
Post-Migration Automation Opportunities
The migration itself is the hard part. Once your team is running in the new ATS, the automation opportunities that Bullhorn's limitations may have blocked become available:
Candidate re-engagement sequences: Contacts who have been dormant for 90+ days enter an automated multi-touch re-engagement sequence
Job alert delivery: Candidates in your database receive automated alerts when new roles matching their profile are posted
Submission status tracking: Hiring managers receive automated updates when a submitted candidate progresses or is declined
Placement anniversary outreach: Placed candidates receive check-in outreach at 30, 90, and 365 days post-placement
These automation workflows connect your new ATS to your email, LinkedIn Recruiter, and reporting stack — turning the post-migration platform into an active sourcing engine rather than just a database.
For related reading on ATS evaluation before you decide to migrate, see best applicant tracking systems for 5 to 25-person teams. For LinkedIn recruiter workflow automation that works alongside your new ATS, see automate LinkedIn Recruiter project syncs to ATS.
See the pricing page to understand how US Tech Automations supports the migration and post-migration automation phases.
FAQs
How long does a Bullhorn migration typically take?
A realistic timeline for a firm with 10–50 recruiters is 11–14 weeks from kickoff to full go-live. The data export, cleaning, and validation phases are consistently underestimated. Vendors who quote 2–3 weeks are typically describing the import process only, not the full migration including pre-work and stabilization.
Will I lose my placement history when migrating from Bullhorn?
Placement history can be fully migrated if the export is done correctly. The key risks are broken links (placements not correctly tied to candidate and contact records) and missing fields if the target platform does not have a direct equivalent for a Bullhorn-specific field. Both risks are addressed in Steps 4–6 of this checklist.
What happens to Bullhorn email history during migration?
Email history is one of the most complex migration objects because Bullhorn's email log stores threads against candidate and contact records. Most ATS platforms can import this as activity notes, but the threading and searchability may not be identical. Test this category specifically before committing to the full import.
How do I choose between Crelate and JobAdder as a Bullhorn alternative?
Crelate is typically the stronger choice for US-based staffing firms migrating from Bullhorn — its data model is closest to Bullhorn's structure and its migration tooling is more developed. JobAdder is a stronger choice for agencies with international operations, particularly in ANZ and the UK, or for firms that prioritize a modern UI and strong mobile experience.
Can I negotiate my Bullhorn contract termination to reduce migration costs?
Bullhorn contracts typically have annual terms with specific cancellation notice periods. Review your contract for the notice window before committing to a migration timeline — if you notify Bullhorn late, you may owe an additional year of subscription fees. Factor this into your total migration cost calculation.
What should I do with legacy Bullhorn data I don't import?
Archive it. Export a complete Bullhorn data snapshot at the time of retirement, store it in a secure location (Google Drive or an encrypted backup), and retain it for a minimum of 3 years per standard business records retention. You may need historical placement data for tax records, worker's comp audits, or client disputes.
About the Author

Helping businesses leverage automation for operational efficiency.