Real-Time Milestone Alerts
Live Slack, Teams & Discord notifications for every hiring milestone — not just a connector, a notification engine.
Connect Slack, Microsoft Teams, or Discord once and your team hears about every moment that matters — the second it happens. New applications, shortlists, hires, offers sent, signed, and auto-expired, interview invites emailed to candidates, urgent staffing requests, proposals due within 7 days, assignments rolling off within 30 days, clearances or certifications entering their 30-day renewal window, milestone performance reviews (30/60/90-day) the day they come due, active placements overdue for a check-in, and leave/PTO requests the moment they are submitted or decided all dispatch to the channels you choose. Subscribe per event, per channel. Failures are logged on the webhook, never on your workflow.
What you get
Built to solve the actual problems hiring teams hit every day.
Every milestone, in real time
Sixteen event types: application.created, application.shortlisted, application.hired, offer.sent, offer.signed, offer.expired, interview.invite_sent, pipeline.urgent, proposal.due_soon, assignment.ending_soon, compliance.expiring, review.due, checkin.due, fraud.high_risk, leave.requested, and leave.decided — each fires the instant the state changes. compliance.expiring means your FSO/compliance channel hears the second a clearance or certification enters its 30-day renewal window.
Milestone reviews never slip
A daily sweep computes each active placement's 30/60/90-day review dates off their start date, skips any review you've already logged, and fires review.due the day a milestone comes due — so a new hire's check-in surfaces on its own instead of waiting for someone to scan the page. A workflow reminder only.
At-risk placements surface before they resign
checkin.due — a daily sweep flags every active placement overdue for a check-in (default every 30 days) so at-risk staff surface before they resign, not after. Deduped so each overdue placement pings once per due window, never twice.
Leave & PTO notifications
leave.requested pings your managers the moment a time-off request lands, and leave.decided tells the channel when it's approved, rejected, or cancelled — so the leave/PTO module finally speaks up instead of waiting to be polled.
Offers don't rot in your pipeline
A daily sweep auto-expires every offer past its deadline, fires offer.expired to your channels, and keeps your acceptance-rate analytics honest — no manual status flip required.
Proposals due in 7 days
A daily scan watches every active proposal's due date and pings you once when it enters the 7-day window — never twice for the same proposal.
Bench rolloff, caught early
A daily sweep flags every assignment ending within 30 days, flips it to "ending soon," and fires assignment.ending_soon so you backfill the seat before the contract gap — and the revenue gap — opens.
Urgent staffing, surfaced instantly
High- and critical-urgency staffing requests alert the channel the moment they're opened, so the right people start sourcing immediately.
Per-provider formatting
Slack gets rich blocks with an "Open in HR" button, Teams gets a MessageCard, Discord gets a clean message, and a generic JSON option covers everything else.
Never breaks your workflow
Delivery is fire-and-safe: a failing endpoint records the error on the webhook row and is retried next time — it can never block creating an offer or advancing a candidate.
How it works
Four steps from setup to value.
Add a webhook
On /admin/webhooks, paste your Slack / Teams / Discord incoming-webhook URL and name it.
Pick your events
Subscribe to any of the sixteen milestones — each channel can listen to a different set.
Work as usual
Send an offer, shortlist a candidate, open an urgent req — the matching alert lands in your channel automatically.
Proposals, rolloffs, reviews & check-ins scanned daily
Scheduled tasks fire proposal.due_soon once per proposal entering the 7-day window, assignment.ending_soon once per assignment entering the 30-day rolloff window, review.due once per 30/60/90-day milestone that comes due and hasn't been logged, and checkin.due once per active placement overdue for a check-in (default every 30 days) — all deduped so you're never spammed.
FAQ
Quick answers to common questions.
Which channels are supported?
Slack, Microsoft Teams, and Discord out of the box, plus a generic JSON webhook for any other system (Zapier, n8n, your own endpoint).
What happens if my webhook URL is down?
The send failure is recorded on the webhook record (last_error) and surfaced in the admin UI. It never throws into the originating action — your offer still sends, your candidate still advances.
Will I get duplicate proposal reminders?
No. Each proposal is reminded exactly once when it enters the 7-day window, tracked by a per-proposal marker so the daily scan won't re-fire.