Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Workable

Scalekit connector
Open markdown

The Workable connector lets your AI agent act in each user's Workable account. Each user connects their own Workable access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 66 tools.

Tools
66
What they doRead · write · destructive
40 · 26 · 040 read26 write0 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Workable connection

    In AgentKit > Connections, create a Workable connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'workable'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Workable:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'workable_candidates_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Workable credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • workable_candidate_activities_listList the activity stream of a candidate, such as comments, stage moves, ratings and emails.Read-only

    List Candidate Activities

    List the activity stream of a candidate, such as comments, stage moves, ratings and emails. Returns an activities array with each activity's action, body, member, stage and created_at. Use workable_candidate_activities_list for one candidate's history. Use workable_job_activities_list for a whole job.

    Inputs

    candidate_idstringrequired
    ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
    actionsstring
    Only return these activity actions, comma-separated (for example comment,moved).
    limitinteger
    Number of activities to return per page. Workable defaults to 50. Example: 25.
    max_idstring
    Return activities with an ID less than or equal to this ID. Example: "2a9b4c".
    since_idstring
    Return activities with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
    updated_afterstring
    Only return activities updated at or after this date, ISO 8601. Example: "2024-01-01T00:00:00Z".
  • workable_candidate_files_listList the files attached to a candidate, such as resumes, cover letters and comment attachments.Read-only

    List Candidate Files

    List the files attached to a candidate, such as resumes, cover letters and comment attachments. Returns a files array with each file's name, type and download URL. Use workable_candidate_files_list to fetch a candidate's documents.

    Inputs

    candidate_idstringrequired
    ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
  • workable_candidate_getGet one candidate's full profile by ID.Read-only

    Get Candidate

    Get one candidate's full profile by ID. Returns contact details, job and stage, resume and image URLs, education, experience, skills, tags, answers, social profiles and disqualification details. Use workable_candidate_get for a full profile. Use workable_candidates_list to search or filter candidates.

    Inputs

    candidate_idstringrequired
    ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
  • workable_candidate_offer_getGet the offer data for a candidate.Read-only

    Get Candidate Offer

    Get the offer data for a candidate. Returns the candidate's offer, including its state, the offer document details and its fields. Use workable_candidate_offer_get from a candidate. Use workable_offer_get when you already have the offer ID.

    Inputs

    candidate_idstringrequired
    ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
  • workable_candidates_listList candidates in the account, optionally filtered by job, pipeline stage, email, or created and updated time.Read-only

    List Candidates

    List candidates in the account, optionally filtered by job, pipeline stage, email, or created and updated time. Returns a candidates array (id, name, email, stage, job shortcode, disqualified flag, created_at) and a paging.next URL when more pages exist. Use workable_candidates_list to find candidates or look one up by email. Use workable_candidate_get for a full profile.

    Inputs

    created_afterstring
    Only return candidates created after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
    emailstring
    Only return candidates with this email address. Example: "jane.doe@example.com".
    limitinteger
    Number of candidates to return per page. Workable defaults to 50. Example: 25.
    max_idstring
    Return candidates with an ID less than or equal to this ID. Example: "2a9b4c".
    shortcodestring
    Only return candidates for the job with this shortcode. Get it from workable_jobs_list. Example: "GROOV005".
    since_idstring
    Return candidates with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
    stagestring
    Only return candidates in this pipeline stage, by stage slug (for example applied, interview, offer, hired). Get slugs from workable_stages_list.
    updated_afterstring
    Only return candidates updated after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
  • workable_custom_attributes_listList the candidate custom attributes defined in the account.Read-only

    List Custom Attributes

    List the candidate custom attributes defined in the account. Returns a custom_attributes array with each attribute's key, label, type and choices. Use the key in workable_candidate_custom_attribute_update. Use workable_job_custom_attributes_list for one job.

    Inputs

    This tool takes no inputs.

  • workable_departments_listList the account's departments.Read-only

    List Departments

    List the account's departments. Returns a departments array with each department's id, name and parent_id. Use department IDs to filter the org chart or set an employee's department.

    Inputs

    This tool takes no inputs.

  • workable_disqualification_reasons_listList the disqualification reasons configured for the account.Read-only

    List Disqualification Reasons

    List the disqualification reasons configured for the account. Returns a disqualification_reasons array with each reason's id and name. Use the reason id as disqualify_reason_id in workable_candidate_disqualify.

    Inputs

    This tool takes no inputs.