Recruiting CRM/ATS — candidates, clients, client contacts, jobs, applications, notes, placements, tasks, and opportunities.
Ask for the outcome and your agent composes the run itself. Or start from a skill, a whole pipeline it already knows end to end.
browse all skills →Every tool ships with a written playbook, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.
Read the Spott docs →Use Spott to load enriched leads and candidates into the ATS and to read/write jobs, clients, contacts, applications, notes, placements, tasks, and opportunities. It is a sink for an enriched CSV produced by the sourcing/enrichment layer, alongside the other CRM/ATS integrations.
| Tool | Does | Cost |
|---|---|---|
search_candidates |
Query candidates | Free |
create_candidate |
Create a candidate (req. firstName, lastName) |
Free |
search_clients |
Query clients (companies-as-accounts) | Free |
create_client |
Create a client (req. name, description, size, specialties) |
Free |
create_client_contact |
Create a client contact under a client (req. firstName, lastName) |
Free |
search_jobs |
Query jobs | Free |
create_job |
Create a job (req. stageId + company/role fields) |
Free |
create_application |
Create an application (req. vacancyId, candidateId, stageId, statusId) |
Free |
move_application |
Move an application to another stage | Free |
get_vacancy_stages |
Pipeline stage IDs for jobs | Free |
get_client_stages |
Pipeline stage IDs for clients | Free |
get_opportunity_stages |
Pipeline stage IDs for opportunities | Free |
create_opportunity |
Create an opportunity (req. stageId) |
Free |
search_people |
Tenant-wide people search | Free |
list_lists |
Browse lists (candidate/client/client-contact, personal or workspace) | Free |
find_list |
Resolve a list by name | Free |
create_list |
Create a list for candidates, clients, or client contacts | Free |
add_to_list_by_name |
Resolve a list by name and link records to it | Free |
remove_from_list_by_name |
Resolve a list by name and unlink records from it | Free |
link_candidates_to_list |
Link candidates to a list by id | Free |
unlink_candidates_from_list |
Unlink candidates from a list by id | Free |
spott; run it via hyreflow tools execute spott <method>.stageId (applications also need statusId) — resolve it first with get_vacancy_stages, get_client_stages, or get_opportunity_stages.add_to_list_by_name won't create a missing list, and removing records from a list does not delete the records.create_* methods.hyreflow tools execute spott create_candidate \
--payload '{"firstName":"Ada","lastName":"Lovelace","email":"[email protected]"}'
hyreflow tools execute spott add_to_list_by_name \
--payload '{"list_name":"Acme Q4 shortlist","record_ids":["candidate-123","candidate-456"]}'
Spott publishes a rate limit of 600 requests/minute per API key. Use the batch helpers for large pushes — they loop single calls and pace requests automatically:
hyreflow tools execute spott create_candidates_batch \
--payload '{"payloads":[{"firstName":"Ada","lastName":"Lovelace"},{"firstName":"Grace","lastName":"Hopper"}]}'