Skip to main content

When to use this

Webhooks let your system automatically receive updates from Hireflix when interview events happen, such as when a candidate completes an interview or when a recruiter changes the interview’s status. Instead of polling the API repeatedly, you can configure Hireflix to push these events to your backend in real time.

Create a webhook

You can create a webhook in two ways:

Option 1: From the Hireflix Dashboard

Go to Profile → Webhooks in your Admin dashboard and click the “Create new webhook” button.
  1. Add your webhook endpoint URL (e.g., your app’s callback URL).
  1. Select the events you want to subscribe to:
  • interview.create
  • interview.finish
  • interview.status-change
  • interview.delete
  • interview.score-updated
  1. Enable Active and click Save.
Webhooksenableinadmindashboard Pn

Option 2: From the API (GraphQL)

Supported webhooks events

EventDescription
interview.createTriggered when a candidate is invited to an interview.
interview.finishTriggered when a candidate completes their interview.
interview.status-changeTriggered when the interview status changes (e.g., moved to “shortlisted” or “discarded”).
interview.deleteTriggered when an interview is deleted.
interview.score-updatedTriggered when a candidate’s overall score changes.
You can optionally sign webhook events to prove authenticity. Follow this how-to guide to learn more about signing and validating events.

Example payloads

event: Interview.create

