# Compensation workbench for your open Greenhouse requisitions

> See every open role's posted pay band next to what the market is actually advertising, with the roles priced furthest below market floating to the top.

- Workflow type: app
- Services: JobsPipe, Greenhouse, Google Docs
- Categories: HR & People
- Published: 2026-08-24

## What it does

- Lists every open requisition from Greenhouse, grouped by department, with your posted pay band sitting right next to live market percentiles for that role
- Ranks the list by how far below market each role is priced, so the reqs most likely to stall your pipeline are the ones you see first
- Opens a detail panel per role with real competitor job ads and the skills the market has started asking for, so you can read the evidence rather than trust a number
- Gives every role a Rebuild this band button that sends a background agent off to gather the benchmark, the comparable ads and the skill shifts and write a justification memo in Google Docs, linked straight back onto the row
- Shows the sample size behind every percentile and hides figures that rest on too few job ads, so nobody argues a band from thin data

## What you'll need

- A Greenhouse account with your open requisitions and their job posts
- A JobsPipe account for live job posting and market pay data
- A Google account so the app can create and write the justification memos
- A rough idea of which occupation each of your roles maps to, which you set once per role inside the app

## Prompt

Build me a compensation workbench where our recruiting team can check every open requisition against what the market is actually advertising, without exporting anything to a spreadsheet. It should be an app we open and work in, req by req, not a report that gets emailed.

The main view is a list of our open requisitions, grouped by department. Load them from Greenhouse with List Jobs filtered to open status, and pull the matching posted pay range and public role details with List Job Posts. Use List Job Openings so a row can also show how many seats are actually open on that req. Each row shows the department, the role title, our posted band, and the market percentiles for that role side by side, plus a gap column that expresses how far our midpoint sits below or above the market midpoint. Sort the list so the roles priced furthest below market float to the top, and let the user re-sort or filter by department.

Market pay comes from JobsPipe. Use Get Salary Benchmark for the advertised-salary percentiles on a role, and Get Occupation Compensation Percentiles for the p10 to p90 spread on the occupation the req is mapped to. Occupation codes are 4-digit ISCO-08, where a 1 to 3 digit code is treated as a hierarchy prefix. A recruiter should be able to map each requisition to its occupation code once, from the row or the detail panel, and the app must remember that mapping for everyone from then on, so nobody re-picks the same code twice. Roles with no mapping yet should be clearly called out as needing one rather than silently showing blank market data.

Clicking a requisition opens a detail panel. It shows comparable live postings pulled with JobsPipe Search Job Postings, filtered to the same occupation and a comparable location and seniority, so a recruiter can read what competitors are actually advertising and click through to the source ad. Below that, show what the market now expects in the role: Get Top Skills For Occupation for the skills that appear most often in postings, and Get Trending Skills For Occupation for the ones whose share has grown or shrunk against the previous window. Highlight the skills our own job post does not mention.

Every requisition needs a Rebuild this band button that starts a background agent. The agent gathers a fresh benchmark, the comparable postings and the skill shifts for that role, reasons about where the band should sit and why, then writes a justification memo using Google Docs Create Document for the file and Batch Update Document to lay out the content: a recommendation, the current band against market percentiles, the sample size behind each figure, a handful of quoted comparable postings with companies and advertised ranges, and the skills that have moved. When it finishes, link the finished doc back onto the requisition row and show when it was last rebuilt, so the hiring manager conversation starts with evidence attached. While it runs, the row should show that a rebuild is in progress.

Bake the data caveats into the interface rather than burying them in a footnote. Only about a quarter of job postings state pay at all, so display the sample size behind every percentile next to the number. JobsPipe insights endpoints return suppressed results with null percentiles when a group has under 30 postings, so hide percentiles for any group under that threshold and show a plain explanation in place of the figure instead of rendering a zero or an empty cell. Note on screen that insights compensation figures always come back in USD regardless of the country filter. If a requisition has no posted band in Greenhouse, show the market side anyway and mark our side as unpriced.

The audience is a talent acquisition lead, recruiting ops and a compensation partner, so keep the density high and the numbers legible: this is a working screen people open before every hiring manager conversation, not a presentation.

## How to customize

- Change the market filters behind each benchmark, such as country or seniority level, to match where you actually hire
- Raise or lower the sample size cutoff below which the app refuses to show percentiles
- Adjust what counts as a comparable job ad in the detail panel, for example by location, seniority or how recently it was posted
- Reword the justification memo so it matches how your hiring managers and finance partners expect a pay case to read

## FAQ

### Does this change anything in Greenhouse?

No. The app reads your open jobs and job posts from Greenhouse and never writes back to them. Everything it creates lives in the app itself and in the Google Docs memos it generates.

### Why are some pay figures missing or greyed out?

Only about a quarter of job ads on the market state pay at all, and the app deliberately hides percentiles when too few ads sit behind them. A blank cell means there was not enough real data to quote a number honestly, which is safer than showing a figure your hiring manager could pick apart.

### We hire outside the US. Are the market figures still useful?

Yes, with one caveat the app shows on screen: the market pay figures come back in US dollars even when you filter to another country. You still get a fair read on where a role sits against the market, but treat the currency as a common yardstick rather than a local salary quote.

### Do I have to tell the app what each role is every time?

No. You map a requisition to its occupation once and the app remembers it, so the benchmark, the comparable ads and the skill trends all line up automatically the next time anyone opens that role.

### What exactly does the Rebuild this band button produce?

It kicks off a background agent that pulls a fresh benchmark, a set of comparable live job ads and the skills that have grown in demand for that role, then writes it all into a Google Doc as a short justification memo. The finished doc is linked on the requisition row, so the hiring manager conversation starts with evidence attached.

Use this prompt in General Input: https://www.generalinput.com/prompts/compensation-workbench-for-your-open-greenhouse-requisitions