HRMS migration

Migrate from cvviz to Bullhorn ATS & CRM

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

cvviz logo

cvviz

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

77%

10 of 13

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

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from CVViZ to Bullhorn is a migration from an AI-first startup ATS to the most widely deployed recruitment cloud in the staffing industry. CVViZ organizes hiring around Jobs, Candidates, and Applications with configurable pipeline stages and an AI scoring layer; Bullhorn uses JobOrder, Candidate, and JobSubmission entities with a separate ClientCorporation and ClientContact model for staffing-agency workflows. We handle the schema translation between CVViZ's per-organization stage names and Bullhorn's jobOrderstatus and dateSubmitted values, treat CVViZ Resume files as binary attachments that must be extracted and re-attached in Bullhorn via the REST API's file endpoints, and carry CVViZ AI scores as custom numeric fields on Bullhorn Candidate records. Workflows, automation rules, and AI ranking models do not migrate as code; we deliver a written inventory for Bullhorn rebuild. Bullhorn's ATS Growth edition does not include API access, which constrains the destination tier for migrations requiring Bullhorn REST API connectivity.

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

cvviz logo

cvviz

What's pushing teams away

  • Reported bugs and missing items in the product make users feel the platform lacks maturity, with one AppSumo reviewer citing inability to add internal notes as a blocking issue.
  • No white-label or custom domain option frustrates agencies that want to embed the platform under their own brand for client-facing use.
  • Lack of robust follow-up automation means recruiters must manually manage candidate communications at each pipeline stage.
  • LinkedIn and CRM integrations are reported as inconsistent, causing data sync failures that require repeated manual corrections.

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

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

cvviz

Job

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

CVViZ Job records (title, description, department, location, employment type) map directly to Bullhorn JobOrder. The jobOrderStatus and dateSubmitted fields in Bullhorn correspond to CVViZ's job status and created-at timestamp. CVViZ active-job limits (5-50 per tier) determine how many Jobs migrate as active; any Jobs beyond the target Bullhorn tier are imported as archived. Job board distribution settings (LinkedIn, Google for Jobs) are preserved as metadata but require re-publishing on the destination platform since Bullhorn distributes via Bullhorn Advertising and OpenWeb.

cvviz

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

CVViZ Candidate records with name, email, phone, social profiles, employment history, and skills map 1:1 to Bullhorn Candidate. Email address is the dedupe key; Bullhorn enforces email uniqueness per Candidate record. Social profile URLs (LinkedIn, GitHub, Stack Overflow) from CVViZ migrate to Bullhorn Candidate socialNativeID or custom text fields. CVViZ's contact fields (address, timezone, preferred contact method) map to Bullhorn Candidate address, timeZone, and preferredContact fields.

cvviz

Resume

maps to

Bullhorn ATS & CRM

Candidate (file attachment)

1:1
Fully supported

CVViZ stores parsed resume data as structured fields plus raw PDF/DOCX binary files. We extract the binary file and attach it to the Bullhorn Candidate record via the Bullhorn REST API file upload endpoints (/file/{entityType}/{entityId}) and link via contentDocumentLink. Parsed resume fields (summary, education, work experience) migrate to Bullhorn Candidate custom fields. Bullhorn does not run its own resume parser during import; the raw file lands unparsed unless the customer licenses Bullhorn AI resume summarization separately.

cvviz

Application

maps to

Bullhorn ATS & CRM

JobSubmission

1:1
Fully supported

CVViZ Application records link a Candidate to a Job with a current pipeline stage and timestamp. These map to Bullhorn JobSubmission with the candidateID and jobOrderID lookups resolved at migration time. The CVViZ application dateSubmitted maps to Bullhorn dateSubmitted; application status maps to JobSubmission status. We preserve the candidate journey through each stage by mapping CVViZ stage timestamps to JobSubmission custom fields if the customer tracks stage history.

cvviz

Pipeline Stage

maps to

Bullhorn ATS & CRM

JobOrder (status map)

lossy
Fully supported

CVViZ pipeline stage names are fully customizable per organization with no universal schema. We capture the complete CVViZ stage map during pre-migration schema review, then apply a named mapping to Bullhorn's jobOrderStatus values and any custom status definitions configured in the Bullhorn ATS. Stages with no Bullhorn equivalent are flagged for the customer's Bullhorn admin to configure in Bullhorn Admin > Job Order Status before the final import run. Stage probability percentages, if tracked in CVViZ, migrate to Bullhorn opportunitySuccessRate on the associated Placement entity.

