Workday Recruiting · Arazzo Workflow

Workday Recruiting Create and Source a Job Requisition

Version 1.0.0

Create a job requisition, confirm it, then post its job to career sites.

1 workflow 1 source API 1 provider
View Spec View on GitHub HCMHuman ResourcesRecruitingSaaSTalent AcquisitionArazzoWorkflows

Provider

workday-recruiting

Workflows

post-and-source-requisition
Create a requisition and publish its posting to career sites.
Creates a job requisition, retrieves it to confirm status, finds the associated job posting, and posts the job to one or more career sites.
4 steps inputs: hiringManager, jobDescription, jobProfile, numberOfOpenings, position, postingSite, qualifications, recruiter, supervisoryOrganization, title outputs: postingId, requisitionId, requisitionNumber
1
createRequisition
createJobRequisition
Create the job requisition for the position within the supervisory organization.
2
confirmRequisition
getJobRequisition
Read the created requisition back to confirm it exists and is in an open recruiting status before posting.
3
findPosting
listJobPostings
List the job postings generated for the requisition so the primary posting can be published.
4
publishPosting
postJob
Post the job to the supplied career site, making the requisition visible to candidates.

Source API Descriptions

Arazzo Workflow Specification

workday-recruiting-post-and-source-requisition-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workday Recruiting Create and Source a Job Requisition
  summary: Create a job requisition, confirm it, then post its job to career sites.
  description: >-
    Stands up a brand-new hiring need end to end. The workflow creates a job
    requisition for a position, reads the created requisition back to confirm it
    landed in an open status, locates the job posting that Workday generated for
    that requisition, and then publishes that posting to the chosen career
    sites. Every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: workdayRecruitingApi
  url: ../openapi/workday-recruiting-rest-api-openapi.yml
  type: openapi
workflows:
- workflowId: post-and-source-requisition
  summary: Create a requisition and publish its posting to career sites.
  description: >-
    Creates a job requisition, retrieves it to confirm status, finds the
    associated job posting, and posts the job to one or more career sites.
  inputs:
    type: object
    required:
    - title
    - jobProfile
    - position
    - supervisoryOrganization
    - numberOfOpenings
    - postingSite
    properties:
      title:
        type: string
        description: The requisition title (e.g. "Senior Software Engineer").
      jobProfile:
        type: object
        description: Reference to the job profile (id + descriptor).
      position:
        type: object
        description: Reference to the position the requisition fills (id + descriptor).
      supervisoryOrganization:
        type: object
        description: Reference to the supervisory organization (id + descriptor).
      hiringManager:
        type: object
        description: Reference to the hiring manager (id + descriptor).
      recruiter:
        type: object
        description: Reference to the recruiter (id + descriptor).
      numberOfOpenings:
        type: integer
        description: Number of openings on the requisition.
      jobDescription:
        type: string
        description: The job description text.
      qualifications:
        type: string
        description: The required qualifications text.
      postingSite:
        type: object
        description: Career site reference to publish the posting to (id + descriptor).
  steps:
  - stepId: createRequisition
    description: >-
      Create the job requisition for the position within the supervisory
      organization.
    operationId: createJobRequisition
    requestBody:
      contentType: application/json
      payload:
        title: $inputs.title
        jobProfile: $inputs.jobProfile
        position: $inputs.position
        supervisoryOrganization: $inputs.supervisoryOrganization
        hiringManager: $inputs.hiringManager
        recruiter: $inputs.recruiter
        numberOfOpenings: $inputs.numberOfOpenings
        jobDescription: $inputs.jobDescription
        qualifications: $inputs.qualifications
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      requisitionId: $response.body#/id
      requisitionNumber: $response.body#/requisitionNumber
      status: $response.body#/status
  - stepId: confirmRequisition
    description: >-
      Read the created requisition back to confirm it exists and is in an open
      recruiting status before posting.
    operationId: getJobRequisition
    parameters:
    - name: id
      in: path
      value: $steps.createRequisition.outputs.requisitionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
  - stepId: findPosting
    description: >-
      List the job postings generated for the requisition so the primary
      posting can be published.
    operationId: listJobPostings
    parameters:
    - name: jobRequisition
      in: query
      value: $steps.createRequisition.outputs.requisitionId
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      postingId: $response.body#/data/0/id
  - stepId: publishPosting
    description: >-
      Post the job to the supplied career site, making the requisition visible
      to candidates.
    operationId: postJob
    parameters:
    - name: id
      in: path
      value: $steps.findPosting.outputs.postingId
    requestBody:
      contentType: application/json
      payload:
        postingSites:
        - $inputs.postingSite
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    requisitionId: $steps.createRequisition.outputs.requisitionId
    requisitionNumber: $steps.createRequisition.outputs.requisitionNumber
    postingId: $steps.findPosting.outputs.postingId