Workday Recruiting · Arazzo Workflow

Workday Recruiting Interview to Offer

Version 1.0.0

Schedule an interview, capture feedback, and initiate an offer on a positive result.

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

Provider

workday-recruiting

Workflows

interview-to-offer
Schedule an interview, record feedback, and conditionally initiate an offer.
Schedules an interview for an application, submits feedback, and initiates an offer when the feedback recommendation is positive.
3 steps inputs: comments, compensationAmount, compensationFrequency, competencyRatings, currency, endTime, expirationDate, interviewType, interviewers, jobApplication, location, overallRating, proposedStartDate, scheduledDate, startTime, webConferenceUrl outputs: feedbackId, interviewId, offerId
1
scheduleInterview
scheduleInterview
Schedule an interview for the job application, assigning interviewers and the date and time.
2
submitFeedback
submitInterviewFeedback
Submit interviewer feedback for the scheduled interview including the overall rating and competency assessments.
3
initiateOffer
initiateOffer
Initiate an employment offer for the job application, triggering the offer approval workflow.

Source API Descriptions

Arazzo Workflow Specification

workday-recruiting-interview-to-offer-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workday Recruiting Interview to Offer
  summary: Schedule an interview, capture feedback, and initiate an offer on a positive result.
  description: >-
    Drives the late-stage hiring funnel for a single job application. The
    workflow schedules an interview for the application, submits interviewer
    feedback against that interview, and then branches on the overall rating:
    when the recommendation is a Strong Hire or Hire it initiates an employment
    offer, otherwise it ends without making an offer. 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: interview-to-offer
  summary: Schedule an interview, record feedback, and conditionally initiate an offer.
  description: >-
    Schedules an interview for an application, submits feedback, and initiates an
    offer when the feedback recommendation is positive.
  inputs:
    type: object
    required:
    - jobApplication
    - interviewType
    - scheduledDate
    - startTime
    - endTime
    - interviewers
    - overallRating
    - proposedStartDate
    - compensationAmount
    - currency
    properties:
      jobApplication:
        type: object
        description: Reference to the job application being interviewed (id + descriptor).
      interviewType:
        type: string
        description: The interview type (e.g. "Phone Screen").
      scheduledDate:
        type: string
        description: Interview date (YYYY-MM-DD).
      startTime:
        type: string
        description: Interview start time (HH:MM:SS).
      endTime:
        type: string
        description: Interview end time (HH:MM:SS).
      interviewers:
        type: array
        description: List of interviewer references (id + descriptor).
      location:
        type: string
        description: Interview location.
      webConferenceUrl:
        type: string
        description: Web conference URL for the interview.
      overallRating:
        type: string
        description: Overall hiring recommendation (e.g. "Strong Hire").
      competencyRatings:
        type: array
        description: Per-competency ratings for the interview feedback.
      comments:
        type: string
        description: Free-text interview feedback comments.
      proposedStartDate:
        type: string
        description: Proposed offer start date (YYYY-MM-DD) used when an offer is initiated.
      compensationAmount:
        type: number
        description: Proposed compensation amount used when an offer is initiated.
      compensationFrequency:
        type: string
        description: Compensation frequency (e.g. "Annual").
      currency:
        type: object
        description: Reference to the compensation currency (id + descriptor).
      expirationDate:
        type: string
        description: Offer expiration date (YYYY-MM-DD).
  steps:
  - stepId: scheduleInterview
    description: >-
      Schedule an interview for the job application, assigning interviewers and
      the date and time.
    operationId: scheduleInterview
    requestBody:
      contentType: application/json
      payload:
        jobApplication: $inputs.jobApplication
        interviewType: $inputs.interviewType
        scheduledDate: $inputs.scheduledDate
        startTime: $inputs.startTime
        endTime: $inputs.endTime
        interviewers: $inputs.interviewers
        location: $inputs.location
        webConferenceUrl: $inputs.webConferenceUrl
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      interviewId: $response.body#/id
      status: $response.body#/status
  - stepId: submitFeedback
    description: >-
      Submit interviewer feedback for the scheduled interview including the
      overall rating and competency assessments.
    operationId: submitInterviewFeedback
    parameters:
    - name: id
      in: path
      value: $steps.scheduleInterview.outputs.interviewId
    requestBody:
      contentType: application/json
      payload:
        overallRating: $inputs.overallRating
        competencyRatings: $inputs.competencyRatings
        comments: $inputs.comments
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      feedbackId: $response.body#/id
      overallRating: $response.body#/overallRating
    onSuccess:
    - name: positiveFeedback
      type: goto
      stepId: initiateOffer
      criteria:
      - context: $response.body
        condition: $.overallRating == 'Strong Hire' || $.overallRating == 'Hire'
        type: jsonpath
    - name: notRecommended
      type: end
      criteria:
      - context: $response.body
        condition: $.overallRating != 'Strong Hire' && $.overallRating != 'Hire'
        type: jsonpath
  - stepId: initiateOffer
    description: >-
      Initiate an employment offer for the job application, triggering the offer
      approval workflow.
    operationId: initiateOffer
    parameters:
    - name: id
      in: path
      value: $inputs.jobApplication.id
    requestBody:
      contentType: application/json
      payload:
        proposedStartDate: $inputs.proposedStartDate
        compensationAmount: $inputs.compensationAmount
        compensationFrequency: $inputs.compensationFrequency
        currency: $inputs.currency
        expirationDate: $inputs.expirationDate
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      offerId: $response.body#/id
      offerStatus: $response.body#/status
  outputs:
    interviewId: $steps.scheduleInterview.outputs.interviewId
    feedbackId: $steps.submitFeedback.outputs.feedbackId
    offerId: $steps.initiateOffer.outputs.offerId