# Bullhorn integration

> Staffing and recruiting CRM platform API for managing candidates, job orders, placements, client contacts, and the full recruitment lifecycle

- Authentication: oauth2

## Tools (31)

- **Add To-Many Association**: Add to-many associations between entities, such as adding skills to a candidate or candidates to a tearsheet
- **Authenticate and Get Session**: Exchange the platform-provided OAuth access token for a BhRestToken and restUrl (the REST session every other operation uses)
- **Create Entity**: Create a new entity such as a Candidate, JobOrder, ClientContact, Placement, Note, or other supported type
- **Create Event Subscription**: Register a named event subscription that queues INSERTED/UPDATED/DELETED events for chosen entity types, ready to be polled
- **Create Job Submission**: Submit a candidate for a job order by creating a JobSubmission entity and optionally promoting it to submitted status
- **Delete Entity**: Delete an entity by ID (hard delete or soft delete depending on entity type)
- **Delete Event Subscription**: Delete a registered event subscription and discard its queued events
- **Delete File Attachment**: Delete a file attachment from an entity by file ID
- **Download File**: Download a file attachment from an entity by file ID, returned as base64-encoded content
- **FastFind**: Search across multiple entity types simultaneously by name, email, phone number, or ID
- **Get All Corp Notes**: Retrieve all notes associated with a specific client corporation
- **Get Corporation Settings**: Retrieve corporation and user configuration settings by name (career portal name, private label id, mailboxes, action lists, etc.)
- **Get Department Entities**: Retrieve entities belonging to the current user's departments — supports Candidates, ClientContacts, Placements, and Notes
- **Get Edit History**: Retrieve an entity's audit trail — who changed which fields and when — via the {Entity}EditHistory and {Entity}EditHistoryFieldChange meta-entities
- **Get Entitlements**: Check the current user's permissions (create, read, update, delete) for a specific entity type
- **Get Entity by ID**: Retrieve one or more entities by their IDs, with support for nested field selection
- **Get Entity Metadata**: Retrieve field definitions and metadata for an entity type, including field names, types, required status, and available options
- **Get My Entities**: Retrieve entities owned by the current authenticated user — supports Candidates, ClientContacts, Placements, and Notes
- **Get Options**: Retrieve value/label pairs for lookup fields like skills, categories, business sectors, countries, and states
- **Get Subscription Events**: Poll a registered event subscription to retrieve queued entity change events (the poll-based change feed)
- **List File Attachments**: List all files attached to an entity, with metadata including file size, date added, and content type
- **Mass Update Entities**: Update multiple entities of the same type in a single request — update fields, set to-one relations, or add/remove to-many associations in bulk
- **Parse Resume to Candidate**: Parse a resume file and extract structured candidate data including education and work history
- **Parse Resume to HR-XML**: Parse a resume into standardized HR-XML instead of an unsaved Candidate object
- **Ping Session**: Check if the current BhRestToken session is still valid and get its expiration time
- **Query Entities**: Query entities using JPQL (SQL-like) syntax for structured filtering, sorting, and pagination
- **Remove To-Many Association**: Remove to-many associations between entities, such as removing skills from a candidate
- **Search Entities**: Search entities using Lucene query syntax — the primary way to search Candidates, JobOrders, and other indexed entities
- **Update Entity**: Update an existing entity's fields by ID
- **Update File Attachment**: Replace or update an existing file attachment on an entity
- **Upload File Attachment**: Attach a file (resume, document, etc.) to an entity such as a Candidate, JobOrder, or Placement

## Triggers (16)

- **New Candidate in Bullhorn**: Triggers when a new candidate is created in Bullhorn.
- **Updated Candidate in Bullhorn**: Triggers when a candidate is updated in Bullhorn.
- **New Client Contact in Bullhorn**: Triggers when a new client contact is created in Bullhorn.
- **Updated Client Contact in Bullhorn**: Triggers when a client contact is updated in Bullhorn.
- **New Company in Bullhorn**: Triggers when a new client corporation (company) is created in Bullhorn.
- **New Lead in Bullhorn**: Triggers when a new lead is created in Bullhorn.
- **Updated Lead in Bullhorn**: Triggers when a lead is updated in Bullhorn.
- **New Opportunity in Bullhorn**: Triggers when a new opportunity is created in Bullhorn.
- **Updated Opportunity in Bullhorn**: Triggers when an opportunity is updated in Bullhorn.
- **New Job Order in Bullhorn**: Triggers when a new job order (open position) is created in Bullhorn.
- **Updated Job Order in Bullhorn**: Triggers when a job order is updated in Bullhorn.
- **New Job Submission in Bullhorn**: Triggers when a candidate is submitted to a job order in Bullhorn.
- **New Placement in Bullhorn**: Triggers when a new placement is created in Bullhorn (a candidate has been placed in a job).
- **New Task in Bullhorn**: Triggers when a new task is created in Bullhorn.
- **New Note in Bullhorn**: Triggers when a new note is created in Bullhorn.
- **New Appointment in Bullhorn**: Triggers when a new appointment is scheduled in Bullhorn.

## Related prompts

- [Morning shortlist: match Bullhorn candidates to new job orders](https://www.generalinput.com/prompts/morning-shortlist-match-bullhorn-candidates-to-new-job-orders.md)
- [Daily Bullhorn pipeline briefing in your Slack DM](https://www.generalinput.com/prompts/daily-bullhorn-pipeline-briefing-in-your-slack-dm.md)
- [Daily Bullhorn placements to billing sheet and Slack](https://www.generalinput.com/prompts/daily-bullhorn-placements-to-billing-sheet-and-slack.md)
- [Auto-send Bullhorn offer letters through Docusign each morning](https://www.generalinput.com/prompts/auto-send-bullhorn-offer-letters-through-docusign-each-morning.md)
- [Weekly recruiter sourcing pipeline into Bullhorn](https://www.generalinput.com/prompts/weekly-recruiter-sourcing-pipeline-into-bullhorn.md)

Connect Bullhorn in General Input: https://www.generalinput.com/apps/bullhorn