Skip to main content
Glama

Yardstick ATS

Edit a stage automation rule

yardstick_automation_rules_update
DestructiveIdempotent

Edit a workflow automation rule's name, stage or step trigger, action, condition, job scope, delivery mode, timing or active state.

Input Schema

NameRequiredDescriptionDefault
nameNo
actionNo
job_idNo
timingNo
rule_idYes
triggerNo
positionNo
conditionNo
is_activeNo
job_scopeNo
request_idNo
starter_keyNo
delivery_modeNo
idempotency_keyNo
job_posting_idsNo
needs_step_pickNo
pipeline_stage_idNo
pipeline_template_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / action / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "delivery": {
      -        "default": "auto_draft_review",
      -        "enum": [
      -          "auto_send",
      -          "auto_draft_review"
      -        ],
      -        "type": "string"
      -      },
      -      "task": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "assignee": {
      -            "anyOf": [
      -              {
      -                "const": "recruiter",
      -                "type": "string"
      -              },
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "user_id": {
      -                    "format": "uuid",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "user_id"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "due_in": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "unit": {
      -                "enum": [
      -                  "days",
      -                  "hours"
      -                ],
      -                "type": "string"
      -              },
      -              "value": {
      -                "maximum": 8760,
      -                "minimum": 1,
      -                "type": "integer"
      -              }
      -            },
      -            "required": [
      -              "value",
      -              "unit"
      -            ],
      -            "type": "object"
      -          },
      -          "title": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "assignee",
      -          "title"
      -        ],
      -        "type": "object"
      -      },
      -      "template_key": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "update_scheduling",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "task"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "assigned_role": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner"
      -        ],
      -        "type": "string"
      -      },
      -      "assigned_user_email": {
      -        "maxLength": 320,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "context": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "due_date": {
      -        "description": "Existing fixed deadline; use due_in for recurring rules.",
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "due_in": {
      -        "additionalProperties": false,
      -        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      -        "properties": {
      -          "unit": {
      -            "enum": [
      -              "days",
      -              "hours"
      -            ],
      -            "type": "string"
      -          },
      -          "value": {
      -            "maximum": 8760,
      -            "minimum": 1,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "value",
      -          "unit"
      -        ],
      -        "type": "object"
      -      },
      -      "task_title": {
      -        "description": "Task title; {candidate} resolves to the candidate name.",
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_type": {
      -        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "create_task",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "task_type",
      -      "task_title"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "email_type": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "acknowledgment",
      -              "advancement",
      -              "interview_confirmation",
      -              "rejection",
      -              "offer_declined",
      -              "offer",
      -              "hired",
      -              "withdrawn",
      -              "on_hold"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "const": "interview_cancellation",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "template_key": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "format": {
      -        "enum": [
      -          "combined",
      -          "separate"
      -        ],
      -        "type": "string"
      -      },
      -      "interview_ids": {
      -        "items": {
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "template_key": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_scheduling_invitation",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "interview_ids",
      -      "format"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "template_key": {
      -        "enum": [
      -          "candidate_preparation",
      -          "onsite_logistics",
      -          "technical_preparation"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_preparation_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "audience": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner",
      -          "offer_approver",
      -          "offer_requester"
      -        ],
      -        "type": "string"
      -      },
      -      "template": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_internal_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "audience",
      -      "template"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "type": {
      -        "const": "verify_calendar_event",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "delivery": {
      +        "default": "auto_draft_review",
      +        "enum": [
      +          "auto_send",
      +          "auto_draft_review"
      +        ],
      +        "type": "string"
      +      },
      +      "task": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assignee": {
      +            "anyOf": [
      +              {
      +                "const": "recruiter",
      +                "type": "string"
      +              },
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "user_id": {
      +                    "format": "uuid",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "user_id"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "due_in": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "unit": {
      +                "enum": [
      +                  "days",
      +                  "hours"
      +                ],
      +                "type": "string"
      +              },
      +              "value": {
      +                "maximum": 8760,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "value",
      +              "unit"
      +            ],
      +            "type": "object"
      +          },
      +          "title": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "assignee",
      +          "title"
      +        ],
      +        "type": "object"
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "update_scheduling",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assigned_role": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner"
      +        ],
      +        "type": "string"
      +      },
      +      "assigned_user_email": {
      +        "maxLength": 320,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "context": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "due_date": {
      +        "description": "Existing fixed deadline; use due_in for recurring rules.",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "due_in": {
      +        "additionalProperties": false,
      +        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      +        "properties": {
      +          "unit": {
      +            "enum": [
      +              "days",
      +              "hours"
      +            ],
      +            "type": "string"
      +          },
      +          "value": {
      +            "maximum": 8760,
      +            "minimum": 1,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "value",
      +          "unit"
      +        ],
      +        "type": "object"
      +      },
      +      "task_title": {
      +        "description": "Task title; {candidate} resolves to the candidate name.",
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "task_type": {
      +        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "create_task",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task_type",
      +      "task_title"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "email_type": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "acknowledgment",
      +              "advancement",
      +              "interview_confirmation",
      +              "rejection",
      +              "offer_declined",
      +              "offer",
      +              "hired",
      +              "withdrawn",
      +              "on_hold"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "const": "interview_cancellation",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "sender_type": {
      +        "description": "Who the email comes from: owner (the job recruiter) or job_hiring_manager. Omit to use the company's sender setting.",
      +        "enum": [
      +          "owner",
      +          "job_hiring_manager"
      +        ],
      +        "type": "string"
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "format": {
      +        "enum": [
      +          "combined",
      +          "separate"
      +        ],
      +        "type": "string"
      +      },
      +      "interview_ids": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_scheduling_invitation",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "interview_ids",
      +      "format"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "template_key": {
      +        "enum": [
      +          "candidate_preparation",
      +          "onsite_logistics",
      +          "technical_preparation"
      +        ],
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_preparation_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audience": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner",
      +          "offer_approver",
      +          "offer_requester"
      +        ],
      +        "type": "string"
      +      },
      +      "template": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_internal_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "audience",
      +      "template"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "const": "verify_calendar_event",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / trigger / enum
      Previous value: -[
      -  "stage_enter",
      -  "stage_exit",
      -  "step_ready",
      -  "booking_created",
      -  "booking_changed",
      -  "step_completed",
      -  "feedback_submitted",
      -  "all_scorecards_submitted",
      -  "interview_time",
      -  "assignment_changed",
      -  "booking_cancelled",
      -  "scorecard_due",
      -  "scorecard_overdue",
      -  "decision_brief_ready",
      -  "coaching_report_ready",
      -  "offer_approval_due",
      -  "offer_approval_escalation_due"
      -]New value: +[
      +  "stage_enter",
      +  "stage_exit",
      +  "step_ready",
      +  "booking_created",
      +  "booking_changed",
      +  "step_completed",
      +  "feedback_submitted",
      +  "all_scorecards_submitted",
      +  "hiring_manager_advanced",
      +  "hiring_manager_held",
      +  "interview_time",
      +  "assignment_changed",
      +  "booking_cancelled",
      +  "scorecard_due",
      +  "scorecard_overdue",
      +  "decision_brief_ready",
      +  "coaching_report_ready",
      +  "offer_approval_due",
      +  "offer_approval_escalation_due"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / action / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "assigned_role": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner"
      -        ],
      -        "type": "string"
      -      },
      -      "assigned_user_email": {
      -        "maxLength": 320,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "context": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "due_date": {
      -        "description": "Existing fixed deadline; use due_in for recurring rules.",
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "due_in": {
      -        "additionalProperties": false,
      -        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      -        "properties": {
      -          "unit": {
      -            "enum": [
      -              "days",
      -              "hours"
      -            ],
      -            "type": "string"
      -          },
      -          "value": {
      -            "maximum": 8760,
      -            "minimum": 1,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "value",
      -          "unit"
      -        ],
      -        "type": "object"
      -      },
      -      "task_title": {
      -        "description": "Task title; {candidate} resolves to the candidate name.",
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_type": {
      -        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "create_task",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "task_type",
      -      "task_title"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "email_type": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "acknowledgment",
      -              "advancement",
      -              "interview_confirmation",
      -              "rejection",
      -              "offer_declined",
      -              "offer",
      -              "hired",
      -              "withdrawn",
      -              "on_hold"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "const": "interview_cancellation",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "template_key": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "format": {
      -        "enum": [
      -          "combined",
      -          "separate"
      -        ],
      -        "type": "string"
      -      },
      -      "interview_ids": {
      -        "items": {
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "template_key": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_scheduling_invitation",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "interview_ids",
      -      "format"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "template_key": {
      -        "enum": [
      -          "candidate_preparation",
      -          "onsite_logistics",
      -          "technical_preparation"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_preparation_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "audience": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner",
      -          "offer_approver",
      -          "offer_requester"
      -        ],
      -        "type": "string"
      -      },
      -      "template": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_internal_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "audience",
      -      "template"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "type": {
      -        "const": "verify_calendar_event",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "delivery": {
      +        "default": "auto_draft_review",
      +        "enum": [
      +          "auto_send",
      +          "auto_draft_review"
      +        ],
      +        "type": "string"
      +      },
      +      "task": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assignee": {
      +            "anyOf": [
      +              {
      +                "const": "recruiter",
      +                "type": "string"
      +              },
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "user_id": {
      +                    "format": "uuid",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "user_id"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "due_in": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "unit": {
      +                "enum": [
      +                  "days",
      +                  "hours"
      +                ],
      +                "type": "string"
      +              },
      +              "value": {
      +                "maximum": 8760,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "value",
      +              "unit"
      +            ],
      +            "type": "object"
      +          },
      +          "title": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "assignee",
      +          "title"
      +        ],
      +        "type": "object"
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "update_scheduling",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assigned_role": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner"
      +        ],
      +        "type": "string"
      +      },
      +      "assigned_user_email": {
      +        "maxLength": 320,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "context": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "due_date": {
      +        "description": "Existing fixed deadline; use due_in for recurring rules.",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "due_in": {
      +        "additionalProperties": false,
      +        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      +        "properties": {
      +          "unit": {
      +            "enum": [
      +              "days",
      +              "hours"
      +            ],
      +            "type": "string"
      +          },
      +          "value": {
      +            "maximum": 8760,
      +            "minimum": 1,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "value",
      +          "unit"
      +        ],
      +        "type": "object"
      +      },
      +      "task_title": {
      +        "description": "Task title; {candidate} resolves to the candidate name.",
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "task_type": {
      +        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "create_task",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task_type",
      +      "task_title"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "email_type": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "acknowledgment",
      +              "advancement",
      +              "interview_confirmation",
      +              "rejection",
      +              "offer_declined",
      +              "offer",
      +              "hired",
      +              "withdrawn",
      +              "on_hold"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "const": "interview_cancellation",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "format": {
      +        "enum": [
      +          "combined",
      +          "separate"
      +        ],
      +        "type": "string"
      +      },
      +      "interview_ids": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_scheduling_invitation",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "interview_ids",
      +      "format"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "template_key": {
      +        "enum": [
      +          "candidate_preparation",
      +          "onsite_logistics",
      +          "technical_preparation"
      +        ],
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_preparation_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audience": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner",
      +          "offer_approver",
      +          "offer_requester"
      +        ],
      +        "type": "string"
      +      },
      +      "template": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_internal_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "audience",
      +      "template"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "const": "verify_calendar_event",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / trigger / enum
      Previous value: -[
      -  "stage_enter",
      -  "stage_exit",
      -  "step_ready",
      -  "booking_created",
      -  "booking_changed",
      -  "step_completed",
      -  "feedback_submitted",
      -  "all_scorecards_submitted",
      -  "interview_time",
      -  "booking_cancelled",
      -  "scorecard_due",
      -  "scorecard_overdue",
      -  "decision_brief_ready",
      -  "coaching_report_ready",
      -  "offer_approval_due",
      -  "offer_approval_escalation_due"
      -]New value: +[
      +  "stage_enter",
      +  "stage_exit",
      +  "step_ready",
      +  "booking_created",
      +  "booking_changed",
      +  "step_completed",
      +  "feedback_submitted",
      +  "all_scorecards_submitted",
      +  "interview_time",
      +  "assignment_changed",
      +  "booking_cancelled",
      +  "scorecard_due",
      +  "scorecard_overdue",
      +  "decision_brief_ready",
      +  "coaching_report_ready",
      +  "offer_approval_due",
      +  "offer_approval_escalation_due"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / action / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "interview_id": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "interview_session_id": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_scheduling_link",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "assigned_role": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner"
      -        ],
      -        "type": "string"
      -      },
      -      "assigned_user_email": {
      -        "maxLength": 320,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "context": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "due_date": {
      -        "description": "Existing fixed deadline; use due_in for recurring rules.",
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "due_in": {
      -        "additionalProperties": false,
      -        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      -        "properties": {
      -          "unit": {
      -            "enum": [
      -              "days",
      -              "hours"
      -            ],
      -            "type": "string"
      -          },
      -          "value": {
      -            "maximum": 8760,
      -            "minimum": 1,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "value",
      -          "unit"
      -        ],
      -        "type": "object"
      -      },
      -      "task_title": {
      -        "description": "Task title; {candidate} resolves to the candidate name.",
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_type": {
      -        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "create_task",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "task_type",
      -      "task_title"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "email_type": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "acknowledgment",
      -              "advancement",
      -              "interview_confirmation",
      -              "rejection",
      -              "offer_declined",
      -              "offer",
      -              "hired",
      -              "withdrawn",
      -              "on_hold"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "const": "interview_cancellation",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "template_key": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "format": {
      -        "enum": [
      -          "combined",
      -          "separate"
      -        ],
      -        "type": "string"
      -      },
      -      "interview_ids": {
      -        "items": {
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "send_scheduling_invitation",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "interview_ids",
      -      "format"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "template_key": {
      -        "enum": [
      -          "candidate_preparation",
      -          "onsite_logistics",
      -          "technical_preparation"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_preparation_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "audience": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner",
      -          "offer_approver",
      -          "offer_requester"
      -        ],
      -        "type": "string"
      -      },
      -      "template": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_internal_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "audience",
      -      "template"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "type": {
      -        "const": "verify_calendar_event",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assigned_role": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner"
      +        ],
      +        "type": "string"
      +      },
      +      "assigned_user_email": {
      +        "maxLength": 320,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "context": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "due_date": {
      +        "description": "Existing fixed deadline; use due_in for recurring rules.",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "due_in": {
      +        "additionalProperties": false,
      +        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      +        "properties": {
      +          "unit": {
      +            "enum": [
      +              "days",
      +              "hours"
      +            ],
      +            "type": "string"
      +          },
      +          "value": {
      +            "maximum": 8760,
      +            "minimum": 1,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "value",
      +          "unit"
      +        ],
      +        "type": "object"
      +      },
      +      "task_title": {
      +        "description": "Task title; {candidate} resolves to the candidate name.",
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "task_type": {
      +        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "create_task",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task_type",
      +      "task_title"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "email_type": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "acknowledgment",
      +              "advancement",
      +              "interview_confirmation",
      +              "rejection",
      +              "offer_declined",
      +              "offer",
      +              "hired",
      +              "withdrawn",
      +              "on_hold"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "const": "interview_cancellation",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "format": {
      +        "enum": [
      +          "combined",
      +          "separate"
      +        ],
      +        "type": "string"
      +      },
      +      "interview_ids": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_scheduling_invitation",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "interview_ids",
      +      "format"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "template_key": {
      +        "enum": [
      +          "candidate_preparation",
      +          "onsite_logistics",
      +          "technical_preparation"
      +        ],
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_preparation_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audience": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner",
      +          "offer_approver",
      +          "offer_requester"
      +        ],
      +        "type": "string"
      +      },
      +      "template": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_internal_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "audience",
      +      "template"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "const": "verify_calendar_event",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
  5. Changed6 schema fields changed
    • changedInput schema / properties / action / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "interview_id": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "interview_session_id": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_scheduling_link",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "assigned_role": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner"
      -        ],
      -        "type": "string"
      -      },
      -      "assigned_user_email": {
      -        "maxLength": 320,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "context": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "due_date": {
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_title": {
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_type": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "create_task",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "task_type",
      -      "task_title"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "email_type": {
      -        "enum": [
      -          "acknowledgment",
      -          "advancement",
      -          "interview_confirmation",
      -          "rejection",
      -          "offer_declined",
      -          "offer",
      -          "hired",
      -          "withdrawn",
      -          "on_hold"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "email_type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "format": {
      -        "enum": [
      -          "combined",
      -          "separate"
      -        ],
      -        "type": "string"
      -      },
      -      "interview_ids": {
      -        "items": {
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "send_scheduling_invitation",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "interview_ids",
      -      "format"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "type": {
      -        "const": "send_preparation_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "audience": {
      -        "enum": [
      -          "assigned_interviewer",
      -          "recruiter",
      -          "hiring_manager",
      -          "team_owner"
      -        ],
      -        "type": "string"
      -      },
      -      "template": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_internal_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "audience",
      -      "template"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "type": {
      -        "const": "verify_calendar_event",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "interview_id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "interview_session_id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_scheduling_link",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assigned_role": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner"
      +        ],
      +        "type": "string"
      +      },
      +      "assigned_user_email": {
      +        "maxLength": 320,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "context": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "due_date": {
      +        "description": "Existing fixed deadline; use due_in for recurring rules.",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "due_in": {
      +        "additionalProperties": false,
      +        "description": "Due this many days or hours after the rule fires; at most 365 days or 8760 hours. Cannot combine with due_date.",
      +        "properties": {
      +          "unit": {
      +            "enum": [
      +              "days",
      +              "hours"
      +            ],
      +            "type": "string"
      +          },
      +          "value": {
      +            "maximum": 8760,
      +            "minimum": 1,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "value",
      +          "unit"
      +        ],
      +        "type": "object"
      +      },
      +      "task_title": {
      +        "description": "Task title; {candidate} resolves to the candidate name.",
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "task_type": {
      +        "description": "Add to My Tasks: scorecard_review on feedback_submitted, or coordination for a general follow-up. Same-kind tasks are stacked.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "create_task",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task_type",
      +      "task_title"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "email_type": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "acknowledgment",
      +              "advancement",
      +              "interview_confirmation",
      +              "rejection",
      +              "offer_declined",
      +              "offer",
      +              "hired",
      +              "withdrawn",
      +              "on_hold"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "const": "interview_cancellation",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "template_key": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "format": {
      +        "enum": [
      +          "combined",
      +          "separate"
      +        ],
      +        "type": "string"
      +      },
      +      "interview_ids": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "send_scheduling_invitation",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "interview_ids",
      +      "format"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "template_key": {
      +        "enum": [
      +          "candidate_preparation",
      +          "onsite_logistics",
      +          "technical_preparation"
      +        ],
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_preparation_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audience": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner",
      +          "offer_approver",
      +          "offer_requester"
      +        ],
      +        "type": "string"
      +      },
      +      "template": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_internal_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "audience",
      +      "template"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "const": "verify_calendar_event",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / condition / properties / step_position
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "which": {
      +          "const": "next",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "which"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "kind": {
      +          "enum": [
      +            "candidate_interview",
      +            "reference_check",
      +            "internal_debrief",
      +            "offer_meeting"
      +          ],
      +          "type": "string"
      +        },
      +        "which": {
      +          "const": "first",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "which",
      +        "kind"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "kind": {
      +          "enum": [
      +            "candidate_interview",
      +            "reference_check",
      +            "internal_debrief",
      +            "offer_meeting"
      +          ],
      +          "type": "string"
      +        },
      +        "which": {
      +          "const": "last",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "which",
      +        "kind"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "anchor_kind": {
      +          "enum": [
      +            "candidate_interview",
      +            "reference_check",
      +            "internal_debrief",
      +            "offer_meeting"
      +          ],
      +          "type": "string"
      +        },
      +        "kind": {
      +          "enum": [
      +            "candidate_interview",
      +            "reference_check",
      +            "internal_debrief",
      +            "offer_meeting"
      +          ],
      +          "type": "string"
      +        },
      +        "which": {
      +          "const": "last_before",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "which",
      +        "kind",
      +        "anchor_kind"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • addedInput schema / properties / job_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / needs_step_pick
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / pipeline_template_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedInput schema / properties / trigger / enum
      Previous value: -[
      -  "stage_enter",
      -  "stage_exit",
      -  "step_ready",
      -  "booking_created",
      -  "booking_changed",
      -  "step_completed",
      -  "feedback_submitted",
      -  "interview_time"
      -]New value: +[
      +  "stage_enter",
      +  "stage_exit",
      +  "step_ready",
      +  "booking_created",
      +  "booking_changed",
      +  "step_completed",
      +  "feedback_submitted",
      +  "all_scorecards_submitted",
      +  "interview_time",
      +  "booking_cancelled",
      +  "scorecard_due",
      +  "scorecard_overdue",
      +  "decision_brief_ready",
      +  "coaching_report_ready",
      +  "offer_approval_due",
      +  "offer_approval_escalation_due"
      +]
  6. Changed11 schema fields changed
    • changedInput schema / properties / action / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "interview_id": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "interview_session_id": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_scheduling_link",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "assigned_user_email": {
      -        "maxLength": 320,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "context": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "due_date": {
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_title": {
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "task_type": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "create_task",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "task_type",
      -      "task_title",
      -      "assigned_user_email"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "email_type": {
      -        "enum": [
      -          "acknowledgment",
      -          "advancement",
      -          "interview_confirmation",
      -          "rejection",
      -          "offer_declined",
      -          "offer",
      -          "hired",
      -          "withdrawn",
      -          "on_hold"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "send_email",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "email_type"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "interview_id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "interview_session_id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_scheduling_link",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "assigned_role": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner"
      +        ],
      +        "type": "string"
      +      },
      +      "assigned_user_email": {
      +        "maxLength": 320,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "context": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "due_date": {
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "task_title": {
      +        "maxLength": 500,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "task_type": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "create_task",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "task_type",
      +      "task_title"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "email_type": {
      +        "enum": [
      +          "acknowledgment",
      +          "advancement",
      +          "interview_confirmation",
      +          "rejection",
      +          "offer_declined",
      +          "offer",
      +          "hired",
      +          "withdrawn",
      +          "on_hold"
      +        ],
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "email_type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "format": {
      +        "enum": [
      +          "combined",
      +          "separate"
      +        ],
      +        "type": "string"
      +      },
      +      "interview_ids": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "send_scheduling_invitation",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "interview_ids",
      +      "format"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "const": "send_preparation_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audience": {
      +        "enum": [
      +          "assigned_interviewer",
      +          "recruiter",
      +          "hiring_manager",
      +          "team_owner"
      +        ],
      +        "type": "string"
      +      },
      +      "template": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "send_internal_email",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "audience",
      +      "template"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "const": "verify_calendar_event",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / condition / additionalProperties
      Previous value: -{}New value: +true
    • addedInput schema / properties / condition / properties
      Added value: +{
      +  "interview_ids": {
      +    "items": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  "step_kinds": {
      +    "items": {
      +      "enum": [
      +        "candidate_interview",
      +        "reference_check",
      +        "internal_debrief",
      +        "offer_meeting"
      +      ],
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +}
    • addedInput schema / properties / delivery_mode
      Added value: +{
      +  "enum": [
      +    "auto_send",
      +    "auto_draft_review"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / job_posting_ids
      Added value: +{
      +  "items": {
      +    "format": "uuid",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / job_scope
      Added value: +{
      +  "enum": [
      +    "all_compatible",
      +    "selected"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / name
      Added value: +{
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • addedInput schema / properties / pipeline_stage_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / starter_key
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / timing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "type": {
      +          "const": "immediate",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "delayMinutes": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "type": {
      +          "const": "delay",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type",
      +        "delayMinutes"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "anchor": {
      +          "enum": [
      +            "start",
      +            "end"
      +          ],
      +          "type": "string"
      +        },
      +        "offsetMinutes": {
      +          "type": "integer"
      +        },
      +        "type": {
      +          "const": "interview_relative",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type",
      +        "anchor",
      +        "offsetMinutes"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • changedInput schema / properties / trigger / enum
      Previous value: -[
      -  "stage_enter",
      -  "stage_exit"
      -]New value: +[
      +  "stage_enter",
      +  "stage_exit",
      +  "step_ready",
      +  "booking_created",
      +  "booking_changed",
      +  "step_completed",
      +  "feedback_submitted",
      +  "interview_time"
      +]
  7. First observed

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond the field list: it does not say whether this is a partial patch (fields omitted are preserved) or a replace, what happens to in-flight runs, or that rule_id is required. No contradiction with annotations, but no added behavioral context either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the mutable facets come early. It is efficient, though its brevity is partly under-specification rather than discipline given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An 18-parameter destructive mutation with deeply nested action/condition/timing objects, no output schema and 0% schema coverage needs far more than one sentence. An agent cannot tell what a partial edit preserves, which field combinations are valid, or how omitted fields behave.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 18 parameters, so the description carries the burden and largely fails. It names roughly eight fields but never explains the required rule_id, the 19-value trigger enum, the seven-branch action union, timing anchors, job_scope vs job_posting_ids, or the idempotency_key/request_id distinction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Edit') plus the resource ('workflow automation rule') and enumerates the mutable facets (trigger, action, condition, job scope, delivery mode, timing, active state). That is enough to separate it from create/delete/copy siblings, though it never names those siblings or the preview/read tools an agent might need first.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus yardstick_automation_rules_preview, preview_rule, copy, bulk or create, and no prerequisites (permissions, whether the rule must be inactive, whether a read is required first). The only signal is the verb 'Edit', which is implied usage at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.