Monday morning compensation pulse for tracked roles
Every Monday at 9am ET, refresh salary benchmarks for the roles you're hiring, log a dated snapshot to a sheet, and post a digest of movers to Slack.
Every Monday at 9am ET, run a compensation pulse for the roles my team is actively hiring or planning to hire for. This should be an agent workflow on a cron trigger.
Inputs the agent should accept when I configure it: the Google Sheets spreadsheet ID and tab/range that holds my tracked roles, the Slack channel ID for the digest, and a movement threshold (default 3 percent).
Step 1: Read the tracked roles from the Google Sheet using Google Sheets Get Values. The sheet has one row per role with a job title column and a location column, plus columns for the prior week's min, median, and max so the agent can compare week over week.
Step 2: For each role, call Job Salary Data Get Job Salary Estimate with the job title and location to fetch the current min, median, and max plus the confidence rating. Iterate over the data array (up to three publisher estimates) and aggregate sensibly (for example median of medians, or pick the top result) rather than blindly indexing the first element.
Step 3: Append a dated snapshot row per role back to the same sheet using Google Sheets Append Values. Each appended row should include the date, job title, location, this week's min, median, max, and confidence, so we build a clean longitudinal record over time.
Step 4: Compare this week's median to last week's median (from the prior-week columns the sheet already carries) for every role. Flag any role whose median moved by more than the configurable threshold (default 3 percent) in either direction.
Step 5: Write a short markdown digest that opens with a one-line summary, lists the movers with direction and percent change, calls out any roles that came back with low confidence, and includes a link to the underlying Google Sheet so the team can drill in.
Step 6: Send that digest to the configured Slack channel using Slack Send a Message so the comp and recruiting team sees it in their Monday morning standup feed.
Be resilient: if a single role lookup fails or the API returns a 429, log the role and skip it rather than failing the whole run. If no roles moved beyond the threshold, still post a brief 'no significant movement this week' note so the team knows the pulse ran.
Additional information
What does this prompt do?
- Pulls your list of tracked roles (job title plus location) from a Google Sheet you control.
- Fetches a fresh salary range and confidence rating for every role from real-time market data.
- Appends a dated snapshot row back to the sheet so you build a longitudinal record week over week.
- Posts a short Monday morning Slack digest that highlights roles whose median pay moved beyond your threshold and flags any low-confidence estimates.
What do I need to use this?
- A Google account with access to the sheet that tracks your roles and a header row for the new snapshot columns.
- A RapidAPI account subscribed to Job Salary Data (the free tier covers a small list of roles).
- A Slack workspace and the channel where your comp or recruiting team reads Monday updates.
How can I customize it?
- Change the cadence or send time (for example daily, biweekly, or 8am PT instead of 9am ET).
- Tune the movement threshold (the default flags any role whose median shifts by more than 3 percent week over week).
- Swap the Slack channel, add a second channel for leadership, or route low-confidence roles to a separate thread.
Frequently asked questions
Where does the salary data come from?
What does my Google Sheet need to look like?
How does it decide what counts as a mover?
Can I run it more or less often than weekly?
What happens if a role returns a low confidence rating?
Stop refreshing comp benchmarks by hand every Monday.
Connect Google Sheets, Slack, and Job Salary Data once, and Geni will run this comp pulse every Monday morning for you.