HRMS migration
Field-level mapping, validation, and rollback between Talent Pool Builder and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Talent Pool Builder
Source
Bullhorn ATS & CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Talent Pool Builder and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Migrating from Talent Pool Builder to Bullhorn is a manual-coordination-first project because Talent Pool Builder does not publish a public bulk export API. We begin every engagement by working with the customer's Talent Pool Builder account team to request a full data export, which typically takes three to five business days to produce. Once we receive the export, we validate record counts and completeness before beginning field-level mapping. Talent Pool Builder organizes hiring around Jobs, Candidates, Requisitions, and Talent Pools; Bullhorn uses Job Order, Candidate, Client Corporation, and Opportunity. We map the core object model directly, but custom fields, communication history, and platform-specific compliance flags require configuration-level mapping in Bullhorn. We do not migrate workflows, automations, or job board integrations as code; we deliver a written inventory of these for the customer's admin team to rebuild in Bullhorn's automation framework 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 Talent Pool Builder 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.
Talent Pool Builder
Candidate
Bullhorn ATS & CRM
Candidate
1:1Talent Pool Builder candidate records map directly to Bullhorn Candidate entities via the Candidate REST endpoint. We map firstName, lastName, email, phone, and address fields to Bullhorn's Candidate.name, Candidate.email, Candidate.phone, and Candidate.address fields. Application status, source attribution, and stage history map to Bullhorn custom fields or candidate properties. Resume files migrate as Bullhorn CandidateAttachments or ContentDocument records attached to the Candidate. Any Talent Pool Builder custom screening fields map to Bullhorn custom fields (created via Bullhorn's Admin Field Mappings interface before migration). We validate email uniqueness as the dedupe key during insert.
Talent Pool Builder
Job
Bullhorn ATS & CRM
Job Order
1:1Talent Pool Builder job postings map to Bullhorn Job Order. The job title, department, location, and posting date migrate to JobOrder.title, JobOrder.department, JobOrder.address, and JobOrder.dateCreated. Talent Pool Builder pipeline stage configuration maps to Bullhorn's JobOrder.status (Available, Pending, Closed) and a Bullhorn custom field pipeline_stage__c preserving the original stage name. Bullhorn's Job Order is the parent entity for submissions and placements, so it must be inserted before any Application or Opportunity records.
Talent Pool Builder
Requisition
Bullhorn ATS & CRM
Job Order + Custom Object
lossyTalent Pool Builder requisitions track hiring manager requests and approval workflows before a job is opened. Bullhorn does not have a native requisition object in all editions; we map requisitions to Bullhorn Job Order records with a custom field requisition_status__c set to Pending while the approval workflow is active. If the customer uses Bullhorn's approval workflow features, we configure the requisition as a pre-opening Job Order linked to the hiring manager via a Bullhorn custom lookup field. Requisition approval routing does not migrate as automation; we document the existing routing logic for the customer's Bullhorn admin to configure post-migration.
Talent Pool Builder
Talent Pool
Bullhorn ATS & CRM
Candidate List + Tags
lossyTalent Pool Builder talent pools are segmented candidate lists for long-term engagement. Bullhorn does not have a native talent pool object but supports equivalent segmentation through Candidate Tags and Candidate Lists (Bullhorn List entity). We export pool membership and pool-specific tags, then create Bullhorn Tags (applied to Candidate records) and Bullhorn Candidate Lists for pools that require bulk outreach capability. Pool-specific custom fields migrate to Bullhorn custom fields on the Candidate record.
Talent Pool Builder
Application
Bullhorn ATS & CRM
Candidate + Job Order (submission)
1:manyTalent Pool Builder application records link a Candidate to a Job with a timestamp and stage. Bullhorn models this relationship through a Candidate record linked to a Job Order via the CandidateSubmission (or Submission) entity in Bullhorn ATS/Staffing. We map the application timeline, including stage transitions and recruiter notes, to the Candidate record's custom history fields and to notes attached to the submission. The application timestamp becomes the CandidateSubmission.dateSubmitted.
Talent Pool Builder
Interview Record
Bullhorn ATS & CRM
Candidate + Note
1:1Interview scheduling data and scores from Talent Pool Builder map to Bullhorn Candidate records with a Bullhorn custom field interview_score__c and interview_date__c. Free-text interview notes migrate as Bullhorn Note records attached to the Candidate entity via ContentDocumentLink. Bullhorn Interview Scheduling and Bullhorn's built-in interview scorecards can be configured post-migration using the interview data we preserve as a reference. We note any source field that exceeds Bullhorn's 32,768-character Note body limit for manual splitting.
Talent Pool Builder
Offer
Bullhorn ATS & CRM
Opportunity
1:1Talent Pool Builder offer records include template placeholders, offer status, and digital signature state. Bullhorn does not have a native offer object but models the offer-to-placement stage through Opportunity with custom fields offer_status__c, offer_amount__c, and offer_template__c. We export the offer data and flag the digital signature status as a Bullhorn custom field signature_status__c for post-migration follow-up. Actual placement records in Bullhorn are modeled as Placement (a staffing-specific entity) that links the Candidate, Job Order, and Client Corporation; we preserve the offer-to-acceptance flow as a state transition documented in the Opportunity custom fields.
Talent Pool Builder
Custom Candidate Properties
Bullhorn ATS & CRM
Custom Fields + Custom Objects
lossyTalent Pool Builder accounts frequently create custom fields for screening answers, rating scores, source tracking, and compliance data. These fields vary significantly by account. We request a full Talent Pool Builder field inventory during scoping, then create equivalent Bullhorn custom fields via the Admin Field Mappings interface (Admin > Field Mappings in Bullhorn) or Bullhorn Custom Objects for complex multi-field structures. Bullhorn's Custom Object architecture allows up to 10 searchable custom objects with 55 fields each on Growth/Enterprise tiers, or 2 custom objects on Bullhorn ATS. We configure the schema before migration and map data type mismatches (e.g., Talent Pool Builder free-text to Bullhorn drop-down) to the closest Bullhorn field type, flagging any data that does not fit for manual remediation.
Talent Pool Builder
Communication History
Bullhorn ATS & CRM
Note
1:1Talent Pool Builder email, SMS, and call logs attached to candidate records migrate to Bullhorn Note records linked to the Candidate entity. Bullhorn supports Note with a body (up to 32,768 characters) for communication content. Bullhorn's communication tracking features (email sync, SMS integration) can be activated post-migration to capture new communications going forward. We flag communication thread continuity gaps in the scoping report because the chronological thread context may not be preserved in a flat-note export from Talent Pool Builder. Any thread gaps are documented for the customer's hiring managers who rely on conversation history.
Talent Pool Builder
Attachments
Bullhorn ATS & CRM
ContentDocument + CandidateAttachment
1:1Resume files and uploaded documents from Talent Pool Builder migrate as Bullhorn CandidateAttachment records (the Bullhorn-native resume attachment) or ContentDocument records via Bullhorn's Salesforce-backed document management. File naming conventions vary by Talent Pool Builder account and are preserved as-is. We document the original file name and upload date on a Bullhorn custom field for reference. Bullhorn's resume parsing activates on import if the Bullhorn Resume Parsing integration is enabled on the destination account.
Talent Pool Builder
Union / Seniority Flags
Bullhorn ATS & CRM
Custom Fields (post-migration activation)
lossyTalent Pool Builder's union compliance flags and seniority-based ranking features are platform-specific and do not map to standard Bullhorn objects. We export the raw seniority_date and union_membership fields as Bullhorn custom date and checkbox fields on the Candidate record. Bullhorn does not activate union compliance or seniority ranking logic natively; the customer's IT or legal team configures any required compliance automation in Bullhorn as a post-migration step. We document the original Talent Pool Builder flag values and their meanings to support the compliance configuration.
Talent Pool Builder
Owner
Bullhorn ATS & CRM
User
1:1Talent Pool Builder recruiter owners attached to candidate, job, and application records map to Bullhorn User entities. We resolve owners by email match against the Bullhorn destination User table. Any Talent Pool Builder owner without a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision before record import resumes. Migration cannot proceed past this step because Bullhorn User references are required on Job Order and Candidate records.
| Talent Pool Builder | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Job | Job Order1:1 | Fully supported | |
| Requisition | Job Order + Custom Objectlossy | Fully supported | |
| Talent Pool | Candidate List + Tagslossy | Fully supported | |
| Application | Candidate + Job Order (submission)1:many | Fully supported | |
| Interview Record | Candidate + Note1:1 | Fully supported | |
| Offer | Opportunity1:1 | Fully supported | |
| Custom Candidate Properties | Custom Fields + Custom Objectslossy | Mapping required | |
| Communication History | Note1:1 | Mapping required | |
| Attachments | ContentDocument + CandidateAttachment1:1 | Mapping required | |
| Union / Seniority Flags | Custom Fields (post-migration activation)lossy | Fully supported | |
| Owner | User1: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.
Talent Pool Builder gotchas
No documented bulk export API
Per-account custom field proliferation
Communication thread continuity gaps
Union and seniority ranking not transferable
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
Export coordination and scoping
We open a coordination request with the customer's Talent Pool Builder account team requesting a full data export across all objects (Candidates, Jobs, Requisitions, Talent Pools, Applications, Interview Records, Offers, Attachments, and Communication History). While awaiting the export (three to five business days), we request a full Talent Pool Builder field inventory, custom field list, and account configuration document. We pair this with a Bullhorn edition review to confirm the custom object and field limits applicable to the destination account. The scoping output is a written migration scope document listing all objects, record counts, custom field mappings, and any objects that exceed Bullhorn's field limits.
Destination schema setup in Bullhorn
Before any data migration begins, we set up the Bullhorn destination schema in a staging environment or Sandbox. This includes creating Bullhorn custom fields (via Admin > Field Mappings) for Talent Pool Builder custom properties that map to standard Bullhorn entities, creating Bullhorn Custom Objects (using the Bullhorn Custom Object Setup Sheet submitted to Bullhorn Support) for complex multi-field structures, configuring Bullhorn Tags and Candidate Lists for Talent Pool Builder talent pools, and setting up Job Order record types and status values that map to the source pipeline configuration. Bullhorn schema must be validated before production migration because custom fields cannot be deleted after data is written to them.
Data validation and reconciliation
We receive the Talent Pool Builder export, validate record counts against the scoping estimates, and check for completeness across all object types. We flag truncated exports, missing fields, and any objects that did not appear in the export. We run a data quality pass: deduplicating candidate records by email, validating date formats, and flagging records with missing required fields (name, email) that require remediation before migration. We produce a data validation report and share it with the customer's project lead before proceeding to transform.
Transform and object mapping
We apply the object mapping rules: Candidates to Bullhorn Candidate, Jobs to Bullhorn Job Order, Applications to Candidate plus CandidateSubmission, Talent Pools to Tags and Candidate Lists, Offers to Opportunity with custom fields, Communication History to Note, and Attachments to CandidateAttachment or ContentDocument. We transform custom field values to match Bullhorn field types, apply the union/seniority flag mapping to custom date and checkbox fields, and resolve Talent Pool Builder owner references against the Bullhorn User table. Any owner without a Bullhorn User match enters the reconciliation queue for the customer's admin to provision.
Production migration in dependency order
We run production migration into Bullhorn in record-dependency order: Users (manual provisioning validated), Job Orders (no parent dependencies), Client Corporations (if applicable), Candidates (with email dedupe key), Custom Objects (after parent Candidates exist), Candidate Submissions linking Candidates to Job Orders, Notes for Communication History, Attachments for resumes and documents, and Opportunities for Offer records with custom fields. Each phase emits a row-count reconciliation report before the next phase begins. We use Bullhorn's REST API with exponential backoff on rate-limit responses (standard rate is 10 requests per second for most tiers) and batch inserts for large record sets.
Cutover, validation, and automation handoff
We freeze Talent Pool Builder 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 automation and workflow inventory document to the customer's Bullhorn admin team, listing any Talent Pool Builder automations, approval workflows, and integration connections that require rebuild in Bullhorn. We do not rebuild Talent Pool Builder automations as Bullhorn workflows inside the migration scope; that is a separate engagement or an internal admin task. We support a one-week post-cutover window for reconciliation issues raised by the customer's recruiting team.
Platform deep dives
Talent Pool Builder
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Talent Pool Builder and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Talent Pool Builder and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Talent Pool Builder and Bullhorn ATS & CRM.
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
Talent Pool Builder: Not publicly documented.
Data volume sensitivity
Talent Pool Builder 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 Talent Pool Builder to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Talent Pool Builder 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 Talent Pool Builder
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.