AI screeningRecruitingHR tech

When a HireQwik Slack Webhook Saves and Stays Silent

HireQwik October 7, 2026 7 min read

Slack webhook hiring alerts not arriving is a quiet failure, and quiet is why it lasts. The settings page says Saved. The hiring channel stays empty. A Strong Go finishes, the recruiter assumes someone else saw it, and the candidate cools off. I have debugged this more than once. The interview path was healthy every time. The ping path was not.

The dangerous version is the one that looks configured. A missing setup is obvious. A setup that stores a bad address and then fails softly is not. HireQwik fails softly on purpose, so a dead Slack URL cannot stall a voice screen. You only find the dead URL if you ask.

The HireQwik save that still sends nothing

There are three different “success” moments, and just one of those means a message landed.

The page stored your settings. That is the Saved banner. It means the sink row and the event ticks are in the organisation’s config. It does not call Slack.

Slack accepted a post. That is a 2xx from the webhook. HireQwik treats anything else as a failed delivery and logs it. The recruiter does not see that log in the inbox.

A human saw it. That is the channel, the right channel, with the right people in it. A webhook pointed at an old private channel still “works” if nobody on the hiring team is in that channel.

Send test is the bridge between the first and the second. An admin runs it. HireQwik attempts each enabled destination and returns ok or not. The copy is marked as practice. If ok is false, stop. Do not sit through a live screen hoping the next verdict will reveal a dead address.

Before late August 2026, that test could report success even when Slack answered 404. An admin could “verify” a sink that had never delivered. The test now reports the real result. If you set this up before that fix and never retested, retest. A green memory from July is not evidence.

People paste the thing they can see. In Slack that is often the channel URL from the browser, something like a workspace host plus /archives/ and a channel id. HireQwik rejects that. The host must be hooks.slack.com, and the path must look like Slack’s incoming webhook: a services path with a T id, a B id, and a secret, or a workflows or triggers path.

Slack’s incoming webhook guide is the place to create the address. You pick the channel at creation time. The URL you copy is the credential. The channel link is just a place humans click.

A few rejects are immediate, on save, and that is the kind of failure I like:

  • The field is empty and the sink is enabled.
  • The field holds two web addresses glued together. Repeated paste appends. A long secret gives almost no visual cue that you pasted again.
  • The Slack row does not start with https://hooks.slack.com/.
  • The host is fine but the path is not a webhook shape.

Teams is looser on path and stricter on a different problem: Microsoft retired Office 365 connectors in May 2026, so an old office host can pass a host check and still go nowhere. That case is covered in Microsoft Teams alerts for a finished interview. This page stays on Slack.

The pasted-twice URL that Slack 404’d for weeks

The worst Slack field I have seen held the same webhook repeated until seven copies sat in one box. Host-only checking said the string contained hooks.slack.com, so the save went through. Slack then 404’d every delivery. Because the alert is not allowed to break screening, the product kept interviewing. The channel simply never spoke.

We now refuse a field with more than one URL, both in the browser and on the server, and the error says to clear the box and paste exactly one. If you are cleaning an old row, do not try to edit the middle of a concatenated secret. Select all, delete, paste once, save, test.

I am not naming the workspace. The lesson does not need a name. If your channel has been silent since the day you “finished setup,” assume the field is dirty until Send test says ok.

What else keeps a valid HireQwik Slack URL quiet

A perfect URL can still produce zero hiring messages. Work down this list before you create a second webhook.

The candidate events are off. Candidate screened, booking confirmed, and the high-score alert all default to off. Credit warnings default to on. A channel that only talks about credits is a channel where the hiring ticks were never armed. Send test ignores those ticks, which is why a test can succeed and a finished top verdict can still stay silent. After a good test, confirm the tick you care about is checked, then save again.

The sink row is disabled. You can keep a draft URL on a disabled row. Disabled rows do not fire. The test only uses enabled sinks. If every row is disabled, the test refuses with no enabled sink to try.