This event fires when an invite is sent:
{
  "event": "interview.create",
  "data": {
    "id": "68ff5ed8b07cc148bddcae02",
    "position": {
      "id": "68b43e38b19cf131a17c543f",
      "name": "Social Media Manager"
    },
    "externalId": null,
    "status": "pending",
    "hash": "25eXrLpj",
    "createdAt": 1761566424331,
    "candidate": {
      "name": "Stef Jordens",
      "firstName": "Stef",
      "lastName": "Jordens",
      "email": "stef@gmail.com",
      "phone": null
    },
    "score": null,
    "completed": null,
    "deleted": null,
    "archived": null,
    "finalist": null,
    "answered": false,
    "thumbnail": null,
    "url": {
      "short": "https://hflx.io/c/24eYrLoi",
      "private": "https://admin.hireflix.com/jobs/68b43e38b19cf131a17c543f/interview/67dfad8b07cc148bddcae02",
      "public": "https://app.hireflix.com/24eYrLoi"
    }
  },
  "date": 1761566424499
}
This event triggers when a candidate completes an interview. You can learn more about interview status in this how-to about updating an interview status.
{
  "event": "interview.finish",
  "data": {
    "id": "643e972db7d39e63cf468844",
    "position": {
      "id": "63d00b73df403de202d97e73",
      "name": "Graduate Program NYU"
    },
    "externalId": "YOUR_EXTERNAL_ID",
    "status": "completed",
    "candidate": {
      "name": "Wayne Knight",
      "email": "wayne.knight@example.com"
    },
    "thumbnail": "https://media.hireflix.com/.../thumbnail.png?...",
    "url": {
      "public": "https://app.hireflix.com/TgTZ88Fe",
      "short": "https://hflx.io/c/TgTZ88Fe",
      "private": "https://admin.hireflix.com/jobs/63d00b73df403de202d97e73/interview/643e972db7d39e63cf468844"
    }
  },
  "date": 1683705149611
}
This event fires when the interview status changes (e.g., moved to “shortlisted” or “discarded”).
{
  "event": "interview.status-change",
  "data": {
    "id": "68ff63a714e4aab6ada84854",
    "position": {
      "id": "68b43d27a19cf131a17c543f",
      "name": "Social Media Manager"
    },
    "externalId": null,
    "status": "completed",
    "hash": "JksiPyBu",
    "createdAt": 1761567655697,
    "candidate": {
      "name": "John Bow",
      "firstName": "John",
      "lastName": "Bow",
      "email": "john@gmail.com",
      "phone": null
    },
    "score": null,
    "completed": 1761567730542,
    "deleted": null,
    "archived": null,
    "finalist": null,
    "answered": true,
    "url": {
      "short": "https://hflx.io/c/24eYrLoi",
      "private": "https://admin.hireflix.com/jobs/68b43e38b19cf131a17c543f/interview/67dfad8b07cc148bddcae02",
      "public": "https://app.hireflix.com/24eYrLoi"
    }
    "thumbnail": null
  },
  "date": 1761567730782
}
This event fires when the score for a completd interview has been updated.
{
  "event": "interview.score-updated",
  "data": {
    "id": "68ff63a714e4aab6ada84854",
    "position": {
      "id": "68b43e38b19cf131a17c543f",
      "name": "Social Media Manager"
    },
    "externalId": null,
    "status": "completed",
    "hash": "JksiPyBu",
    "createdAt": 1761567655697,
    "candidate": {
      "name": "John Bow",
      "firstName": "John",
      "lastName": "Bow",
      "email": "john@gmail.com",
      "phone": null
    },
    "score": {
      "value": 4
    },
    "completed": 1761567730542,
    "deleted": null,
    "archived": null,
    "finalist": null,
    "answered": true,
    "url": {
      "short": "https://hflx.io/c/24eYrLoi",
      "private": "https://admin.hireflix.com/jobs/68b43e38b19cf131a17c543f/interview/67dfad8b07cc148bddcae02",
      "public": "https://app.hireflix.com/24eYrLoi"
    },
    "thumbnail": "https://media.hireflix.com/68b43e38b19cf131a17c543f/answer/68ff63e714a4aeb6eda74855/0/hf-thumbnail.jpg?Policy=eyJTdGF0ZW1lbnQiOlt6IlJlc291cmNlIjoiaGR1cHM6Ly9tZWRpYS5oaXJlZmxpeC5jb20vNjhiNDNiMjdkMDc1OTk2Y2RiOGI1ZWZlL2Fuc3dlci82OGZmNjNhNzE0ZTRhYWI2YWRhODQ4NTUvMC9oZi10aHVtYm5haWwuanBnKiIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc2MzM4MjEzMn19fV19&Key-Pair-Id=APKAWC67OMKLN2YILG76&Signature=oN26iNalYpt9DMz0wy7luxf02O98wKbn0ROsFDVC-Ke2ORXyRgtBhxg1sSihwR~JIjf7CAqHiEB4PHo6LS2Ukbdar8ws4m6L992tN3Bq~KjRPIO3bKkMxA-KUk9XJB9gV4tY4~j-UPunKeNGMn4-dcF2unWftOxLWoQDDSFgYH9SPaXLhS~3gucvMEhgXYTFEAGRIE-VXDJutk68aacZ86RVNYS8MpqOZ48S9vM7cwm--0avQmdJ9ZCY3uKyJY8oLOrrZqvClMIXbtMQK7RJ86Hk7hcHcryh-0on4V6gV26CnFQ7iHcj4ClQhW1VXgez1jf4jhXJdW~1OPtvfXmf7w__"
  },
  "date": 1761567862528
}
This event fires when an interview is deleted.
{
  "event": "interview.delete",
  "data": {
    "id": "68ff5ed8b07cc148bddcae02",
    "position": {
      "id": "68b43d27a19cf131a17c543f",
      "name": "Social Media Manager"
    },
    "externalId": null,
    "status": "pending",
    "hash": "25eXrLpj",
    "createdAt": 1761566424331,
    "candidate": {
      "name": "Stef Jordens",
      "firstName": "Stef",
      "lastName": "Jordens",
      "email": "stef@gmail.com",
      "phone": null
    },
    "score": null,
    "completed": null,
    "deleted": 1761567548102,
    "archived": null,
    "finalist": null,
    "answered": false,
    "thumbnail": null,
    "url": {
      "short": "https://hflx.io/c/24eYrLoi",
      "private": "https://admin.hireflix.com/jobs/68b43e38b19cf131a17c543f/interview/67dfad8b07cc148bddcae02",
      "public": "https://app.hireflix.com/24eYrLoi"
    }
  },
  "date": 1761567548155
}

What’s next?

Validate Authenticity of Webhook Events

Next, make sure to check out the guide on how to verify the authenticity of webhook events.