cvviz

Talent Pool

maps to

Bullhorn ATS & CRM

Candidate (passive tag)

1:1
Fully supported

CVViZ Talent Pool entries are passive candidates not tied to a specific active job requisition. We migrate these as Bullhorn Candidate records with a custom passiveTag__c flag set to true, preserving the original source attribution (LinkedIn, GitHub, Stack Overflow, referral) in candidateSource or a custom field. Passive candidates do not have an associated JobSubmission in Bullhorn; they land in the Bullhorn Talent Pool equivalent via Bullhorn's candidate search and talent management features.

cvviz

Candidate Scoring / Ranking

maps to

Bullhorn ATS & CRM

Candidate (custom numeric field)

1:1
Mapping required

CVViZ AI candidate scores are calculated from its proprietary NLP model against the job description and historical hiring data. We carry the score value as a custom numeric field cvvizAIScore__c on the Bullhorn Candidate record. Bullhorn will not recalculate or update this score; it serves as a one-time snapshot from CVViZ. We recommend documenting the score distribution and setting expectations that Bullhorn AI will generate its own candidate-job fit scores through its own model. The original CVViZ score becomes informational only.

cvviz

Pre-Screening Questions

maps to

Bullhorn ATS & CRM

JobSubmission (custom fields)

1:1
Mapping required

CVViZ stores job-specific pre-screening questions and candidate responses as key-value pairs on the Application. We map these to Bullhorn JobSubmission custom fields (using the Bullhorn REST API to create custom fields on the JobSubmission entity) or to custom fields on the JobOrder if the questions are job-level. Questions with no Bullhorn equivalent are flagged in the scoping report with a recommended custom field type. Responses migrate as string values with the question text stored as the field label.

cvviz

Job Board Distribution

maps to

Bullhorn ATS & CRM

JobOrder (metadata)

lossy
Fully supported

CVViZ job board distribution settings (LinkedIn, Google for Jobs, Indeed, and other boards) are stored as job metadata in CVViZ. We preserve the distribution configuration as a custom text field jobBoardDistribution__c on Bullhorn JobOrder. The actual job postings do not transfer as live links; they must be re-created and published in Bullhorn via Bullhorn Advertising or the individual job board's Bullhorn-integrated connector. We flag all job boards requiring re-activation after migration.

cvviz

User / Team Member

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

CVViZ Users map to Bullhorn User records by email address. We resolve each CVViZ Owner (recruiter, hiring manager, admin) referenced on Jobs, Candidates, and Applications and match by email against the Bullhorn destination org's User table. Any CVViZ Owner without a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision. Custom role permissions from CVViZ are documented in the scoping deliverable; Bullhorn's role-based access is configured separately in Bullhorn Admin > Users & Permissions.

cvviz

Custom Fields

maps to

Bullhorn ATS & CRM

Custom Fields

1:1
Fully supported

CVViZ custom fields on Jobs and Candidates (excluding AI scores and pre-screening questions) migrate to Bullhorn custom fields on the equivalent entity. We pre-create Bullhorn custom fields via the Bullhorn REST API before migration, matching CVViZ field names to Bullhorn custom field API names with the appropriate Bullhorn data type (string, integer, float, boolean, date, enum). Bullhorn Admin Field Mappings (field-level control on Add/Edit pages) are configured separately by the customer's Bullhorn admin post-migration.

cvviz

Client / Organization

maps to

Bullhorn ATS & CRM

ClientCorporation

1:1
Fully supported

CVViZ does not have a separate client/corporation entity, but Bullhorn's staffing workflow requires ClientCorporation records for agency clients. We create Bullhorn ClientCorporation records from CVViZ organization-level data if present, or from the company's own employer-of-record profile if the customer is an agency. If the customer is a direct employer using CVViZ without client accounts, we configure ClientCorporation as the employer's company record to enable Bullhorn's placement and billing workflow.

cvviz

Automation Rules

maps to

Bullhorn ATS & CRM

Bullhorn Automation (documented, not migrated)

lossy
Mapping required

