Skip to content

Rock Pigeon ATS - Discord Integration Activation

Rock Pigeon ATS - Discord Integration Activation

Section titled “Rock Pigeon ATS - Discord Integration Activation”

This checklist covers the steps to activate Discord notifications for candidate stage changes in Rock Pigeon ATS.

  • Access to Discord Developer Portal
  • Access to Rock Pigeon ATS server/environment variables
  • Access to discord-integrations repository (for bot token)
  1. Go to Discord Developer Portal
  2. Find the Cadence Admin Bot (Pingbot) application
  3. Navigate to BotReset Token
  4. Copy the new token
  5. Update discord-integrations/features/pingbot/bot/.env:
    DISCORD_BOT_TOKEN=new_token_here
  6. Redeploy affected workers:
    Terminal window
    cd discord-integrations
    ./scripts/deploy-all.sh
  1. Enable Developer Mode in Discord:
    • User Settings → App Settings → Advanced → Developer Mode: ON
  2. Right-click on the channel where you want hiring notifications
  3. Click Copy Channel ID

Add the following to Rock Pigeon’s .env file:

Terminal window
# Discord Integration (Phase 1 - Stage Change Notifications)
DISCORD_BOT_TOKEN=your_bot_token_here
DISCORD_CHANNEL_ID=your_channel_id_here
DISCORD_GUILD_ID=1442608946652385394
Variable Source
DISCORD_BOT_TOKEN discord-integrations/features/pingbot/bot/.env
DISCORD_CHANNEL_ID Copy from Discord (see above)
DISCORD_GUILD_ID Cadence Discord server ID (pre-filled)
  1. Start the queue worker (if not already running):

    Terminal window
    php artisan queue:work
  2. Test by changing a candidate’s stage in the ATS

  3. Verify notification appears in Discord channel:

    🎤 John Smith moved to Interview for Senior Engineer

    Previous stage: Resume Review

  • Check queue worker is running
  • Verify DISCORD_BOT_TOKEN is set correctly
  • Check Laravel logs: storage/logs/laravel.log
  • Verify bot has permission to post in the channel
  • Bot token is invalid or expired
  • Regenerate token in Discord Developer Portal
  • Channel ID is incorrect
  • Bot doesn’t have access to that channel
  • Verify bot is in the correct server
  • Phase 2: Candidate discussion threads (private threads per candidate)
  • Phase 3: Evaluation reminder DMs to panel members
  • Phase 4: Decision summaries when all evaluations are in

Code Location: rock-pigeon-ats/app/Discord/

Event Flow:

  1. UpdateCandidateStageAction updates stage
  2. CandidateStageChanged event dispatched
  3. NotifyDiscordOnStageChange listener (queued) sends to Discord

Graceful Degradation: If DISCORD_BOT_TOKEN is not set, a null service is used and no notifications are sent (app continues to work normally).