Monthly market salary benchmark for People Ops

By General Input

Refresh a Google Sheet of market salaries on the first of every month and ping People Ops in Slack about roles that moved more than 5%.

Integrations

  • Real-Time Glassdoor Data
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • HR & People
  • Operations

Build a deterministic code workflow that keeps a People Ops compensation benchmark spreadsheet fresh every month without anyone touching it.

Trigger: cron, on the first day of every month at 6:00am in the workspace's local timezone.

Step 1. Read the role list from Google Sheets using Get Values. The spreadsheet has a tab named config with columns: job_title, location, years_of_experience (optional, one of ALL, LESS_THAN_ONE, ONE_TO_THREE, FOUR_TO_SIX, SEVEN_TO_NINE, TEN_TO_FOURTEEN, FIFTEEN_OR_MORE). Read the full data range, skip the header row, and turn it into an array of role objects.

Step 2. Loop over each role and call Real-Time Glassdoor Data Salary Estimation with the job_title, location, and years_of_experience from that row (default years_of_experience to ALL when the cell is blank). Capture market low, median, and high from the response. If the call returns a transient 503, retry once after a 2 second wait. If it still fails, skip that row and record the error to log so the rest of the sweep continues.

Step 3. Append one row per role to a tab named history using Google Sheets Append Values, with columns: date (today's ISO date), job_title, location, experience, low, median, high. One Append Values call per role is fine, or batch them into a single append if cleaner.

Step 4. Compute month-over-month median change. For each role in this run, look up the previous snapshot for the same job_title plus location plus experience combination from the history tab (the most recent row before today's date) and compute the percent change in median. If there is no prior snapshot, mark this run as the baseline.

Step 5. Build a Slack message and send it to the People Ops channel using Slack Send a Message. The message should list only the roles where the absolute median change exceeded 5 percent, formatted as one line per role: job title, location, old median, new median, percent change with an up or down arrow. If no roles crossed the threshold, send a short confirmation that the monthly sweep ran and nothing moved by more than 5 percent. If this was the baseline run, say so explicitly.

Every step maps to a known node with structured inputs. There is no model judgement in the loop, so build this as a code workflow, not an agent.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats