HRMS migration

Migrate from Greenhouse to Bullhorn ATS & CRM

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

Greenhouse logo

Greenhouse

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between Greenhouse and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Greenhouse to Bullhorn is a shift from an in-house structured-hiring ATS to a staffing-agency CRM-first ATS platform. Greenhouse organizes hiring around structured interview scorecards, job requisitions, and pipeline stages; Bullhorn organizes around Candidates, Clients, JobOrders, and Placements with a built-in CRM for candidate and client relationship tracking. The most significant schema difference is that Greenhouse's interview scorecards are first-class nested objects, while Bullhorn has no native scorecard entity — we migrate scorecard ratings and interviewer feedback into Bullhorn custom fields on the Candidate or JobSubmission record. We preserve every Candidate, Application, Job, Offer, and custom field value through Bullhorn's REST API with batch chunking, and we handle the multi-week parallel-run window that Greenhouse's documented historical migration process requires.

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

Greenhouse logo

Greenhouse

What's pushing teams away

  • Annual contract costs scale steeply with headcount, and add-ons like sourcing automation, texting, and advanced analytics require upgrading to Plus or Pro above Core.
  • Implementation takes 1–3 months to configure workflows, scorecards, integrations, and train hiring managers — a longer ramp than some newer ATS competitors.
  • Some agency users report that outreach and CRM-style candidate nurture features lag behind purpose-built recruiting CRMs, creating manual follow-up work.
  • Reporting requires manual interpretation in Core tier; AI-powered filters and Business Intelligence Connector are locked behind paid upgrades that mid-market teams find hard to justify.

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

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

Greenhouse

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Greenhouse Candidate records map to Bullhorn Candidate. We preserve all standard fields (firstName, lastName, email, phone, social URLs) and custom field values across Greenhouse value types (single_select, multi_select, currency, date, user reference). Phone number formatting is normalized to E.164 before insert. Tags migrate as Bullhorn Tags. Active candidate records require manual export from Greenhouse for bulk import if the customer is on Core tier; Plus and Pro customers can use the Greenhouse bulk import method guided by our exported CSV template.

Greenhouse

Application

maps to

Bullhorn ATS & CRM

JobSubmission

1:1
Fully supported

Greenhouse Application records (linking Candidate to Job) map to Bullhorn JobSubmission. We preserve application date, rejection or hire status, current stage, and all stage history timestamps. Rejection reasons migrate to a custom field on JobSubmission. The migration of interviewer feedback and notes requires a separate decision: either entered in the bulk import spreadsheet at import time or added manually post-import; Greenhouse's documentation states this is a customer-performed step.

Greenhouse

Job

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

Greenhouse Job records map to Bullhorn JobOrder. We preserve job title, department, office location, open/closed status, opening date, and job description. Job posting URLs migrate as reference links rather than republished postings. Bullhorn JobOrder has a different stage model from Greenhouse: Greenhouse stages are application-stage steps while Bullhorn stages track placement workflow. We map Greenhouse stages to Bullhorn JobOrder status values and document any unaligned stage names for the customer's Bullhorn admin to configure post-migration.

Greenhouse

Scorecard

maps to

Bullhorn ATS & CRM

Custom Fields (Candidate or JobSubmission)

lossy
Fully supported

Greenhouse scorecards are nested objects under Applications containing structured evaluator ratings and interview kit questions. Bullhorn has no native scorecard entity. We flatten each scorecard into named custom fields on the Candidate or JobSubmission record: one field per rating (e.g., technical_skills_rating, communication_rating) and one field for overall recommendation. We use Bullhorn's custom field API (customObject1s through customObject10s or custom fields on Candidate) based on the customer's Bullhorn edition. The interview kit structure (questions, rubric, scoring scale) is preserved as a JSON blob in a long-text custom field for admin reference. Scorecard migration requires Bullhorn Support to create any custom fields beyond standard Candidate fields.

Greenhouse

Offer

maps to

Bullhorn ATS & CRM

Custom Fields (JobSubmission)

lossy
Fully supported

Greenhouse Offers store compensation packages attached to an Application: start date, salary, equity, and custom offer fields. Bullhorn has no native offer entity for the ATS tier; offers are tracked through custom fields or, in Bullhorn Growth/Enterprise, through custom objects. We migrate start date, base salary, equity values, and custom offer fields into Bullhorn custom fields on JobSubmission. Bullhorn Support must create these custom fields before migration. Offer status (pending, accepted, declined, retracted) migrates as a picklist field.

Greenhouse

User / Hiring Team

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

Greenhouse Users (recruiters, hiring managers, admins) map to Bullhorn User records. We resolve owners by email match against the Bullhorn destination org. Users without a matching Bullhorn User go to a reconciliation queue for the customer's Bullhorn admin to provision. Role and permission mapping (Greenhouse permission levels to Bullhorn role-based security) is documented in the migration scope but not enforced programmatically.

Greenhouse

Custom Fields

maps to

Bullhorn ATS & CRM

Custom Fields / Custom Objects

lossy
Mapping required

Greenhouse custom fields across all value types (short_text, long_text, yes_no, single_select, multi_select, currency, number, date, url, user_reference) migrate to Bullhorn equivalent field types. Bullhorn editions limit custom objects: ATS Growth = 0, Bullhorn ATS = 2 custom objects (55 fields each), Growth/Enterprise = 10 custom objects (55 fields each). We validate the customer's Bullhorn edition during scoping and route custom field mapping accordingly. Fields beyond the custom object limit require the customer to upgrade their Bullhorn edition before migration.

Greenhouse

Office and Department

maps to

Bullhorn ATS & CRM

Business Sector / Category

lossy
Fully supported

Greenhouse's flat Office/Department structure (Core tier) maps to Bullhorn's Category or Business Sector taxonomy. Greenhouse's hierarchical tiered offices and departments (Plus/Pro) have no direct Bullhorn equivalent and require flattening into a single-level structure or a custom object hierarchy. We flag tiered structures during scoping and document the flattening strategy for the customer's Bullhorn admin to configure.

Greenhouse

Candidate Documents (Resumes, Attachments)

maps to

Bullhorn ATS & CRM

Attachment (Candidate)

1:1
Fully supported

Resume files, cover letters, and portfolio attachments on Greenhouse Candidates and Applications migrate as Bullhorn Attachment records linked to the corresponding Candidate. We handle file type detection, preserve file names, and map binary blobs to Bullhorn's attachment storage. Bullhorn's file size limits apply (typically 25 MB per attachment); files exceeding the limit are flagged for the customer's admin to handle manually.

Greenhouse

Tag

maps to

Bullhorn ATS & CRM

Tag

1:1
Fully supported

Tags on Greenhouse Candidates and Applications migrate as Bullhorn Tags. Greenhouse allows unlimited tags; Bullhorn supports tags on Candidate, ClientContact, ClientCorporation, JobOrder, Opportunity, and Placement. We preserve tag labels as-is and map them to Bullhorn's tag entity. Tagset groupings from Greenhouse are not natively supported in Bullhorn and are flattened into the candidate record as individual tags.

Greenhouse

Candidate Source Tracking

maps to

Bullhorn ATS & CRM

Source Custom Field (Candidate)

1:1
Fully supported

Greenhouse tracks candidate source (referral, job board, direct apply) as a field on Application. We preserve source attribution as a custom field on Bullhorn Candidate. Sourcing campaign UTM data stored in Greenhouse custom fields migrates alongside as text fields. Source history (multiple sources per candidate over time) is preserved as a comma-separated or JSON-formatted string in the source field if Bullhorn's data model does not support multi-value source tracking.

Greenhouse

Pipeline Stage

maps to

Bullhorn ATS & CRM

JobOrder Status / Stage

lossy
Fully supported

Greenhouse pipeline stages define the hiring workflow for each Job. Bullhorn JobOrder has a stage/status model but with different semantics. We map Greenhouse stage names to Bullhorn JobOrder status values and document any stage-specific scorecards or requirements for the Bullhorn admin to recreate in Bullhorn's workflow configuration. Custom stage names and stage-dependent scorecards are preserved as metadata in our migration scope document.

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.

Greenhouse logo

Greenhouse gotchas

High

Bulk candidate import requires Plus or Pro tier

