---
title: "JobAdder MCP server for AI agents - actionlake"
description: "Give Claude 371 JobAdder actions through one MCP server: candidates, companies, jobs. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/jobadder
updated: 2026-10-23
---

Connectors · CRM & sales

# JobAdder MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to JobAdder and the rest of your systems. It gives your agent 371 JobAdder actions (228 reads, 125 writes and 18 that wait for a confirmation) and holds the JobAdder credential itself, so the agent never does. It paces JobAdder's limits and records every call. Connecting JobAdder needs your own JobAdder OAuth app and one admin sign-in.

[Connect JobAdder free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "jobadder.contacts.find_contacts",
  intent: "check which JobAdder account is connected"
}
# Find contacts · read · 1 upstream call
```

- 371 actions in one signed file
- 228 read look, never change
- 125 write create and update
- 18 wait for a yes destructive, confirmed first

Set up

## Connect JobAdder in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect JobAdder.
   OAuth 2.0, authorization code. You register your own OAuth app with JobAdder, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
   Before the first sign-in, JobAdder needs an OAuth app of your own, registered in its developer portal. actionlake has no JobAdder app to lend you.
   - `access_token` Access token from one sign-in with your own OAuth app
   - `refresh_token` Refresh token from the same sign-in; the access token is renewed from it
   - `client_id` JobAdder app Client ID, issued when you register an app with JobAdder's developer programme (developers.jobadder.com)
   - `client_secret` JobAdder app Client secret (issued with the Client ID)
   - `api_base` Where your JobAdder lives: your api base
   ```
   account { op: "connections.requirements", service: "jobadder" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "jobadder.contacts.find_contacts" }
   # find contacts · read · 1 upstream call
   check { action: "jobadder.contacts.add_contact", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

JobAdder at a glance

**Sign-in**

OAuth 2.0, authorization code. You register your own OAuth app with JobAdder, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.

**You provide**

`access_token` `refresh_token` `client_id` `client_secret`

**Setup fields**

`api_base`

**Limits we pace to**

10 calls a second, per connection

**API covered**

JobAdder API v2 (OpenAPI 3.0.1)`api.jobadder.com/v2`

**Built from**

JobAdder's documentation, read 23 October 2026[api.jobadder.com](https://api.jobadder.com/v2/openapi.json) [developers.jobadder.com](https://developers.jobadder.com/docs)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

228 of 228 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

4, so ask can line JobAdder up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in JobAdder.

371 actions in 27 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **228** read look, never change
- **125** write create and update
- **18** destructive wait for a confirmation

1. ### Candidates
   53
   35 read · 13 write · 5 destructive
   Find candidates · Add a candidate · Get a candidate · Update a candidate
2. ### Companies
   46
   31 read · 13 write · 2 destructive
   Find companies · Add a new company · Get a company · Update an existing company
3. ### Jobs
   40
   26 read · 13 write · 1 destructive
   Find jobs · Add a job · Get a job · Update a job
4. ### Applications
   37
   20 read · 17 write · 0 destructive
   Find job applications · Get a job application · Update a job application · Add a job application activity
5. ### Contacts
   36
   23 read · 10 write · 3 destructive
   Find contacts · Add a new contact · Get a contact · Update an existing contact
6. ### Partners
   33
   9 read · 23 write · 1 destructive
   Add a partner action · Find partner actions · Find candidates submitted to an action · Find companies submitted to an action
7. ### Placements
   30
   22 read · 8 write · 0 destructive
   Add a placement activity · Add a note · Add a placement user task · Recently deleted placements
8. ### Requisitions
   16
   8 read · 6 write · 2 destructive
   Add a requisition · Add a requisition note · Find requisitions · Get approval history

**19 more areas · 80 actions**

- Events **11**
- Interviews **8**
- Opportunities **7**
- Users **7**
- Usertasks **7**
- Jobads **6**
- Jobboards **5**
- Webhooks **5**
- Folders **4**
- Notes **4**
- Usergroups **3**
- Useroffices **3**
- Floats **2**
- Search **2**
- Submissions **2**
- Categories **1**
- Countries **1**
- Locations **1**
- Worktypes **1**

Top actions

## The JobAdder API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 44 of JobAdder's 44 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `jobadder.contacts.find_contacts` Find contacts | Find contacts. | read | `crm.contact.list` 177 connectors |
| `jobadder.companies.find_companies` Find companies | Find companies. | read | `crm.company.list` 162 connectors |
| `jobadder.users.find_users` Find users | Find users. | read | `identity.user.list` 474 connectors |
| `jobadder.contacts.add_contact` Add a new contact | Add a new contact. | write | `crm.contact.create` 161 connectors |
| `jobadder.companies.add_company` Add a new company | Add a new company. | write | `crm.company.create` 142 connectors |
| `jobadder.candidates.find_candidates` Find candidates | Find candidates. | read | `hr.candidate.list` 22 connectors |
| `jobadder.users.get_user` Get a user | Get a user. | read | `identity.user.get` 399 connectors |
| `jobadder.candidates.add_candidate` Add a candidate | Add a candidate. | write | `hr.candidate.create` 20 connectors |
| `jobadder.opportunities.add_opportunity` Add an opportunity | Add an opportunity. | write | `crm.deal.create` 43 connectors |
| `jobadder.opportunities.find_opportunities` Find opportunities | Find opportunities. | read | `crm.deal.list` 43 connectors |
| `jobadder.contacts.add_contact_note` Add a contact note | Add a contact note. | write | `crm.contact_note.create` 28 connectors |
| `jobadder.usertasks.delete_user_task` Delete a user task | Delete a user task. | destructive | `work.task.delete` 107 connectors |

Try it

## Prompts to paste into Claude.

Each one names the JobAdder actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Find the JobAdder contacts with no email address, so we can clean them up.
   calls `jobadder.contacts.find_contacts`
2. Write write
   Add a new contact in JobAdder. Show me exactly what you will send before you save it.
   calls `jobadder.contacts.add_contact`
3. Across systems read
   Which JobAdder companies have invoices in ConnectWise PSA, and how many each?
   calls `jobadder.companies.find_companies` `connectwise_manage.invoices.list`

Across your systems

## JobAdder, joined to the rest of your business.

One `ask` fetches from JobAdder and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- Which JobAdder companies have invoices in ConnectWise PSA, and how many each?
  `jobadder.companies.find_companies` + `connectwise_manage.invoices.list`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- Which JobAdder companies have invoices in NetSuite, and how many each?
  `jobadder.companies.find_companies` + `netsuite.views.invoices`, on `crm.company` · [NetSuite](https://actionlake.com/connectors/netsuite)

Also mapped by other connectors `identity.user` **517** `crm.company` **227** `crm.contact` **192** `hr.candidate` **18**

ask

```
ask {
  intent: "which JobAdder companies have invoices in ConnectWise PSA, and how many each",
  steps: [
    { action: "jobadder.companies.find_companies", as: "co", input: {}, limit: 100, max_pages: 5 },
    { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "co",
        right: "inv",
        on: "crm.company",
        group_by: "co.name",
        select: ["co.name", "count(inv.id) as invoices"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for JobAdder

## Destructive actions wait for a yes.

18 JobAdder actions are destructive. These are all of them:

- Delete a user task `jobadder.usertasks.delete_user_task`
- Delete an Event `jobadder.events.delete_event`
- Delete an interview `jobadder.interviews.delete_interview`
- Delete a webhook `jobadder.webhooks.delete_webhook`
- Remove a company logo `jobadder.companies.delete_company_logo`
- Remove photo `jobadder.contacts.delete_contact_photo`
- Remove skills `jobadder.contacts.remove_contact_skills`
- Delete a partner action `jobadder.partners.delete_partner_action`
- Remove a requisition `jobadder.requisitions.delete_requisition`
- Remove an address `jobadder.companies.remove_company_address`
- Remove a category `jobadder.contacts.delete_contact_category`
- Remove a photo `jobadder.candidates.delete_candidate_photo`
- Remove skills `jobadder.candidates.remove_candidate_skills`
- Remove a candidate at their request `jobadder.candidates.privacy_delete_candidate`
- Remove a category `jobadder.candidates.delete_candidate_category`
- Remove the Rate Card ID for passed Job Order ID `jobadder.jobs.delete_job_order_payroll_billing`
- Remove an attachment `jobadder.requisitions.delete_requisition_attachment`
- Remove weekly availability `jobadder.candidates.delete_candidate_availability_week`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do jobadder.usertasks.delete_user_task confirm_policy: **human**

Delete a user task?

**intent:** the user asked me to delete a user task

run suspended · waiting for a named person · key _jobadder-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "jobadder-agent",
  allowed_actions: ["jobadder.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "jobadder.usertasks.delete_user_task", approver: "lead@example.com" },
    { match: "jobadder.events.delete_event", approver: "lead@example.com" },
    { match: "jobadder.interviews.delete_interview", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to JobAdder only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What JobAdder costs on actionlake.

Every JobAdder action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call JobAdder refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 371 JobAdder actions
- 371 actions page each page of a long list is one call
- 228 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every JobAdder action.

371 actions by area: the id your agent calls, what it does, and its effect.

**Candidates 53**

- `jobadder.candidates.add_candidate` Add a candidate write
- `jobadder.candidates.add_candidate_activity` Add a candidate activity write
- `jobadder.candidates.add_candidate_job_orders` Add jobs to a candidate write
- `jobadder.candidates.add_candidate_note` Add a note write
- `jobadder.candidates.add_candidate_user_task` Add a candidate user task write
- `jobadder.candidates.add_candidate_video` Add a video write
- `jobadder.candidates.delete_candidate_availability_week` Remove weekly availability destructive
- `jobadder.candidates.delete_candidate_category` Remove a category destructive
- `jobadder.candidates.delete_candidate_photo` Remove a photo destructive
- `jobadder.candidates.deleted_candidates` Recently deleted candidates read
- `jobadder.candidates.find_all_candidate_attachments` Find attachments read
- `jobadder.candidates.find_candidate_activities` Find candidate activities read
- `jobadder.candidates.find_candidate_activity_settings` Get all candidate activity settings definitions read
- `jobadder.candidates.find_candidate_attachments` Find candidate attachments read
- `jobadder.candidates.find_candidates` Find candidates read
- `jobadder.candidates.find_candidates_payroll_billings` Find payroll billings read
- `jobadder.candidates.get_active_candidate_job_applications` Get active job applications read
- `jobadder.candidates.get_candidate` Get a candidate read
- `jobadder.candidates.get_candidate_activity` Get a candidate activity read
- `jobadder.candidates.get_candidate_activity_by_candidate_id` Get candidate activities read
- `jobadder.candidates.get_candidate_activity_setting` Get candidate activity settings with details read
- `jobadder.candidates.get_candidate_approved_placements` Get all approved placements read
- `jobadder.candidates.get_candidate_attachment_category_list` Get all attachment categories read
- `jobadder.candidates.get_candidate_availability` Get availability read
- `jobadder.candidates.get_candidate_custom_field_list` Get all candidate custom field definitions read
- `jobadder.candidates.get_candidate_custom_field_list_item` Get a custom field definition read
- `jobadder.candidates.get_candidate_events` Get all events read
- `jobadder.candidates.get_candidate_floats` Get all floats read
- `jobadder.candidates.get_candidate_interviews` Get all Interviews read
- `jobadder.candidates.get_candidate_job_applications` Get job applications read
- `jobadder.candidates.get_candidate_note_type_list` Get all note types read
- `jobadder.candidates.get_candidate_notes` Get candidate notes read
- `jobadder.candidates.get_candidate_payroll_billing` Get a candidate payroll billing read
- `jobadder.candidates.get_candidate_placements` Get all placements read
- `jobadder.candidates.get_candidate_rating_list` Get internal ratings read
- `jobadder.candidates.get_candidate_salutation_list` Get salutations (honorifics/titles) read
- `jobadder.candidates.get_candidate_skills` Get skills read
- `jobadder.candidates.get_candidate_source_list` Get all candidate sources read
- `jobadder.candidates.get_candidate_status_list` Get all status definitions read
- `jobadder.candidates.get_candidate_status_list_item` Get a status definition read
- `jobadder.candidates.get_candidate_submissions` Get all submissions read
- `jobadder.candidates.get_candidate_user_task` Get a candidate user task read
- `jobadder.candidates.get_candidate_videos` Get all videos read
- `jobadder.candidates.get_latest_candidate_video` Get a recent video read
- `jobadder.candidates.privacy_delete_candidate` Remove a candidate at their request destructive
- `jobadder.candidates.put_candidate_custom_field_list_item` Modify custom field list values write
- `jobadder.candidates.put_candidate_skills` Update skills write
- `jobadder.candidates.put_candidate_status` Set a candidate status write
- `jobadder.candidates.remove_candidate_skills` Remove skills destructive
- `jobadder.candidates.update_candidate` Update a candidate write
- `jobadder.candidates.update_candidate_attachment` Update attachment details write
- `jobadder.candidates.update_candidate_availability_week` Update weekly availability write
- `jobadder.candidates.update_candidate_user_task` Update a candidate user task write

**Companies 46**

- `jobadder.companies.add_company` Add a new company write
- `jobadder.companies.add_company_activity` Add a company activity write
- `jobadder.companies.add_company_address` Add an address write
- `jobadder.companies.add_company_note` Add a company note write
- `jobadder.companies.add_company_user_task` Add a company user task write
- `jobadder.companies.add_company_workflow` Add a company workflow write
- `jobadder.companies.delete_company_logo` Remove a company logo destructive
- `jobadder.companies.deleted_companies` Recently deleted companies read
- `jobadder.companies.find_companies` Find companies read
- `jobadder.companies.find_company_activity` Find company activities read
- `jobadder.companies.find_company_activity_settings` Get all company activity settings definitions read
- `jobadder.companies.find_company_attachments` Find attachments read
- `jobadder.companies.get_company` Get a company read
- `jobadder.companies.get_company_active_job_orders` Get all active/open jobs for a company read
- `jobadder.companies.get_company_activity` Get a company activity read
- `jobadder.companies.get_company_activity_by_company_id` Get company activities read
- `jobadder.companies.get_company_activity_setting` Get Company activity settings with details read
- `jobadder.companies.get_company_address` Get an address read
- `jobadder.companies.get_company_addresses` Get all addresses read
- `jobadder.companies.get_company_approved_placements` Get all approved placements for a company read
- `jobadder.companies.get_company_attachment_category_list` Get all attachment categories read
- `jobadder.companies.get_company_contacts` Get company contacts read
- `jobadder.companies.get_company_custom_field_list` Get the list of company custom fields read
- `jobadder.companies.get_company_custom_field_list_item` Get a company custom field read
- `jobadder.companies.get_company_floats` Get all floats for a company read
- `jobadder.companies.get_company_job_orders` Get all jobs for a company read
- `jobadder.companies.get_company_note_type_list` Get a list of company note types read
- `jobadder.companies.get_company_notes` Get company notes read
- `jobadder.companies.get_company_placements` Get all approved and unapproved placements for a company read
- `jobadder.companies.get_company_requisitions` Get all requisitions for a company read
- `jobadder.companies.get_company_skills` Get company skills read
- `jobadder.companies.get_company_status_list` Get a list of company status definitions read
- `jobadder.companies.get_company_status_list_item` Get a company status read
- `jobadder.companies.get_company_submissions` Get all candidate submissions for a company read
- `jobadder.companies.get_company_subsidiaries` Get all subsidiaries for a company read
- `jobadder.companies.get_company_user_task` Get a company user task read
- `jobadder.companies.get_company_workflow` Get a company workflow and approvers read
- `jobadder.companies.list_company_workflows` Get all company workflows read
- `jobadder.companies.put_company_custom_field_list` Modify custom field list values write
- `jobadder.companies.put_company_status` Set a company status write
- `jobadder.companies.remove_company_address` Remove an address destructive
- `jobadder.companies.update_company` Update an existing company write
- `jobadder.companies.update_company_address` Update an address write
- `jobadder.companies.update_company_attachment` Update attachment details write
- `jobadder.companies.update_company_user_task` Update a company user task write
- `jobadder.companies.update_company_workflow` Update a company workflow write

**Jobs 40**

- `jobadder.jobs.add_job_order` Add a job write
- `jobadder.jobs.add_job_order_activity` Add a job activity write
- `jobadder.jobs.add_job_order_candidates` Add candidates to a job write
- `jobadder.jobs.add_job_order_note` Add a note write
- `jobadder.jobs.add_job_order_payroll_billing` Add the Rate Card ID for passed Job Order ID write
- `jobadder.jobs.add_job_order_user_task` Add a job user task write
- `jobadder.jobs.delete_job_order_payroll_billing` Remove the Rate Card ID for passed Job Order ID destructive
- `jobadder.jobs.deleted_job_orders` Recently deleted jobs read
- `jobadder.jobs.find_job_order_activity` Find job activities read
- `jobadder.jobs.find_job_order_activity_settings` Get all job activity settings definitions read
- `jobadder.jobs.find_job_order_attachments` Find attachments read
- `jobadder.jobs.find_job_orders` Find jobs read
- `jobadder.jobs.get_job_order` Get a job read
- `jobadder.jobs.get_job_order_active_job_applications` Get active job applications read
- `jobadder.jobs.get_job_order_activity` Get a job activity read
- `jobadder.jobs.get_job_order_activity_by_job_id` Get job activities read
- `jobadder.jobs.get_job_order_activity_setting` Get job activity setting with details read
- `jobadder.jobs.get_job_order_approved_placements` Get approved placements read
- `jobadder.jobs.get_job_order_attachment_category_list` Get all attachment categories read
- `jobadder.jobs.get_job_order_custom_field_item` Get a custom field read
- `jobadder.jobs.get_job_order_custom_field_list` Get all custom fields read
- `jobadder.jobs.get_job_order_invoice` Get a job invoice read
- `jobadder.jobs.get_job_order_invoices` Get job invoices read
- `jobadder.jobs.get_job_order_job_applications` Get job applications read
- `jobadder.jobs.get_job_order_note_type_list` Get all note types read
- `jobadder.jobs.get_job_order_notes` Get job notes read
- `jobadder.jobs.get_job_order_payroll_billing` Get the Rate Card ID for passed Job Order ID read
- `jobadder.jobs.get_job_order_placements` Get all placements read
- `jobadder.jobs.get_job_order_source_list` Get all job sources read
- `jobadder.jobs.get_job_order_status_item` Get a status definition read
- `jobadder.jobs.get_job_order_status_list` Get all status definitions read
- `jobadder.jobs.get_job_order_submissions` Get all submissions read
- `jobadder.jobs.get_job_order_user_task` Get a job user task read
- `jobadder.jobs.put_job_order_custom_field_list` Modify custom field list values write
- `jobadder.jobs.put_job_order_status` Set a job status write
- `jobadder.jobs.submit_job_order_candidate` Submit a candidate to an evergreen job write
- `jobadder.jobs.update_job_order` Update a job write
- `jobadder.jobs.update_job_order_attachment` Update attachment details write
- `jobadder.jobs.update_job_order_payroll_billing` Update the Rate Card ID for passed Job Order ID write
- `jobadder.jobs.update_job_order_user_task` Update a job user task write

**Applications 37**

- `jobadder.applications.add_job_application_activity` Add a job application activity write
- `jobadder.applications.add_job_application_note` Add a note write
- `jobadder.applications.add_job_application_user_task` Add an application user task write
- `jobadder.applications.add_job_application_video` Add a video write
- `jobadder.applications.deleted_job_applications` Recently deleted job applications read
- `jobadder.applications.find_job_application_activity` Find job application activities read
- `jobadder.applications.find_job_application_activity_settings` Get all job application activity settings definitions read
- `jobadder.applications.find_job_application_attachments` Find attachments read
- `jobadder.applications.find_job_applications` Find job applications read
- `jobadder.applications.get_job_application` Get a job application read
- `jobadder.applications.get_job_application_activity` Get a job application activity read
- `jobadder.applications.get_job_application_activity_by_application_id` Get job application activities read
- `jobadder.applications.get_job_application_activity_setting` Get job application activity settings with details read
- `jobadder.applications.get_job_application_custom_field_list` Get all custom fields read
- `jobadder.applications.get_job_application_custom_field_list_item` Get a custom field read
- `jobadder.applications.get_job_application_interviews` Get all Interviews read
- `jobadder.applications.get_job_application_notes` Get job application notes read
- `jobadder.applications.get_job_application_status_list` Get all status definitions read
- `jobadder.applications.get_job_application_status_list_item` Get a status definition read
- `jobadder.applications.get_job_application_user_task` Get an application user task read
- `jobadder.applications.get_job_application_videos` Get all videos read
- `jobadder.applications.get_job_application_workflow_list` Get the job application workflow read
- `jobadder.applications.get_latest_job_application_video` Get a recent video read
- `jobadder.applications.get_workflow_list` Get the job application workflows read
- `jobadder.applications.post_job_application_external_interview` Create an external interview write
- `jobadder.applications.post_job_application_internal_interview` Create an internal interview write
- `jobadder.applications.put_job_application_custom_field_list` Modify custom field list values write
- `jobadder.applications.put_job_application_external_interview` Update an external interview write
- `jobadder.applications.put_job_application_internal_interview` Update an internal interview write
- `jobadder.applications.put_job_application_status` Set a job application status write
- `jobadder.applications.review_accept_job_application` Accept a job application write
- `jobadder.applications.review_reject_job_application` Reject a job application write
- `jobadder.applications.review_submit_job_application` Submit a job application for review write
- `jobadder.applications.review_view_job_application` Mark a job application as viewed by the hiring manager write
- `jobadder.applications.update_job_application` Update a job application write
- `jobadder.applications.update_job_application_attachment` Update attachment details write
- `jobadder.applications.update_job_application_user_task` Update an application user task write

**Contacts 36**

- `jobadder.contacts.add_contact` Add a new contact write
- `jobadder.contacts.add_contact_activity` Add a contact activity write
- `jobadder.contacts.add_contact_note` Add a contact note write
- `jobadder.contacts.add_contact_user_task` Add a contact user task write
- `jobadder.contacts.delete_contact_category` Remove a category destructive
- `jobadder.contacts.delete_contact_photo` Remove photo destructive
- `jobadder.contacts.deleted_contacts` Recently deleted contacts read
- `jobadder.contacts.find_contact_activity` Find contact activities read
- `jobadder.contacts.find_contact_activity_settings` Get all contact activity settings definitions read
- `jobadder.contacts.find_contact_attachments` Find attachments read
- `jobadder.contacts.find_contacts` Find contacts read
- `jobadder.contacts.get_contact` Get a contact read
- `jobadder.contacts.get_contact_active_job_orders` Get all active/open jobs for a contact read
- `jobadder.contacts.get_contact_activity` Get a contact activity read
- `jobadder.contacts.get_contact_activity_by_contact_id` Get contact activities read
- `jobadder.contacts.get_contact_activity_setting` Get contact activity settings with details read
- `jobadder.contacts.get_contact_attachment_category_list` Get all attachment categories read
- `jobadder.contacts.get_contact_custom_field_list` Get the list of Contact custom fields read
- `jobadder.contacts.get_contact_custom_field_list_item` Get a Contact custom field read
- `jobadder.contacts.get_contact_events` Get all events read
- `jobadder.contacts.get_contact_interviews` Get all Interviews read
- `jobadder.contacts.get_contact_job_orders` Get all jobs for a contact read
- `jobadder.contacts.get_contact_note_type_list` Get a list of contact note types read
- `jobadder.contacts.get_contact_notes` Get contact notes read
- `jobadder.contacts.get_contact_salutation_list` Get salutations (honorifics/titles) read
- `jobadder.contacts.get_contact_skills` Get contact skills read
- `jobadder.contacts.get_contact_status_list` Get a list of contact status definitions read
- `jobadder.contacts.get_contact_status_list_item` Get a contact status definition read
- `jobadder.contacts.get_contact_user_task` Get a contact user task read
- `jobadder.contacts.put_contact_custom_field_list` Modify custom field list values write
- `jobadder.contacts.put_contact_skills` Update skills write
- `jobadder.contacts.put_contact_status` Set a contact status write
- `jobadder.contacts.remove_contact_skills` Remove skills destructive
- `jobadder.contacts.update_contact` Update an existing contact write
- `jobadder.contacts.update_contact_attachment` Update attachment details write
- `jobadder.contacts.update_contact_user_task` Update a contact user task write

**Partners 33**

- `jobadder.partners.add_partner_action` Add a partner action write
- `jobadder.partners.complete_candidate_partner_action` Complete a candidate action write
- `jobadder.partners.complete_company_partner_action` Complete a company action write
- `jobadder.partners.complete_contact_partner_action` Complete a contact action write
- `jobadder.partners.complete_job_ad_partner_action` Complete a job ad action write
- `jobadder.partners.complete_job_application_partner_action` Complete a job application action write
- `jobadder.partners.complete_job_order_partner_action` Complete a job action write
- `jobadder.partners.complete_placement_partner_action` Complete a placement action write
- `jobadder.partners.delete_partner_action` Delete a partner action destructive
- `jobadder.partners.find_partner_actions` Find partner actions read
- `jobadder.partners.get_partner_action` Get a partner action read
- `jobadder.partners.get_partner_action_candidates` Find candidates submitted to an action read
- `jobadder.partners.get_partner_action_companies` Find companies submitted to an action read
- `jobadder.partners.get_partner_action_contacts` Find contacts submitted to an action read
- `jobadder.partners.get_partner_action_job_ads` Find job ads submitted to an action read
- `jobadder.partners.get_partner_action_job_applications` Find job applications submitted to an action read
- `jobadder.partners.get_partner_action_job_orders` Find jobs submitted to an action read
- `jobadder.partners.get_partner_action_placements` Find placements submitted to an action read
- `jobadder.partners.progress_candidate_partner_action` Update candidate action progress write
- `jobadder.partners.progress_company_partner_action` Update company action progress write
- `jobadder.partners.progress_contact_partner_action` Update contact action progress write
- `jobadder.partners.progress_job_ad_partner_action` Update job ad action progress write
- `jobadder.partners.progress_job_application_partner_action` Update job application action progress write
- `jobadder.partners.progress_job_order_partner_action` Update job action progress write
- `jobadder.partners.progress_placement_partner_action` Update placement action progress write
- `jobadder.partners.reject_candidate_partner_action` Reject a candidate action write
- `jobadder.partners.reject_company_partner_action` Reject a company action write
- `jobadder.partners.reject_contact_partner_action` Reject a contact action write
- `jobadder.partners.reject_job_ad_partner_action` Reject a job ad action write
- `jobadder.partners.reject_job_application_partner_action` Reject a job application action write
- `jobadder.partners.reject_job_order_partner_action` Reject a job action write
- `jobadder.partners.reject_placement_partner_action` Reject a placement action write
- `jobadder.partners.update_partner_action` Update a partner action write

**Placements 30**

- `jobadder.placements.add_placement_activity` Add a placement activity write
- `jobadder.placements.add_placement_note` Add a note write
- `jobadder.placements.add_placement_user_task` Add a placement user task write
- `jobadder.placements.deleted_placements` Recently deleted placements read
- `jobadder.placements.find_placement_activity` Find placement activities read
- `jobadder.placements.find_placement_activity_settings` Get all placement activity settings definitions read
- `jobadder.placements.find_placement_attachments` Find attachments read
- `jobadder.placements.find_placements` Find placements read
- `jobadder.placements.get_placement` Get a placement read
- `jobadder.placements.get_placement_activity` Get a placement activity read
- `jobadder.placements.get_placement_activity_by_placement_id` Get placement activities read
- `jobadder.placements.get_placement_activity_setting` Get placement activity settings with details read
- `jobadder.placements.get_placement_attachment_category_list` Get all attachment categories read
- `jobadder.placements.get_placement_award_list` Get all awards read
- `jobadder.placements.get_placement_billing_terms_list` Get all billing terms read
- `jobadder.placements.get_placement_custom_field_item` Get a custom field read
- `jobadder.placements.get_placement_custom_field_list` Get all custom fields read
- `jobadder.placements.get_placement_industry_code_list` Get all industry codes read
- `jobadder.placements.get_placement_note_type_list` Get all note types read
- `jobadder.placements.get_placement_notes` Get placement notes read
- `jobadder.placements.get_placement_payment_type_list` Get all payment types read
- `jobadder.placements.get_placement_status_item` Get a status definition read
- `jobadder.placements.get_placement_status_list` Get all status definitions read
- `jobadder.placements.get_placement_timesheets` Get timesheets read
- `jobadder.placements.get_placement_user_task` Get a placement user task read
- `jobadder.placements.put_placement_custom_field_list` Modify custom field list values write
- `jobadder.placements.put_placement_status` Set a placement status write
- `jobadder.placements.update_placement` Update a placement write
- `jobadder.placements.update_placement_attachment` Update attachment details write
- `jobadder.placements.update_placement_user_task` Update a placement user task write

**Requisitions 16**

- `jobadder.requisitions.add_requisition` Add a requisition write
- `jobadder.requisitions.add_requisition_note` Add a requisition note write
- `jobadder.requisitions.approve_requisition` Approve a requisition write
- `jobadder.requisitions.delete_requisition` Remove a requisition destructive
- `jobadder.requisitions.delete_requisition_attachment` Remove an attachment destructive
- `jobadder.requisitions.find_requisitions` Find requisitions read
- `jobadder.requisitions.get_requisition` Get a requisition read
- `jobadder.requisitions.get_requisition_approval_history` Get approval history read
- `jobadder.requisitions.get_requisition_attachment_list` Get all attachments read
- `jobadder.requisitions.get_requisition_custom_field_item` Get a custom field read
- `jobadder.requisitions.get_requisition_custom_field_list` Get all custom fields read
- `jobadder.requisitions.get_requisition_forms` Get all requisition forms and fields read
- `jobadder.requisitions.get_requisition_notes` Get requisition notes read
- `jobadder.requisitions.reject_requisition` Reject a requisition write
- `jobadder.requisitions.submit_requisition` Submit a requisition for approval write
- `jobadder.requisitions.update_requisition` Update a requisition write

**Events 11**

- `jobadder.events.create_event` Create an event write
- `jobadder.events.delete_event` Delete an Event destructive
- `jobadder.events.find_events` Find events read
- `jobadder.events.get_contact_event_interview_evaluation` Get a contact interview evaluation for event read
- `jobadder.events.get_event` Get an Event read
- `jobadder.events.get_event_interview_evaluations` Get interview evaluations for event read
- `jobadder.events.get_event_sub_types` Get Event Subtypes read
- `jobadder.events.get_user_event_interview_evaluation` Get an user interview evaluation for event read
- `jobadder.events.put_contact_event_interview_evaluation` Submit an contact interview evaluation for event write
- `jobadder.events.put_user_event_interview_evaluation` Submit an user interview evaluation for event write
- `jobadder.events.update_event` Update an event write

**Interviews 8**

- `jobadder.interviews.delete_interview` Delete an interview destructive
- `jobadder.interviews.find_interviews` Find interviews read
- `jobadder.interviews.get_external_interview_evaluation` Get an external/contact interview evaluation read
- `jobadder.interviews.get_internal_interview_evaluation` Get an internal/user interview evaluation read
- `jobadder.interviews.get_interview` Get an interview read
- `jobadder.interviews.get_interview_evaluations` Get interview evaluations read
- `jobadder.interviews.put_external_interview_evaluation` Submit an external/contact interview evaluation write
- `jobadder.interviews.put_internal_interview_evaluation` Submit an internal/user interview evaluation write

**Opportunities 7**

- `jobadder.opportunities.add_opportunity` Add an opportunity write
- `jobadder.opportunities.add_opportunity_note` Add an opportunity note write
- `jobadder.opportunities.find_opportunities` Find opportunities read
- `jobadder.opportunities.get_opportunity` Get an opportunity read
- `jobadder.opportunities.get_opportunity_notes` Get opportunity notes read
- `jobadder.opportunities.get_stages` Get all stages read
- `jobadder.opportunities.update_opportunity` Update an opportunity write

**Users 7**

- `jobadder.users.find_user_user_tasks` Find user tasks read
- `jobadder.users.find_users` Find users read
- `jobadder.users.get_current_user` Get the current user read
- `jobadder.users.get_user` Get a user read
- `jobadder.users.get_user_events` Get all Events read
- `jobadder.users.get_user_interviews` Get all Interviews read
- `jobadder.users.get_user_user_groups` Get user groups read

**Usertasks 7**

- `jobadder.usertasks.add_user_task` Create a user task write
- `jobadder.usertasks.delete_user_task` Delete a user task destructive
- `jobadder.usertasks.find_user_tasks` Find user tasks read
- `jobadder.usertasks.get_user_task` Get a user task read
- `jobadder.usertasks.mark_complete_user_task` Mark user task as complete write
- `jobadder.usertasks.mark_incomplete_user_task` Mark user task as incomplete write
- `jobadder.usertasks.update_user_task` Update a user task write

**Jobads 6**

- `jobadder.jobads.add_job_ad_draft` Add a draft job ad write
- `jobadder.jobads.get_job_ad` Get a job ad read
- `jobadder.jobads.get_job_ad_active_job_applications` Get active job applications read
- `jobadder.jobads.get_job_ad_job_applications` Get job applications read
- `jobadder.jobads.get_job_ads` Find job ads read
- `jobadder.jobads.update_job_ad_draft` Update a draft job ad write

**Jobboards 5**

- `jobadder.jobboards.find_job_board_job_ads` Find job ads read
- `jobadder.jobboards.find_job_boards` Find job boards read
- `jobadder.jobboards.get_job_board` Get a job board read
- `jobadder.jobboards.get_job_board_job_ad` Get a job ad read
- `jobadder.jobboards.submit_job_board_job_application` Submit a job application write

**Webhooks 5**

- `jobadder.webhooks.add_webhook` Add a new webhook write
- `jobadder.webhooks.delete_webhook` Delete a webhook destructive
- `jobadder.webhooks.find_webhooks` Find webhooks read
- `jobadder.webhooks.get_webhook` Get a webhook read
- `jobadder.webhooks.update_webhook` Update an existing webhook write

**Folders 4**

- `jobadder.folders.add_folder` Add a folder write
- `jobadder.folders.find_folders` Find folders read
- `jobadder.folders.get_folder` Get a folder read
- `jobadder.folders.patch_folder` Add or remove entities in folder write

**Notes 4**

- `jobadder.notes.add_note` Add a note write
- `jobadder.notes.find_notes` Find notes read
- `jobadder.notes.get_note` Get a note read
- `jobadder.notes.update_note` Update a note write

**Usergroups 3**

- `jobadder.usergroups.find_user_groups` Find groups read
- `jobadder.usergroups.get_group_users` Get users read
- `jobadder.usergroups.get_user_group` Get a group read

**Useroffices 3**

- `jobadder.useroffices.find_user_offices` Find user offices read
- `jobadder.useroffices.get_office_users` Get users read
- `jobadder.useroffices.get_user_office` Get a user office read

**Floats 2**

- `jobadder.floats.get_float` Get a float read
- `jobadder.floats.get_floats` Find floats read

**Search 2**

- `jobadder.search.find_email_address` Search by email address. read
- `jobadder.search.find_phone_number` Search by phone number. read

**Submissions 2**

- `jobadder.submissions.find_submissions` Find submissions read
- `jobadder.submissions.get_submission` Get a submission read

**Categories 1**

- `jobadder.categories.find_categories` Find categories read

**Countries 1**

- `jobadder.countries.find_countries` Find countries read

**Locations 1**

- `jobadder.locations.find_locations` Find locations read

**Worktypes 1**

- `jobadder.worktypes.find_work_types` Find work types read

Questions

## The JobAdder MCP server, answered.

**Is there a JobAdder MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 371 JobAdder actions across candidates, companies, jobs and applications, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by JobAdder.

**What do I need to connect JobAdder?**

Your own JobAdder OAuth app, registered with JobAdder (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no JobAdder app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your api base. The free call account { op: "connections.requirements", service: "jobadder" } lists exactly what to paste.

**Can an AI agent delete or change things in JobAdder?**

Only if its key allows it, and only with an explicit confirmation. 18 JobAdder actions are destructive, including delete a user task, delete an Event and delete an interview. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my JobAdder API limit?**

actionlake paces every call to the limits in the JobAdder service file: 10 calls a second per connection. Repeated reads are answered from cache (228 JobAdder actions can be), which never reaches JobAdder.

**What does a JobAdder action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (371 JobAdder actions page). Cache hits, searches, dry runs and calls JobAdder refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which JobAdder API does it cover?**

The JobAdder API v2 (OpenAPI 3.0.1) at api.jobadder.com/v2 by default, or the base URL set when you connect. It is built from JobAdder's documentation as read on 23 October 2026. 371 actions in 27 areas, each one in the signed service file (version 1.0.0).

**Can I combine JobAdder with my other systems?**

Yes. ask joins JobAdder to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. JobAdder maps crm.company, which 227 other connectors also map.

**Does actionlake keep my JobAdder data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your JobAdder credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like JobAdder

Shares the most action names with

- [Recruit CRM 35](https://actionlake.com/connectors/recruit-crm)
- [Outreach 25](https://actionlake.com/connectors/outreach)
- [Crelate 23](https://actionlake.com/connectors/crelate)
- [Salesloft 22](https://actionlake.com/connectors/salesloft)
- [Affinity 21](https://actionlake.com/connectors/affinity)
- [VaultRE 19](https://actionlake.com/connectors/vaultre)

Joins with, on shared entities

- [Manatal 4](https://actionlake.com/connectors/manatal)
- [HaloPSA 3](https://actionlake.com/connectors/halopsa)
- [Genesys Cloud CX 3](https://actionlake.com/connectors/genesys-cloud-cx)
- [Odoo 3](https://actionlake.com/connectors/odoo)
- [Unified.to 3](https://actionlake.com/connectors/unified-to)
- [Zoho Desk 3](https://actionlake.com/connectors/zoho-desk)

Browse

- [All CRM & sales connectors](https://actionlake.com/connectors/category/crm-and-sales)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by JobAdder; the name is the vendor's own. Counts are from the JobAdder service file, version 1.0.0.

## Give your agent JobAdder today.

[Connect JobAdder free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/jobadder
More: https://actionlake.com/llms.txt
