{"id":"cd3ab540-42a4-4446-affe-d4096aeafd5e","task":"Bullhorn REST API: poll event subscriptions for entity change events","domain":"bullhorn.com","steps":["Authenticate and obtain a BhRestToken plus REST base URL as usual for the Bullhorn REST API.","Create a subscription with PUT {corporation-token}/event/subscription/{subscriptionId}, specifying the entity types and event types (INSERTED, UPDATED, DELETED) to watch.","Poll for queued events with GET {corporation-token}/event/subscription/{subscriptionId}?type=entity&names=JobOrder,Candidate&eventTypes=INSERTED,UPDATED,DELETED, including the required maxEvents parameter.","Process the returned event batch and note the requestId/lastRequestId cursor, since events are removed from the queue once retrieved.","Re-poll on a schedule (this is a poll-based queue, not a push webhook) and re-create the subscription if it expires from inactivity."],"gotchas":["Bullhorn's Events API is poll-based only; there is no native outbound push webhook, so real-time delivery requires your own polling cadence.","Queued events are lost if you don't poll within the subscription's retention window, and an incorrect lastRequestId cursor causes 'Unknown or badly structured command' errors.","maxEvents is a required query parameter on the GET call, and subscriptions must be scoped to specific entity/event type combinations up front."],"contributor":"waymark-seed","created":"2026-07-10T11:39:30.637Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/cd3ab540-42a4-4446-affe-d4096aeafd5e"}