Runs the real Bullhorn OAuth2 + REST login flow (authorization code → access token → BhRestToken). The actual calls are made by the local Node server on your machine, not by your browser — so there's no CORS or iframe/X-Frame-Options blocking.
Not connected yet — set your Data Center and Credentials below, then Test Login
✓ Logged out.
Logout call didn't confirm.
Connect
Two steps: pick your Bullhorn data center, then supply credentials and Test Login. Once connected, the banner above turns green and the Tools tabs on the right come alive.
1. Data Center / Swimlane
▼
Not sure which CLS# is yours?
It's part of the URL you use to log into Bullhorn itself — look at your browser's address bar after logging into the Bullhorn web app: https://cls<NN>.bullhornstaffing.com/.... The number after "cls" is your cluster, e.g. cls33 → CLS33. If you're not sure, ask whoever manages your Bullhorn instance.
2. Credentials
▼
Already have a BhRestToken and restUrl — e.g. copied from a DevTools Network tab call? Skip to Quick Login below instead of the full OAuth flow.
Scans whatever you paste for a BhRestToken and a Bullhorn restUrl (https://rest-*.bullhornstaffing.com/rest-services/.../) and verifies them with a lightweight ping call — no OAuth flow, since it's reusing a token you already have rather than obtaining a new one. Once verified, that token and restUrl become your active session, used for every tool call below.
Uses the Data Center / Swimlane picked in card 1 above, plus the corp token and BhRestToken you enter here.
Builds the restUrl from your swimlane + corp token (https://rest-<dc>.bullhornstaffing.com/rest-services/<corpToken>/) and verifies it and the BhRestToken with a lightweight ping call — no OAuth flow, since it's reusing a token you already have rather than obtaining a new one. Once verified, that token and restUrl become your active session, used for every tool call below.
Submitted to your own local server only (localhost) — which then talks to Bullhorn directly.
You're in Quick Login mode — use the Quick Login button above instead of Test Login here.
✓ Credentials are valid.
✗ Login failed.
Tools
Once you’re connected (see the session bar above), use these to explore and test the API.
Explore Bullhorn Entities
Browse what's available on your Bullhorn instance instead of memorizing entity names — pick a category, pick an entity, and its real fields load straight from your instance's /meta endpoint. See the entity reference for the full official list.
·
—
—
Loading fields…
assoc fields link to another entity (TO-ONE/TO-MANY). Leave everything unchecked to just get every field back.
Checked fields become the fields= parameter on the request below — run a call, then click View API call to see exactly which fields were requested and what came back for each record.
Powers the /search endpoint — only works on entities Bullhorn indexes for search (Candidate, JobOrder, ClientContact, etc). Tip: checking a field above drops fieldName: in here ready to fill in — check a second one and it's chained with AND.
Powers the /query endpoint — SQL-style where clause, works on any entity. Leave blank to match everything.
Runs a plain /query with no filter, newest first — a quick way to see real sample records for an entity you don't know well yet.
The URL and curl command above include your live BhRestToken — treat them like a password. They'll stop working once your session expires or you log out.
Click any record below to expand it and see its full field values.
Pulls the full field list from /meta/{EntityType} once per session per record type (Bullhorn deprecated fields=* directly on /entity), then fetches the record with that list. Reuses the BhRestToken from your active session above — it will NOT refresh automatically. If it expires, reconnect above (Test Login or Quick Login).
By default this matches everything before the @ (e.g. searching jane.doe@example.com also catches jane.doe@othercompany.com). Check the box above to require the full address to match exactly instead.
Searches the Lucene index (/search), which is the only way to find soft-deleted records — a direct ID lookup won't show them. Results include both active and deleted matches, clearly flagged.
✗ Search failed.
Batch Record Lookup
Looks up each ID one at a time using the same field list as single-record lookup above, and reuses your current session — it will NOT refresh an expired token.
✗ Batch lookup couldn't run.
Status
ID
Name
Detail
Complete Custom API Call Builder
Build and fire any Bullhorn REST call using your active session — entity CRUD, search, query, meta, associations, or a fully custom path. See the entity reference for entity/field names, and the REST API docs for endpoint behavior.
Sent as a raw multipart/form-data attachment — matches how Bullhorn's own examples call this endpoint (e.g. -F "file=@resume.pdf"). Nothing is uploaded until you click Send.
The input file's format — convertToHtml always returns HTML back.
Bullhorn's category for this attachment.
Required by this endpoint (Bullhorn rejects the call without it) — Portfolio is the value Bullhorn's own docs use.
Auto-filled from the call type above — edit freely for anything not covered (files, options, event subscriptions…).
Runs through your local server using the active session's BhRestToken — nothing is stored server-side beyond the in-memory session, and nothing is logged anywhere but your own terminal.
✗ Request couldn't be built or sent.
Copy this call as code — paste it straight into your own project:
Includes your live BhRestToken — treat it like a password, and swap it for an environment variable before this code goes anywhere permanent.