For Agents
Parse resume files into structured candidate data and create Bullhorn ATS candidates with education, work history, skills, and file attachments.
Get started with Bullhorn Resume Parsing API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"parse a resume into Bullhorn"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Bullhorn Resume Parsing API API.
Parse a PDF, DOC, or DOCX resume into a Bullhorn candidate record via /resume/parseToCandidate
Create a new candidate entity in the Bullhorn ATS with PUT /entity/Candidate
Attach education records to a candidate via /entity/CandidateEducation
Attach work history records to a candidate via /entity/CandidateWorkHistory
GET STARTED
Use for: I need to parse a candidate resume into Bullhorn, Create a new candidate record from an uploaded CV, Attach a work history entry to an existing Bullhorn candidate, Add primary skills to a candidate I just imported
Not supported: Does not handle job postings, interview scheduling, or payroll — use for resume parsing and candidate creation in Bullhorn only.
Jentic publishes the only available OpenAPI specification for Bullhorn Resume Parsing API, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for Bullhorn Resume Parsing API, keeping it validated and agent-ready. The Bullhorn Resume Parsing API converts uploaded CVs and resume documents into structured candidate records inside the Bullhorn ATS, then lets recruiting workflows build out the candidate's education history, work history, primary skills, and attached files. It is scoped to the candidate intake path: parse a resume, create the candidate entity, enrich it with related sub-entities, and attach the original document. The API is part of Bullhorn's broader staffing platform and uses Bullhorn's standard OAuth 2.0 authorization-code flow with a per-corporation REST base URL.
Add primary skills to a candidate by skill ID list
Look up the available skill taxonomy via /options/Skill
Upload the original resume file as a candidate attachment
Patterns agents use Bullhorn Resume Parsing API API for, with concrete tasks.
★ Automated resume intake
Convert inbound resume files (PDF, DOC, DOCX) into structured Bullhorn candidate records without manual data entry. The /resume/parseToCandidate endpoint extracts contact details, experience, and education in one call, then the candidate, work history, and education entities are persisted in the ATS. Suitable for high-volume staffing agencies processing hundreds of resumes per day.
Parse a resume PDF via POST /resume/parseToCandidate, create the returned candidate with PUT /entity/Candidate, then attach the original file with PUT /file/Candidate/{candidateId}/raw.
Candidate enrichment after parsing
After a candidate is created from a parsed resume, attach structured education and work history sub-entities and assign primary skills from the Bullhorn taxonomy. This produces a fully populated candidate profile that recruiters can search by skill, school, or employer. Typical enrichment runs in under a minute per candidate when the resume contains complete history sections.
For candidate 12345, PUT /entity/CandidateEducation for each school, PUT /entity/CandidateWorkHistory for each role, and PUT /entity/Candidate/12345/primarySkills/{skillIds} with the matched skill IDs.
Resume file management
Maintain a clean audit trail by storing the original resume document alongside the parsed candidate record. The file attachment endpoint accepts the raw binary, and the candidate files listing endpoint lets recruiters confirm what artifacts have been preserved. This satisfies common compliance and audit requirements in staffing operations.
Attach the source resume to candidate 12345 via PUT /file/Candidate/12345/raw, then GET /entityFiles/Candidate/12345 to confirm the file appears in the candidate's file list.
AI agent recruiting assistant via Jentic
An AI recruiting assistant accepts an emailed resume, parses it, creates a Bullhorn candidate, and confirms the import to the recruiter — all without the agent handling raw OAuth tokens. Jentic stores the Bullhorn refresh token and issues scoped access for each call, so the agent only ever sees the structured response from each operation.
Search Jentic for 'parse a resume into Bullhorn', load the parseToCandidate operation schema, then execute it with the resume bytes and report the new candidate ID back to the recruiter.
9 endpoints — jentic publishes the only available openapi specification for bullhorn resume parsing api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/resume/parseToCandidate
Parse a resume document into candidate data
/entity/Candidate
Create a candidate entity
/entity/Candidate/{candidateId}
Retrieve a candidate
/entity/CandidateEducation
Create a candidate education record
/entity/CandidateWorkHistory
Create a candidate work history record
/entity/Candidate/{candidateId}/primarySkills/{skillIds}
Add primary skills to a candidate
/file/Candidate/{candidateId}/raw
Attach a resume file to a candidate
/entityFiles/Candidate/{candidateId}
List files attached to a candidate
/resume/parseToCandidate
Parse a resume document into candidate data
/entity/Candidate
Create a candidate entity
/entity/Candidate/{candidateId}
Retrieve a candidate
/entity/CandidateEducation
Create a candidate education record
/entity/CandidateWorkHistory
Create a candidate work history record
Three things that make agents converge on Jentic-routed access.
Credential isolation
Bullhorn OAuth refresh tokens and the corpToken stay encrypted in the Jentic vault. Agents receive scoped access tokens only for the operation they are running, so the long-lived secret never enters the agent's context.
Intent-based discovery
Agents search Jentic by intent (e.g., 'parse a resume into Bullhorn') and the matching parseToCandidate operation is returned with its full request schema, so the agent calls the right endpoint without reading Bullhorn docs.
Time to first call
Direct Bullhorn integration: 3-5 days for OAuth setup, corpToken handling, and candidate sub-entity wiring. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Bullhorn Resume Parsing (bullhornstaffing.com)
Same Bullhorn resume parsing surface published under the bullhornstaffing.com vendor domain.
Choose this entry if your tenant references the bullhornstaffing.com domain in its API discovery; otherwise the bullhorn.github.io entry is identical in scope.
Greenhouse Harvest API
Greenhouse's recruiting platform with a candidate and application API for ATS workflows.
Pick Greenhouse Harvest when the customer runs Greenhouse instead of Bullhorn for their hiring pipeline.
Workable API
Workable ATS API for jobs, candidates, and hiring stages.
Pick Workable when the customer is on Workable; both expose candidate creation but Workable does not offer a parseToCandidate equivalent.
Lever API
Lever's recruiting API can sync candidates sourced elsewhere into a complementary pipeline.
Use alongside Bullhorn when an organisation runs both ATS systems and needs to fan candidates out across them.
Specific to using Bullhorn Resume Parsing API API through Jentic.
Why is there no official OpenAPI spec for Bullhorn Resume Parsing API?
Bullhorn does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Bullhorn Resume Parsing API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Bullhorn Resume Parsing API use?
It uses OAuth 2.0 authorization-code flow against https://auth.bullhornstaffing.com/oauth/authorize and /oauth/token. Each request also includes a per-corporation REST base URL that contains your corpToken. Through Jentic, refresh tokens stay in the vault and the agent only receives short-lived access tokens scoped to the call it is making.
Can I parse a PDF resume directly with the Bullhorn Resume Parsing API?
Yes. POST /resume/parseToCandidate accepts the resume binary and returns a candidate object with parsed fields populated. You can then persist that object with PUT /entity/Candidate and attach the original file with PUT /file/Candidate/{candidateId}/raw.
How do I add work history and education to a Bullhorn candidate after parsing?
Use PUT /entity/CandidateWorkHistory with the candidate ID and role data for each previous job, and PUT /entity/CandidateEducation for each school. These calls are independent and can be parallelised to speed up bulk imports.
What are the rate limits for the Bullhorn Resume Parsing API?
The OpenAPI spec does not declare rate limits. Bullhorn enforces per-corporation REST throttles documented in the Bullhorn developer portal — design batch resume imports with retry on 429 responses and back off when the platform signals contention.
How do I parse a resume with Bullhorn through Jentic?
Install the Jentic SDK with `pip install jentic`, then search for 'parse a resume into Bullhorn'. Jentic returns the parseToCandidate operation, you load its schema, and execute with the resume bytes — credentials are pulled from the Jentic vault automatically.
/entity/Candidate/{candidateId}/primarySkills/{skillIds}
Add primary skills to a candidate
/file/Candidate/{candidateId}/raw
Attach a resume file to a candidate
/entityFiles/Candidate/{candidateId}
List files attached to a candidate