High

Active candidate migration is entirely manual

Medium

Historical migration takes 4–6 weeks for Greenhouse to process

Medium

Developer sandbox and audit log are Pro-only

Medium

CRM event limits in Core tier constrain activity history

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

  • Bullhorn custom fields require Bullhorn Support to create

    Bullhorn's standard REST API exposes customObject1s through customObject10s on Candidate, ClientContact, ClientCorporation, JobOrder, Opportunity, and Placement, but these objects must be initially set up by Bullhorn Support using a Custom Object Setup Spreadsheet. Unlike Greenhouse's self-service custom field creation (available from Core tier), Bullhorn requires a support ticket and administrative setup before any migration can write to custom fields. We coordinate with the customer's Bullhorn admin to submit the custom object setup request early in the migration timeline, as Bullhorn Support turnaround can add 5-10 business days to the project schedule.

  • Greenhouse's 4-6 week historical data migration runs concurrently

    Greenhouse's documented historical data migration process takes 4-6 weeks from data handoff to completion, during which the customer continues using their old ATS for new candidates while Greenhouse processes the historical records. For the Greenhouse-to-Bullhorn migration, this means the customer may be running Bullhorn (for new hires) alongside Greenhouse (for historical data processing) during that window. We coordinate the data export timing with this window to avoid gaps. Any candidate records created during the migration window must be captured separately as part of the active candidate migration step, which Greenhouse's documentation states is a manual customer-performed process.

  • Scorecards have no native Bullhorn equivalent

    Greenhouse interview scorecards are structured evaluator feedback records with questions, ratings, and recommendations stored as nested objects under Applications. Bullhorn has no scorecard entity; scorecard data must be flattened into custom fields on Candidate or JobSubmission. This transformation requires Bullhorn Support to pre-create the custom fields (which are gated by Bullhorn edition: 0 on ATS Growth, 2 on Bullhorn ATS, 10 on Growth/Enterprise), and the flattened structure loses some Greenhouse-native context such as per-interviewer breakdown versus aggregated scores. We document the scorecard structure in our migration scope and advise customers on the best flattening strategy based on their evaluation rubric.

  • Bullhorn edition limits constrain custom object availability

    Bullhorn's edition-based custom object limits directly affect migration scope. ATS Growth tier supports zero custom objects, meaning scorecard ratings, offer details, and any custom Greenhouse fields must either be discarded, mapped to standard Bullhorn fields where available, or the customer must upgrade to Bullhorn ATS (2 custom objects), Growth, or Enterprise (10 custom objects each with 55 fields per object) before migration. We validate the customer's Bullhorn edition at scoping and flag this as a migration-blocking constraint if the edition does not support the customer's required custom field count.

  • Greenhouse Plus/Pro bulk import restriction affects active candidate migration

    Greenhouse's bulk candidate import feature — the guided CSV-based import method — is gated to Plus and Pro subscription tiers. Core customers must perform active candidate migration manually, one record at a time, which is impractical for organizations with hundreds or thousands of in-flight candidates. We validate the customer's Greenhouse tier during scoping and, for Core customers, recommend an alternative approach: we export all active candidates and their associated application history in a structured CSV format, and the customer uses Greenhouse's bulk import spreadsheet (which they can access manually even on Core) with our export as the source. This requires customer action and is documented in our migration scope as an out-of-scope manual step.

