HRMS migration
Field-level mapping, validation, and rollback between WebCruiter and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
WebCruiter
Source
Bullhorn ATS & CRM
Destination
Compatibility
9 of 12
objects map 1:1 between WebCruiter and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
WebCruiter and Bullhorn serve different recruiting markets: WebCruiter is a Scandinavian-focused ATS with strong local compliance alignment but no documented public API and limited HR-suite depth, while Bullhorn is a global staffing and recruitment CRM used by 10,000+ agencies across 60+ countries that combines applicant tracking with built-in relationship management for temp, perm, and contract placement workflows. The migration is constrained by WebCruiter's reliance on the Talentech customer portal for point-in-time data exports without bulk API access, which means candidate records, job postings, applications, and attachments must be extracted manually and validated before loading. We handle the data in dependency order: Company records first (Bullhorn ClientCorporation), then Candidate with attachment resolution, then JobOrder, then JobSubmission linking candidates to jobs, then pipeline stages and custom form fields. We do not migrate WebCruiter workflows or Talentech ecosystem integrations as code; we deliver a written inventory of any automation requiring rebuild in Bullhorn.
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 WebCruiter 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.
WebCruiter
Candidate
Bullhorn ATS & CRM
Candidate
1:1WebCruiter Candidate records map to Bullhorn Candidate. Standard fields (firstName, lastName, email, phone, address) map directly. We flag records where contact information was entered manually versus auto-populated from a job board application because the data quality differs. We preserve candidate source attribution where it exists in the record and map it to Bullhorn's source taxonomy. Any WebCruiter owner or recruiter assignment is resolved against the Bullhorn User table by email match; unresolved owners go to a reconciliation queue.
WebCruiter
Job Posting
Bullhorn ATS & CRM
JobOrder
1:1WebCruiter Job Postings export with title, department, location, and status. Status values (active, paused, closed) map to Bullhorn JobOrder status (Open, Paused, Closed/Dead). We preserve the original posting date and any internal requisition ID present in the export. Archived job requisitions are separated from active jobs during scoping; we recommend mapping archived pipelines to a dedicated legacy-job pipeline in Bullhorn to avoid active pipeline contamination.
WebCruiter
Application
Bullhorn ATS & CRM
JobSubmission
1:1WebCruiter Applications link a Candidate to a Job Posting with a status (applied, in review, rejected, hired). We map these to Bullhorn JobSubmission records, preserving the application date and any stage history exported. We flag records where stage history is incomplete or truncated in the WebCruiter export. The JobSubmission is created after both the Candidate and JobOrder exist in Bullhorn to satisfy the foreign-key dependency.
WebCruiter
Custom Form Fields
Bullhorn ATS & CRM
Custom Field or CustomObject
lossyWebCruiter allows recruiters to add custom screening questions to application forms. These fields export as free-form text regardless of intended type (date, integer, multi-select). We profile each custom field in the staging environment, apply type inference, and map to the appropriate Bullhorn field type. If the intended type is a structured picklist or integer and type inference is ambiguous, we flag the field for customer review before load. Bullhorn edition constraints apply: ATS Growth supports 0 custom objects, Bullhorn ATS supports 2, and Enterprise supports 10 with 55 fields each.
WebCruiter
Pipeline Stages
Bullhorn ATS & CRM
JobOrder Status or Opportunity Stage
lossyWebCruiter uses configurable pipeline stages per job requisition. Stage names vary by organisation. We extract the full stage set from each exported job and map them to Bullhorn JobOrder status values (Open, Interview, Offer, etc.) or Opportunity Stage if the staffing workflow includes placement tracking. We document the original stage name in a custom field stageNameOriginal__c for audit and reconciliation.
WebCruiter
Candidate Source
Bullhorn ATS & CRM
Candidate Source
1:1Source tracks where an application originated (job board, referral, direct). This field is often blank in legacy WebCruiter records or populated inconsistently. We map source values to the Bullhorn Candidate source taxonomy and flag any unmapped source values for customer review. Where source is blank, we leave the field null rather than inferring a value.
WebCruiter
User/Owner Assignment
Bullhorn ATS & CRM
User
1:1Recruiters and hiring managers are assigned as owners to jobs and candidates in WebCruiter. The standard data export may not include a full user directory. We extract every distinct owner ID referenced on Candidate, Job, and Application records and match by email against the Bullhorn User table. Any owner without a matching Bullhorn User is held in a reconciliation queue for the customer's admin to provision the corresponding User record before record import resumes.
WebCruiter
Attachment
Bullhorn ATS & CRM
ContentDocument (via ContentDocumentLink)
1:1WebCruiter stores CVs, cover letters, and portfolio files attached to candidate records. The standard data export does not bundle these files; files must be retrieved individually from the WebCruiter UI or requested as a separate archive from Talentech support. We count the total attachment volume per candidate during extraction, request the file bundle from the customer before the load phase, validate attachment filenames against exported record IDs, and then associate each file to the Bullhorn Candidate record via ContentDocumentLink. Bullhorn accepts PDF, DOC, DOCX, and standard image formats. Files without a resolvable candidate match are logged as orphaned and presented to the customer for manual resolution.
WebCruiter
Company/Client
Bullhorn ATS & CRM
ClientCorporation
1:1WebCruiter organisations using the platform for staffing workflows may have client company records alongside candidate records. These map to Bullhorn ClientCorporation. The organisation name, address, and primary contact fields transfer directly. We use ClientCorporation name as the deduplication key during import. If no client companies exist in the WebCruiter export, this object is skipped.
WebCruiter
Note
Bullhorn ATS & CRM
Note or NoteEntity
1:1Recruiter notes attached to candidates or job postings in WebCruiter migrate to Bullhorn Note records linked via ContentDocumentLink to the parent Candidate or JobOrder. We preserve the note body, author (resolved to Bullhorn User by email), and creation timestamp. Rich-text formatting in WebCruiter notes is simplified to plain text to avoid display inconsistencies in Bullhorn.
WebCruiter
Placement (if applicable)
Bullhorn ATS & CRM
Placement
1:1If the WebCruiter data export includes placement or hiring-outcome records, these map to Bullhorn Placement. Placement maps Candidate and JobOrder to a staffing transaction with start date, end date (for contract), pay rate, bill rate, and assignment status. Bullhorn's Placement object is part of the staffing workflow and requires both Candidate and JobOrder to exist before the Placement record is inserted.
WebCruiter
Archived Job Requisition
Bullhorn ATS & CRM
JobOrder (separate pipeline)
lossyWebCruiter archived jobs retain their original pipeline stage set and may conflict with the active pipeline schema in Bullhorn. We separate archived jobs from active jobs during scoping, recommend mapping them to a dedicated legacy-jobs pipeline in Bullhorn, and exclude them from the primary migration load unless the customer explicitly requests inclusion. Each archived job's candidates move with the job assignment but are flagged as belonging to a closed requisition.
| WebCruiter | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Job Posting | JobOrder1:1 | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Custom Form Fields | Custom Field or CustomObjectlossy | Mapping required | |
| Pipeline Stages | JobOrder Status or Opportunity Stagelossy | Mapping required | |
| Candidate Source | Candidate Source1:1 | Mapping required | |
| User/Owner Assignment | User1:1 | Mapping required | |
| Attachment | ContentDocument (via ContentDocumentLink)1:1 | Fully supported | |
| Company/Client | ClientCorporation1:1 | Fully supported | |
| Note | Note or NoteEntity1:1 | Fully supported | |
| Placement (if applicable) | Placement1:1 | Fully supported | |
| Archived Job Requisition | JobOrder (separate pipeline)lossy | 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.
WebCruiter gotchas
No documented public API for automated migration
Attachment bulk download not available via standard export
Custom screening fields lack consistent data typing
Archived job requisitions may carry stale pipeline stage configurations
Owner and recruiter user IDs may not resolve in target system
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
Scoping and export coordination
We audit the WebCruiter environment via the Talentech customer portal to determine candidate count, job posting count, application count, custom form field inventory, attachment volume per candidate, and archived versus active job split. We coordinate with the customer to request the Talentech data export at the start of the project and validate that all expected objects and fields appear in the downloaded file. We also confirm the destination Bullhorn edition (Team, Corporate, or Enterprise) to determine the custom object limit before finalising the mapping plan.
Destination schema design and Bullhorn edition validation
We design the Bullhorn destination schema in the customer's Sandbox environment. This includes mapping standard fields (Candidate, JobOrder, JobSubmission), configuring custom fields for each custom screening question (capped at the Bullhorn edition limit), setting up JobOrder status values and placement track types, and designing any required custom objects. Bullhorn custom objects require a support ticket to create; we prepare the Custom Object Setup Spreadsheet and submit it on the customer's behalf. Schema is validated in Sandbox before production migration begins.
File retrieval and attachment preparation
We request the complete file bundle from Talentech support or the customer and match attachment filenames against the exported candidate record IDs. We flag any filenames that do not resolve to a migrated record and present the mismatch list to the customer for manual resolution. Validated files are staged in a structured directory for bulk upload to Bullhorn via API. This step runs in parallel with sandbox schema validation but must complete before the production load phase.
Sandbox migration and reconciliation
We run a full migration into the Bullhorn Sandbox using production-like data volume. The customer's recruiting operations lead reconciles record counts (Candidates in, JobOrders in, JobSubmissions in), spot-checks 25-50 random records against the WebCruiter source, and validates that custom field values are correctly typed in Bullhorn. Any mapping corrections, custom object limit escalations, or pipeline stage adjustments happen in this phase. The customer signs off the sandbox results before production migration proceeds.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporation (if applicable), then Candidate with attachment association via ContentDocumentLink, then JobOrder (active jobs first, archived jobs to a separate pipeline if included), then JobSubmission linking candidates to jobs. Custom form fields load after the base record migration with type-inferred or manually mapped values. Owner and recruiter assignments resolve against the Bullhorn User table by email match; unresolved owners hold in a reconciliation queue until the customer's Bullhorn admin provisions the missing User records. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation handoff
We freeze WebCruiter writes during cutover and run a final delta migration of any records modified during the migration window. We then enable Bullhorn as the system of record and disable the WebCruiter integration if applicable. We deliver a written inventory of any WebCruiter workflow or Talentech ecosystem integration (Talmundo onboarding) that requires rebuild in Bullhorn, including a recommended Bullhorn automation approach for each. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's recruiting team. We do not rebuild workflows or automations as code inside the migration scope.
Platform deep dives
WebCruiter
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between WebCruiter and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across WebCruiter and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between WebCruiter 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
WebCruiter: Not publicly documented — no public API surface exists for end customers..
Data volume sensitivity
WebCruiter 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 WebCruiter to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your WebCruiter 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 WebCruiter
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.