HRMS migration
Field-level mapping, validation, and rollback between Workable and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Workable
Source
Bullhorn ATS & CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Workable and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Workable to Bullhorn is a structural migration from a recruiting-first ATS with bundled HRIS to a staffing-agency ATS built around a relational CRM model. Workable organizes hiring around Candidates, Jobs, Pipeline Stages, Interviews, and Offers; Bullhorn adds ClientCorporation, ClientContact, JobSubmission, and Placement as separate relational entities. The highest-risk mapping is Workable Offers to Bullhorn Placements: Workable tracks offer records at the candidate level before a hire decision, while Bullhorn creates a Placement only after a candidate is placed, carrying pay/billing structure. We separate candidate profile data from resume attachments (Workable requires separate API calls for each resume file) and map hiring team roles to Bullhorn user records with Owner, ClientContact, or CandidateOwner relationships. Bullhorn ATS Growth (Team Edition) has no API access, which blocks automated migration entirely for that tier; we flag this before scoping begins. Workflows, automated actions, and stage-based email triggers do not migrate; we deliver a written inventory for the customer admin to rebuild in Bullhorn Automation.
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 Workable 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.
Workable
Candidate
Bullhorn ATS & CRM
Candidate
1:1Workable Candidates map directly to Bullhorn Candidate records. We extract the full profile including name, email, phone, address, social URLs, communication history, and evaluation comments. Workable's tags and talent pool memberships map to Bullhorn Candidate tags. The Candidate record in Bullhorn is the parent for all submissions, so candidate migration must complete before JobSubmission records are loaded.
Workable
Job
Bullhorn ATS & CRM
JobOrder
1:1Workable Jobs map to Bullhorn JobOrder. Job title, description, department, employment type, and status migrate directly. Workable's job status (active, paused, closed) maps to Bullhorn's JobOrder status field. We flag whether the destination Bullhorn instance requires job reopen or job type reconfiguration per the customer's licensing tier.
Workable
Pipeline Stage
Bullhorn ATS & CRM
JobSubmission status
lossyWorkable pipeline stages are per-job and carry candidate counts and movement history. We map stage names and sequences to Bullhorn JobSubmission status values. ClonePartner's ATS migration checklist advises building a static mapping table (not dynamic) that the ETL pipeline references, forcing a sign-off on exact stage translations before any data moves. Stage probabilities from Workable migrate to JobSubmission custom fields if the Bullhorn instance has them enabled.
Workable
Interview
Bullhorn ATS & CRM
Event + Task
1:1Workable interviews (scheduling data, interviewer assignments, meeting type, date/time) map to Bullhorn Event records linked to the JobSubmission. Interviewer assignments become EventRelation records pointing to Bullhorn User records resolved by email match. Meeting type and location migrate to Bullhorn Event description and custom fields.
Workable
Scorecard
Bullhorn ATS & CRM
Candidate Note (structured)
1:1Workable structured scorecards (rating templates, individual scores, written feedback) migrate to Bullhorn Candidate Note records with a standardized format using a scorecard__c prefix in the note title for identification. Rating scales differ between platforms; we normalize numeric ratings to the destination scale and preserve the original Workable score as a text field for audit. Scorecard templates are not a portable format in Bullhorn and are documented separately for rebuild.
Workable
Offer
Bullhorn ATS & CRM
Placement
1:manyThis is the highest-risk mapping in the pair. Workable Offer records (compensation, start date, status: sent, accepted, declined, retracted) map to Bullhorn Placement records only if the candidate has a confirmed hire. Workable Offer status is preserved as a custom Placement field; candidates with non-confirmed offer status become Bullhorn JobSubmissions without a Placement. Bullhorn Placement also carries pay/billing structure (bill rate, pay rate, overtime rate) that has no direct Workable equivalent; we leave these fields for the customer admin to populate post-migration or configure in Bullhorn Time & Expense.
Workable
Hiring Team Member
Bullhorn ATS & CRM
User + ownership relationships
1:1Workable recruiters, hiring managers, and collaborators per job map to Bullhorn User records resolved by email. Role assignments (recruiter, hiring manager, coordinator) map to Bullhorn JobOrder owner, JobSubmission recruiter, or CandidateOwner relationships depending on the relationship type. Any Workable hiring team member without a matching Bullhorn User is flagged in the reconciliation queue for the customer admin to provision before record import.
Workable
Employee (HRIS)
Bullhorn ATS & CRM
User
1:1Workable HRIS employee records (name, department, job title, employment status) map to Bullhorn User records for employees who will also act as recruiters or internal staff. Bullhorn's User table does not have a direct HRIS equivalent; employee-only records that do not need Bullhorn access are documented in a separate employee inventory for the customer admin to manage outside Bullhorn or in Bullhorn Onboarding (formerly Able).
Workable
Time-Off Record
Bullhorn ATS & CRM
Not migrated
lossyWorkable time-off balances and requests (Standard plan and above) are an HRIS feature with no Bullhorn ATS equivalent. Bullhorn Onboarding handles onboarding workflow but not PTO accrual or balance tracking. We export time-off data as a CSV inventory during discovery and recommend the customer configure a separate HR or payroll system for this data post-migration. This is not a Bullhorn-supported object.
Workable
Talent Pool
Bullhorn ATS & CRM
Candidate Tag + Candidate Segment
lossyWorkable Talent Pools (customer-created candidate groupings) map to Bullhorn Candidate tags and, where applicable, Bullhorn Candidate Segments if the Bullhorn instance has the Segments feature enabled. Pool names migrate as tag values. The customer chooses during scoping whether to map pools to tags, segments, or both depending on how Bullhorn's segmentation is used for candidate sourcing.
Workable
Custom Field
Bullhorn ATS & CRM
Custom Field
1:1Workable custom candidate and job fields migrate to Bullhorn custom fields on the equivalent entity. Bullhorn supports custom fields on all entities (Candidate, JobOrder, ClientCorporation, ClientContact, Placement, Lead) with per-entity limits. We audit all Workable custom field names, types, and values during scoping and map them to Bullhorn field types (text, number, date, dropdown, multi-select, checkbox). Bullhorn field mapping settings (required, hidden, sort order) are configured in Admin > Field Mappings before migration.
Workable
Resume/Attachment
Bullhorn ATS & CRM
Candidate Attachment
1:1Resume files must be extracted separately from Workable candidate profile data. The CSV candidate-details export does not include resume files; we script bulk extraction using Workable's /candidates/{id}/resume endpoint. Bullhorn supports file attachments on Candidate records via the REST API or Bullhorn file upload. We re-associate extracted resume files by candidate email match during Bullhorn import. File naming conventions are preserved where Workable provides them.
| Workable | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Pipeline Stage | JobSubmission statuslossy | Fully supported | |
| Interview | Event + Task1:1 | Fully supported | |
| Scorecard | Candidate Note (structured)1:1 | Fully supported | |
| Offer | Placement1:many | Fully supported | |
| Hiring Team Member | User + ownership relationships1:1 | Fully supported | |
| Employee (HRIS) | User1:1 | Fully supported | |
| Time-Off Record | Not migratedlossy | Fully supported | |
| Talent Pool | Candidate Tag + Candidate Segmentlossy | Fully supported | |
| Custom Field | Custom Field1:1 | Fully supported | |
| Resume/Attachment | Candidate Attachment1:1 | 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.
Workable gotchas
API rate limit of 10 req/10 sec throttles bulk exports
Headcount-based pricing means billing scales with total employees
Resumes require separate extraction from candidate profiles
Annual billing and no refunds create migration timing risk
Supported ATS migration list is narrow and plan-dependent
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 billing audit
We audit the source Workable account for candidate volume, active job count, offer history, pipeline stage names, custom field inventory, HRIS scope (employee records, time-off data), and resume attachment count. We simultaneously confirm the destination Bullhorn tier (ATS Growth, Corporate, or Enterprise) and verify API access is enabled. We map the Workable billing cycle dates and flag overlap risk with Bullhorn onboarding. The discovery output is a written migration scope, a Workable-to-Bullhorn object mapping table, and a Bullhorn tier recommendation if the current tier lacks API access.
Stage mapping and static translation table
We build a static mapping table translating each Workable pipeline stage to a Bullhorn JobSubmission status. Per ClonePartner's ATS migration checklist, this mapping is signed off by the customer's recruiting lead before any ETL pipeline code is written. Stage probabilities migrate from Workable to Bullhorn custom fields; closed-lost and closed-won outcomes map to Placement status where applicable. We also define the offer-to-placement split rule here: Workable offers with confirmed status create Bullhorn Placements; non-confirmed offers create JobSubmissions only.
Resume extraction and file preparation
We script bulk resume extraction from Workable's /candidates/{id}/resume endpoint, pacing requests to comply with Workable's 10 req/10 sec limit. For a 5,000-candidate database this takes approximately 14 hours; we run this in parallel with schema setup in Bullhorn. Resume files are stored in a structured directory named by candidate email hash for reliable re-association during Bullhorn import. We flag any candidates with missing or inaccessible resume files in a separate report.
Bullhorn schema setup and sandbox validation
We provision Bullhorn custom fields (matching Workable custom field names and types), configure JobSubmission status values per the static stage mapping, and set up User provisioning for any Workable hiring team members without Bullhorn accounts. Bullhorn field mapping settings (required, hidden, sort order) are configured in Admin > Field Mappings before migration. We run a full migration into a Bullhorn Sandbox using representative production data volume. The customer's Bullhorn admin reconciles record counts and spot-checks 25-50 records against Workable before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Candidate profiles first (the parent object for all submissions), then JobOrder records, then JobSubmission records with status mapped via the static table, then Placement records for confirmed Workable offers, then interview events and scorecard notes, then hiring team assignments via User email match, then talent pool-to-tag mappings, then resume attachments re-associated to Bullhorn Candidate records. Each phase emits a row-count reconciliation report before the next phase begins. Workable's rate limit requires batch pacing on the export side; Bullhorn's 1,500 req/min import ceiling accommodates most candidate loads without throttling.
Cutover, delta sync, and automation rebuild handoff
We freeze Workable writes during cutover, run a final delta migration of any candidates, jobs, or submissions modified during the migration window, then enable Bullhorn as the system of record. We deliver the Workable automated action inventory document with Bullhorn Automation equivalents for the customer's admin to rebuild. Bullhorn Automation ($30-$50/user/month add-on) is the replacement for Workable email triggers and stage-based rules. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Workable workflows as Bullhorn Automation inside the migration scope; that is a separate engagement.
Platform deep dives
Workable
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 Workable 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
Workable: 10 requests per 10 seconds per org (returns 429 on excess).
Data volume sensitivity
Workable 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 Workable to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Workable 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 Workable
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.