Bullhorn

Connect Bullhorn with Webflow to sync job postings, capture candidate applications, and manage talent pipelines.

Install app
View website
View lesson
A record settings
CNAME record settings
Bullhorn

How to integrate Bullhorn with Webflow

Recruiting teams need to publish job listings automatically and capture applications without switching between systems. Manual job posting updates waste time, and disconnected application workflows create data entry overhead that slows candidate processing.

You can connect the platforms through third-party automation tools like Zapier or Make, embed Bullhorn widgets in Webflow pages using HTML, or build custom integrations with the Bullhorn REST API and Webflow Data API.

Use third-party automation platforms

Zapier and Make connect Bullhorn to Webflow without writing code. These platforms authenticate with both services, handle data transformation, and manage errors automatically. Zapier offers a prebuilt template that adds candidates to Bullhorn CRM from new Webflow form submissions.

When someone submits an application through your Webflow career site, Zapier captures the form data and creates a corresponding candidate record in Bullhorn with name, email, phone, and resume attachments.

Make has separate native apps for Bullhorn and Webflow that connect through scenario templates. The platform supports conditional logic for routing candidates to specific workflows based on application details and checking for existing candidates before creating duplicates.

Make's scenario templates can watch Webflow form submissions, create or update candidates in Bullhorn based on Webflow data, and sync job postings from Bullhorn to Webflow CMS collections bidirectionally.

Zapier connects Bullhorn triggers to Webflow actions through multi-step workflows:

  • Create candidates from Webflow forms and automatically generate Bullhorn candidate records with parsed data from form fields
  • Sync Bullhorn job postings to Webflow CMS and automatically publish them to your careers page through CMS collections when recruiters create jobs in Bullhorn
  • Attach application notes from Webflow to Bullhorn and generate timestamped notes whenever candidates submit applications through Webflow
  • Prevent duplicate entries between platforms by searching for existing candidate records in Bullhorn before creating new ones

Embed Bullhorn widgets and job boards

Bullhorn provides iframe-based widgets (HTML elements that embed external content within a page) for embedding job boards, application forms, and candidate portals directly into Webflow pages. This method displays Bullhorn-hosted content without requiring API integration, though you must contact Bullhorn support to obtain account-specific embed codes and widget URLs.

Contact Bullhorn support to obtain your account-specific embed code. Bullhorn's iframe integration framework documents authentication methods and configuration parameters, but individual embed URLs contain account-specific identifiers that support teams provide.

Once you have the iframe code from Bullhorn, add an Embed element to your Webflow page through the Add panel ( icon). Paste the Bullhorn iframe code into the embed field. Webflow wraps the content in a <div class="w-embed"> container for responsive design control, and you can adjust dimensions through the Style panel.

For mobile optimization, apply responsive iframe CSS patterns to maintain proper proportions across devices. Test the embedded content across tablet and mobile breakpoints before publishing.

This approach works for several use cases:

  • Display current openings from Bullhorn on your Webflow careers page using embedded iframes
  • Capture job applications through Webflow forms that connect to Bullhorn via middleware platforms like Zapier or Make, which automatically create candidate records in your ATS
  • Embed Bullhorn-hosted candidate portals on Webflow pages to give applicants access to application status and profile updates

Build with Webflow and Bullhorn APIs

Direct API integration gives you complete control over data flow, transformation logic, and synchronization timing. Build custom connections when you need complex workflows, real-time bidirectional sync, or functionality that middleware platforms don't support.

Both platforms use REST APIs with OAuth authentication. Webflow's Data API manages sites, CMS collections, and form submissions. Bullhorn's REST API handles candidates, job orders, placements, and client relationships.

Authentication requires multiple steps for both platforms. Webflow supports OAuth 2.0 tokens for user-authorized access or site tokens for server-to-server integrations. Bullhorn uses a two-phase flow to obtain an OAuth access token through authorization, then complete a login call that returns a session token (BhRestToken) for subsequent requests.

API integration enables several workflows:

  • Publish Bullhorn jobs to Webflow CMS with POST /collections/{collection_id}/items and update job status in Webflow when positions close in Bullhorn
  • Configure Webflow form webhooks to capture submissions in real-time, then create Bullhorn candidates with PUT /entity/Candidate
  • Upload candidate files to Bullhorn using POST /entity/Document after capturing them from Webflow form submissions
  • Subscribe to Bullhorn entity events with PUT /event/subscription/{subscriptionId} to receive notifications when candidates, jobs, or placements change, then update corresponding Webflow CMS items

API integration requires managing authentication tokens, handling errors, and implementing retry logic for failed requests. Both platforms enforce rate limits that vary by subscription tier and may require request queuing and exponential backoff strategies. Bullhorn tokens expire after 10 minutes by default and require automated refresh logic, while Webflow tokens expire after 365 days of inactivity.

