Craigslist job ad coverage board for your open Bullhorn reqs
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
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.
What it does
- Puts your open job orders and your live Craigslist job ads side by side on one board, matched to each other by the req ID your team writes into every ad
- Flags the three gaps that cost you money: open roles with no live ad, ads still running for roles you already filled or closed, and ads live over a month that have not pulled a single reply
- Opens any ad in a detail panel where a recruiter can correct the pay range, refresh tired ad copy, take down a filled role, or restore an ad someone removed by mistake
- Lets each recruiter filter the board down to just the roles they own, so the daily check is a short list instead of the whole agency's board
What you’ll need
- A Craigslist bulk posting account with access to the Jobs (offered) category
- A Bullhorn login for your agency
- A habit of writing the req ID into the body of each Craigslist ad, which is how the board pairs an ad with its job order
- Your team's rule for which job order statuses count as closed or filled
How to customize it
- Change the staleness rule from 30 days with zero replies to whatever your team considers a dead ad
- Decide which job order statuses count as closed or filled, so takedown suggestions match how your agency works
- Set whether the board opens filtered to the signed in recruiter's own roles or to the full agency view
Use cases
- Data Sync
- Research & Monitoring