HRMS migration

Migrate from Cornerstone Recruiting to Bullhorn ATS & CRM

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

Cornerstone Recruiting logo

Cornerstone Recruiting

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

54%

7 of 13

objects map 1:1 between Cornerstone Recruiting and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

3-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Cornerstone Recruiting to Bullhorn is a structural migration from an enterprise HCM ATS module to a purpose-built staffing agency ATS/CRM. Cornerstone organizes recruiting data around an OU hierarchy (Cost Centers, Divisions, Positions, Locations); Bullhorn uses a flat Candidate-to-Job-Order-to-Placement model with separate Candidate, Contact, Company, and Job Order objects. We resolve the OU-to-Location mapping during scoping, map Cornerstone Requisitions to Bullhorn Job Orders, preserve the full application workflow stage history, and load attachments with parent-record resolution against the migrated Candidate. Sensitive PII fields that Cornerstone's Bulk API explicitly excludes cannot migrate automatically; we identify them during discovery and flag them for manual re-entry or secure re-provisioning in Bullhorn. Bullhorn's workflows, automations, and Bullhorn Automation sequences do not migrate as code; we deliver a written inventory for the customer's admin to rebuild.

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

Cornerstone Recruiting logo

Cornerstone Recruiting

What's pushing teams away

  • Subscription costs escalate significantly as organizations add user licenses and modules, prompting mid-market companies to seek lower-cost alternatives.
  • The breadth of the HCM suite creates complexity for teams that only need an ATS without the full learning, performance, or workforce management stack.
  • Configuration and administration require dedicated resources, and organizations without dedicated HR IT staff report difficulty maintaining custom setups over time.
  • Integration with third-party payroll and HR systems outside the Cornerstone ecosystem can require custom connector development or workarounds.
  • Time-to-hire metrics remain a pain point for organizations seeking faster recruiting cycles, especially when the ATS workflow configuration adds steps to already complex hiring processes.

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

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

Cornerstone Recruiting

Job Requisition

maps to

Bullhorn ATS & CRM

Job Order

1:1
Fully supported

Cornerstone Requisition records map to Bullhorn Job Order. RequisitionId becomes JobOrder.id for reference tracking; RequisitionName maps to Title; PositionId maps to a custom text field positionId__c (Bullhorn Job Order has no native PositionId equivalent). DivisionId and LocationId from the OU hierarchy map to Bullhorn's Category and Branch or a custom Location lookup. We pre-create the mapping between source OU types and Bullhorn Locations during scoping because Cornerstone OUs are portal-defined and not discoverable via a schema API.

Cornerstone Recruiting

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Cornerstone Candidate records (Name, Email, Phone, Address, Ethnicity) map directly to Bullhorn Candidate. The Candidate object in Bullhorn is the primary person record and includes all contact information, employment history, and skills. We preserve the Cornerstone candidate ID in a custom field cornerstone_id__c for reconciliation and audit. Bullhorn Candidate does not have a native ethnicity field, so ethnicity data migrates to a custom text field if compliance reporting requires it.

Cornerstone Recruiting

JobApplicant

maps to

Bullhorn ATS & CRM

JobSubmission

1:1
Fully supported

Cornerstone JobApplicant (the intersection of Candidate and Requisition) maps to Bullhorn JobSubmission. ApplicationReceivedDateLocal maps to dateAdded; AverageRating maps to a custom rating field. CandidateType distinguishes between Employee, Contingent, and Candidate types and maps to the Bullhorn submission's employmentType field. PositionId links the submission to the migrated Job Order.

Cornerstone Recruiting

Application

maps to

Bullhorn ATS & CRM

Placement

lossy
Fully supported

Cornerstone Application records represent a candidate's full application state and workflow status within a requisition. We map Application status to Bullhorn's Placement record and its associated status workflow. Applications that result in a hire become Placements with status = Active; those that do not remain as JobSubmissions with status = Placed or a custom Closed status. The mapping requires confirming the customer's Bullhorn placement track (ListBed) configuration before migration.

Cornerstone Recruiting

Organizational Unit (OU)

maps to

Bullhorn ATS & CRM

Location / Company Division

lossy
Fully supported