Sync job postings from Bullhorn to Webflow CMS

Query active job positions from Bullhorn and publish them to your Webflow CMS automatically. This integration pattern keeps job listings current without manual updates, supporting bidirectional synchronization between your ATS and public careers page.

Use Bullhorn's Search endpoint to find open positions with GET /search/JobOrder?query=isOpen:true AND isDeleted:false&fields=id,title,publicDescription,employmentType,address,salary. The query filters for active jobs only, and the fields parameter controls which data returns.

Transform Bullhorn's JobOrder data to match your Webflow CMS collection schema. Create or update items with POST /collections/{collectionid}/items or PATCH /collections/{collectionid}/items/{itemid}. Move staged items to live with POST /collections/{collectionid}/items/publish.

Store Bullhorn's job ID (such as the JobOrder entity ID) in a Webflow custom field to track which CMS items correspond to which JobOrder records. This supports incremental updates that only sync changed data by using Bullhorn's dateLastModified timestamp field to identify modifications since the last synchronization.

Capture form submissions and create candidates

Configure webhooks to receive form data immediately when candidates submit applications through Webflow forms. Create corresponding Bullhorn candidate records using the Bullhorn REST API's PUT /entity/Candidate endpoint without requiring polling for new submissions.

Register a webhook with POST /sites/{site_id}/webhooks, specifying triggerType: form_submission and your endpoint URL. Webflow's webhook documentation explains payload structures and signature verification. Webflow sends POST requests to your endpoint whenever someone submits a form, with the complete payload including form field data and metadata.

Validate the x-webflow-signature header to confirm requests originate from Webflow. Extract form fields from the payload and transform them to Bullhorn's candidate schema using field mapping logic, as Bullhorn uses numeric field IDs while Webflow uses human-readable field names.

Create candidates with PUT /entity/Candidate (Bullhorn uses PUT for create operations, not POST). Include fields like firstName, lastName, email, phone, and source. Link candidates to specific jobs by creating JobSubmission records with PUT /entity/JobSubmission.

Return HTTP 200 to Webflow's webhook request. Non-200 responses trigger retries, which may result in webhook deactivation if failures persist.

Monitor Bullhorn changes with event subscriptions

Subscribe to real-time notifications through Bullhorn's Event Subscription System when entities like job postings and candidates change. Use integration platforms like Zapier or Make to automatically update Webflow CMS items when recruiters modify job postings or candidate statuses in Bullhorn.

Create subscriptions with PUT /event/subscription, specifying entity types (Candidate, JobOrder, ClientContact) and event types (INSERTED, UPDATED, DELETED). Bullhorn queues events for your subscription, which you retrieve by polling the subscription endpoint. Unused subscriptions expire after 7 days, and unretrieved events also expire after 7 days, so continuous polling is required to avoid permanent data loss during integration downtime.

When you retrieve events, Bullhorn returns entity IDs and change types. Fetch full entity details with GET /entity/{EntityType}/{id} using the fields parameter to specify required data. Update corresponding Webflow CMS items with the changed information.

What you can build

Integrating Bullhorn with Webflow through middleware platforms like Zapier or Make lets you build automated candidate pipelines, self-service portals, and bidirectional job synchronization between your ATS and public website.

  • Automated career portals with Bullhorn and Webflow: Sync Bullhorn JobOrder records to a Webflow CMS collection at yourcompany.com/careers, automatically publishing job listings when recruiters create positions in Bullhorn. Query active jobs via GET /search/JobOrder?query=isOpen:true and create CMS items with POST /collections/{collection_id}/items, or use Make's scenario template to watch jobs in Bullhorn and update Webflow automatically
  • Branded application flows connecting Webflow to Bullhorn: Design custom application forms at yourcompany.com/careers/apply that capture candidate data (name, email, resume, cover letter) and automatically create Bullhorn candidate records via Zapier's prebuilt template or webhook-triggered API calls to PUT /entity/Candidate
  • Client job request systems from Webflow to Bullhorn: Create a client portal at yourcompany.com/submit-job-request where hiring managers submit job details through Webflow forms, automatically generating JobOrder records in Bullhorn via Zapier or Make integration to PUT /entity/JobOrder
  • Candidate self-service portals on Webflow with Bullhorn data: Embed Bullhorn-hosted status dashboards at yourcompany.com/candidates/portal using iframe embed codes from Bullhorn support, allowing applicants to view interview schedules, update contact information, and track application progress

