Changelog

Fix applicationForm.submit Rejecting Null utmData Fields

  • applicationForm.submit now correctly accepts null for utmData and its individual fields (utm_source, utm_medium, utm_campaign, utm_term, utm_content) again. Sending {"utmData": {"utm_source": null}} or {"utmData": null} was returning invalid_input after Zod validation was added in the presigned file upload release on April 14; this has been fixed. Omitting utmData or passing valid string values continues to work as before.

Added Error Codes for Invalid Opening References when Creating Offers

  • offer.create now returns specific error codes instead of a generic internal_server_error when the request fails due to a problem with the referenced opening:
    • opening_in_use — the opening is already in use by another offer.
    • opening_state_invalid — the opening has already been closed or filled by a different application.

Improved Error Codes for notetakerTranscript.info

  • notetakerTranscript.info now returns specific error codes instead of a generic notetaker_transcript_not_found when the request fails due to missing prerequisites:
    • notetaker_transcript_api_not_enabled — the endpoint has not been enabled for your organization (early access).
    • notetaker_transcript_not_enabled — your organization does not have AI Notetaker enabled.
    • notetaker_transcript_expired — the transcript has expired on the free tier.

Added notetakerTranscript.info Endpoint and notetakerTranscriptId Field

  • Added notetakerTranscriptId field to the InterviewEvent object returned by interviewEvent.list and interviewSchedule.list. This field contains the ID of the AI Notetaker transcript recording for the event, or null if no transcript exists.
  • Added a new notetakerTranscript.info endpoint (Beta) to fetch transcript metadata and a pre-signed download URL for the raw transcript JSON. The URL is valid for 5 minutes. The response includes participant information (interviewers and candidate) resolved from the interview schedule. Contact your Ashby account team to enable this feature.

Fix user.list Rejecting Null Cursor and SyncToken

  • user.list now correctly accepts null for the cursor and syncToken request fields again. Sending {"cursor": null} to fetch the first page was returning invalid_input after the recent Zod validation migration; this has been fixed. Omitting the fields or passing a valid string value continues to work as before.