Candidates, jobs and placements, written straight into JobAdder.
JobAdder has the widest surface of any CRM in the harness: candidates, jobs, companies, contacts, applications, placements and job ads. Your agent attaches candidates to roles and moves their status, so the record stays current without anyone typing it in.
JobAdder is the destination. Reads and writes cost nothing; you pay for the enrichment that filled the record.
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 JobAdder docs →HOW in lib/jobadder.py. Built from the official OpenAPI v2.
offline_access (required for a refresh token) plus the granular
read/write scopes you need (read_candidate, write_candidate, read_job, …), then store the refresh
token. get_current_user is the cheapest call and confirms both auth and the resolved region base.find_candidates (name/email/phone/location/keywords/status), get_candidate,
add_candidate, update_candidate, set_candidate_status, add_candidate_note,
get_candidate_skills, find_candidate_attachments, plus status/custom-field list helpers.find_jobs, get_job, add_job, update_job, set_job_status, get_job_applications,
add_candidates_to_job, get_job_statuses.find_companies, get_company, add_company, update_company,
get_company_contacts; find_contacts, get_contact, add_contact, update_contact.ATS reads and writes are free — you're charged for the enrichment that fills the records, not for pushing them. Writes are side-effecting and pass through the approval gate.
A write target at the end of a pipeline: source → enrich → qualify → add_candidate →
add_candidates_to_job.