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.
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/mcpdo { action: "jobadder.contacts.find_contacts", intent: "check which JobAdder account is connected"}# Find contacts · read · 1 upstream call- 371actionsin one signed file
- 228readlook, never change
- 125writecreate and update
- 18wait for a yesdestructive, confirmed first
Set up
Connect JobAdder in three steps.
- 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 - 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_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idJobAdder app Client ID, issued when you register an app with JobAdder's developer programme (developers.jobadder.com)client_secretJobAdder app Client secret (issued with the Client ID)api_baseWhere your JobAdder lives: your api base
account { op: "connections.requirements", service: "jobadder" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "jobadder.contacts.find_contacts" }# find contacts · read · 1 upstream callcheck { 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_tokenrefresh_tokenclient_idclient_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 2026api.jobadder.comdevelopers.jobadder.com
- 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.
- 228readlook, never change
- 125writecreate and update
- 18destructivewait for a confirmation
Candidates
5335 read · 13 write · 5 destructive
Find candidates · Add a candidate · Get a candidate · Update a candidate
Companies
4631 read · 13 write · 2 destructive
Find companies · Add a new company · Get a company · Update an existing company
Jobs
4026 read · 13 write · 1 destructive
Find jobs · Add a job · Get a job · Update a job
Applications
3720 read · 17 write · 0 destructive
Find job applications · Get a job application · Update a job application · Add a job application activity
Contacts
3623 read · 10 write · 3 destructive
Find contacts · Add a new contact · Get a contact · Update an existing contact
Partners
339 read · 23 write · 1 destructive
Add a partner action · Find partner actions · Find candidates submitted to an action · Find companies submitted to an action
Placements
3022 read · 8 write · 0 destructive
Add a placement activity · Add a note · Add a placement user task · Recently deleted placements
Requisitions
168 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_contactsFind contacts | Find contacts. | read | crm.contact.list177 connectors |
jobadder.companies.find_companiesFind companies | Find companies. | read | crm.company.list162 connectors |
jobadder.users.find_usersFind users | Find users. | read | identity.user.list474 connectors |
jobadder.contacts.add_contactAdd a new contact | Add a new contact. | write | crm.contact.create161 connectors |
jobadder.companies.add_companyAdd a new company | Add a new company. | write | crm.company.create142 connectors |
jobadder.candidates.find_candidatesFind candidates | Find candidates. | read | hr.candidate.list22 connectors |
jobadder.users.get_userGet a user | Get a user. | read | identity.user.get399 connectors |
jobadder.candidates.add_candidateAdd a candidate | Add a candidate. | write | hr.candidate.create20 connectors |
jobadder.opportunities.add_opportunityAdd an opportunity | Add an opportunity. | write | crm.deal.create43 connectors |
jobadder.opportunities.find_opportunitiesFind opportunities | Find opportunities. | read | crm.deal.list43 connectors |
jobadder.contacts.add_contact_noteAdd a contact note | Add a contact note. | write | crm.contact_note.create28 connectors |
jobadder.usertasks.delete_user_taskDelete a user task | Delete a user task. | destructive | work.task.delete107 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.
- Readread
Find the JobAdder contacts with no email address, so we can clean them up.
calls
jobadder.contacts.find_contacts - Writewrite
Add a new contact in JobAdder. Show me exactly what you will send before you save it.
calls
jobadder.contacts.add_contact - Across systemsread
Which JobAdder companies have invoices in ConnectWise PSA, and how many each?
calls
jobadder.companies.find_companiesconnectwise_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, oncrm.company· ConnectWise PSAWhich JobAdder companies have invoices in NetSuite, and how many each?
jobadder.companies.find_companies+netsuite.views.invoices, oncrm.company· NetSuite
identity.user 517crm.company 227crm.contact 192hr.candidate 18ask { 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"] } } ]}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.
Delete a user task?
intent: the user asked me to delete a user task
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: "[email protected]" }, { match: "jobadder.events.delete_event", approver: "[email protected]" }, { match: "jobadder.interviews.delete_interview", approver: "[email protected]" } ]}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.
- 1upstream call per actionall 371 JobAdder actions
- 371actions pageeach page of a long list is one call
- 228reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every JobAdder action.
371 actions by area: the id your agent calls, what it does, and its effect.
Candidates53
jobadder.candidates.add_candidateAdd a candidatewritejobadder.candidates.add_candidate_activityAdd a candidate activitywritejobadder.candidates.add_candidate_job_ordersAdd jobs to a candidatewritejobadder.candidates.add_candidate_noteAdd a notewritejobadder.candidates.add_candidate_user_taskAdd a candidate user taskwritejobadder.candidates.add_candidate_videoAdd a videowritejobadder.candidates.delete_candidate_availability_weekRemove weekly availabilitydestructivejobadder.candidates.delete_candidate_categoryRemove a categorydestructivejobadder.candidates.delete_candidate_photoRemove a photodestructivejobadder.candidates.deleted_candidatesRecently deleted candidatesreadjobadder.candidates.find_all_candidate_attachmentsFind attachmentsreadjobadder.candidates.find_candidate_activitiesFind candidate activitiesreadjobadder.candidates.find_candidate_activity_settingsGet all candidate activity settings definitionsreadjobadder.candidates.find_candidate_attachmentsFind candidate attachmentsreadjobadder.candidates.find_candidatesFind candidatesreadjobadder.candidates.find_candidates_payroll_billingsFind payroll billingsreadjobadder.candidates.get_active_candidate_job_applicationsGet active job applicationsreadjobadder.candidates.get_candidateGet a candidatereadjobadder.candidates.get_candidate_activityGet a candidate activityreadjobadder.candidates.get_candidate_activity_by_candidate_idGet candidate activitiesreadjobadder.candidates.get_candidate_activity_settingGet candidate activity settings with detailsreadjobadder.candidates.get_candidate_approved_placementsGet all approved placementsreadjobadder.candidates.get_candidate_attachment_category_listGet all attachment categoriesreadjobadder.candidates.get_candidate_availabilityGet availabilityreadjobadder.candidates.get_candidate_custom_field_listGet all candidate custom field definitionsreadjobadder.candidates.get_candidate_custom_field_list_itemGet a custom field definitionreadjobadder.candidates.get_candidate_eventsGet all eventsreadjobadder.candidates.get_candidate_floatsGet all floatsreadjobadder.candidates.get_candidate_interviewsGet all Interviewsreadjobadder.candidates.get_candidate_job_applicationsGet job applicationsreadjobadder.candidates.get_candidate_note_type_listGet all note typesreadjobadder.candidates.get_candidate_notesGet candidate notesreadjobadder.candidates.get_candidate_payroll_billingGet a candidate payroll billingreadjobadder.candidates.get_candidate_placementsGet all placementsreadjobadder.candidates.get_candidate_rating_listGet internal ratingsreadjobadder.candidates.get_candidate_salutation_listGet salutations (honorifics/titles)readjobadder.candidates.get_candidate_skillsGet skillsreadjobadder.candidates.get_candidate_source_listGet all candidate sourcesreadjobadder.candidates.get_candidate_status_listGet all status definitionsreadjobadder.candidates.get_candidate_status_list_itemGet a status definitionreadjobadder.candidates.get_candidate_submissionsGet all submissionsreadjobadder.candidates.get_candidate_user_taskGet a candidate user taskreadjobadder.candidates.get_candidate_videosGet all videosreadjobadder.candidates.get_latest_candidate_videoGet a recent videoreadjobadder.candidates.privacy_delete_candidateRemove a candidate at their requestdestructivejobadder.candidates.put_candidate_custom_field_list_itemModify custom field list valueswritejobadder.candidates.put_candidate_skillsUpdate skillswritejobadder.candidates.put_candidate_statusSet a candidate statuswritejobadder.candidates.remove_candidate_skillsRemove skillsdestructivejobadder.candidates.update_candidateUpdate a candidatewritejobadder.candidates.update_candidate_attachmentUpdate attachment detailswritejobadder.candidates.update_candidate_availability_weekUpdate weekly availabilitywritejobadder.candidates.update_candidate_user_taskUpdate a candidate user taskwrite
Companies46
jobadder.companies.add_companyAdd a new companywritejobadder.companies.add_company_activityAdd a company activitywritejobadder.companies.add_company_addressAdd an addresswritejobadder.companies.add_company_noteAdd a company notewritejobadder.companies.add_company_user_taskAdd a company user taskwritejobadder.companies.add_company_workflowAdd a company workflowwritejobadder.companies.delete_company_logoRemove a company logodestructivejobadder.companies.deleted_companiesRecently deleted companiesreadjobadder.companies.find_companiesFind companiesreadjobadder.companies.find_company_activityFind company activitiesreadjobadder.companies.find_company_activity_settingsGet all company activity settings definitionsreadjobadder.companies.find_company_attachmentsFind attachmentsreadjobadder.companies.get_companyGet a companyreadjobadder.companies.get_company_active_job_ordersGet all active/open jobs for a companyreadjobadder.companies.get_company_activityGet a company activityreadjobadder.companies.get_company_activity_by_company_idGet company activitiesreadjobadder.companies.get_company_activity_settingGet Company activity settings with detailsreadjobadder.companies.get_company_addressGet an addressreadjobadder.companies.get_company_addressesGet all addressesreadjobadder.companies.get_company_approved_placementsGet all approved placements for a companyreadjobadder.companies.get_company_attachment_category_listGet all attachment categoriesreadjobadder.companies.get_company_contactsGet company contactsreadjobadder.companies.get_company_custom_field_listGet the list of company custom fieldsreadjobadder.companies.get_company_custom_field_list_itemGet a company custom fieldreadjobadder.companies.get_company_floatsGet all floats for a companyreadjobadder.companies.get_company_job_ordersGet all jobs for a companyreadjobadder.companies.get_company_note_type_listGet a list of company note typesreadjobadder.companies.get_company_notesGet company notesreadjobadder.companies.get_company_placementsGet all approved and unapproved placements for a companyreadjobadder.companies.get_company_requisitionsGet all requisitions for a companyreadjobadder.companies.get_company_skillsGet company skillsreadjobadder.companies.get_company_status_listGet a list of company status definitionsreadjobadder.companies.get_company_status_list_itemGet a company statusreadjobadder.companies.get_company_submissionsGet all candidate submissions for a companyreadjobadder.companies.get_company_subsidiariesGet all subsidiaries for a companyreadjobadder.companies.get_company_user_taskGet a company user taskreadjobadder.companies.get_company_workflowGet a company workflow and approversreadjobadder.companies.list_company_workflowsGet all company workflowsreadjobadder.companies.put_company_custom_field_listModify custom field list valueswritejobadder.companies.put_company_statusSet a company statuswritejobadder.companies.remove_company_addressRemove an addressdestructivejobadder.companies.update_companyUpdate an existing companywritejobadder.companies.update_company_addressUpdate an addresswritejobadder.companies.update_company_attachmentUpdate attachment detailswritejobadder.companies.update_company_user_taskUpdate a company user taskwritejobadder.companies.update_company_workflowUpdate a company workflowwrite
Jobs40
jobadder.jobs.add_job_orderAdd a jobwritejobadder.jobs.add_job_order_activityAdd a job activitywritejobadder.jobs.add_job_order_candidatesAdd candidates to a jobwritejobadder.jobs.add_job_order_noteAdd a notewritejobadder.jobs.add_job_order_payroll_billingAdd the Rate Card ID for passed Job Order IDwritejobadder.jobs.add_job_order_user_taskAdd a job user taskwritejobadder.jobs.delete_job_order_payroll_billingRemove the Rate Card ID for passed Job Order IDdestructivejobadder.jobs.deleted_job_ordersRecently deleted jobsreadjobadder.jobs.find_job_order_activityFind job activitiesreadjobadder.jobs.find_job_order_activity_settingsGet all job activity settings definitionsreadjobadder.jobs.find_job_order_attachmentsFind attachmentsreadjobadder.jobs.find_job_ordersFind jobsreadjobadder.jobs.get_job_orderGet a jobreadjobadder.jobs.get_job_order_active_job_applicationsGet active job applicationsreadjobadder.jobs.get_job_order_activityGet a job activityreadjobadder.jobs.get_job_order_activity_by_job_idGet job activitiesreadjobadder.jobs.get_job_order_activity_settingGet job activity setting with detailsreadjobadder.jobs.get_job_order_approved_placementsGet approved placementsreadjobadder.jobs.get_job_order_attachment_category_listGet all attachment categoriesreadjobadder.jobs.get_job_order_custom_field_itemGet a custom fieldreadjobadder.jobs.get_job_order_custom_field_listGet all custom fieldsreadjobadder.jobs.get_job_order_invoiceGet a job invoicereadjobadder.jobs.get_job_order_invoicesGet job invoicesreadjobadder.jobs.get_job_order_job_applicationsGet job applicationsreadjobadder.jobs.get_job_order_note_type_listGet all note typesreadjobadder.jobs.get_job_order_notesGet job notesreadjobadder.jobs.get_job_order_payroll_billingGet the Rate Card ID for passed Job Order IDreadjobadder.jobs.get_job_order_placementsGet all placementsreadjobadder.jobs.get_job_order_source_listGet all job sourcesreadjobadder.jobs.get_job_order_status_itemGet a status definitionreadjobadder.jobs.get_job_order_status_listGet all status definitionsreadjobadder.jobs.get_job_order_submissionsGet all submissionsreadjobadder.jobs.get_job_order_user_taskGet a job user taskreadjobadder.jobs.put_job_order_custom_field_listModify custom field list valueswritejobadder.jobs.put_job_order_statusSet a job statuswritejobadder.jobs.submit_job_order_candidateSubmit a candidate to an evergreen jobwritejobadder.jobs.update_job_orderUpdate a jobwritejobadder.jobs.update_job_order_attachmentUpdate attachment detailswritejobadder.jobs.update_job_order_payroll_billingUpdate the Rate Card ID for passed Job Order IDwritejobadder.jobs.update_job_order_user_taskUpdate a job user taskwrite
Applications37
jobadder.applications.add_job_application_activityAdd a job application activitywritejobadder.applications.add_job_application_noteAdd a notewritejobadder.applications.add_job_application_user_taskAdd an application user taskwritejobadder.applications.add_job_application_videoAdd a videowritejobadder.applications.deleted_job_applicationsRecently deleted job applicationsreadjobadder.applications.find_job_application_activityFind job application activitiesreadjobadder.applications.find_job_application_activity_settingsGet all job application activity settings definitionsreadjobadder.applications.find_job_application_attachmentsFind attachmentsreadjobadder.applications.find_job_applicationsFind job applicationsreadjobadder.applications.get_job_applicationGet a job applicationreadjobadder.applications.get_job_application_activityGet a job application activityreadjobadder.applications.get_job_application_activity_by_application_idGet job application activitiesreadjobadder.applications.get_job_application_activity_settingGet job application activity settings with detailsreadjobadder.applications.get_job_application_custom_field_listGet all custom fieldsreadjobadder.applications.get_job_application_custom_field_list_itemGet a custom fieldreadjobadder.applications.get_job_application_interviewsGet all Interviewsreadjobadder.applications.get_job_application_notesGet job application notesreadjobadder.applications.get_job_application_status_listGet all status definitionsreadjobadder.applications.get_job_application_status_list_itemGet a status definitionreadjobadder.applications.get_job_application_user_taskGet an application user taskreadjobadder.applications.get_job_application_videosGet all videosreadjobadder.applications.get_job_application_workflow_listGet the job application workflowreadjobadder.applications.get_latest_job_application_videoGet a recent videoreadjobadder.applications.get_workflow_listGet the job application workflowsreadjobadder.applications.post_job_application_external_interviewCreate an external interviewwritejobadder.applications.post_job_application_internal_interviewCreate an internal interviewwritejobadder.applications.put_job_application_custom_field_listModify custom field list valueswritejobadder.applications.put_job_application_external_interviewUpdate an external interviewwritejobadder.applications.put_job_application_internal_interviewUpdate an internal interviewwritejobadder.applications.put_job_application_statusSet a job application statuswritejobadder.applications.review_accept_job_applicationAccept a job applicationwritejobadder.applications.review_reject_job_applicationReject a job applicationwritejobadder.applications.review_submit_job_applicationSubmit a job application for reviewwritejobadder.applications.review_view_job_applicationMark a job application as viewed by the hiring managerwritejobadder.applications.update_job_applicationUpdate a job applicationwritejobadder.applications.update_job_application_attachmentUpdate attachment detailswritejobadder.applications.update_job_application_user_taskUpdate an application user taskwrite
Contacts36
jobadder.contacts.add_contactAdd a new contactwritejobadder.contacts.add_contact_activityAdd a contact activitywritejobadder.contacts.add_contact_noteAdd a contact notewritejobadder.contacts.add_contact_user_taskAdd a contact user taskwritejobadder.contacts.delete_contact_categoryRemove a categorydestructivejobadder.contacts.delete_contact_photoRemove photodestructivejobadder.contacts.deleted_contactsRecently deleted contactsreadjobadder.contacts.find_contact_activityFind contact activitiesreadjobadder.contacts.find_contact_activity_settingsGet all contact activity settings definitionsreadjobadder.contacts.find_contact_attachmentsFind attachmentsreadjobadder.contacts.find_contactsFind contactsreadjobadder.contacts.get_contactGet a contactreadjobadder.contacts.get_contact_active_job_ordersGet all active/open jobs for a contactreadjobadder.contacts.get_contact_activityGet a contact activityreadjobadder.contacts.get_contact_activity_by_contact_idGet contact activitiesreadjobadder.contacts.get_contact_activity_settingGet contact activity settings with detailsreadjobadder.contacts.get_contact_attachment_category_listGet all attachment categoriesreadjobadder.contacts.get_contact_custom_field_listGet the list of Contact custom fieldsreadjobadder.contacts.get_contact_custom_field_list_itemGet a Contact custom fieldreadjobadder.contacts.get_contact_eventsGet all eventsreadjobadder.contacts.get_contact_interviewsGet all Interviewsreadjobadder.contacts.get_contact_job_ordersGet all jobs for a contactreadjobadder.contacts.get_contact_note_type_listGet a list of contact note typesreadjobadder.contacts.get_contact_notesGet contact notesreadjobadder.contacts.get_contact_salutation_listGet salutations (honorifics/titles)readjobadder.contacts.get_contact_skillsGet contact skillsreadjobadder.contacts.get_contact_status_listGet a list of contact status definitionsreadjobadder.contacts.get_contact_status_list_itemGet a contact status definitionreadjobadder.contacts.get_contact_user_taskGet a contact user taskreadjobadder.contacts.put_contact_custom_field_listModify custom field list valueswritejobadder.contacts.put_contact_skillsUpdate skillswritejobadder.contacts.put_contact_statusSet a contact statuswritejobadder.contacts.remove_contact_skillsRemove skillsdestructivejobadder.contacts.update_contactUpdate an existing contactwritejobadder.contacts.update_contact_attachmentUpdate attachment detailswritejobadder.contacts.update_contact_user_taskUpdate a contact user taskwrite
Partners33
jobadder.partners.add_partner_actionAdd a partner actionwritejobadder.partners.complete_candidate_partner_actionComplete a candidate actionwritejobadder.partners.complete_company_partner_actionComplete a company actionwritejobadder.partners.complete_contact_partner_actionComplete a contact actionwritejobadder.partners.complete_job_ad_partner_actionComplete a job ad actionwritejobadder.partners.complete_job_application_partner_actionComplete a job application actionwritejobadder.partners.complete_job_order_partner_actionComplete a job actionwritejobadder.partners.complete_placement_partner_actionComplete a placement actionwritejobadder.partners.delete_partner_actionDelete a partner actiondestructivejobadder.partners.find_partner_actionsFind partner actionsreadjobadder.partners.get_partner_actionGet a partner actionreadjobadder.partners.get_partner_action_candidatesFind candidates submitted to an actionreadjobadder.partners.get_partner_action_companiesFind companies submitted to an actionreadjobadder.partners.get_partner_action_contactsFind contacts submitted to an actionreadjobadder.partners.get_partner_action_job_adsFind job ads submitted to an actionreadjobadder.partners.get_partner_action_job_applicationsFind job applications submitted to an actionreadjobadder.partners.get_partner_action_job_ordersFind jobs submitted to an actionreadjobadder.partners.get_partner_action_placementsFind placements submitted to an actionreadjobadder.partners.progress_candidate_partner_actionUpdate candidate action progresswritejobadder.partners.progress_company_partner_actionUpdate company action progresswritejobadder.partners.progress_contact_partner_actionUpdate contact action progresswritejobadder.partners.progress_job_ad_partner_actionUpdate job ad action progresswritejobadder.partners.progress_job_application_partner_actionUpdate job application action progresswritejobadder.partners.progress_job_order_partner_actionUpdate job action progresswritejobadder.partners.progress_placement_partner_actionUpdate placement action progresswritejobadder.partners.reject_candidate_partner_actionReject a candidate actionwritejobadder.partners.reject_company_partner_actionReject a company actionwritejobadder.partners.reject_contact_partner_actionReject a contact actionwritejobadder.partners.reject_job_ad_partner_actionReject a job ad actionwritejobadder.partners.reject_job_application_partner_actionReject a job application actionwritejobadder.partners.reject_job_order_partner_actionReject a job actionwritejobadder.partners.reject_placement_partner_actionReject a placement actionwritejobadder.partners.update_partner_actionUpdate a partner actionwrite
Placements30
jobadder.placements.add_placement_activityAdd a placement activitywritejobadder.placements.add_placement_noteAdd a notewritejobadder.placements.add_placement_user_taskAdd a placement user taskwritejobadder.placements.deleted_placementsRecently deleted placementsreadjobadder.placements.find_placement_activityFind placement activitiesreadjobadder.placements.find_placement_activity_settingsGet all placement activity settings definitionsreadjobadder.placements.find_placement_attachmentsFind attachmentsreadjobadder.placements.find_placementsFind placementsreadjobadder.placements.get_placementGet a placementreadjobadder.placements.get_placement_activityGet a placement activityreadjobadder.placements.get_placement_activity_by_placement_idGet placement activitiesreadjobadder.placements.get_placement_activity_settingGet placement activity settings with detailsreadjobadder.placements.get_placement_attachment_category_listGet all attachment categoriesreadjobadder.placements.get_placement_award_listGet all awardsreadjobadder.placements.get_placement_billing_terms_listGet all billing termsreadjobadder.placements.get_placement_custom_field_itemGet a custom fieldreadjobadder.placements.get_placement_custom_field_listGet all custom fieldsreadjobadder.placements.get_placement_industry_code_listGet all industry codesreadjobadder.placements.get_placement_note_type_listGet all note typesreadjobadder.placements.get_placement_notesGet placement notesreadjobadder.placements.get_placement_payment_type_listGet all payment typesreadjobadder.placements.get_placement_status_itemGet a status definitionreadjobadder.placements.get_placement_status_listGet all status definitionsreadjobadder.placements.get_placement_timesheetsGet timesheetsreadjobadder.placements.get_placement_user_taskGet a placement user taskreadjobadder.placements.put_placement_custom_field_listModify custom field list valueswritejobadder.placements.put_placement_statusSet a placement statuswritejobadder.placements.update_placementUpdate a placementwritejobadder.placements.update_placement_attachmentUpdate attachment detailswritejobadder.placements.update_placement_user_taskUpdate a placement user taskwrite
Requisitions16
jobadder.requisitions.add_requisitionAdd a requisitionwritejobadder.requisitions.add_requisition_noteAdd a requisition notewritejobadder.requisitions.approve_requisitionApprove a requisitionwritejobadder.requisitions.delete_requisitionRemove a requisitiondestructivejobadder.requisitions.delete_requisition_attachmentRemove an attachmentdestructivejobadder.requisitions.find_requisitionsFind requisitionsreadjobadder.requisitions.get_requisitionGet a requisitionreadjobadder.requisitions.get_requisition_approval_historyGet approval historyreadjobadder.requisitions.get_requisition_attachment_listGet all attachmentsreadjobadder.requisitions.get_requisition_custom_field_itemGet a custom fieldreadjobadder.requisitions.get_requisition_custom_field_listGet all custom fieldsreadjobadder.requisitions.get_requisition_formsGet all requisition forms and fieldsreadjobadder.requisitions.get_requisition_notesGet requisition notesreadjobadder.requisitions.reject_requisitionReject a requisitionwritejobadder.requisitions.submit_requisitionSubmit a requisition for approvalwritejobadder.requisitions.update_requisitionUpdate a requisitionwrite
Events11
jobadder.events.create_eventCreate an eventwritejobadder.events.delete_eventDelete an Eventdestructivejobadder.events.find_eventsFind eventsreadjobadder.events.get_contact_event_interview_evaluationGet a contact interview evaluation for eventreadjobadder.events.get_eventGet an Eventreadjobadder.events.get_event_interview_evaluationsGet interview evaluations for eventreadjobadder.events.get_event_sub_typesGet Event Subtypesreadjobadder.events.get_user_event_interview_evaluationGet an user interview evaluation for eventreadjobadder.events.put_contact_event_interview_evaluationSubmit an contact interview evaluation for eventwritejobadder.events.put_user_event_interview_evaluationSubmit an user interview evaluation for eventwritejobadder.events.update_eventUpdate an eventwrite
Interviews8
jobadder.interviews.delete_interviewDelete an interviewdestructivejobadder.interviews.find_interviewsFind interviewsreadjobadder.interviews.get_external_interview_evaluationGet an external/contact interview evaluationreadjobadder.interviews.get_internal_interview_evaluationGet an internal/user interview evaluationreadjobadder.interviews.get_interviewGet an interviewreadjobadder.interviews.get_interview_evaluationsGet interview evaluationsreadjobadder.interviews.put_external_interview_evaluationSubmit an external/contact interview evaluationwritejobadder.interviews.put_internal_interview_evaluationSubmit an internal/user interview evaluationwrite
Opportunities7
jobadder.opportunities.add_opportunityAdd an opportunitywritejobadder.opportunities.add_opportunity_noteAdd an opportunity notewritejobadder.opportunities.find_opportunitiesFind opportunitiesreadjobadder.opportunities.get_opportunityGet an opportunityreadjobadder.opportunities.get_opportunity_notesGet opportunity notesreadjobadder.opportunities.get_stagesGet all stagesreadjobadder.opportunities.update_opportunityUpdate an opportunitywrite
Users7
jobadder.users.find_user_user_tasksFind user tasksreadjobadder.users.find_usersFind usersreadjobadder.users.get_current_userGet the current userreadjobadder.users.get_userGet a userreadjobadder.users.get_user_eventsGet all Eventsreadjobadder.users.get_user_interviewsGet all Interviewsreadjobadder.users.get_user_user_groupsGet user groupsread
Usertasks7
jobadder.usertasks.add_user_taskCreate a user taskwritejobadder.usertasks.delete_user_taskDelete a user taskdestructivejobadder.usertasks.find_user_tasksFind user tasksreadjobadder.usertasks.get_user_taskGet a user taskreadjobadder.usertasks.mark_complete_user_taskMark user task as completewritejobadder.usertasks.mark_incomplete_user_taskMark user task as incompletewritejobadder.usertasks.update_user_taskUpdate a user taskwrite
Jobads6
jobadder.jobads.add_job_ad_draftAdd a draft job adwritejobadder.jobads.get_job_adGet a job adreadjobadder.jobads.get_job_ad_active_job_applicationsGet active job applicationsreadjobadder.jobads.get_job_ad_job_applicationsGet job applicationsreadjobadder.jobads.get_job_adsFind job adsreadjobadder.jobads.update_job_ad_draftUpdate a draft job adwrite
Jobboards5
jobadder.jobboards.find_job_board_job_adsFind job adsreadjobadder.jobboards.find_job_boardsFind job boardsreadjobadder.jobboards.get_job_boardGet a job boardreadjobadder.jobboards.get_job_board_job_adGet a job adreadjobadder.jobboards.submit_job_board_job_applicationSubmit a job applicationwrite
Webhooks5
jobadder.webhooks.add_webhookAdd a new webhookwritejobadder.webhooks.delete_webhookDelete a webhookdestructivejobadder.webhooks.find_webhooksFind webhooksreadjobadder.webhooks.get_webhookGet a webhookreadjobadder.webhooks.update_webhookUpdate an existing webhookwrite
Folders4
jobadder.folders.add_folderAdd a folderwritejobadder.folders.find_foldersFind foldersreadjobadder.folders.get_folderGet a folderreadjobadder.folders.patch_folderAdd or remove entities in folderwrite
Notes4
jobadder.notes.add_noteAdd a notewritejobadder.notes.find_notesFind notesreadjobadder.notes.get_noteGet a notereadjobadder.notes.update_noteUpdate a notewrite
Usergroups3
jobadder.usergroups.find_user_groupsFind groupsreadjobadder.usergroups.get_group_usersGet usersreadjobadder.usergroups.get_user_groupGet a groupread
Useroffices3
jobadder.useroffices.find_user_officesFind user officesreadjobadder.useroffices.get_office_usersGet usersreadjobadder.useroffices.get_user_officeGet a user officeread
Floats2
jobadder.floats.get_floatGet a floatreadjobadder.floats.get_floatsFind floatsread
Search2
jobadder.search.find_email_addressSearch by email address.readjobadder.search.find_phone_numberSearch by phone number.read
Submissions2
jobadder.submissions.find_submissionsFind submissionsreadjobadder.submissions.get_submissionGet a submissionread
Categories1
jobadder.categories.find_categoriesFind categoriesread
Countries1
jobadder.countries.find_countriesFind countriesread
Locations1
jobadder.locations.find_locationsFind locationsread
Worktypes1
jobadder.worktypes.find_work_typesFind work typesread
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.
Give your agent JobAdder today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.