Craigslist job ad coverage board for your open Bullhorn reqs

By General Input

See every live Craigslist job ad beside your open reqs, catch the gaps and stale ads, and fix pay or ad copy without leaving the board.

Integrations

  • Craigslist
  • Bullhorn

Type

App

Categories

  • HR & People
  • Operations

Build me a coverage board my recruiters work out of every day, so our live Craigslist job ads stay matched to the open reqs in Bullhorn. I run a staffing agency and we post jobs to Craigslist in bulk. The whole point of the app is catching the drift between what is live on Craigslist and what we are actually trying to fill.

The board has two linked halves. The left half is our open job orders, read from Bullhorn with Search Entities against JobOrders using Lucene, falling back to Query Entities with JPQL where structured filtering and sorting is easier. Show the req ID, title, client, owning recruiter, status, and pay range. The right half is our live Craigslist job postings, built from Get All Postings Stats for the roster of postings and their engagement numbers, with Get Posting Status to confirm whether each one is active, deleted, expired, pending, or removed.

Match the two sides on the req ID that we embed in the body of every posting. That is the join key for the entire app. When a posting body has no recognizable req ID, do not silently drop it. Put it in an unmatched bucket so a recruiter can go sort it out.

Across the top of the board, surface three gap counts, each clickable through to the filtered list behind it. First, open reqs with no live posting. Second, postings still running against reqs that are already closed or filled. Third, postings that have been live more than 30 days and have drawn zero contacts. Treat the contacts stat as applicant interest, since that is the number that tells us whether an ad is actually working. Note that Craigslist engagement stats cover a rolling 30 day window through midnight UTC yesterday, so present them as recent history rather than a live counter.

Clicking any posting opens a detail panel that loads Get Posting Body and Get Posting Remuneration. From that panel a recruiter can do four things: correct the pay range with Edit Posting Remuneration so it matches what the req actually pays, refresh stale ad copy with Edit Posting Body, take down a filled role with Delete Posting, and restore an accidental removal with Undelete Posting. Show the req's pay range next to the posting's remuneration so a mismatch is obvious before anyone edits anything, and confirm before any takedown.

One hard constraint you must respect. Our Craigslist integration manages existing postings only. There is no create-posting operation, so the app must never claim it can publish a new job ad. For the open req with no live posting gap, the app flags the gap and hands the recruiter drafted ad copy plus the pay range pulled from the req, formatted and easy to copy, so they can post it through their normal bulk channel. Make it clear in the interface that this step is a handoff, not something the app performs.

Let each recruiter filter the whole board down to only the reqs they own, and remember that choice between visits so the daily check is a short personal list rather than the entire agency board. Sort each gap list worst first, so the longest running waste and the oldest uncovered req rise to the top.

Related prompts

Explore more prompts
Daily Craigslist repricing desk for used car dealersCraigslist leasing board for NYC apartment rentalsCandidate submission portal for your Bullhorn job ordersBullhorn redeployment board for contracts ending soonClient account review dashboard for Bullhorn QBR prepWeekly contractor extension push for expiring placementsAuto-file your monthly Craigslist bill in QuickBooksMorning shortlist: match Bullhorn candidates to new job ordersDaily price sync from Google Sheets to CraigslistRetire Craigslist listings when an Airtable row closes