ATS Bullhorn
• ATS connector module 31 Jul 2026 by Support Team

Your recruiters work in Bullhorn. That is where the jobs live, where the candidates live, where follow-up is tracked. And next to it sits your careers site, where the same job has to be entered a second time and where applications come in that somebody retypes into Bullhorn. Every job you maintain in two places drifts apart sooner or later.

The Bullhorn connection removes that duplicate work. Booston reads your Job Orders straight out of Bullhorn and puts them online; applications travel the other way and are created in Bullhorn as a Candidate with resume, cover letter and a JobSubmission. The end goal: Bullhorn stays the place where you work, and everything that changes there is on your site without retyping — with the applicants landing neatly back in Bullhorn.

After this article you will know exactly which data moves in each direction, what the connection does and does not do yet, how the ATS connector setup screens are put together and what you need to supply to go live. You will find the settings via Settings → Connect → ATS.

Before you start

  • You need the Manager role to reach Settings → Connect. With the Recruiter role you will not see this screen.
  • You need an API account in Bullhorn: a username with password and an OAuth client id with client secret. You request those from Bullhorn Support; allow a few working days.
  • We do the configuring. You supply the details, we fill them in, switch the connection on and walk through the first import with you.
  • Decide up front which Job Orders may go online. You record that in the qualifier — see Setting up the connection: the setup screen step by step.

What the connection gets you

Briefly, because the rest of this article is about day-to-day practice:

  • No double entry. A Job Order set to publish in Bullhorn is online within ten to twenty minutes — including texts, location, publication dates and attributes.
  • No retyped applicants. Every application ends up as a Candidate in Bullhorn, with the resume and cover letter attached as files and a JobSubmission on the right Job Order.
  • More out of your resumes. Booston has Bullhorn parse the resume and writes education, work history and skills straight onto the candidate.
  • Source visible in Bullhorn. The source of the application travels along on the JobSubmission, so you can see in Bullhorn which channel a candidate came in through.
  • One single source of truth. What is in Bullhorn wins. You never have to work out which system is right.

Which data moves in each direction

The connection is not a copy of Bullhorn. It is a set of agreed flows, each with its own direction.

Flow Direction What travels along
Job Orders Bullhorn → Booston Title, public description, location, publication dates, salary and every linked attribute.
Recruiters Bullhorn → Booston The owner of the Job Order, with name, email, phone, mobile and occupation.
Attribute values Bullhorn → Booston The option lists behind your candidate attributes, from Bullhorn's field settings.
Candidate records Booston → Bullhorn Personal details, address, answers to open questions, resume, cover letter and the source.
JobSubmissions Booston → Bullhorn The link between the candidate and the Job Order they applied to.

Two things are worth knowing here:

  • Bullhorn owns the jobs. If you change a linked field in Booston, it is overwritten with the Bullhorn value at the next synchronisation.
  • Booston owns the applicants. An application originates in Booston and is then created in Bullhorn.

Job Orders from Bullhorn to Booston

Every round, Booston requests your Job Orders using the qualifier you agreed on and processes the difference with the previous run. The default is isOpen:true, so all open Job Orders.

Per Job Order this travels along:

  • The public description (publicDescription) and the title.
  • The address: street, postcode, city, region and country. Booston looks up the coordinates itself, so the job appears on the map and is found when searching by distance.
  • The publication dates: dateLastPublished (or otherwise dateAdded) as the start date and dateEnd as the end date.
  • The salary range, which Booston records as a minimum and a maximum. Bullhorn supplies amounts in euros.
  • The attributes you have set up, such as employmentType, educationDegree, hoursPerWeek, clientCorporation and your own custom text fields.
  • The owner of the Job Order, who becomes the recruiter on the job.

If Bullhorn stops supplying a Job Order, Booston pauses the job. The job goes offline but stays in place, including applications, statistics and campaign history. If it returns from Bullhorn later, the same job becomes active again.

Applicants from Booston to Bullhorn