Cornerstone OU types (Cost Center, Division, Legal Entity, Location, Position) have no direct Bullhorn equivalent. We map source Locations to Bullhorn Locations, source Divisions to a custom Division field on the Job Order or Company record, and source Legal Entities to Bullhorn Company records with a custom type field. This is a manual mapping exercise during scoping because OUs are portal-defined and vary by customer. We do not migrate OU hierarchies that have no functional equivalent in Bullhorn's staffing model.

Cornerstone Recruiting

Custom Fields (Requisition)

maps to

Bullhorn ATS & CRM

Custom Fields (Job Order)

lossy
Fully supported

Cornerstone Requisition custom fields (returned by GET Job Requisition Custom Field API) map to Bullhorn Job Order custom fields. We create the Bullhorn custom fields via the Field Mappings admin interface before migration, matching field types where possible. Picklist-type custom fields in Cornerstone map to Bullhorn picklists; text fields map to text fields. Bullhorn Field Mappings allows administrators to choose what fields display, where, and what values they contain, which we configure before loading data.

Cornerstone Recruiting

Custom Fields (Application)

maps to

Bullhorn ATS & CRM

Custom Fields (JobSubmission / Placement)

lossy
Fully supported

Cornerstone Application custom fields map to Bullhorn custom fields on JobSubmission or the related Placement record. The target object depends on when in the workflow the field is populated: pre-placement fields target JobSubmission; post-placement fields target Placement. We confirm the customer's Bullhorn placement track schema before migration and pre-create fields accordingly. Bullhorn's custom field creation via Field Mappings supports text, number, date, picklist, and Boolean types.

Cornerstone Recruiting

Attachment (Resume / Cover Letter)

maps to

Bullhorn ATS & CRM

Candidate Attachment

1:1
Fully supported

Cornerstone candidate attachments (resumes, cover letters, supporting documents) migrate to Bullhorn Candidate attachments. We extract file metadata and content via the Attachment API and re-associate them with migrated Bullhorn Candidate records using candidate ID matching. Bullhorn supports resume parsing into structured fields (skills, experience, education) as a post-migration step; we preserve the raw attachment as-is during migration to avoid data loss from parsing errors.

Cornerstone Recruiting

Application Workflow

maps to

Bullhorn ATS & CRM

JobSubmission Status / Placement Status

lossy
Fully supported

Cornerstone Application Workflow stages are portal-specific and define stage progression through the hiring process. We map each Cornerstone workflow stage to a Bullhorn JobSubmission status or a custom status value on the Placement record. Bullhorn's workflow automation (Bullhorn Automation) handles stage transitions post-migration; we do not migrate the workflow logic as code. The migration delivers a written stage mapping table documenting every Cornerstone stage and its Bullhorn equivalent.

Cornerstone Recruiting

Employee Record (post-hire)

maps to

Bullhorn ATS & CRM

Contact / Placement (Contractor)

1:many
Fully supported

Cornerstone creates an Employee record in Core HR upon hire, with employment status, compensation history, and manager assignment. Bullhorn does not have a native HR Core object; contractor and contingent worker records map to Bullhorn Contact (for client contacts) or Placement (for placed candidates). We split post-hire records based on the customer's intended use: employee-facing data stays in a written handoff document for the customer's HRIS; placed candidate data migrates as Placement records.

Cornerstone Recruiting

Owner / Hiring Manager

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

Cornerstone Requisition owners and hiring managers map to Bullhorn User records. We match by email address during migration. Any Cornerstone owner without a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision before record import resumes. Bullhorn's User object includes firstName, lastName, email, and status (active/inactive), which we map from the Cornerstone owner record.

Cornerstone Recruiting

Sensitive PII Fields

maps to

Bullhorn ATS & CRM

Manual re-entry required

1:1
Not supported

Cornerstone's Bulk API explicitly does not support loading data to secure custom fields and sensitive PII fields (SPII). We identify which custom fields are marked as sensitive in the Cornerstone schema during discovery and exclude them from bulk import operations. Post-migration, the customer must manually re-enter or securely re-provision these fields in Bullhorn. We deliver a written inventory of every excluded field with its label, data type, and sample values (for format reference only, with no actual PII content) so the customer's Bullhorn admin can rebuild them.

Cornerstone Recruiting

Bulk API Employee Load Data

maps to

Bullhorn ATS & CRM

Not applicable in Bullhorn

1:1
Fully supported

