HRMS migration
Field-level mapping, validation, and rollback between Tribune and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Tribune
Source
Bullhorn ATS & CRM
Destination
Compatibility
3 of 12
objects map 1:1 between Tribune and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Tribune Publishing to Bullhorn is a domain-translation migration: Tribune's data model is built around media subscribers, publication titles, subscription tiers, and billing records, while Bullhorn is a recruiting ATS and CRM built around Candidates, Client Corporations, Jobs, and Placements. There is no native object-level correspondence, so we treat the Tribune Subscriber as the primary identity mapped to a Bullhorn Candidate, preserve publication preferences as custom Candidate fields or a custom Object, map billing cadence to Candidate status or a custom field, and preserve delivery addresses on the Candidate record. Auto-renewal flags and promotional rate metadata are flagged during import scoping so billing teams can audit post-cutover exposure. Bullhorn's per-user pricing ($99-$315/user/month), API-based export approach, and custom object tiering (Front Office Growth/Enterprise: 10 objects with 55 fields each; ATS Growth: none) shape the migration architecture. Bullhorn does not have a native billing or subscription management layer, so any financial history from Tribune maps to a custom object or documented audit record rather than a native feature.
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 Tribune 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.
Tribune
Subscriber
Bullhorn ATS & CRM
Candidate
1:1Tribune Subscriber is the primary identity object and maps 1:1 to Bullhorn Candidate. We preserve firstName, lastName, email, phone, and street address from the Tribune subscriber record onto the Bullhorn Candidate record. Name fields are split into first and last name during import. If the Tribune record uses a single display name field, we split on the last space as the default rule, with a reconciliation pass for records that fail the split. The Candidate's email address becomes the primary dedupe key.
Tribune
Publication Titles
Bullhorn ATS & CRM
Custom Object (Category) or Candidate Text Fields
1:manyTribune's 77 daily and 150+ weekly publication titles have a many-to-many relationship with subscribers. Bullhorn Candidate does not natively support a publication-subscription association. We map each publication title to a Bullhorn custom Text field on the Candidate record (up to 55 fields per custom object on Front Office Growth/Enterprise; 2 on Bullhorn ATS; none on ATS Growth). For subscriptions spanning many titles, we recommend a separate Publications custom object linked to Candidate via a lookup relationship, with a junction table mapping subscriber-to-publication.
Tribune
Subscription Tiers
Bullhorn ATS & CRM
Custom Field (Candidate Status or Custom Object)
lossyTribune subscription tiers (print-only, digital-only, bundled) have no direct Bullhorn equivalent. We map tier names and rates to a custom Candidate field (e.g., subscription_tier__c as a picklist) or a custom object storing tier metadata. If the customer uses Bullhorn's Opportunity object for commission tracking, tier can also map to a custom Opportunity field. Bullhorn's picklist values are configured during setup.
Tribune
Billing Records
Bullhorn ATS & CRM
Custom Object (Subscription Billing)
1:1Billing records from Tribune include payment method type, billing frequency, and transaction history — but payment card data is tokenized or masked and cannot migrate. We create a custom object SubscriptionBilling in Bullhorn linked to the Candidate record via lookup. Fields include billing_frequency__c, last_charge_date__c, last_charge_amount__c, next_renewal_date__c, and subscription_status__c. Auto-renewal status migrates as a checkbox or picklist flag for billing team audit.
Tribune
Auto-Renewal Configurations
Bullhorn ATS & CRM
Custom Field + Flag Report
lossyTribune auto-renewal flags identify subscribers whose promotional rates will convert to standard rates at next renewal — a billing event that triggers charges in the source system. We migrate the auto-renewal flag to a custom Candidate field (auto_renewal_enabled__c) and generate a separate Auto-Renewal Flag Report listing all migrated candidates with auto-renewal active and their effective renewal dates. This report is handed off to the billing team for pre-cutover audit.
Tribune
Address Records
Bullhorn ATS & CRM
Candidate Address Fields
1:1Tribune print delivery addresses migrate 1:1 to Bullhorn Candidate address fields (address, city, state, zip, country). Records with active temporary forwarding instructions are flagged in the import scoping phase with a temporary_address_note__c field so the billing or fulfillment team can process forwarding separately. Address deduplication rules are applied during import using fuzzy matching on street + zip.
Tribune
Subscription Preferences
Bullhorn ATS & CRM
Custom Fields on Candidate
lossyTribune subscription preferences (delivery frequency, format, notification opt-ins) map to Bullhorn custom Candidate fields. We create picklist fields for delivery_frequency__c (daily, weekends, selected_days), format_preference__c (print, digital, bundled), and notification_opt_in__c (boolean). These are created during Bullhorn schema setup before record import.
Tribune
Digital Access Credentials
Bullhorn ATS & CRM
Custom Field on Candidate
lossyDigital subscriber portal access credentials are mapped to a custom Candidate field (digital_access_tier__c) indicating which tier of online content access the subscriber holds. Full credential migration (username/password) is not performed as Tribune credentials are platform-specific and not portable to Bullhorn. The field documents the access tier for the receiving team to provision equivalent access in their own system.
Tribune
None (Tribune has no Candidate/Contact equivalent)
Bullhorn ATS & CRM
Client Corporation
lossyBullhorn's Client Corporation object stores company clients that post jobs and receive placements. Tribune's data model has no direct equivalent. If the receiving team plans to use Bullhorn for recruiting, Client Corporation records are created manually or through a separate company import from the customer's existing client list. We include a Client Corporation setup guide in the migration deliverables for the admin to populate post-migration.
Tribune
None
Bullhorn ATS & CRM
Job / Job Order
lossyBullhorn Job and Job Order objects have no Tribune equivalent. These are populated post-migration as the staffing team begins placing candidates. We do not pre-create jobs from Tribune data because Tribune publishes news content, not job postings. The migration delivers a Bullhorn Jobs setup guide as part of the handoff package.
Tribune
None
Bullhorn ATS & CRM
Placement
lossyBullhorn Placement records track placed candidates, start dates, pay rates, and bill rates. These are created during active recruiting operations post-migration and have no Tribune equivalent. The migration does not pre-create placements.
Tribune
Group Enterprise Subscriptions
Bullhorn ATS & CRM
Client Corporation + Custom Object
1:manyTribune group enterprise subscriptions (companies, universities, libraries sharing a subscription) map to Bullhorn Client Corporation records with a linked custom object (GroupSubscription) capturing the enterprise account number, total seat count, and renewal date. This handles the one-to-many relationship where a single enterprise subscriber covers multiple individual records.
| Tribune | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Subscriber | Candidate1:1 | Fully supported | |
| Publication Titles | Custom Object (Category) or Candidate Text Fields1:many | Fully supported | |
| Subscription Tiers | Custom Field (Candidate Status or Custom Object)lossy | Mapping required | |
| Billing Records | Custom Object (Subscription Billing)1:1 | Mapping required | |
| Auto-Renewal Configurations | Custom Field + Flag Reportlossy | Mapping required | |
| Address Records | Candidate Address Fields1:1 | Fully supported | |
| Subscription Preferences | Custom Fields on Candidatelossy | Mapping required | |
| Digital Access Credentials | Custom Field on Candidatelossy | Mapping required | |
| None (Tribune has no Candidate/Contact equivalent) | Client Corporationlossy | Fully supported | |
| None | Job / Job Orderlossy | Fully supported | |
| None | Placementlossy | Fully supported | |
| Group Enterprise Subscriptions | Client Corporation + Custom Object1:many | 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.
Tribune gotchas
Platform is misclassified as HRMS — it is a media publisher
Auto-renewal enrollment from promotional rates creates billing migration risk
Class action billing litigation may affect data integrity
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 data extraction scoping
We conduct a kickoff call to confirm Tribune's record counts (total subscribers, publication titles, billing records, active auto-renewal records), verify the Tribune data export method and format (CSV, JSON, database extract, third-party tool), and identify any known data quality issues (missing emails, duplicate addresses, class action billing records). We also verify the destination Bullhorn edition and custom object allocation during this phase. The discovery output is a written Migration Scope Document listing all Tribune objects, estimated record volumes, and the extraction method required from the Tribune side.
Schema design and custom object setup in Bullhorn
We design the Bullhorn destination schema based on the Tribune-to-Bullhorn object mapping. This includes creating custom Candidate fields for subscription tier, auto-renewal flag, digital access tier, and delivery preferences (via Admin > Field Mappings in Bullhorn), plus any required custom objects (Publications, SubscriptionBilling) using Bullhorn's Custom Object setup process. We verify the destination Bullhorn edition's custom object limit and confirm the field type for each mapped property (picklist, text, date, checkbox). Schema is validated in the customer's Bullhorn sandbox before production.
Extraction, validation, and data quality remediation
Tribune provides a structured data extract in the agreed format. We validate the extract against the subscriber counts from discovery, identify records with missing required fields (email, name, address), flag duplicate subscriber records (same email with different subscriber IDs), and parse auto-renewal and promotional rate data into a structured staging format. Any extraction format inconsistencies (encoding issues, malformed dates, null value handling) are resolved in this phase with a written data quality report delivered to the customer.
Field mapping, transformation, and import preparation
We map each Tribune field to its Bullhorn destination field or custom field using the Migration Dashboard. The key transformations include: subscriber name split into firstName and lastName, publication subscriptions into the Publications custom object with a Candidate lookup, subscription tier into a custom Candidate picklist field, billing frequency and amounts into the SubscriptionBilling custom object, auto-renewal flags into a checkbox field plus the Auto-Renewal Flag Report, and delivery addresses into Bullhorn Candidate address fields. Temporary forwarding addresses receive a separate flag. The customer reviews and approves the field mapping before import begins.
Sandbox migration and reconciliation
We run a full migration into the customer's Bullhorn sandbox using production-equivalent record volume. The customer's Bullhorn admin reconciles record counts (Candidates in, Publications associated, SubscriptionBilling records linked, address completeness), spot-checks 25-50 random Candidate records against the Tribune source data, and reviews the Auto-Renewal Flag Report. Any mapping corrections or field type adjustments happen in the sandbox before production migration begins.
Production migration and cutover
We run production migration in dependency order: Candidate records first (with address, subscription tier, and digital access tier fields populated), then Publications custom object and junction table (linked to Candidates), then SubscriptionBilling custom object records, then the Auto-Renewal Flag Report. We freeze Tribune data writes during the cutover window, run a final delta migration of any records modified during the window, then hand off with a Migration Completion Report listing record counts per object, any records that failed import with reason codes, and the Auto-Renewal Flag Report for billing team review. We support a one-week hypercare window for reconciliation issues.
Platform deep dives
Tribune
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Tribune and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Tribune and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Tribune 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
Tribune: Not publicly documented — confirmed during integration scoping..
Data volume sensitivity
Tribune 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 Tribune to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Tribune 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 Tribune
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.