FlowRunner
PricingContact
Theme
Start Free

Bullhorn

HR

Connect AI agents to Bullhorn, the staffing industry ATS and CRM. Agents search and retrieve candidates, create candidate records from lead sources, look up open job orders, and run ad-hoc queries against any Bullhorn entity over the REST session.

6 actions Session available
Bullhorn website ↗ Platform Documentation ↗ Capability data verified 2026-07-28
A new lead lands from a web form, a job board, or an inbound resume
Search Candidates checks the index for an existing profile matched on email and name
Query Entity confirms the match with an exact, real-time lookup, since the search index can lag recent writes
When the match is ambiguous, the recruiter decides whether this is a returning candidate or a genuinely new one
Create Candidate writes the new record with core details plus additional fields from the source
Search Job Orders finds open roles whose requirements fit the candidate's skill set
The owning recruiter gets the new candidate and the suggested job orders in one message

What This Integration Enables

Bullhorn is where staffing firms keep their real inventory: candidates, job orders, placements, and the relationships between them. The firms that win are the ones whose recruiters spend their hours on conversations, not on keying records and running lookups. This connector puts both of Bullhorn's data paths in agents' hands: the Lucene search index for fast candidate and job order discovery, and Query Entity for exact, real-time answers against any entity in the system, Candidate, JobOrder, ClientContact, Placement, JobSubmission, Note and beyond. - Turn web forms, resumes, and lead sources into Candidate records with dedup checks first - Sweep open job orders against candidate skills and hand recruiters ranked shortlists - Run exact queries by ID, status, date, or relationship across any Bullhorn entity - Sync placements and pipeline data into spreadsheets and dashboards on schedule - Alert account teams the moment new requisitions open Staffing is a speed business built on relationship data, which makes it a strange fit for both pure automation and pure manual work. Automate carelessly and the database fills with duplicates that fracture the relationship history; stay manual and the fastest candidates sign elsewhere while the resume sits in a queue. FlowRunner's model resolves the tension: agents run the searches, sweeps, and syncs at machine speed, and the [human-in-the-loop](/concepts/human-in-the-loop) gate hands the identity judgments to the recruiter who actually knows the people. The ATS gets faster without getting dirtier.

Without FlowRunner

Leads queue behind data entry Inbound resumes wait for someone to key them into Bullhorn, and the fast candidates are gone by then
Matching is memory-bound Which open job orders fit which candidates depends on what each recruiter happens to remember
Reporting means asking the Bullhorn admin Placement and pipeline questions become tickets for whoever knows the entity model

With FlowRunner

Leads become records in minutes Web forms and lead sources flow into Candidate records with duplicates caught first
Matching runs continuously Agents sweep open job orders against the candidate index and hand recruiters shortlists
Any entity is a query away Placements, submissions, and contacts pull straight into sheets and dashboards on schedule

Use Case Scenarios

The morning shortlist for every open role

Overnight, an agent runs Search Job Orders for "isOpen:true AND status:Accepting Candidates", then for each role runs Search Candidates against the required skills and status. Each recruiter wakes to a direct message in [Slack](/integrations/slack): their open roles, the top matching profiles, and the candidate IDs ready for one-click review via Get Candidate. The matching that used to happen only when a recruiter had a free hour now happens every night for every role.

Lead sources that feed the ATS without a typing queue

A candidate submits through the website's [Typeform](/integrations/typeform) intake. The agent searches for an existing record, confirms with Query Entity against live data, and calls Create Candidate with name, email, phone, status, and source details in additional fields. Ambiguous matches, same name, different email, go to the recruiter instead of guessing. The candidate gets a follow-up while their interest is hot, and the database gains a record instead of a duplicate.

Placement reporting straight from the entity model

Every Monday, Query Entity pulls Placements with "dateAdded>" the prior week's epoch, joined by fields for candidate, job order, and client corporation. Rows land in [Google Sheets](/integrations/google-sheets) and the leadership digest goes out by email with placements by client and by recruiter. When Search Job Orders surfaces newly opened requisitions during the week, the account team hears about it from [Gmail](/integrations/gmail) the same hour, not at the Friday pipeline meeting.

Human-in-Loop Highlight

Create Candidate writes a person into the firm's system of record, and in staffing that record is the product: it carries the candidate's identity into every future search, submission, and placement. Created carelessly, it becomes a duplicate that splits a candidate's history in two, one record holding the placements, the other collecting the new notes, and recruiters lose the relationship context that wins deals. So the agent's dedup pass gates the write. Clean misses create automatically. But when Search Candidates returns a near-match, same name at a different agency email, or an old record with a stale phone number, the agent stops and shows the recruiter both sides: the inbound lead and the existing record with its placement history from Query Entity. The recruiter says "same person, update the old record" or "new candidate, create." One judgment call, made by someone who may literally know the person, and the database stays a single source of truth instead of a pile of split histories.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via email
Human decides
Agent resumes with decision

Agent Capabilities

6 actions

Candidates

3
  • Search Candidates Searches the Candidate index with Lucene syntax, matching on name, email, status, skill set, and any indexed field. Fast, but the index can lag recent writes; exact checks belong to Query Entity.
  • Get Candidate Retrieves a single Candidate by internal Bullhorn ID with the requested fields. The detail pull behind shortlist reviews and enrichment steps.
  • Create Candidate Creates a Candidate record with core details plus an additional-fields object for any writable field. Returns the new ID. To-many associations attach in a follow-up call. The write this page's human gate governs when matches are ambiguous.

Job Orders

2
  • Search Job Orders Searches the JobOrder index with Lucene syntax, filtering on title, open status, and acceptance state. The discovery step behind matching sweeps and new-requisition alerts.
  • Get Job Order Retrieves a single JobOrder by ID with the requested fields. Used to pull full role requirements before matching and outreach.

Queries

1
  • Query Entity Runs a SQL-style WHERE clause against any Bullhorn entity, Candidate, JobOrder, ClientContact, ClientCorporation, Placement, JobSubmission, Note, and more, returning exact, real-time results. The reporting and verification workhorse that reaches everything the dedicated actions do not.

Frequently Asked Questions

What can FlowRunner do with Bullhorn?

FlowRunner agents can run Search Candidates, Get Candidate, and Create Candidate in Bullhorn, plus 3 more actions.

Does connecting Bullhorn to FlowRunner require OAuth?

No. Bullhorn connects to FlowRunner with session-based authentication, no OAuth flow required.

Can Bullhorn trigger a FlowRunner workflow automatically?

Bullhorn doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Bullhorn

$100 in credits. No card required. Connect in minutes.