Cornerstone's Bulk API settings object with LoadPrimaryKey (0 = User ID, 1 = GUID) and default password behavior applies only to Cornerstone's Core HR Bulk API. Bullhorn uses a different authentication and user provisioning model and does not accept bulk user loads via a comparable mechanism. We handle owner matching via email resolution against Bullhorn's existing User table rather than bulk user creation.

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.

Cornerstone Recruiting logo

Cornerstone Recruiting gotchas

High

Sensitive PII fields are excluded from Bulk API loads

High

Portal-specific corpname drives all API endpoints

Medium

Throttling limit of 417 requests per minute applies across all Foundational APIs

Medium

LoadPrimaryKey setting determines employee identifier behavior

Low

New employees get default password or no password if backend setting is absent

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

  • OU-to-Location mapping is not automatable

    Cornerstone organizes job and candidate data through a portal-specific OU hierarchy (Cost Center, Division, Legal Entity, Location, Position) that has no direct Bullhorn equivalent. Bullhorn uses flat Location, Company, and Job Order objects without an equivalent OU tree. We extract the full OU list from Cornerstone's Bulk API schema endpoint, present a manual mapping table to the customer during scoping, and implement the agreed mapping before any data loads. Migrations that skip this step end up with Job Orders and Candidates that lack the organizational context the source data carried.

  • Sensitive PII fields are excluded from Cornerstone Bulk API loads

    Cornerstone's Bulk API documentation explicitly states it does not support loading data to secure custom fields and sensitive PII fields. We identify which custom fields are marked as sensitive in the schema and exclude them from bulk import operations. Post-migration, customers must manually re-enter or securely re-provision these fields in Bullhorn. We deliver a written inventory of every excluded field with its label, data type, and format specification so the customer's Bullhorn admin can rebuild it. We do not carry any actual PII content in the migration documentation.

  • Bullhorn custom fields require pre-creation via Field Mappings

    Bullhorn does not auto-create custom fields during data load; administrators must pre-create them via Admin > Field Mappings before any data using those fields can be imported. We extract Cornerstone's custom field definitions (GET Job Requisition Custom Field API), design the equivalent Bullhorn custom fields (matching type to type: text to text, picklist to picklist), and instruct the customer's Bullhorn admin to create them before migration begins. If custom fields are missing, the Bullhorn REST API returns a 400 error on load with no partial import; all records in the batch fail together.

  • Application Workflow stages are portal-specific with no standard equivalent

    Cornerstone Application Workflow stages are defined per portal and vary by organization. Bullhorn has JobSubmission statuses and Placement statuses but no native workflow stage transition model that mirrors Cornerstone's portal-specific stages. We map each Cornerstone workflow stage to a Bullhorn status value and document the mapping in a written stage table. Bullhorn Automation handles stage transitions post-migration but requires rebuild by the customer's admin. We do not migrate workflow logic as code.

  • Cornerstone corpname is required but not programmatically discoverable

    Every Cornerstone API call requires the customer's portal name (corpname) in the URL structure (https://{corpname}.csod.com). The Bulk API schema endpoint requires corpname, and there is no discovery API that returns it programmatically. We extract the corpname from the customer's provisioning details during scoping. If the customer changes their portal name after migration begins, every API endpoint in the extraction pipeline must be updated.

