Make Request Coercion Schema-Aware

  • Zod-validated Public API endpoints now apply legacy request body coercion based on each field's documented schema before running validation. String-encoded booleans and integers continue to be accepted for boolean and integer fields (for example, candidateTag.list still accepts "true" for includeArchived and "25" for limit), while numeric-looking strings sent to free-text fields are preserved as strings instead of being rewritten and rejected as invalid_input.
  • This affects endpoints on the Zod validation path, including candidateTag.create, candidateTag.archive, candidateTag.list, application.delete, interviewStage.info, user endpoints, and webhook endpoints.