HRMS migration
Field-level mapping, validation, and rollback between RESUMate and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
RESUMate
Source
Bullhorn ATS & CRM
Destination
Compatibility
8 of 12
objects map 1:1 between RESUMate and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from RESUMate to Bullhorn is a file-to-API migration: RESUMate publishes no public REST, GraphQL, or SOAP endpoint, so all data extraction relies on its built-in CSV export functions and the proprietary format for resume attachments. We scope the export capability in the customer's deployment mode (Desktop versus Cloud) during discovery, then prepare destination-platform import scripts for Bullhorn's REST API because direct API-to-API synchronization is not possible. We preserve the three-way Candidate-to-Client-to-Job-Order link that drives RESUMate's contingency workflow, map unlimited RESUMate custom fields to Bullhorn Custom Objects (up to 10 for Growth/Enterprise editions), and sequence resume attachment ingestion after candidate record creation so that Bullhorn's parsed-text fields are populated without duplication. Bullhorn workflows, automations, saved searches, and Bullhorn Automation (formerly Herefish) do not migrate as code; we deliver a written inventory of these for the customer's admin to rebuild. The timeline for most contingency staffing agencies lands between four and eight weeks depending on candidate volume, send-out history depth, and custom field count.
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 RESUMate 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.
RESUMate
Candidate
Bullhorn ATS & CRM
Candidate
1:1RESUMate Candidate records map directly to Bullhorn Candidate. Parsed resume text, contact details (name, email, phone, address), and source attribution migrate as standard Candidate fields. Unlimited RESUMate notes map to Bullhorn Note records linked via ContentDocumentLink. For candidates with extensive free-text notes accumulated over years of use, we preserve all notes as Note body content ordered by RESUMate's timestamp. Candidate custom fields from RESUMate map to Bullhorn Custom Objects attached to the Candidate entity; Bullhorn Support must provision these Custom Objects before migration ingestion begins.
RESUMate
Client
Bullhorn ATS & CRM
ClientCorporation
1:1RESUMate Client records (employer or company records) map to Bullhorn ClientCorporation. The company name, industry classification, address, and contact details migrate as ClientCorporation fields. We use ClientCorporation name as the dedupe key during ingestion. If the customer has multiple Client contacts per company in RESUMate (e.g., hiring managers, procurement contacts), we map these to separate ClientContact records linked to the ClientCorporation.
RESUMate
Job Order
Bullhorn ATS & CRM
JobOrder
1:1RESUMate Job Order records (job requisitions linked to Clients) map to Bullhorn JobOrder. Job title, job description, requirements, status, and internal job ID migrate as standard fields. The Client-to-Job-Order relationship from RESUMate resolves to the Bullhorn ClientCorporation reference on JobOrder. Job Order status (Active, Filled, On Hold, Cancelled) maps to Bullhorn JobOrder status field equivalents.
RESUMate
Active Jobs
Bullhorn ATS & CRM
JobOrder Status and Pipeline Stage
lossyRESUMate Active Jobs are filtered views of Job Orders organized by pipeline stage and status. These are derived views, not separate records. We extract Active Jobs data to capture pipeline stage assignments (e.g., Searching, Interviewing, Offered, Placed) and apply them as Bullhorn JobOrder status values or custom status fields on JobOrder. Bullhorn does not have a native Active Jobs pipeline view equivalent; pipeline visualization is handled through Bullhorn's list views and reporting rather than a separate object.
RESUMate
Send-out
Bullhorn ATS & CRM
JobSubmission
1:1RESUMate Send-outs track when a Candidate is submitted to a Job Order. This is a core Part IV workflow in the RESUMate Getting Started Guide. We map Send-outs to Bullhorn JobSubmission records, which represent a Candidate's submission to a specific JobOrder. The submission date, send-out status (Active, Interviewing, Rejected, Placed), and any associated notes migrate as JobSubmission fields. We preserve the three-way Candidate-to-Job-Order link explicitly through the JobSubmission entity rather than the implicit relational model RESUMate uses.
RESUMate
Group
Bullhorn ATS & CRM
Tag or List Membership
lossyRESUMate Groups are named lists organizing Candidates, Clients, or Job Orders. We export Group membership as a tag or segment membership dataset. In Bullhorn, Candidate tags migrate as text values in a custom tag field or as Bullhorn List membership (Candidates can belong to multiple Lists). The customer chooses between tag-field and List-based segmentation during scoping based on their ongoing segmentation workflow in Bullhorn.
RESUMate
Calendar
Bullhorn ATS & CRM
Event
1:1RESUMate Calendar events are scheduling records linked to Candidates, Clients, or Job Orders. We extract event details including date, type (interview, client call, internal meeting), and notes, then map them to Bullhorn Event records with EventRelation links to the relevant Candidate, ClientContact, or JobOrder. Bullhorn Event's StartDateTime and EndDateTime preserve the original scheduling timestamp; attendee information migrates as EventRelation records.
RESUMate
Custom Fields (unlimited)
Bullhorn ATS & CRM
Custom Object (up to 10 per entity)
lossyRESUMate supports unlimited custom fields per installation, and users report barely scratching the surface of available custom fields over years of use. Bullhorn supports up to 10 Custom Objects per entity (Candidate, ClientCorporation, JobOrder, etc.) with 55 fields each on Growth/Enterprise editions, and 2 Custom Objects on Bullhorn ATS. During discovery we capture the full RESUMate custom field schema and rank them by usage frequency. Bullhorn Support must provision each Custom Object via a spreadsheet submission ticket before migration. We do not migrate custom field logic or validation rules; these are rebuilt in Bullhorn Field Mappings post-migration.
RESUMate
Resume Files and Attachments
Bullhorn ATS & CRM
ContentDocument (File) attached to Candidate
1:1RESUMate stores both parsed resume text (in the Candidate record) and original file attachments in proprietary format. We extract original resume files (Word, PDF, plain text) as binary files and attach them to Bullhorn Candidate records as ContentDocument via the Bullhorn REST API's file attachment endpoint. Bullhorn's resume parsing capability (via DaXtra) can re-parse the attached file into structured Candidate fields if the original parsed text is incomplete. We ingest resume attachments after Candidate records are created so that the ContentDocumentLink relationship is satisfied at insert time.
RESUMate
Notes
Bullhorn ATS & CRM
Note
1:1RESUMate Candidate records hold unlimited free-text notes with timestamps. We export notes as a dedicated dataset and import them as Bullhorn Note records linked via ContentDocumentLink to the parent Candidate, ClientCorporation, ClientContact, or JobOrder. Note body migrates as rich text. Bullhorn Note supports up to 131,072 characters, which covers the vast majority of RESUMate notes; notes exceeding this limit are flagged for manual review before migration.
RESUMate
Owner (User)
Bullhorn ATS & CRM
User
1:1RESUMate tracks which user created or owned a record (Candidate, Client, Job Order, Send-out). We extract distinct owner references and match them by email against Bullhorn User accounts. Owners without a matching Bullhorn User go to a reconciliation queue; the customer's Bullhorn admin provisions missing Users before record import resumes. Migration cannot proceed past user resolution because OwnerId references are required on standard Bullhorn objects.
RESUMate
Desktop Database Export (if Desktop deployment)
Bullhorn ATS & CRM
Intermediate CSV/Export Files
lossyFor customers running RESUMate Desktop, the database resides on local Windows PCs. Data extraction requires a local export from the Desktop application. If the Desktop installation has been dormant or the customer lacks local admin access, we coordinate a remote or on-site extraction session. Desktop exports are often larger and less consistently formatted than Cloud exports because Desktop installations may have custom modifications. We perform a data profiling pass on Desktop exports to identify encoding inconsistencies, missing fields, and record-level anomalies before designing the transformation script for Bullhorn API ingestion.
| RESUMate | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Client | ClientCorporation1:1 | Fully supported | |
| Job Order | JobOrder1:1 | Fully supported | |
| Active Jobs | JobOrder Status and Pipeline Stagelossy | Mapping required | |
| Send-out | JobSubmission1:1 | Fully supported | |
| Group | Tag or List Membershiplossy | Fully supported | |
| Calendar | Event1:1 | Mapping required | |
| Custom Fields (unlimited) | Custom Object (up to 10 per entity)lossy | Fully supported | |
| Resume Files and Attachments | ContentDocument (File) attached to Candidate1:1 | Mapping required | |
| Notes | Note1:1 | Fully supported | |
| Owner (User) | User1:1 | Fully supported | |
| Desktop Database Export (if Desktop deployment) | Intermediate CSV/Export Fileslossy | 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.
RESUMate gotchas
No public API forces file-based migration
Desktop-to-Cloud data is not automatically portable
Cloud connectivity drops interrupt live migration sessions
Per-user setup fees compound on multi-seat migrations
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 deployment verification
We audit the source RESUMate environment across deployment mode (Desktop, Cloud, or Cloud-Office), candidate volume, Client count, Job Order count, send-out history depth, custom field definitions, Group/tag schema, and attachment volume. For Desktop deployments we verify local export access and schedule a remote or on-site extraction session. For Cloud deployments we confirm export tool availability and credentials. We simultaneously capture the Bullhorn destination org details: edition tier (Team, Corporate, Enterprise), existing Custom Object count, User roster, and Bullhorn Support ticket access for Custom Object provisioning. The discovery output is a written migration scope with record counts per object, a Bullhorn Custom Object request list ranked by usage frequency, and a Desktop extraction plan if applicable.
RESUMate data extraction and profiling
We extract data from RESUMate using the platform's built-in CSV export functions for Candidates, Clients, and Job Orders. Resume files and attachments are extracted from the proprietary RESUMate storage format as binary files. We perform a data profiling pass on each export to identify encoding issues (especially from Desktop installations), missing required fields, duplicate records, and orphaned relationships (Candidates without a linked Client or Job Order). Profiling output is a data quality report shared with the customer before transformation begins. Any records with missing required Bullhorn fields are flagged for customer review or default-value assignment.
Bullhorn schema preparation and Custom Object setup
We submit the Bullhorn Custom Object Setup Spreadsheet to Bullhorn Support for each Custom Object required by the migration scope. Bullhorn Support typically takes 3-10 business days to provision Custom Objects. While waiting for Custom Object creation, we configure Bullhorn Field Mappings for standard and custom fields, define JobOrder Record Types if multiple job pipelines exist, and set up the Bullhorn User roster by matching RESUMate Owner emails to Bullhorn User accounts. Bullhorn Custom Object field types (text, drop-down, picker, checkbox) are matched to RESUMate custom field types during this phase. The Bullhorn Sandbox (Full Copy or Partial Copy) receives a schema deployment for validation before production.
Sandbox migration and reconciliation
We run a full migration into the Bullhorn Sandbox using production-like data volume. The customer's Bullhorn admin and migration lead reconcile record counts across all objects, spot-check 25-50 candidate records against the RESUMate source for field-level accuracy, verify the Candidate-Client-Job-Order three-way link through JobSubmission, and confirm that resume attachments are linked to the correct Candidate records. Any mapping corrections, custom field misalignments, or Bullhorn validation rule rejections are resolved in this phase. Sandbox sign-off from the customer's admin is required before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporations (from RESUMate Clients), ClientContacts (from RESUMate Client contacts), JobOrders (with ClientCorporationId resolved), Candidates (with parsed resume text and original attachments queued), JobSubmissions (with CandidateId and JobOrderId resolved for send-out history), Notes (linked via ContentDocumentLink), Events (from RESUMate Calendar), Tags and List memberships (from RESUMate Groups), and Custom Object instances last because they reference standard objects. Each phase emits a row-count reconciliation report. We use Bullhorn's REST API with batch chunking for high-volume objects and exponential backoff on rate-limit responses. Resume file ingestion runs after candidate records are confirmed inserted to satisfy ContentDocumentLink foreign-key requirements.
Cutover, delta sync, and automation handoff
We freeze RESUMate writes during the cutover window, run a final delta migration of any records modified since the initial extract, then enable Bullhorn as the system of record. We deliver a written inventory of RESUMate workflows, Group-based segmentation patterns, and send-out status conventions with Bullhorn equivalents for the customer's admin to implement in Bullhorn. Bullhorn Automation (formerly Herefish) for outreach sequencing is documented as a separate scope. We provide a one-week hypercare window for reconciliation issues raised by the Bullhorn user base. We do not rebuild Bullhorn workflows, saved searches, or Bullhorn Automation sequences inside the migration scope; those are separate engagements or internal admin tasks.
Platform deep dives
RESUMate
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 RESUMate 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
RESUMate: Not applicable — no public API.
Data volume sensitivity
RESUMate 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 RESUMate to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your RESUMate 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 RESUMate
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.