Unified.to · Arazzo Workflow

Unified.to ATS Candidate Application

Version 1.0.0

Create an ATS candidate, submit their application to a job, and list applications for that candidate.

1 workflow 1 source API 1 provider
View Spec View on GitHub IntegrationsUnified APIArazzoWorkflows

Provider

unified-to

Workflows

ats-candidate-application
Create a candidate, submit an application for a job, and list the candidate's applications.
Creates an ATS candidate, creates an application that references both the new candidate id and an existing job id, then queries applications filtered to the candidate to confirm the submission was recorded.
3 steps inputs: connectionId, email, firstName, jobId, lastName outputs: applicationId, candidateId, firstApplicationId
1
createCandidate
createAtsCandidate
Create the candidate on the connection with the supplied name and a single WORK email.
2
submitApplication
createAtsApplication
Submit an application linking the new candidate to the supplied job, with an initial NEW status.
3
listCandidateApplications
listAtsApplications
List applications filtered to the new candidate to confirm the submission is tracked.

Source API Descriptions

Arazzo Workflow Specification

unified-to-ats-candidate-application-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Unified.to ATS Candidate Application
  summary: Create an ATS candidate, submit their application to a job, and list applications for that candidate.
  description: >-
    The core recruiting pattern against the Unified.to unified ATS API. The
    workflow creates a candidate on a connection, then submits an application
    that links the new candidate to an existing job, and finally lists
    applications filtered to the candidate to confirm the submission. Every step
    inlines its request — including the required connection_id path parameter and
    the candidate/job linkage — so the flow is self-describing.
  version: 1.0.0
sourceDescriptions:
- name: atsApi
  url: ../openapi/unified-to-ats-openapi.yaml
  type: openapi
workflows:
- workflowId: ats-candidate-application
  summary: Create a candidate, submit an application for a job, and list the candidate's applications.
  description: >-
    Creates an ATS candidate, creates an application that references both the new
    candidate id and an existing job id, then queries applications filtered to
    the candidate to confirm the submission was recorded.
  inputs:
    type: object
    required:
    - connectionId
    - firstName
    - lastName
    - email
    - jobId
    properties:
      connectionId:
        type: string
        description: The Unified.to connection id for the target ATS (e.g. Greenhouse, Lever).
      firstName:
        type: string
        description: The candidate's first name.
      lastName:
        type: string
        description: The candidate's last name.
      email:
        type: string
        description: The candidate's primary work email address.
      jobId:
        type: string
        description: The id of an existing job the candidate is applying to.
  steps:
  - stepId: createCandidate
    description: >-
      Create the candidate on the connection with the supplied name and a single
      WORK email.
    operationId: createAtsCandidate
    parameters:
    - name: connection_id
      in: path
      value: $inputs.connectionId
    requestBody:
      contentType: application/json
      payload:
        first_name: $inputs.firstName
        last_name: $inputs.lastName
        emails:
        - email: $inputs.email
          type: WORK
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      candidateId: $response.body#/id
  - stepId: submitApplication
    description: >-
      Submit an application linking the new candidate to the supplied job, with
      an initial NEW status.
    operationId: createAtsApplication
    parameters:
    - name: connection_id
      in: path
      value: $inputs.connectionId
    requestBody:
      contentType: application/json
      payload:
        candidate_id: $steps.createCandidate.outputs.candidateId
        job_id: $inputs.jobId
        status: NEW
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      applicationId: $response.body#/id
  - stepId: listCandidateApplications
    description: >-
      List applications filtered to the new candidate to confirm the submission
      is tracked.
    operationId: listAtsApplications
    parameters:
    - name: connection_id
      in: path
      value: $inputs.connectionId
    - name: candidate_id
      in: query
      value: $steps.createCandidate.outputs.candidateId
    - name: limit
      in: query
      value: 25
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstApplicationId: $response.body#/0/id
  outputs:
    candidateId: $steps.createCandidate.outputs.candidateId
    applicationId: $steps.submitApplication.outputs.applicationId
    firstApplicationId: $steps.listCandidateApplications.outputs.firstApplicationId