← all tools
Recruiting CRM / ATS

JobAdder

Candidates, jobs and placements, written straight into JobAdder.

Cost per callfree
Your own keyrequired — contact us to enable
CategoryRecruiting CRM / ATS

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.

things you can ask for

  • Add the candidates Prospeo enriched and attach them to the job
  • Take this brief url, source with AI Ark, and file the longlist
  • Set this person to submitted and note why
  • What placements went through last month?

works well with JobAdder

  • AI Ark

    sourcing that fills a job you already have open

  • Enrichley

    clean contacts before they reach a record

  • Lemlist

    outreach off a JobAdder shortlist

  • Fathom

    interview notes onto the candidate

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 →

What your agent reads before it touches JobAdder

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 →
Show the raw playbookwritten for the agent

HOW in lib/jobadder.py. Built from the official OpenAPI v2.

Auth & config (OAuth2, region-aware base)

  • Auth: OAuth2 authorization-code flow; the client runs the refresh-token grant to mint ~60-minute Bearer access tokens.
  • ⚠️ The base URL is returned by the token endpoint, region-specific (AU/EU/US shards differ). The client reads it from the refresh response — never hardcode a region.
  • Refresh-token rotation: JobAdder may return a new refresh token on each refresh; the client keeps the latest for the session. Persist it if you run long-lived.
  • One-time setup: authorize with 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.

Operations

  • Candidates: 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.
  • Jobs: find_jobs, get_job, add_job, update_job, set_job_status, get_job_applications, add_candidates_to_job, get_job_statuses.
  • Companies / contacts: find_companies, get_company, add_company, update_company, get_company_contacts; find_contacts, get_contact, add_contact, update_contact.
  • Applications / placements / ads / requisitions: find + get + status transitions for each.

Cost

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.

Handoff

A write target at the end of a pipeline: source → enrich → qualify → add_candidateadd_candidates_to_job.