Everything that comes in through Booston goes to Bullhorn: applications for a job, open applications and candidates you create yourself. This happens in four steps, right after the candidate completes the form.

  1. Booston searches Bullhorn by email address to see whether the candidate already exists. If so, that Candidate is updated instead of a second one being created.
  2. The resume and the cover letter are attached to the Candidate as files, with file types CV and Motivatiebrief.
  3. The resume goes through Bullhorn's resume parser. Education arrives as Candidate Education, work history as Candidate Work History, and recognised skills are matched against your skill list in Bullhorn and set as primary skills.
  4. A JobSubmission is created between the candidate and the Job Order, with status New Lead. If one already existed, Booston skips it — so you never get duplicate submissions.

You decide which fields travel along. Only candidate attributes that are active and set to be filled automatically from the ATS are exported. In practice that means:

What the candidate fills in Where it lands in Bullhorn
First name, last name, email The standard Candidate fields
Phone and mobile phone and mobile
Date of birth dateOfBirth
Street, house number, city, postcode The Candidate address block
Driving licence and own transport The custom fields configured for those
Answers to open questions 1, 2 and 3 Three custom text blocks
Short introduction description
The source of the application source on the JobSubmission

Attribute values from Bullhorn

Besides the jobs, Booston fetches the option lists behind your candidate attributes from Bullhorn's field settings every night. Add a value in Bullhorn to, say, an education level, and it is in Booston the next day — with the same internal code, so an export always lands on the right value. Values that disappear from Bullhorn are switched off in Booston.

What the connection does not do yet

Fair is fair: three things other ATS connections do have are not in the Bullhorn connection yet.

  • No real-time updates. Bullhorn does not signal Booston when something changes. The connection works on a schedule; see How quickly a change comes through.
  • No status and score synchronisation. If a recruiter rejects a candidate in Bullhorn or gives a rating, that does not come back into Booston. The Candidate review score and status import switch is there, but does nothing for Bullhorn yet.
  • No publication url back. The url the job is published on is not written into the Job Order. Postback job URL export therefore has no effect for Bullhorn either.

Setting up the connection: the setup screen step by step

The ATS connector is a five-step wizard. As long as the connection is not live yet, you walk through it from left to right: Select ATS → Main settings → Functionality → Custom mappings → Activation. The Custom mappings step only appears for ATSes that need extra field mappings, and Bullhorn is one of them.

Step 1: Select ATS

A single dropdown with every ATS Booston supports, each with its own logo. Pick Bullhorn. From that moment the screen knows which fields to show in the following steps — the wizard differs per ATS.

Step 2: Main settings

This is the connection itself. Bullhorn uses OAuth, which is why four credentials are needed instead of two.

Field What you enter Where it comes from
Username The API user in Bullhorn Bullhorn Support
Password That user's password Bullhorn Support
Client id The OAuth client id Bullhorn Support
Client secret The matching secret Bullhorn Support
Url The REST address of your Bullhorn environment Bullhorn Support
Fields Extra Bullhorn fields you want to fetch You, together with us
ATS qualifier Which Job Orders take part You
Multilingual On if you work in more than one language You

Two fields deserve extra attention.

ATS qualifier determines which Job Orders Booston fetches. The default is isOpen:true: every open Job Order. If you only want the jobs you actually publish, it becomes something like isOpen:true AND isPublic:1. You can put anything here that Bullhorn also accepts in its own search, so filtering on a status, a label or a department works too.

Fields is for the cases where you keep something in a custom Bullhorn field that Booston does not pick up by default. Booston already fetches a fixed set of fields — title, texts, address, dates, salary, hours, education level, employment type, client corporation and a number of custom text fields. If your data point falls outside that, you add the field name here, and we can then link it to an attribute.

Step 3: Functionality

Here you switch each flow on or off. For Bullhorn you only see the Sync block; the real-time block does not appear, because Bullhorn does not send webhooks to Booston.