CVViZ automation rules (email triggers, notifications, stage transitions) are platform-specific and do not map cleanly to Bullhorn Automation. Bullhorn Automation uses event subscriptions and webhook steps to trigger actions on record changes, but the trigger logic, conditions, and action sets are structurally different. We document each CVViZ automation rule with its trigger, conditions, and actions in a written handoff inventory. Bullhorn's admin rebuilds these in Bullhorn Automation or via Bullhorn's workflow configuration tools post-migration.

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.

cvviz logo

cvviz gotchas

Medium

Resume files require binary export handling

Low

Active job limits reset at migration time

Medium

Pipeline stage names are organization-specific

Low

AI candidate scores are proprietary and non-transferable

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 ATS Growth edition does not include API access

    Bullhorn's ATS Growth (formerly Team Edition) does not include REST API access, which means migrations relying on the Bullhorn REST API cannot use this tier. We verify the destination Bullhorn edition during scoping and confirm that the customer is on Professional, Enterprise, or an edition that includes API access before proceeding. If the customer is on ATS Growth, we flag this as a prerequisite to migration and recommend upgrading to a tier that includes API connectivity. Without API access, only Bullhorn's native import wizard and Bullhorn Plugin's bulk import tooling are available, both of which have limited record type support.

  • Resume files require binary extraction and Bullhorn file attachment handling

    CVViZ stores resumes as raw PDF/DOCX binary files alongside parsed structured fields. We must extract the raw file from CVViZ, upload it to Bullhorn via the REST API file endpoints (/file/Candidate/{candidateId}), and link it via ContentDocumentLink to preserve the candidate-to-resume relationship. Large resume libraries (over 10,000 files) require batch chunking with individual file uploads to avoid Bullhorn API timeout. Bullhorn does not auto-parse the uploaded resume; the raw file lands as an unparsed attachment unless the customer separately licenses Bullhorn AI resume processing.

  • Bullhorn API rate limits require batch chunking and backoff

    Bullhorn enforces 1,500 requests per minute, 100,000 calls per month, and 50 concurrent API sessions per org. CVViZ exports with large candidate volumes and resume file arrays can trigger rate limit responses (HTTP 429). We implement exponential backoff with respect to the X-Rate-Limit-* response headers, chunk candidate imports into batches of 200 records, and distribute resume file uploads across separate request windows. Bullhorn reserves the right to rate limit keys impacting performance at any time without notice. Partner-tier API users (validated Bullhorn partners) do not count against these limits, which we use where available.

  • CVViZ pipeline stage names have no universal Bullhorn equivalent

    CVViZ organizations configure their own pipeline stage names and order. Bullhorn uses standardized jobOrderStatus values (for example: Created, Submitted, Interview, Offer, Hired, Lost) with optional custom status definitions. We capture the full CVViZ stage map during the pre-migration schema review, map each stage to a Bullhorn status value or custom Bullhorn status, and flag any stages with no Bullhorn equivalent. The customer's Bullhorn admin must configure missing statuses in Bullhorn Admin > Job Order Status before the final import run; otherwise, application records default to a generic status that requires manual correction.

  • CVViZ AI candidate scores are proprietary and non-transferable as live rankings

    CVViZ AI ranking scores are calculated by CVViZ's own NLP model trained on the customer's hiring history. We carry the score value as a custom numeric field on Bullhorn Candidate, but Bullhorn AI does not inherit or recalculate CVViZ's model. The score becomes a static snapshot that will not update or re-normalize in Bullhorn. Bullhorn AI generates its own candidate-job fit scores using Bullhorn's model and 22 billion data points. We recommend treating CVViZ scores as historical context rather than an active ranking signal and setting recruiter expectations that ranking will be driven by Bullhorn's own scoring post-migration.

