Weekly contractor extension push for expiring placements

By General Input

Every Tuesday, find the placements ending in the next 30 days, rank them by revenue at risk, and DM each recruiter their own call list.

Integrations

  • Timesheet Portal
  • Bullhorn
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Every Tuesday at 9am, run an extension push on the placements that are about to end, so recruiters get a ranked call list while there is still time to act on it.

Start in Timesheet Portal. Use List Jobs to pull the current placements, and keep only the ones whose end date falls inside the next 30 days. Treat that 30 day window as a setting I can change, since notice periods vary by client.

For each placement that survives the filter, find the matching record in Bullhorn using Search Entities with a Lucene query against Placement. Match on candidate name plus client plus end date, and use Get Entity by ID to pull the detail you need: the owning recruiter, the client contact, and the linked job order. Only accept a match when candidate, client and end date all line up. If there is no confident match, keep the placement in the recruiter message but do not write a note against any Bullhorn record. A note saved on the wrong placement is worse than no note.

Attach the billing evidence with Get Time and Cost Report in Timesheet Portal: hours billed to date on each placement, and the weekly run rate over the recent weeks so the trend is visible rather than a single total. The Timesheet Portal report endpoints are rate limited far more tightly than the entity endpoints, so pull one report covering the whole date range and all the placements at once and split the rows per placement afterwards, rather than calling the report once per placement.

Judge each placement on the evidence rather than treating them all the same. Steady weekly hours running right up to the end date is a likely extension, so say so and give the recruiter the number to lead with. A recent drop off in hours, or an end date that has already been extended once, is at risk and should be called out as such with the reason. Where the hours have effectively stopped or the case is otherwise weak, say plainly that the conversation is probably not worth the call. Do not pad the list to make it look busy. Work out the annualised billings at risk for each placement by projecting the recent weekly billing run rate over a full year.

For every placement with a confident Bullhorn match, write a Note against the Bullhorn placement using Create Entity. Summarise the extension case in a few lines: the end date, hours billed to date, the recent weekly run rate, the direction of travel, your read on whether this one extends, and the annualised billings at risk if it does not.

Then message the recruiters. For each owning recruiter, look up their Slack user from the email on their Bullhorn record, open a direct message, and send them only their own expiring placements. Order the list by annualised billings at risk, highest first, so the most expensive conversation sits at the top. For each placement include the candidate, the client, the end date, hours billed to date, the weekly run rate, your read, and the money at risk. Do not message a recruiter who has nothing expiring this week, and never put one recruiter's placements in another recruiter's message.

Close each message with any placements that could not be confidently matched in Bullhorn, listed separately so someone can fix the underlying record. Keep the 30 day window and the ranking measure easy for me to change.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them