AI Job Intake Automation for a Canadian Recruitment Agency
Job orders reach Bullhorn on their own, and recruiters respond 40% faster.
Client details anonymized under NDA. The work, approach, and results shown here are real. Contact me for references.
Faster Response Time
Job Orders Retyped
Intake Running
Staff Supported
Overview
A Canadian recruitment agency was retyping every new job order into Bullhorn by hand. I built an intake pipeline where a Claude agent reads each request, from an email or the intake form, pulls out the job details, checks them against Bullhorn and creates the record. The right recruiter gets an alert and the client follow up goes out on its own, so new roles get a response 40% faster.
About the client
A recruitment agency in Canada with 50 staff. The team runs its desk on Bullhorn and holds an internal database of about 500,000 candidate records built up over years of placements.
- Industry
- Recruitment
- Location
- Canada
- Team
- 50 staff
- CRM
- Bullhorn
The Problem
What they were dealing with
New job orders arrived by email and through an intake form, in whatever shape the client chose. Someone had to read each one, work out the role, location, rate and requirements, and type it all into Bullhorn before a recruiter could start. On busy days new roles waited in the inbox, and following up with the client depended on who remembered.
Every job order was read and retyped into Bullhorn by hand
Requests came in different formats, so details were missed or entered inconsistently
New roles waited until someone had time to log them, which slowed the first response to the client
Client follow ups relied on memory instead of a system
Before
Manual
Job intake
By hand
Bullhorn data entry
Ad hoc
Client follow up
Email and form
Intake channels
The Solution
How I solved it
The goal was simple: a new job order should reach Bullhorn correctly without anyone retyping it, and the client should hear back fast.
An n8n workflow running with APIs on AWS picks up every request from email and the intake form. A Claude agent built with the Claude Agent SDK reads the request and any attachments and returns the job details in a fixed structure. A validation step checks each field against Bullhorn before anything is written, and when it cannot match a value with confidence it stops and asks a person instead of guessing. Once the job exists in Bullhorn, the right recruiter is alerted and the client gets a prompt acknowledgement and follow up.
Intake mapping
Walked through how job orders arrived and how the team logged them, and listed every Bullhorn field a complete job needs.
Extraction agent
Built a Claude agent with the Claude Agent SDK that reads emails, form entries and attachments and returns structured job details only.
Validation and Bullhorn write
Matched every value to Bullhorn before writing, and sent anything uncertain to a person for review rather than guessing.
Alerts and follow up
n8n alerts the right recruiter and sends the client follow up automatically, so no new role sits unanswered.
The Result
What changed
40%
Faster Response Time
0
Job Orders Retyped
24/7
Intake Running
50
Staff Supported
Related Projects
RAG Candidate Search Across 500K CVs on Amazon Bedrock
Built a RAG search agent on Amazon Bedrock Knowledge Bases and AgentCore over the internal database of a Canadian recruitment agency: about 500,000 candidate records. Recruiters describe the person they need in plain English and get a ranked shortlist with the relevant details, instead of hand written SQL queries.
500K Records Searchable
AI Lead Verification, Voice Agent and Field Photo Search for a Texas HVAC Company
Built an AI automation stack for an HVAC and duct cleaning company in Texas with about 22 staff. New leads are checked and verified by a voice AI agent, field photos are filed and searchable with RAG, and job folders and weekly reports build themselves, all around ServiceTitan.
5 Automations Running
Facing a similar challenge?
Every project starts with a conversation. Tell me what you're dealing with and I'll tell you honestly whether I can help.