Setting What it does Advice for Bullhorn
Job, job attribute and recruiter import Fetches Job Orders, attributes and recruiters. On. Without it nothing appears on your site.
Skip job import on zero results Skips a round if Bullhorn unexpectedly returns zero Job Orders. On. Stops an outage at Bullhorn taking your whole job offering offline.
Candidate export Creates applicants in Bullhorn. On.
Candidate export retry Retries a failed export every hour. On.
Candidate review score and status import Fetches status and rating from the ATS. Does nothing for Bullhorn yet.
Postback job URL export Writes the publication url back to the ATS. Does nothing for Bullhorn yet.

Step 4: Custom mappings

For Bullhorn this is a single field: the source set on a new candidate. Enter something like Applied directly and every application without a recognisable campaign source gets that value on the JobSubmission. If a candidate does come in through a campaign, the real source wins and you can see in Bullhorn where the application came from.

Step 5: Activation

The last step switches the connection on. There is a red warning at the top for good reason: the four switches here affect your whole environment, including your campaigns and your website.

  • Apply default attribute settings for this ATS — prepares the standard attribute setup for Bullhorn. On for a new connection, off if you have already configured your attributes yourself.
  • Purge existing jobs and reload from ATS — throws away the existing jobs and fetches everything again.
  • Purge existing job attribute values and reload from ATS — empties the attribute values and refills them from Bullhorn.
  • Purge all recruiters and reload from ATS — replaces your recruiters with the owners from Bullhorn.

Then click Save. From that moment Booston starts fetching your Job Orders.

The screen once the connection is running

As soon as the connection is live, Settings → Connect → ATS turns from a wizard into a dashboard. You then see two cards.

At the top the ATS card with the message You are connected and a Disconnect button. Below it the Settings card, with the same blocks as in the wizard, now as collapsible sections:

  • Main Settings — the connection and the qualifier.
  • Ats Functions — the switches per flow.
  • Custom mappings — the source for new candidates.

If you change anything in one of those blocks, you save it with the Save button at the bottom of the Settings card.

How quickly a change comes through

Bullhorn does not signal a change, so Booston asks at fixed moments. This is the rhythm:

When What happens
Every ten minutes Booston requests your Job Orders and processes only what has changed.
Immediately on an application The candidate goes straight to Bullhorn, not at the next round.
Every hour Applications whose export failed are retried, up to three times.
Every night around 02:10 A full synchronisation that fetches everything again, including what looked unchanged.
Every night around 02:34 The attribute values are refreshed from Bullhorn's field settings.

In practice that means a change in Bullhorn is usually on your site within ten to twenty minutes. Something only happens if something actually changed — Booston compares each round with the previous one, which spares both your environment and your Bullhorn API.

Attributes: what Bullhorn fills and what you manage

Attributes are the fields you describe jobs and candidates with: employment type, hours, education level, region, driving licence. In a connected Bullhorn environment those are largely filled automatically.

For each attribute you decide where the value comes from:

Setting What happens When do you choose this
On The value comes from Bullhorn and is overwritten at every synchronisation. Changes in Booston disappear. The field is properly maintained in Bullhorn and you want one source of truth.
Off Booston leaves the field alone. You fill it in Booston and it stays. Bullhorn does not have the field, or you only use it for your careers site.

Two more things that are specific to Bullhorn:

  • The attribute values come from Bullhorn too. Booston reads the option lists from Bullhorn's field settings, including the internal codes. That way an export always lands on the right value and not on a label that happens to read the same.
  • Custom text fields can simply be linked. If you keep something like industry or work location in a custom Bullhorn field, we add it to the fetch set via Fields and link it to an attribute in Booston.

What you cannot set yourself

Part of the connection deliberately runs through us, because a wrong value here can take your entire job offering offline.

  • Switching the connection on or off. The Disconnect button is on screen, but do not use it without checking first: your jobs stop being updated.
  • Changing credentials. If anything changes about your API user, client id or secret, let us know — we will update it and test that the connection still works.
  • Adjusting the qualifier. Tell us which Job Orders should take part; we set up the right query and check what comes in.
  • Linking a new Bullhorn field. Pass on the field name and we add it to Fields and link it to the right attribute.
  • Filling in custom mappings. We align the source for new candidates with your reporting in Bullhorn.
  • Starting a manual, full synchronisation. Handy after a big clean-up in Bullhorn.

