Monthly comp benchmark for open hiring reqs in Notion
On the first Monday of each month, benchmark every open requisition against market and peer pay, then flag the reqs that need a raise before the next offer goes out.
Build me an agent workflow that benchmarks every open hiring requisition against the live market on the first Monday of each month and flags the ones whose pay band has fallen behind.
Trigger: cron, the first Monday of each month at 8am in the org's local time zone.
Step 1. Read open reqs from Notion. Use Notion Query a Database against my hiring requisitions database. Each row represents one req and has columns for job title, level, location, our intended pay band (min and max), status, and a multi-value field listing peer or competitor companies we want to benchmark against. Pull every row whose status is open or upcoming. The user will pick the database and map the columns at setup time.
Step 2. For each requisition the agent should:
a) Call JSearch Estimate Salary with the job title and the req's location to pull a current market salary range for that role in that geo.
b) For every peer or competitor company listed on the req, call JSearch Get Company Job Salary with the same job title, the company name, and the same location to pull what that specific company pays for the same role in the same metro. If a peer has no data, note that and move on.
c) Reason over the spread. Compare our intended band against the market median and against each peer. Decide on a recommendation: hold the band if we're at or above market and competitive with peers, adjust the band if we're sitting below market median or a named peer, or escalate if the gap is large enough that the recruiter and hiring manager need to involve leadership.
Step 3. Write the benchmark back to Notion. For each req, use Notion Create a Page to add a new Comp Benchmark page (in a Comp Benchmarks database the user picks at setup) titled with the role, level, location, and run date. The page body should include: the market salary range for the role and geo, a peer comparison section with one row per named competitor and their pay for the same title in the same metro, our current intended band, the gap analysis, and the recommended action. Link back to the original requisition row.
Step 4. Post a Slack digest. Use Slack Send a Message to the People team channel the user selects. The digest should only call out the reqs that need attention (adjust or escalate). For each, include the role and location, the size and direction of the gap (versus market median or a specific peer), the recommended action, and a link to the new Comp Benchmark page in Notion. Reqs that came back as hold should be omitted from the message to keep it scannable, but counted in a short summary line at the top ("12 reqs benchmarked, 3 need attention").
Tone for the Slack message: brief and direct. This is for recruiters and people ops, not executives. No emoji spam. Use short bullet lines. Make the link to the Notion benchmark page obvious.
Edge cases: if a req has no location, skip salary lookups for it and write a benchmark page noting that location is required. If JSearch returns no data for the role or geo, mark the req as 'no data available' in the benchmark page rather than guessing. If the same req name appears multiple times, treat them as distinct rows. Be defensive about peer company names that have legal suffixes or trade names (Meta vs Meta Platforms, Alphabet vs Google) and try the obvious variant before giving up.
Additional information
What does this prompt do?
- Reads every open or upcoming requisition from your Notion hiring database, including the title, level, location, and the peer or competitor companies you want to compare against.
- Pulls a fresh market salary range for each role in that geography, plus what each named peer company actually pays for the same title in the same metro.
- Writes a clean Comp Benchmark page back into Notion for each req with the market range, peer comparisons, and a clear recommendation: hold the band, adjust it, or escalate to leadership.
- Posts a short Slack digest to your People team channel calling out only the reqs that need attention, so recruiters and hiring managers can act before the next offer.
What do I need to use this?
- A Notion workspace with a hiring database that tracks open and upcoming roles, including title, level, location, and a list of peer or competitor companies for each row.
- A JSearch account for the market and company pay data.
- A Slack workspace and the channel where you want the monthly digest posted.
How can I customize it?
- Change the schedule. First Monday of the month is the default, but you can run it weekly, quarterly, or only when a new req lands in your hiring database.
- Change the trigger threshold. By default a req is flagged when your intended band sits below the market median or below a named peer, but you can tighten or loosen the rule.
- Change where the output goes. Pick a different Notion database for the benchmark pages, or have the digest sent to a recruiter DM instead of the People channel.
Frequently asked questions
Do I have to list peer companies for every req?
How fresh is the pay data?
What if my Notion hiring database uses different column names?
Will it edit our existing requisition rows in Notion?
What does the Slack digest actually include?
Stop sending offers blind to the market.
Connect Notion, JSearch, and Slack once, and Geni benchmarks every open req against market and peer pay on the first Monday of every month.