# Bullhorn MCP

> Bullhorn MCP manages your entire recruitment lifecycle within any AI client. It lets you retrieve, create, and update core CRM data—like candidate profiles, open job orders, client contacts, and corporate notes—using natural conversation. Stop switching between tabs; manage complex ATS workflows directly through your agent.

## Overview
- **Category:** human-resources
- **Price:** Free
- **Tags:** recruitment, ats, candidate-tracking, crm, staffing

## Description

This MCP connects your Bullhorn system to your AI client so you can handle the entire recruitment pipeline without ever leaving your chat window. You'll use this to manage everything from candidate profiles and job orders to tracking specific notes on a company account.

Your agent handles complex tasks like finding all contacts associated with a major client or pulling every note logged against a corporation, letting you track history instantly. If you’re already using Vinkius as your catalog for dozens of services, adding Bullhorn means all your HR tech is connected in one place. You just talk to your AI client, and it performs the necessary reads, writes, and updates directly into your ATS.

## Tools

### create_entity
This tool creates a brand new Bullhorn entity record with provided properties.

### create_event_subscription
It sets up a continuous feed to receive event notifications from your Bullhorn account.

### delete_entity
This tool permanently removes an existing Bullhorn entity record.

### delete_event_subscription
It stops the continuous event feed for a specific subscription you set up.

### find_data_hub_records
This searches and pulls records from the Bullhorn Data Hub based on criteria you supply.

### get_all_corp_notes
It fetches every single note or communication record tied to a specific client corporation ID.

### get_associations
This retrieves associated entity IDs for several parent entities, useful for bulk data requests.

### get_entities
It pulls multiple Bullhorn entities when you provide a list of specific IDs to check.

### get_entitlements
This checks and retrieves the data access permissions assigned to your current user account.

### get_entity
It pulls all fields for a single Bullhorn entity, such as a candidate or job order, using its unique ID.

### get_events
This retrieves and consumes event notifications from your active subscription queue.

### get_to_many
It finds all related records, like client contacts, connected to a main entity.

### update_entity
This modifies the data fields of an existing Bullhorn entity record.

### upsert_data_hub_records
It creates or updates records in the Bullhorn Data Hub using provided payload data.

## Prompt Examples

**Prompt:** 
```
Retrieve the candidate with ID 12345 showing their first name, last name, and email.
```

**Response:** 
```
I've retrieved the candidate details using `get_entity`:
- **First Name**: John
- **Last Name**: Doe
- **Email**: john.doe@example.com
```

**Prompt:** 
```
Get all corporate notes for ClientCorporation ID 98765.
```

**Response:** 
```
Using `get_all_corp_notes`, I found 2 notes for ClientCorporation 98765:
1. 'Discussed contract renewal terms.' (Action: Client Call)
2. 'Follow-up scheduled for next Tuesday.' (Action: Email)
```

**Prompt:** 
```
Update candidate 12345's status to 'Placed'.
```

**Response:** 
```
I've updated the candidate's status to 'Placed' using `update_entity`.
```

## Capabilities

### Manage Core Records
Create, read, update, or delete primary Bullhorn records like candidates and job orders using specific IDs.

### Track Client Relationships
Retrieve all associated contacts linked to a major client corporation or fetch multiple related entity IDs in bulk.

### Review Communication History
Get every note and communication record attached to a specific client company for full historical review.

### Process Events
Retrieve and consume event notifications from your subscription queue, keeping the data current.

## Use Cases

### Investigating a Candidate's History
A recruiter needs to know if a specific candidate was contacted by the client previously. Instead of searching through multiple folders, they ask their agent to use `get_all_corp_notes` for the company ID, instantly pulling up every recorded conversation and action taken.

### Onboarding a New Client
An operations lead needs to verify all contact points for a new account. They ask their agent to use `get_to_many` on the client corporation ID, receiving a list of every connected person and role in one go.

### Updating Job Status Post-Interview
A recruiter finishes an interview and needs to change the candidate's status and add notes. They ask their agent to first use `update_entity` on the candidate record, then immediately call the note creation tool, documenting the feedback all in one sequence.

### Auditing Account Activity
An HR manager needs a complete picture of client relationships for an audit. They ask their agent to use `get_associations` on a parent company ID, pulling together IDs from multiple related entities to verify completeness.

## Benefits

- You stop losing time switching between Bullhorn tabs. With this MCP, you can ask your agent to pull a candidate's full profile using `get_entity` without ever navigating away from your chat client.
- Never miss context again. Need to know what was discussed with a major client? Use the capability that runs through `get_all_corp_notes` to instantly gather all historical communication records, making handoffs smooth and informed.
- It handles relationships automatically. Instead of clicking through multiple screens, you ask your agent to find associated contacts for any client corporation using the association tools (`get_to_many`), getting a comprehensive list immediately.
- Bulk data tasks become simple queries. If you need associated IDs for several parents at once—like checking all related jobs across ten different accounts—the bulk capabilities handle it, saving hours of manual work.
- It keeps your data current and clean. You can use the tools to create new records (`create_entity`) or update statuses instantly, making sure that candidate pipelines are always accurate.

## How It Works

The bottom line is you get an AI assistant that speaks Bullhorn's language, letting you manage complex data without manual clicks.

1. Subscribe to this MCP and provide your Bullhorn REST URL and required authentication token.
2. Your AI client connects using those credentials, giving it access to read and write operations across the platform's entities.
3. You ask your agent a question—like 'What was discussed about Acme Corp last month?'—and it performs the necessary data lookup or modification.

## Frequently Asked Questions

**How do I update candidate records using the Bullhorn MCP?**
You tell your agent what needs changing—for example, 'Change Candidate 123 to 'Interviewing' status.' The agent uses `update_entity` and handles structuring the data correctly for Bullhorn.

**Can I get all notes for a client company with Bullhorn MCP?**
Yes, you can. You simply ask your agent to retrieve all corporate notes by calling the `get_all_corp_notes` tool on the target ClientCorporation ID.

**What if I need data from multiple candidates at once?**
For bulk requests, you can use tools like `get_associations` or `get_entities`. You provide a list of parent IDs, and the agent fetches associated records for all of them.

**Does Bullhorn MCP handle creating new job orders?**
Yes. If you have the required details, your agent uses the `create_entity` tool to generate a brand new JobOrder record in Bullhorn.