Everything above takes one email to support@booston.io.

Troubleshooting

A new Job Order is not in Booston

Usually it is the Job Order itself rather than the connection. Check in Bullhorn whether it matches the qualifier — with the default setting it has to be open — and whether the publication dates are right. If that all checks out and the job is still not in Booston after twenty minutes, report it with the Job Order number.

A job is still online while it is closed in Bullhorn

The next synchronisation will pause it. Wait one round. If it stays up, check whether the Job Order in Bullhorn really falls outside the qualifier.

A change to the job text does not come through

Two possibilities. Either the synchronisation still has to run: give it ten to twenty minutes. Or the attribute in question does not sync with the ATS, so Booston leaves the field alone. You check that under Settings → Attributes.

A candidate is in Booston but not in Bullhorn

The export got stuck, for example because Bullhorn refused a field. The candidate is not lost: they are complete in Booston. Report it with the candidate's name and the job, and we will push it through.

The resume is on the candidate, but education and work history are not

Bullhorn's resume parser could not read the file. That happens with scanned PDFs and with resumes that are really an image. The candidate and the resume file were created normally; only the automatic enrichment was skipped.

A field I change in Booston is back the next day

That attribute comes from Bullhorn and your ATS wins. Change the value in Bullhorn, or have the attribute unlinked if you want to manage the field yourself from now on.

Suddenly no jobs come in at all

Often that is the connection: a changed password or a revoked client secret on the Bullhorn side. We see it on our end and get in touch, but a heads-up via support@booston.io speeds things up.

Frequently asked questions

Can I create a job in Booston while Bullhorn is connected?

Yes. Jobs you create in Booston yourself stay yours and are not overwritten. They are simply not written back to Bullhorn — that flow runs one way.

What happens if the same person applies twice?

Booston recognises the candidate by email address and updates the existing Candidate instead of creating a second one. For the second job a new JobSubmission is added.

Does Booston get to see my whole candidate database?

No. Booston creates candidates and searches by email address to see whether someone already exists. Candidates who were already in Bullhorn and do not apply through Booston stay there.

Does the connection put load on my Bullhorn environment?

Barely. Booston requests the Job Orders and compares them with the previous round; if nothing changed, nothing further happens.

Can I use multilingual jobs?

Yes, if your environment is set to multilingual. Bullhorn supplies the text in one language; you manage the other languages in Booston.

Do I have to set up my attributes again if I connect?

No. When connecting we lay Bullhorn's fields next to Booston's. What matches, we link; what Bullhorn does not supply, you keep managing yourself.

Coming soon

  • The ATS connection as a step in guided setup. New customers will configure their ATS as a fixed step while setting up their environment, using the same screens as above. As soon as this is live, we will update this article.
  • A clearer message when the connection drops. When Bullhorn refuses the login, we want that to show up immediately and recognisably instead of as a silent failure. As soon as this is live, we will update this article.

Need help?

Cannot work it out, or unsure whether something is down to Bullhorn or to the connection? Email support@booston.io or call 085 0044 215 and mention:

  • the name of your environment;
  • what you are trying to achieve;
  • the message you see, if there is an error.

Would you rather walk through the settings together? Book a free 30-minute online demo — then we will go through it with you. Job Done!

Latest News

Hot off the press!
blog-image
ATS Bullhorn
• ATS connector module 31 Jul 2026 by Support Team
blog-image
Team members module
• Jobs & Candidate module 31 Jul 2026 by Support Team
blog-image
ATS Forceflow
• ATS connector module 31 Jul 2026 by Thomas Evraets
blog-image
Meta job ads
• Meta job ads module 31 Jul 2026 by Support Team

Want to know more? Book a free online demo. You could not ask for a better start.

We will walk you through the tool step by step and show you all the features that matter to you. Indeed, we do not need more than 30 minutes. It is that simple. Job done!

We use cookies on this website to facilitate its use, to improve performance and user experience and to increase the relevance of the offer. Click on agree to indicate that you agree with our privacy statement.