Slack
Create a Slack OAuth app with the redirect URI:Discord
Create an incoming webhook in the destination channel and paste it into the Discord integration card. The URL is encrypted and never returned in status responses. Rotate it in Discord if it has been exposed.Telegram
Create a bot with BotFather, copy the bot token once, and configure the target chat ID in the Telegram integration. Send a test message before enabling candidate events.Slack setup in detail
1
Create the OAuth app
Go to api.slack.com/apps and create an app
for your workspace. Add the redirect URI:Copy the Client ID and Client Secret from Basic Information.
2
Add installation variables
For self-hosted single-tenant deployments, add both values to your server
environment and restart Harly. Multi-tenant operators can enter encrypted
credentials directly in the Slack settings card:
3
Connect the workspace
Open Settings → Integrations → Slack, select Connect, and approve
the Slack authorization. Choose the channel where recruiting notifications
should appear. The Harly bot must already be invited to that channel; Harly
only lists channels where the bot can post.
4
Choose events
Enable the events you want. Most teams enable only the highest-signal
events to keep channel volume manageable:
- Application received
- Candidate stage change
- Offer accepted
- Interview scheduled or canceled
5
Test
Select Send test notification. Confirm the message appears in the
configured channel.
Discord setup in detail
1
Create an incoming webhook
In Discord, open the destination channel, go to Settings → Integrations →
Webhooks, and create a new webhook. Copy the webhook URL.
2
Paste into Harly
Open Settings → Integrations → Discord and paste the webhook URL. The
URL is encrypted at rest and never returned in API responses.
3
Test
Select Send test notification. Confirm the embed appears in the channel.
Rotate the webhook URL in Discord if it has been exposed. Harly does not
support webhook URL rotation from the UI.
Telegram setup in detail
1
Create a bot
Open BotFather on Telegram, send
/newbot, and follow the prompts. Copy
the bot token once.2
Find the chat ID
Add the bot to the target channel or group, send a test message, and
retrieve the chat ID from the Telegram API.
3
Configure in Harly
Open Settings → Integrations → Telegram, paste the bot token and chat
ID, and save.
4
Test
Select Send test notification. Confirm the message appears in the chat.
Delivery and safety
Notification delivery is asynchronous and at-least-once. A provider outage must not block candidate mutations. Harly persists Slack deliveries, retries transient failures through the scheduler, honors Slack rate-limit backoff, and dead-letters permanent failures for operator review.Troubleshooting
Next steps
Configure outbound and inbound email.
Calendar sync
Connect Google Calendar or Outlook for interview scheduling.