The high-score line is above the scores you actually get. The default is 0.85. A resume at 0.80 will not ping, even with the event on. That is a threshold story, not a delivery story. How to set that line is the next page if messages arrive for some people and not for the ones you expected.

You are waiting on the wrong event. A resume landing does not send Candidate screened. A finished call does not send the high-score alert. Booking is its own tick. Match the tick to the moment you care about.

The mailbox note is what you are actually receiving. The role owner gets a morning email when there is news. Chat receives a mirror only if that mirror is ticked. Seeing the email and not seeing Slack is normal, not a broken webhook.

A 404 and a wrong room feel the same from the recruiter’s chair, and the repair is different. A 404 means Slack rejected the address: clear the field, paste one fresh webhook, test again. A message that lands in #random means the webhook was born against #random. Create a new webhook on the hiring channel. Editing the HireQwik box cannot move an existing Slack webhook to a different room.

A bad HireQwik sink must not stop the interview

If you take one design choice from this feature, take this one. Scoring, booking, and sheet ingest do not wait on Slack. A timeout, a 404, or a refused host is logged and swallowed. The candidate’s call still ends with a verdict.

That choice protects the drive and hides the outage. There is no red banner on the inbox that says the last twenty alerts died. The discipline is operational: run Send test when you first save, again after anyone rotates a Slack app, and again if a drive day produces scores and zero messages.

Greenhouse’s Slack help page raises a cousin of this problem: a channel can expose candidate details to people who would not see them inside the ATS, which is why they talk carefully about public rooms. The article is Slack integration in Greenhouse. HireQwik’s chat line stays thin for that reason. Name, role, verdict or percent, link. The link enforces access. A 404 does not leak the resume. It also does not deliver the name. Silence is the bug you are hunting, not a data spill.

A five-minute check before the next HireQwik drive

Do this once, as an admin, with the channel open on a second screen.

  1. Open notifications. Read the Slack field. If you cannot see the start and the end without scrolling through a huge string, clear it.
  2. Paste one hooks.slack.com URL. Confirm the sink type says Slack and the row is enabled.
  3. Tick only Candidate screened if the drive is in voice rounds, or only the high-score alert if you are still on resumes. Do not tick both “just in case” until you have seen one day’s volume.
  4. Save. Then Send test. Wait for ok, and wait to see the sample in the channel you think you picked.
  5. If the sample lands in the wrong channel, the webhook was created against that other channel. Fix it in Slack. HireQwik cannot retarget a URL. The channel is chosen when the webhook is born.

If step 4 fails, the drive can still run. You will simply be back to opening the dashboard on purpose, which is the habit the alert was meant to replace. Fix the sink before you promise a hiring manager that “Slack will tell us.”

The campus pattern for which events to arm assumes the pipe works. This page is how you know the pipe works. If you want us to watch a test with you, use the demo form. Tell us the channel name. Keep the webhook URL out of the email.

Frequently asked questions

Why did HireQwik say Saved if Slack never got the alert?

Saved means the settings were stored. It does not mean Slack accepted a message. Delivery is checked by Send test, which reports each sink as ok or not. A URL Slack rejects with a 404 used to be able to hide behind a cheerful test. That test now tells the truth.

Does a broken HireQwik webhook stop the AI interview?

No. If the webhook fails, the screen still scores and the booking still confirms. The alert is not allowed to block the hiring path. The cost is a quiet channel, which is why you have to test the sink on purpose.

Can I paste a Slack channel link into HireQwik notifications?

No. HireQwik wants one incoming webhook that starts with https://hooks.slack.com/ and follows Slack's services, workflows, or triggers path. A link to a channel archive page is rejected. Create the webhook in Slack, then paste that address once.

See your own candidates screened

Book a 30-minute demo. Bring a live JD and we'll screen against it, then start with a pilot on your own candidates before committing to anything.