arazzo: 1.0.1
info:
title: Unified.to ATS Job Pipeline
summary: Open a new ATS job, retrieve it, then review the applications attached to it.
description: >-
A hiring-manager pattern against the Unified.to unified ATS API. The
workflow opens a new job requisition on a connection, reads it back by id to
confirm it is live, and then lists the applications filtered to that job so a
recruiter can review the candidate pipeline. Every step inlines its request —
including the required connection_id path parameter — so the flow is
self-describing.
version: 1.0.0
x-realizes-capability-ids:
- BC-300.10
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-300.10
capability_name: Talent Acquisition Management
spec: unified-to-ats-api-openapi.yml
confidence: 0.95
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: atsApi
url: ../openapi/unified-to-ats-api-openapi.yml
type: openapi
workflows:
- workflowId: ats-job-pipeline
summary: Create a job, fetch it, and list its applications.
description: >-
Creates an ATS job in OPEN status, retrieves the created job by id, then
lists applications filtered to that job id to surface the candidate pipeline.
inputs:
type: object
required:
- connectionId
- jobName
properties:
connectionId:
type: string
description: The Unified.to connection id for the target ATS.
jobName:
type: string
description: The title of the job requisition to open.
description:
type: string
description: The job description / responsibilities text.
steps:
- stepId: createJob
description: >-
Open a new job requisition in OPEN status with the supplied title and
description.
operationId: createAtsJob
parameters:
- name: connection_id
in: path
value: $inputs.connectionId
requestBody:
contentType: application/json
payload:
name: $inputs.jobName
description: $inputs.description
status: OPEN
successCriteria:
- condition: $statusCode == 200
outputs:
jobId: $response.body#/id
- stepId: getJob
description: >-
Read the created job back by id to confirm it is live on the connection.
operationId: getAtsJob
parameters:
- name: connection_id
in: path
value: $inputs.connectionId
- name: id
in: path
value: $steps.createJob.outputs.jobId
successCriteria:
- condition: $statusCode == 200
outputs:
jobStatus: $response.body#/status
- stepId: listJobApplications
description: >-
List applications filtered to the new job to review the candidate
pipeline.
operationId: listAtsApplications
parameters:
- name: connection_id
in: path
value: $inputs.connectionId
- name: job_id
in: query
value: $steps.createJob.outputs.jobId
- name: limit
in: query
value: 50
successCriteria:
- condition: $statusCode == 200
outputs:
firstApplicationId: $response.body#/0/id
outputs:
jobId: $steps.createJob.outputs.jobId
jobStatus: $steps.getJob.outputs.jobStatus
firstApplicationId: $steps.listJobApplications.outputs.firstApplicationId
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.