Migration approach

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

  1. Discovery and scoping

    We audit the Cornerstone portal for Requisition volume, Candidate count, JobApplicant records, Application Workflow configurations, OU hierarchy structure, and custom field definitions via the GET Job Requisition Custom Field API. We extract the corpname from provisioning details and confirm the LoadPrimaryKey setting. We audit the Bullhorn destination for existing User records (for owner matching), custom field definitions, placement track configuration, and any existing data that might create duplicates. The discovery output is a written migration scope with the OU-to-Location mapping table, custom field mapping table, and a Bullhorn custom field pre-creation checklist for the customer's admin.

  2. Bullhorn custom field and schema pre-creation

    Before any data migration begins, the customer's Bullhorn admin creates all required custom fields via Admin > Field Mappings. This includes custom fields on Job Order (for Requisition custom fields and position data), JobSubmission (for Application custom fields and workflow data), Candidate (for ethnicity and other source fields without Bullhorn native equivalents), and Placement (for post-hire data). Bullhorn returns a 400 error on load if a custom field referenced in the payload does not exist, with no partial success. We provide the exact field names, types, and labels from the Cornerstone schema so the admin creates matching fields.

  3. Cornerstone data extraction with throttling

    We extract data from Cornerstone via the Foundational APIs (REST) with request pacing to stay within the 417 req/min throttle across all Foundational API endpoints. For large candidate databases, we batch reads across multiple windows. We extract Requisitions first (as the parent of JobApplicants), then Candidates, then JobApplicants (linked to Requisition and Candidate by ID), then Application Workflow stages and custom field values. Sensitive PII fields are identified and excluded at extraction time. The extraction pipeline emits a record count report per object.

  4. Data transformation and OU resolution

    We transform extracted data into Bullhorn-ready payloads. OU references are resolved using the agreed mapping table: DivisionId maps to a custom Division field on Job Order; LocationId maps to Bullhorn Location or a custom location field; PositionId maps to a custom positionId field. Cornerstone Candidate records transform directly to Bullhorn Candidate. JobApplicants transform to JobSubmissions linked to the migrated Job Order and Candidate. Application Workflow stage values map to Bullhorn status values per the written stage table.

  5. Owner reconciliation and User matching

    We extract all Cornerstone owner and hiring manager IDs referenced on Requisitions and JobApplicants and match them by email address against Bullhorn's existing User table. Owners without a matching Bullhorn User go to a reconciliation queue. The customer's Bullhorn admin provisions any missing Users (active or inactive based on whether the original user is still with the organization). Migration cannot load Job Orders referencing owners that do not exist in Bullhorn.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Bullhorn Users (manual, validated), Job Orders (from Requisitions), Candidates (from Candidates), JobSubmissions (from JobApplicants linked to Job Order and Candidate), Placements (for post-hire records), and Attachments (linked to migrated Candidates). Each phase emits a row-count reconciliation report. Sensitive PII fields and custom fields marked as secure in Cornerstone are excluded from load; we deliver the written exclusion inventory for manual re-entry in Bullhorn.

  7. Cutover, validation, and workflow rebuild handoff

    We freeze Cornerstone 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 Application Workflow inventory document with stage-by-stage mapping to Bullhorn status values and Bullhorn Automation rebuild recommendations. Bullhorn Automation (formerly Herefish) handles workflow automations post-migration; we do not rebuild Cornerstone workflow logic as Bullhorn Automation. We support a one-week hypercare window where we resolve any record linkage or status mapping issues raised by the customer's team.

Platform deep dives

Context on both ends of the pair

Cornerstone Recruiting logo

Cornerstone Recruiting

Source

Strengths

  • Unified HCM platform spanning recruiting, onboarding, learning, performance, and workforce planning in a single vendor relationship.
  • Configurable OU hierarchy supporting complex organizational structures across divisions, legal entities, and geographies.
  • Global compliance features and multi-locale support for organizations operating in 180+ countries.
  • REST API with documented endpoints for Recruiting, Core/HR, and Bulk operations, enabling programmatic data extraction.
  • Integration marketplace connecting Cornerstone Recruiting with ADP, payroll providers, and productivity tools.

Weaknesses

  • Enterprise-only pricing and implementation complexity create barriers for mid-market organizations.
  • Bulk API does not support loading secure custom fields or sensitive PII, limiting full data portability.
  • Subscription model bundles features across modules, requiring organizations to pay for unused capabilities.
  • Configuration-heavy platform demands dedicated HR IT resources for ongoing administration and customization.
  • Third-party integrations outside the Cornerstone ecosystem may require custom connector development.
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 Cornerstone Recruiting 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

    Cornerstone Recruiting: 417 req/min, 25,000 req/hour, 600,000 req/day for Foundational APIs.

  • Data volume sensitivity

    A

    Cornerstone Recruiting exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 15,000 candidates and 2,000 requisitions with straightforward OU-to-Location mapping land between three and six weeks. Migrations with large application histories (over 100,000 JobApplicant records), complex multi-level OU hierarchies, custom fields on both Requisition and Application objects, or post-hire Employee records move to eight to fourteen weeks because of parent-record resolution complexity, custom field pre-creation scope, and workflow stage mapping validation. Bullhorn's own documentation notes 6-12 weeks for complex multi-division enterprises with back-office integrations.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Cornerstone Recruiting.
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