sendSignal
and sendSignals
mutations.When implementing signal capture in your software,
you will need to make two related design decisions:timestamp
that represents when the status update actually occurred in your softwareIt must not represent when the status update was sent to SEEK at the end of the period.Event | Timestamp | Use as signal timestamp? |
---|---|---|
Hirer moves application to Shortlist status | 2020-01-01T09:00:00.000Z | |
Partner synchronises application status updates for the past 24 hours | 2020-01-02T00:00:00.000Z |
Event | Timestamp | Send as independent signal? |
---|---|---|
Hirer moves application to Shortlist status | 2020-01-01T09:00:00.000Z | |
Hirer moves application to Phone screen status | 2020-01-01T10:00:00.000Z | |
Hirer moves application to First interview status | 2020-01-01T17:00:00.000Z |
sendSignal
mutation for simplicity,
any of the documented signals can be batched together in a sendSignals
mutation.As a general rule,
use the batch sendSignals
mutation if your software may send more than one signal at a time,
including if it:{
"input": {
"signals": [
{
"typeCode": "ApplicationStatusUpdate",
"token": "globalPublicTest-WfRFAhG25YC8ADe3QvxAVz",
"current": {
"status": {
"label": "Successful",
"index": 11,
"total": 14
},
"success": true,
"timestamp": "2020-01-02T00:00:00.000Z",
"phase": {
"label": "HIRED",
"index": 5,
"total": 7
}
},
"previous": {
"status": {
"label": "Accepted",
"index": 7,
"total": 14
},
"success": null,
"timestamp": "2020-01-01T00:00:00.000Z",
"phase": {
"label": "OFFER",
"index": 4,
"total": 7
}
}
},
{
"typeCode": "PositionStatusUpdate",
"positionProfileIds": "seekAnzPublicTest:positionProfile:jobAd:27cuZeA47",
"current": {
"status": {
"label": "Withdrawn",
"index": 6,
"total": 6
},
"success": false,
"timestamp": "2020-01-02T00:00:00.000Z",
"phase": {
"label": "CLOSED",
"index": 4,
"total": 4
}
},
"previous": {
"status": {
"label": "Review",
"index": 4,
"total": 6
},
"success": null,
"timestamp": "2020-01-01T00:00:00.000Z",
"phase": {
"label": "OPEN",
"index": 3,
"total": 4
}
}
}
]
}
}
sendSignals
operation.
If you have more than 100 signals to send,
split them into chunks of 100 and run multiple operations,
monitoring the SEEK API responses for rate limiting errors.The sendSignal
and sendSignals
mutations will return errors consistent with our documented GraphQL error responses.
If your software receives authentication or transient server errors, it must retry sending of signals until successful.
Ensure you have monitoring in place to detect and alert on errors when sending signals, to ensure there are no gaps in data.
Take particular care with rate limiting errors if your software may send a large number of signals in quick succession.A BAD_USER_INPUT
error may occur if there is a structural issue with the token.
Ensure that the token exactly matches the seek-token
that was received from the redirect.We recommend that you log full requests and responses to the sendSignal
and sendSignals
mutations during development to facilitate debugging.
Use a unique X-Request-Id
for each request to assist in support investigations;
see our guidance on tracing requests for more information.