Migration approach

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

  1. Discovery and Bullhorn edition verification

    We audit the source CVViZ account for record counts (Jobs, Candidates, Applications, Talent Pool entries), resume library size, pipeline stage definitions, active job count relative to the CVViZ pricing tier, custom fields on Jobs and Candidates, automation rules, and integration configuration. We simultaneously verify the destination Bullhorn edition to confirm API access is enabled (not ATS Growth), assess existing Bullhorn schema against the CVViZ data model, and identify any ClientCorporation setup required for staffing-agency workflows. The discovery output is a written migration scope with a Bullhorn edition recommendation and a pre-migration Bullhorn admin checklist.

  2. Schema alignment and stage mapping design

    We design the destination Bullhorn schema before any data moves. This includes mapping CVViZ pipeline stages to Bullhorn jobOrderStatus values or custom Bullhorn status definitions, creating Bullhorn custom fields (using the Bullhorn REST API custom entity fields endpoints) to capture CVViZ AI scores, pre-screening question responses, and Talent Pool tags, and designing the ClientCorporation setup for agency clients. We configure any required Bullhorn Record Types and Sales Processes if the customer is using Bullhorn Opportunity management for direct-hire workflows. Bullhorn Field Mappings for custom field display are noted for the customer's Bullhorn admin to configure post-migration.

  3. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn Sandbox or staging org using a representative data volume sample. The customer reconciles record counts (Candidates in, Jobs in, JobSubmissions in, Resume files attached), spot-checks 25-50 random Candidate records against the CVViZ source (checking resume attachment presence, AI score value, stage history, and custom field values), and validates that the Bullhorn stage mapping produces the expected status assignments. Mapping corrections, missing custom fields, and Bullhorn status configuration gaps are resolved here before production migration begins.

  4. Binary resume extraction and batch preparation

    We extract raw resume files from CVViZ in batches of 500, preserving the Candidate-to-Resume linkage via the CVViZ application ID. We chunk the resume library to manage Bullhorn API upload limits and prepare a file-to-candidate mapping manifest. Simultaneously, we extract structured Candidate fields, Application records, and Job records into CSV/JSON batches for the Bullhorn Bulk API or REST API import. All CVViZ pipeline stage names are replaced with their Bullhorn status equivalents in this phase using the pre-agreed stage mapping table.

  5. Production migration in dependency order

    We run production migration in record-dependency order: ClientCorporation records (for agency clients), JobOrder records (from CVViZ Jobs), Candidate records (with custom fields and Talent Pool tags), JobSubmission records (with candidateID and jobOrderID lookups resolved), User reconciliation (matching CVViZ Owners to Bullhorn Users by email), resume file attachments (via Bullhorn REST API file upload endpoints with rate-limit handling), and custom object data last. Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn API calls are logged for audit and retry handling.

  6. Cutover, validation, and automation rebuild handoff

    We freeze CVViZ 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 inventory document listing every CVViZ automation rule with trigger conditions and recommended Bullhorn Automation equivalents. We support a one-week hypercare window where we resolve reconciliation issues raised by the recruitment team. We do not rebuild CVViZ automation rules in Bullhorn Automation inside the migration scope; that work is handled by the customer's Bullhorn admin or a Bullhorn-certified partner using the delivered inventory.

Platform deep dives

Context on both ends of the pair

cvviz logo

cvviz

Source

Strengths

  • AI-driven resume screening using NLP and machine learning that adapts from historical hiring decisions over time.
  • 800M+ candidate profile database covering LinkedIn, GitHub, and Stack Overflow for active and passive sourcing.
  • Recruitment CRM built in, enabling talent pool management and candidate nurturing separate from active job requisitions.
  • Job posting distribution to LinkedIn, Google for Jobs, and other major job boards handled natively.
  • Pricing includes unlimited users across all tiers, avoiding per-seat cost surprises as hiring teams scale.

Weaknesses

  • Platform maturity concerns — reviews report bugs and missing features including inability to add internal notes to candidates.
  • No white-label or custom domain option, limiting use for staffing agencies wanting a branded client experience.
  • Integration stability issues with LinkedIn and CRM systems create sync failures requiring manual correction.
  • Pre-built follow-up automation is limited, requiring recruiters to manage candidate communications manually at each stage.
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. All 7 core objects map 1:1 between cvviz and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across cvviz and Bullhorn ATS & CRM.

  • Object compatibility

    A

    All 7 core objects map 1:1 between cvviz and Bullhorn ATS & CRM.

  • 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

    cvviz: Not publicly documented.

  • Data volume sensitivity

    B

    cvviz doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 10,000 Candidates, 2,000 Jobs, and 50,000 resume files with a standard stage map land in four to six weeks. Migrations with large binary resume libraries, organization-specific stage maps requiring Bullhorn admin configuration, or agency workflows with ClientCorporation and placement data move to ten to fourteen weeks because of file extraction chunking, stage reconciliation scope, and Bullhorn API-tier verification.

Adjacent paths

Related migrations to explore

Ready when you are

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