Sense Talent Labs · AsyncAPI Specification

Sense Talent Labs Writeback Webhooks

Version

View Spec View on GitHub Human ResourcesRecruitingTalent AcquisitionStaffingApplicant TrackingCandidate EngagementRecruiting AutomationTalent CRMMessagingInterview SchedulingArtificial IntelligenceSoftware-as-a-ServiceAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-26'
method: searched
source: https://developer.sensehq.com/
asyncapi_published: false
asyncapi_note: Sense publishes no AsyncAPI document. The event surface is specified in prose as the
  "Write-back API Specification" tag inside the same OpenAPI document that describes the REST API.
surface: webhooks
direction: outbound — Sense pushes events TO a customer-operated endpoint
inversion_note: 'This is the reverse of a conventional webhook registration. Sense does not host a
  subscription API; instead the CUSTOMER (or their ATS) must build and operate an HTTP endpoint
  that meets a Sense-published conformance checklist, and Sense delivers events to that single
  URL. The specification is therefore a set of requirements imposed on the receiver, not a catalog
  of subscribable topics.'
receiver_requirements:
- API must support the RESTful paradigm
- API should support some authentication and authorization mechanism
- API must support encrypted transport via HTTPS
- API must support SSL version TLSv1.2
- API must accept JSON data payloads
- API must emit proper status codes to communicate client or server errors, or successful
  communication
- API must return an id if the write-back is successfully received
delivery:
  method: POST
  content_type: application/json
  url_constraint: 'The endpoint URL must be static. It "cannot require any variable information to
    be provided for each writeback" — a path template such as /event/{candidate_id} is explicitly
    invalid. A fixed query-string key is allowed.'
  success_criteria: HTTP 200 AND a body containing an `id`
  failure_definition: 'Non-2xx responses, or 2xx responses without an id, are considered failures.'
  retry: 'Sense will attempt re-delivery of any failed write-back. No retry count, backoff schedule
    or dead-letter behaviour is published.'
  ordering: not published
  deduplication: not published — each write-back carries a unique `id`, which a receiver can use to
    dedupe, but Sense does not state whether redelivery reuses it
  signing: none — payloads are not signed; authenticity rests entirely on the pre-shared bearer
    token or OAuth credential
authentication:
  supported:
  - method: bearer token
    detail: pre-shared key embedded in every request, placed either in the Authorization header or
      as a query parameter, at the customer's choice. Rotatable at the customer's discretion.
  - method: OpenID Connect
    detail: the customer supplies Sense with a well-known OIDC URL in addition to the event URL
  - method: OAuth 2.0
    detail: 'the customer supplies an authentication URL, scope, client id and client secret.
      Sense supports the CLIENT CREDENTIALS grant type only. Tokens are sent as Authorization:
      Bearer.'
envelope:
  fields:
  - name: id
    type: string
    description: unique Sense id for the write-back
  - name: type
    type: SenseWriteBackType
    description: the write-back type, always set by Sense
  - name: version
    type: number
    description: 'schema version for the write-back type. Major revisions (>= 1) are breaking;
      minor revisions (< 1) are non-breaking.'
  - name: created_date
    type: string
    format: ISO 8601
    description: when the write-back was created in Sense
  - name: data
    type: object
    description: event-specific payload, shape determined by `type`
responses:
  success:
    status: 200
    body: '{ "id": "<unique_id>" }'
  auth_failure:
    status: 401
    body: '{ "error": "invalid token or session" }'
  input_failure:
    status: 4xx
    body: '{ "error": "unable to store because of field x,y,z" }'
  server_failure:
    status: 5xx
    body: '{ "error": "unable to store, server issue x,y,z" }'
event_count: 10
events:
- type: ENGAGE_SENT_EVENT
  version: 1.0
  description: An outbound engagement touchpoint was sent to a candidate or contact.
  payload_fields: [sms, email, summary, user_defined_data, associated_entities, sense_meta_data]
- type: ENGAGE_EVENT_RESPONSE
  version: 1.0
  description: A candidate or contact responded to an engagement touchpoint, including survey
    answers.
  payload_fields: [sms, email, summary, survey_responses, user_defined_data, associated_entities,
    sense_meta_data]
- type: MESSAGING_INCOMING_MESSAGE
  version: 1.1
  description: An inbound SMS was received.
  payload_fields: [sms, summary, user_defined_data, associated_entities, sense_meta_data]
- type: MESSAGING_OUTGOING_MESSAGE
  version: 1.1
  description: An outbound SMS was sent.
  payload_fields: [sms, summary, is_broadcast, user_defined_data, associated_entities,
    sense_meta_data]
- type: MESSAGING_DIGEST
  version: 1.0
  description: A rolled-up digest of messaging activity.
  payload_fields: [sms, summary, user_defined_data, associated_entities, sense_meta_data]
- type: CHATBOT_RESPONSE_SUMMARY
  version: 1.0
  description: A summary of a chatbot conversation. Renamed from CHATBOT_CONVERSATION on
    2022-02-11.
  payload_fields: [summary, subject, conversation, user_defined_data, entity]
- type: ENTITY_CREATE
  version: 1.0
  description: An entity was created in Sense and should be created in the receiving system.
  payload_fields: [entity_type, fields, user_defined_data, associated_entities, sense_meta_data]
  response_requirement: 'The response MUST include entity_id, the id of the newly created entity,
    in addition to id.'
- type: ENTITY_UPDATE
  version: 1.0
  description: An entity was updated in Sense.
  payload_fields: [entity, fields, user_defined_data, associated_entities, sense_meta_data]
- type: ENTITY_DELETE
  version: 1.0
  description: An entity was deleted in Sense.
  payload_fields: [entity, user_defined_data, associated_entities, sense_meta_data]
- type: GENERIC_EVENT
  version: 1.0
  description: A catch-all event carrying a human-readable summary and a subject entity.
  payload_fields: [summary, subject, user_defined_data, associated_entities, sense_meta_data]
entity_types:
- AE_APPOINTMENT
- AE_CANDIDATE
- AE_CERTIFICATION
- AE_CLIENT_CONTACT
- AE_COMPANY
- AE_INTERNAL_USER
- AE_JOB_ORDER
- AE_PLACEMENT
- AE_SUBMISSION
data_structures:
- name: EntityObject
  fields: [id, type]
- name: ActorObject
  fields: [entity, email, phone]
- name: SMSObject
  fields: [to, from, body, date, direction, mms_urls, is_broadcast]
- name: EmailObject
  fields: [to, from, reply-to, bcc, cc, date, direction, is_alert_email, subject, body, mms_urls]
- name: FieldObject
  fields: [name, value]
- name: ConversationObject
  fields: [sender, is_bot, message, date]
enablement:
  self_serve: false
  note: 'Write-backs are configured per agency by Sense, not by the customer. The 2025-11-18
    changelog entry notes the newest messaging write-back options are "Disabled by default; must be
    enabled per agency."'
gaps:
- No AsyncAPI, JSON Schema, or other machine-readable definition of any event payload — every
  structure is published as an untyped pseudo-JSON code block in prose.
- No payload signing or HMAC verification, so a receiver cannot cryptographically verify that a
  write-back came from Sense.
- No published retry schedule, backoff, attempt limit, or dead-letter behaviour.
- No delivery-ordering or exactly-once guarantee.
- No self-serve subscription management, event replay, or delivery log.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/sense-talent-labs-writeback-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.