Frequently asked questions

  • Webflow supports two authentication methods:

    1. OAuth 2.0: For applications requiring user authorization through the OAuth 2.0 authorization code flow
    2. Site API Tokens: Scoped permissions for server-to-server integrations, generated in Site Settings → Integrations → API Access

    All requests require a Bearer token in the Authorization header:

    Authorization: Bearer YOUR_TOKEN
    

    Required OAuth Scopes (depending on use case):

    • cms:read, cms:write - CMS collection operations
    • sites:write - Webhook creation
    • forms:read - Form data access

    Bullhorn uses a two-phase OAuth 2.0 authentication flow:

    Phase 1: OAuth Access Token

    • Endpoint: https://auth.bullhornstaffing.com/oauth/authorize
    • Parameters: client_id, response_type=code, redirect_uri, state
    • Exchange authorization code via POST to https://auth.bullhornstaffing.com/oauth/token
    • Returns: access_token and refresh_token
    • Critical: Access tokens expire after 60 minutes and must be refreshed automatically

    Phase 2: Session Token Exchange

    • POST to https://rest.bullhornstaffing.com/rest-services/login
    • Exchange access token for BhRestToken session token
    • Returns: BhRestToken and data-center-specific restUrl

    All subsequent API requests include the session token via:

    • Query parameter: ?BhRestToken={token}
    • Header: BhRestToken: {token}
    • Cookie
  • Yes, both Bullhorn and Webflow support webhook-based real-time synchronization. Webflow can be configured with webhooks for form_submission, CMS item changes, and collection updates. Bullhorn supports event-driven workflows and webhooks for candidate records, job orders, and placements. Real-time sync is achieved by configuring webhooks in both platforms to point to a middleware service that handles data transformation and routing.

  • No native integration exists between these platforms, so you must build custom connections or use third-party tools. Bullhorn uses case-sensitive URLs and data-center-specific endpoints that vary by account, described in the REST API documentation. All Bullhorn API requests must include the BhRestToken session token obtained through OAuth 2.0 authentication.

    Both APIs have usage limits that require request queuing and retry logic. Webflow's rate limits documentation explains request limits per minute (60 for standard accounts, 120 for paid plans), response headers for tracking remaining requests (X-RateLimit-Limit, X-RateLimit-Remaining), and HTTP 429 handling. Bullhorn's API usage limits guide details concurrent session limits, calls per minute (700 for Corporate, 1,500 for Enterprise), and daily API call quotas that vary by subscription tier.

  • Register a webhook with POST /sites/{site_id}/webhooks specifying form_submission as the trigger type. Webflow's webhook documentation shows the complete JSON payload structure including triggerType, form field data in payload.data, schema information, and timestamps—Webflow sends form data to your endpoint immediately when candidates submit applications. Note: Webflow will retry webhook delivery up to 3 times if your endpoint returns a non-200 response, and will auto-deactivate the webhook after repeated failures.

    Parse the webhook payload and transform fields to match Bullhorn's candidate schema. Create candidates using Bullhorn's Candidate entity reference via PUT /entity/Candidate endpoint with fields like firstName, lastName, email, and phone. Note that Bullhorn uses PUT (not POST) for create operations.

  • Yes, Bullhorn provides iframe-based widgets for job boards, application forms, and candidate portals. The iframe integration framework documents configuration parameters (height, width, border styling) and authentication methods via Bullhorn Identity SSO for secure candidate portal access.

    Contact Bullhorn support to obtain account-specific embed codes. Once you have the iframe HTML, add an Embed element to your Webflow page—this guide walks through dragging the Embed component from the Add panel, pasting code into the embed field, and previewing functionality in the Designer. Apply responsive iframe patterns using CSS positioning techniques to maintain proper proportions on mobile devices.

    Embedded widgets display Bullhorn-hosted content without requiring API integration, making them suitable for teams that need public job boards or application forms without custom development. These widgets can be embedded on Webflow pages using the Embed element by obtaining account-specific embed codes from Bullhorn support and pasting them into Webflow's embed component.

Bullhorn
Bullhorn
Joined in

Category

Job board

Description

Bullhorn is a staffing and recruitment platform providing applicant tracking and CRM capabilities.

Install app

This integration page is provided for informational and convenience purposes only.


Other Job board integrations

Other Job board integrations

Workable

Workable

Display live job openings on your Webflow site and sync candidate applications to Workable with this integration guide.

Job board
Learn more
Teamtailor

Teamtailor

Connect Teamtailor with Webflow to display current job openings and capture applications.

Job board
Learn more
Recruitee

Recruitee

Integrate Recruitee with Webflow to display live job postings on your site, capture applications through Webflow forms, and sync candidate data to your recruiting pipeline.

Job board
Learn more
Polymer

Polymer

Connect Polymer with Webflow to build custom job boards that sync automatically with your hiring workflow.

Job board
Learn more

Related integrations

No items found.

Get started for free

Try Webflow for as long as you like with our free Starter plan. Purchase a paid Site plan to publish, host, and unlock additional features.

Get started — it’s free