HRMS migration
Field-level mapping, validation, and rollback between Ashby and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Ashby
Source
Bullhorn ATS & CRM
Destination
Compatibility
10 of 14
objects map 1:1 between Ashby and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Ashby and Bullhorn serve different recruiting markets—Ashby targets in-house corporate talent acquisition teams, while Bullhorn is purpose-built for staffing and recruitment agencies with ATS, CRM, and integrated back-office (timesheets, invoicing, onboarding). Moving from Ashby to Bullhorn is an agency-market pivot, not a lateral platform switch, which means the schema mapping must account for client relationships, VMS connectors, and placement records that have no Ashby equivalent. We migrate Candidates, Applications, Jobs, Openings, and custom field data through Bullhorn's REST API, preserving application stage history and interview plan structures as configuration notes for Bullhorn setup. Bullhorn's 55-field Custom Object limit and Admin-accessible Field Mappings tool govern how Ashby custom fields land in the destination. Workflows, Sequences, automations, and interview plan triggers do not migrate as code; we deliver a written inventory for Bullhorn Automation rebuild. Report definitions export as CSV from Ashby; Bullhorn configurable reports and performance dashboards require rebuild post-migration.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Ashby 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.
Ashby
Candidate
Bullhorn ATS & CRM
Candidate
1:1Ashby Candidate records map directly to Bullhorn Candidate. We preserve name, contact info, employment history, skills, source, and status. Ashby custom fields on Candidates map to Bullhorn Custom Object fields or native Candidate fields via Field Mappings (configured in Bullhorn Admin > Field Mappings). Bullhorn's Candidate entity supports up to 55 custom fields if a Custom Object is provisioned; we audit Ashby custom field count during scoping to determine whether native fields suffice or a Custom Object is required.
Ashby
Application
Bullhorn ATS & CRM
JobSubmission
1:1Ashby Applications (candidates linked to specific jobs) map to Bullhorn JobSubmission records. We preserve submission date, current stage, stage transition history, rejection reason, and all stage timestamps. Bullhorn JobSubmission tracks the candidate's journey through the job order pipeline and supports status flags (active, rejected, placed). Stage names from Ashby map to Bullhorn JobSubmission status values via a configurable mapping table.
Ashby
Job
Bullhorn ATS & CRM
JobOrder
1:1Ashby Job records map to Bullhorn JobOrder. We preserve title, description, department, team, location, employment type, status (open/closed/draft), and job board distribution history. Ashby's multi-opening structure (one Job with multiple Opening slots) maps to Bullhorn's JobOrder with the opening count preserved in a custom field. Bullhorn JobOrder includes client-facing fields (Client Corporation, Client Contact, Client Job ID) that Ashby does not have; these are populated where the Ashby Job has an associated client organization or left blank for in-house-position-only migrations.
Ashby
Opening
Bullhorn ATS & CRM
JobOrder (headcount slot)
lossyAshby Openings (individual headcount slots within a Job) map to Bullhorn JobOrder headcount slots. Multi-opening positions require individual Opening-to-JobOrder mapping to ensure that each slot receives the correct candidate pipeline. We preserve opening status (filled, open, cancelled) and link each Opening to its parent Job in Ashby, which becomes a single Bullhorn JobOrder with multiple submissions tracked via JobSubmission.
Ashby
Offer
Bullhorn ATS & CRM
Placement (partial)
lossyAshby Offers (compensation details, start dates, e-signature status, offer history) do not have a direct Bullhorn equivalent because Bullhorn's placement lifecycle begins at the placed candidate, not the offer stage. We migrate Offer data to a Bullhorn Custom Object (OfferHistory__c) with fields for compensation, start date, e-signature status, and offer-to-placement transition. Bullhorn Placements capture the placed record and ongoing assignment but not pre-placement offer details; we close that gap with the custom object.
Ashby
User
Bullhorn ATS & CRM
User
1:1Ashby Users (recruiters, hiring managers, admins) map to Bullhorn User records. Role assignments from Ashby map to Bullhorn permission structures (Admin, Standard). We match by email address. Bullhorn's user licensing model differs from Ashby's seat model; we document the user's Ashby role and tier so the customer's Bullhorn admin can assign the appropriate Bullhorn license (Full, Limited Recruiter, Limited Sales) during provisioning.
Ashby
Interview Plan
Bullhorn ATS & CRM
Interview Plan (configuration notes only)
1:1Ashby Interview Plans export with stage structures, stage names, and activity definitions. Automated activity triggers tied to stage entry (sending booking links, assessments, questionnaires) are tier-gated at Ashby Plus and Enterprise and do not migrate as functional rules. We deliver a written Interview Plan inventory with each stage, its associated activities, and the automation trigger (if any) documented for Bullhorn admin to rebuild in Bullhorn Automation or Bullhorn's scheduling configuration.
Ashby
Sequence
Bullhorn ATS & CRM
Bullhorn Automation (configuration notes only)
1:1Ashby email Sequences (templates, stage definitions, cadence rules) export as templates and configuration notes. Live-running sequences require scoping to determine whether to migrate as templates or close them before migration. Bullhorn Automation (formerly Herefish) handles outbound cadence and candidate engagement separately from Bullhorn ATS/CRM. We do not migrate sequences as functional automations; we deliver a sequence inventory document with step definitions, timing, and action types for Bullhorn Automation rebuild.
Ashby
Activity
Bullhorn ATS & CRM
Note, Task, or EmailMessage
1:1Ashby Activities (emails, notes, calls, scorecards, meetings) map to Bullhorn equivalents. Emails migrate as Bullhorn Note records linked to the Candidate and JobSubmission; calls migrate as Note records with call-type classification; scorecards migrate as Note records with structured fields (score, criteria, feedback). Bullhorn's activity model differs from Ashby's unified activity API; we use Bullhorn's REST API to write activities as Note records with activity type, date, author, and content preserved.
Ashby
Custom Field
Bullhorn ATS & CRM
Custom Object Field or Native Field
lossyAshby custom fields on Candidates, Applications, and Jobs enumerate via customField.list. Bullhorn supports custom fields via Custom Objects (55 fields per object on Front Office Growth/Enterprise; 2 on ATS Growth). We audit the Ashby custom field inventory during scoping, group fields by entity, and determine whether native Bullhorn fields, Custom Object fields, or a combination is required. Bullhorn Field Mappings (Admin > Field Mappings) controls display behavior for native fields. Custom Objects require Bullhorn Support ticket and the Custom Object Setup Spreadsheet.
Ashby
Department
Bullhorn ATS & CRM
Department
1:1Ashby Department records map to Bullhorn Department. Department hierarchy and department-level permissions are preserved in the migration. Bullhorn's department structure supports reporting and security group assignment at the department level.
Ashby
Team
Bullhorn ATS & CRM
Team
1:1Ashby Team records within departments map to Bullhorn Team. Team assignments on jobs and users are preserved. Bullhorn Teams manage recruiter workload distribution and can be assigned to JobOrders for routing.
Ashby
Assessment
Bullhorn ATS & CRM
Note (linked to JobSubmission)
1:1Ashby Assessments from integrations like HackerRank and CoderPad link to Ashby but live in third-party systems. We export assessment results attached to Applications and map the association as a Note on the Bullhorn JobSubmission, with the assessment type, score, and external link preserved. The assessment tool itself requires reconnection as a new integration in Bullhorn.
Ashby
Report
Bullhorn ATS & CRM
Bullhorn Reports (rebuild required)
lossyAshby Report definitions export as CSV via the report endpoint, including funnel analytics, pipeline metrics, and time-to-hire data. Bullhorn configurable reports and performance dashboards require rebuild post-migration. We export all available report data as CSV and deliver a report inventory with the Ashby report name, metric definition, and recommended Bullhorn report equivalent (BH Analytics, configurable reports, or third-party BI tool). Dashboard layouts do not export via API from Ashby and are documented as a manual rebuild checklist.
| Ashby | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Opening | JobOrder (headcount slot)lossy | Fully supported | |
| Offer | Placement (partial)lossy | Fully supported | |
| User | User1:1 | Fully supported | |
| Interview Plan | Interview Plan (configuration notes only)1:1 | Fully supported | |
| Sequence | Bullhorn Automation (configuration notes only)1:1 | Fully supported | |
| Activity | Note, Task, or EmailMessage1:1 | Fully supported | |
| Custom Field | Custom Object Field or Native Fieldlossy | Fully supported | |
| Department | Department1:1 | Fully supported | |
| Team | Team1:1 | Fully supported | |
| Assessment | Note (linked to JobSubmission)1:1 | Fully supported | |
| Report | Bullhorn Reports (rebuild required)lossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Ashby gotchas
Report API rate limits throttle large-scale migrations
File-based migrations omit candidate lifecycle history
Elevated seat pricing not visible at initial pricing discussion
Automation triggers are tier-gated and may not migrate
Dashboard layouts do not export via API
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
Discovery and edition scoping
We audit the Ashby environment across tier (Foundations/Plus/Enterprise), candidate and application volume, custom field inventory, active interview plans, active sequences, automation rules, and report definitions. We pair this with a Bullhorn edition assessment: ATS Growth (minimal), Front Office (standard agency), or Front Office + AI (with Bullhorn Automation). We also determine whether the migration is a pure data move or an agency-market pivot requiring Bullhorn Client Corporation structure, which governs the CRM schema design from day one.
Schema design and custom object planning
We design the Bullhorn destination schema based on the migration type. For in-house-to-agency pivots, we define Client Corporation mapping from Ashby organizations. We provision Bullhorn Custom Objects (via Support ticket and the Custom Object Setup Spreadsheet) for any Ashby custom fields exceeding native field capacity. We configure Field Mappings (Admin > Field Mappings) for native field display behavior. All schema work deploys into a Bullhorn sandbox first for validation before production migration begins.
Sandbox migration and reconciliation
We run a full migration into Bullhorn sandbox using production-like data volume. The customer's Bullhorn admin reconciles record counts (Candidates in, JobSubmissions in, JobOrders in, Activities in), spot-checks 25-50 random records against Ashby source, and signs off the schema and mapping before production migration begins. Any mapping corrections—including Bullhorn Field Mapping adjustments, Custom Object field assignments, and Client Corporation versus Company routing decisions—happen in sandbox.
Owner reconciliation and user provisioning
We extract every distinct Ashby user referenced on Candidate, Application, Job, and Activity records and match by email against Bullhorn's User table. Any Ashby user without a matching Bullhorn User goes to a reconciliation queue. The customer's Bullhorn admin provisions missing users and assigns appropriate Bullhorn license types. Migration cannot proceed past this step because UserId references are required on Bullhorn Candidate and JobOrder records.
Production migration in dependency order
We run production migration in record-dependency order: Bullhorn Users (provisioned, validated), Client Corporations or Companies (from Ashby organizations, based on agency-market decision), JobOrders (with Client Corporation linkage where applicable), Candidates (with UserId resolved), JobSubmissions (with CandidateId and JobOrderId resolved), Activities (as Note records via Bullhorn REST API), Offer history (as Custom Object records), and finally custom field data (mapped to Custom Object fields). Each phase emits a row-count reconciliation report before the next phase begins. Ashby's report API rate limits govern pacing on the export side.
Cutover, validation, and rebuild handoff
We freeze Ashby 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 Interview Plan inventory, Sequence inventory, and Automation inventory documents to the customer's Bullhorn admin team. We support a one-week hypercare window where we resolve reconciliation issues. We do not rebuild Ashby automations as Bullhorn Automation workflows inside the migration scope; that is a separate engagement or an internal Bullhorn admin task.
Platform deep dives
Ashby
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Ashby and Bullhorn ATS & CRM.
Object compatibility
1 of 7 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Ashby: 15 requests per minute per org; max 3 concurrent report operations (shared between report.generate and report.synchronous).
Data volume sensitivity
Ashby doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Ashby to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Ashby to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Ashby
Other ways to arrive at Bullhorn ATS & CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.