Connect HIRESSCOPE to 7,000+ apps without writing code. Send shortlisted candidates to your ATS, post Slack notifications when CVs are scored, update Google Sheets in real time, and more.
Real-time webhooks
Events delivered in < 1 s
HMAC-SHA256 signatures
Verify every payload
6 event types
Jobs + applications
Register a webhook endpoint in your HIRESSCOPE settings to start receiving events. All webhook requests are sent as HTTP POST with a JSON body and theX-HiresScope-Signatureheader for verification.
POST https://api.hiresscope.com/api/v1/webhooks// Request body
{
"url": "https://hooks.zapier.com/hooks/catch/123456/abcdef",
"events": ["application.scored", "application.shortlisted"],
"isActive": true
}
// Response
{
"id": "wh_xyz",
"secret": "whsec_...", // Store this securely — shown only once
"url": "https://hooks.zapier.com/...",
"events": ["application.scored", "application.shortlisted"]
}Requires Bearer token authentication. Get your token from Settings → API Keys.
application.createdA new CV was uploaded to a job posting.Candidate applies via public link or bulk uploadapplication.scoredAI scoring completed for an application.CV processing pipeline finishes (usually < 60 s)application.shortlistedAn employer marked an application as shortlisted.Status change in the candidates tableapplication.rejectedAn employer rejected an application.Status change in the candidates tablejob.createdA new job posting was published.Employer creates and activates a jobjob.closedA job posting was closed or deleted.Employer sets status to CLOSED or deletes the job{
"event": "application.scored",
"timestamp": "2026-05-02T14:32:10.000Z",
"tenantId": "tenant_abc123",
"data": {
"applicationId": "app_xyz789",
"jobId": "job_def456",
"jobTitle": "Senior Backend Engineer",
"candidateName": "Jane Smith",
"candidateEmail": "[email protected]",
"score": 82,
"status": "SCORED",
"missingSkills": [
"Kubernetes",
"GraphQL"
],
"cvUrl": "https://cdn.hiresscope.com/cvs/jane-smith.pdf"
}
}{
"event": "application.shortlisted",
"timestamp": "2026-05-02T15:00:00.000Z",
"tenantId": "tenant_abc123",
"data": {
"applicationId": "app_xyz789",
"jobId": "job_def456",
"jobTitle": "Senior Backend Engineer",
"candidateName": "Jane Smith",
"candidateEmail": "[email protected]",
"score": 82,
"status": "SHORTLISTED",
"shortlistedAt": "2026-05-02T15:00:00.000Z"
}
}{
"event": "job.created",
"timestamp": "2026-05-02T09:00:00.000Z",
"tenantId": "tenant_abc123",
"data": {
"jobId": "job_def456",
"title": "Senior Backend Engineer",
"department": "Engineering",
"location": "Remote",
"status": "ACTIVE",
"publicUrl": "https://hiresscope.com/apply/acme-corp-senior-backend-engineer-x7k2"
}
}Every webhook request carries an X-HiresScope-Signature header. Compute the expected HMAC and compare — reject requests that do not match.
// Node.js verification example
import { createHmac, timingSafeEqual } from 'crypto';
function verifyWebhook(rawBody: string, signature: string, secret: string): boolean {
const expected = createHmac('sha256', secret)
.update(rawBody, 'utf-8')
.digest('hex');
const expectedBuf = Buffer.from(expected, 'hex');
const signatureBuf = Buffer.from(signature, 'hex');
if (expectedBuf.length !== signatureBuf.length) return false;
return timingSafeEqual(expectedBuf, signatureBuf);
}Create a free account and start connecting HIRESSCOPE to your tools in minutes.