Migration approach

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

  1. Discovery and edition validation

    We audit the source Greenhouse portal across tier (Core/Plus/Pro), active job count, candidate volume, application history depth, custom field count and value types, scorecard and interview kit configurations, office/department hierarchy, and offer field structure. We pair this with Bullhorn edition validation: confirming the customer's Bullhorn tier, reviewing existing custom object configuration (if any), and identifying which custom objects Bullhorn Support must create before migration. The discovery output is a written migration scope document with object counts, custom field inventory, and Bullhorn edition gap analysis.

  2. Scorecard and custom field schema design

    We design the destination schema in Bullhorn for all custom fields that cannot map to standard Bullhorn entities. This includes identifying the correct Bullhorn entity for each Greenhouse scorecard rating field (Candidate vs JobSubmission), mapping Greenhouse custom field value types to Bullhorn field types (single_select to picklist, multi_select to multi-select picklist, currency to currency field), and submitting the Bullhorn Custom Object Setup Spreadsheet to Bullhorn Support for any custom object creation. Bullhorn Support turnaround is typically 5-10 business days and must complete before any migration data writes to custom fields.

  3. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn sandbox environment using production-like data volume. The customer's Bullhorn admin reconciles record counts (Candidates in, Applications in, Jobs in, Scorecards in), spot-checks 25-50 random candidate records against Greenhouse source, and validates scorecard field population in Bullhorn. Any custom field mapping corrections, stage mapping issues, or attachment failures are resolved in sandbox before production migration begins. Scorecard transformation is validated here by comparing Greenhouse scorecard ratings against Bullhorn custom field values.

  4. Owner and user reconciliation

    We extract every distinct Greenhouse User (recruiter, hiring manager) referenced on Candidate, Application, Job, and Offer records and match by email against Bullhorn User records. Users without a matching Bullhorn User are held in a reconciliation queue for the customer's Bullhorn admin to provision. Bullhorn role-based security is documented for each mapped user but is not enforced programmatically during migration; the customer's admin configures Bullhorn permissions post-migration.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Bullhorn Users (validated, not created by migration), JobOrders (from Greenhouse Jobs), Candidates (with tags, custom fields, and source attribution), JobSubmissions (linked to Candidate and JobOrder with stage history), custom field data (scorecards, offers) on Candidate or JobSubmission, attachments (resumes, cover letters), and custom objects (after Bullhorn Support has confirmed setup). Each phase emits a row-count reconciliation report before the next phase begins. The Greenhouse historical migration runs concurrently; we coordinate the cutover date to capture any records created during the 4-6 week window.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Greenhouse writes at cutover and run a final delta migration of any Greenhouse records created or modified during the migration window, including any active candidate records the customer imported via bulk import. We enable Bullhorn as the system of record and deliver the scorecard transformation documentation, workflow inventory, and automation rebuild guide to the customer's Bullhorn admin. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Greenhouse interview kits, scorecard templates, or automations as Bullhorn configurations; those are documented for the customer's admin to rebuild.

Platform deep dives

Context on both ends of the pair

Greenhouse logo

Greenhouse

Source

Strengths

  • Structured hiring workflows built into the platform enforce consistent evaluation and reduce ad-hoc process variation across teams.
  • Clean, well-documented Harvest API v3 with OAuth 2.0 and published rate limiting policy supports reliable integration and export work.
  • Business Intelligence Connector delivers nightly ETL of candidate, application, job, and process data for reporting teams on Plus and Pro.
  • User-friendly candidate profile UI keeps all candidate data — resume, scorecards, activity log, offers — in a single scrollable view.
  • Configurable interview kits and scorecards let teams embed their evaluation rubric directly into the platform.

Weaknesses

  • Bulk candidate import is gated behind Plus and Pro tiers, meaning Core customers must perform manual candidate migration work post-go-live.
  • Historical data migration takes 4–6 weeks to complete, requiring customers to run two systems in parallel during that window.
  • Sourcing automation, texting, and advanced analytics are add-ons above Core that significantly increase the total cost of ownership.
  • Tiered offices and departments, audit logs, and developer sandbox are Pro-only, making those capabilities inaccessible to mid-market teams on Core or Plus.
  • Implementation timelines of 1–3 months delay time-to-value, particularly for organizations without dedicated HRIS integration resources.
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 Greenhouse 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

    Greenhouse: Not publicly documented with specific numbers; rate limits are applied separately for custom integrations and partner integrations with separate policies for each.

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between four and six weeks for accounts under 10,000 Candidates, 500 Jobs, and no complex custom object requirements. Migrations with complex scorecard transformations, large application histories (over 50,000 Application records), multi-office Greenhouse structures requiring department remapping, or Bullhorn Growth/Enterprise tier with custom objects move to ten to fourteen weeks. The Greenhouse historical data migration window (4-6 weeks per Greenhouse's documentation) runs concurrently and extends the effective parallel-run period, so customers should plan for ongoing dual-system usage during that window.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Greenhouse.
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