Agent setup guide
Recruiting Pipeline Digest
Weekly Slack digest of open job orders and new candidates from Bullhorn: stuck roles, gaps and next actions.
What it does
Weekly Slack digest of open job orders and new candidates from Bullhorn: stuck roles, gaps and next actions.
- Runs every Monday at 8:00 (change the schedule and time zone on the trigger).
- Searches Bullhorn for open job orders (up to 200) and the 100 most recently added candidates.
- Works out in code which candidates are new this week (added in the last 7 days) and which roles are stuck (open more than 21 days, or the start date passed or within 7 days).
- Dates are worked out in code, never by the AI: days until or since each date, the window and business days are computed in your workflow's time zone, and records outside the window are skipped before the AI sees them.
- AI summarises the week: open roles and openings, new candidates and their sources, the stuck roles, where candidate flow looks thin, and next actions per owner.
- Posts the digest to your recruiting channel in Slack.
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Bullhorn and Slack, connected in Settings → Integrations.
What it doesn't do
- It doesn't read submissions, interviews or placements, so it can't report per-job pipeline stages — it's a summary, not a full analytics report.
- It reads up to Bullhorn's search page size per query (200 job orders, 100 candidates); bigger desks see the newest records only, and the digest says so.
- It doesn't change anything in Bullhorn.
Availability and plans
Available
Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.
Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.
Before you start
- A paid plan: agents run live, and the Free plan only runs Dry Runs.
- An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
- These apps, connected in Settings → Integrations: Bullhorn and Slack.
- Nothing to send: the agent runs on a schedule.
- About 10 minutes.
Set it up step by step
Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.
1. Connect your AI provider
The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
2. Connect Bullhorn
Connect Bullhorn (Settings → Integrations → Bullhorn) with your API credentials; the API user needs read access to job orders and candidates.
3. Connect Slack
Connect the Slack workspace your recruiters use (Settings → Integrations → Slack).
4. Describe your desk
Open “Write the pipeline digest” and replace the placeholder with who reads it and your priorities. To change when a role counts as stuck, edit “Find roles open too long” and “Find roles starting soon”.
| Setting | What to enter | In step |
|---|---|---|
| Your desk and priorities | Replace the placeholder in “Write the pipeline digest” with who reads the digest and your priority clients or roles. When a role counts as stuck is set in code in “Find roles open too long” (21 days) and “Find roles starting soon” (7 days). It starts as “[DESCRIBE YOUR DESK: WHO READS THIS AND YOUR PRIORITY CLIENTS OR ROLES HERE]” until you replace it. | “Write the pipeline digest” |
5. Pick your Bullhorn account
Pick your Bullhorn account on “Read open job orders” and “Read the newest candidates”.
| Setting | What to enter | In step |
|---|---|---|
| Bullhorn account (job orders) | The Bullhorn account job orders are read from. Pick your connected Bullhorn account. | “Read open job orders” |
| Bullhorn account (candidates) | The Bullhorn account candidates are read from (the same account). Pick your connected Bullhorn account. | “Read the newest candidates” |
6. Pick the Slack account and channel
Open “Post the digest in Slack” and pick your account and channel. Invite the app to private channels first (/invite @Fluxo Flow).
| Setting | What to enter | In step |
|---|---|---|
| Slack account | The Slack workspace the digest is posted to. Pick your connected Slack account. | “Post the digest in Slack” |
| Channel for the weekly digest | Pick the channel your recruiters read, e.g. #recruiting. | “Post the digest in Slack” |
7. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
8. Switch the trigger on
Open the trigger, check the day, time and time zone, and switch the schedule on.
How it works
The agent is a normal workflow with 9 steps (1 AI step). You can open, edit and monitor it like any other workflow.
- Every Monday at 8:00 — Runs on a schedule (cron 0 8 * * 1, UTC — change it in the trigger's settings). Runs once a week (change the day, time and time zone on the trigger).
- Read open job orders — Bullhorn: Search job orders. Searches Bullhorn for open job orders (newest first, up to 200): title, client, openings, status, owner and dates.
- Read the newest candidates — Bullhorn: Search candidates. Searches Bullhorn for the most recently added candidates (up to 100): name, title, status, source, owner and date added.
- Find this week's new candidates — Step. In code, not AI: keeps the candidates whose date added is in the last 7 days (in the trigger's time zone) and counts them. Change the window here (within.min).
- Find roles open too long — Step. In code, not AI: keeps the open job orders added more than 21 days ago, with how many days each has been open. Change the 21 here (olderThan).
- Find roles starting soon — Step. In code, not AI: keeps the open job orders whose start date has passed or is within 7 days. Change the 7 here (within.max).
- Write the pipeline digest — AI step (runs on your AI provider key). AI summarises the open roles and the past week's new candidates into gaps, stuck roles and next actions per owner. Which candidates are new and which roles are stuck was worked out in code.
- Post the digest in Slack — Slack: Post a message. Posts the weekly digest to your recruiting channel.
- Digest posted — Kept in the run history. The run history keeps every digest.
Test it with Dry Run
Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live.
- Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
Go live
- Open the trigger, check the day, time and time zone, and switch the schedule on.
- Scheduled runs start only once the schedule is activated, and can't repeat faster than your plan's minimum interval.
- The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
- When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.
Questions
Does it see submissions and placements?
No. It reads open job orders and the newest candidates. Pipeline stages per job (submissions, interviews, placements) aren't part of the digest.
How many records does it read?
Up to 200 open job orders and the 100 newest candidates per run. The digest says when a list was cut off.
How does it decide a role is stuck?
In code, not by the AI: a role is stuck when it has been open more than 21 days (“Find roles open too long”) or its start date has passed or is within 7 days (“Find roles starting soon”). New candidates are those added in the last 7 days. Change the numbers in those steps.
Troubleshooting
- “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
- A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
- An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
- Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
- It didn't run at the expected time: the schedule must be activated, and its time is in the trigger's timezone.
- A step failed: open the run in History and check that step in the Trace tab for the error and what it received.
Generated from the agent's own workflow, so it always matches what the agent does. Last updated .