Auto-fill salary bands for new hiring requisitions
When a new role lands in your Airtable hiring tracker, fetch a fresh salary range, write it back to the record, and ping recruiting in Slack.
Build a code workflow that auto-fills a suggested salary band on every new role added to our hiring tracker in Airtable, so we never ship a posting without one (pay transparency laws in CA, NY, CO, WA, IL and similar require it).
Trigger: Airtable poll trigger, event type 'new_record', watching our Open Reqs table. The poll payload gives me the new record's fields, including Job Title and Location.
Step 1. Read Job Title and Location off the new record from the trigger payload. If either is missing or blank, skip the rest of the workflow gracefully.
Step 2. Call Job Salary Data 'Get Job Salary Estimate' with that Job Title and Location. The response is an envelope with a data[] array of up to three publisher estimates; take the first entry (typically Glassdoor) and pull out min_salary, median_salary, max_salary, salary_currency, salary_period, publisher_name, and confidence.
Step 3. Format a single string for the Suggested Salary Band field that looks like: "$120,000 min / $145,000 median / $170,000 max, source: Glassdoor, confidence: CONFIDENT". Use thousands separators and the currency from the response. Also keep the raw confidence value to write into a separate Benchmark Confidence field.
Step 4. Call Airtable 'Update Record' (PATCH) on the same record id, in the same base and table the trigger fired from, setting Suggested Salary Band to the formatted string and Benchmark Confidence to the raw confidence value.
Step 5. Call Slack Bot 'Send a Message' to a hiring channel (treat the channel as a configurable input, defaulting to #recruiting) with a short note like: "Fresh salary band ready for review on <Job Title> (<Location>): $120k / $145k / $170k, confidence CONFIDENT. Check the Open Reqs row in Airtable." Use Slack mrkdwn formatting.
This is a deterministic pipeline with no judgement calls, so a code workflow is the right shape. Surface base id, table id, the field names (Job Title, Location, Suggested Salary Band, Benchmark Confidence), and the Slack channel as configuration so a different team can repoint it without editing code.
Additional information
What does this prompt do?
- Watches your hiring requisitions table in Airtable for new roles as they are added.
- Pulls a current salary estimate for the role's title and location, including a low, median, and high figure plus a confidence rating.
- Writes a clean Suggested Salary Band and Benchmark Confidence back onto the same record so the hiring manager sees it inline.
- Posts a short heads-up in your recruiting Slack channel so someone can review and approve the band before the posting goes live.
What do I need to use this?
- An Airtable base with an Open Reqs table that has at least a Job Title field and a Location field, plus empty Suggested Salary Band and Benchmark Confidence fields to write into.
- A salary data account so we can look up benchmark pay by title and city.
- A Slack workspace and the name of the channel where your recruiting team wants the notification to land.
How can I customize it?
- Point it at a different Airtable table or rename the fields it reads from and writes to (for example, swap Location for City or Office).
- Change the Slack channel, the message wording, or who gets tagged when a fresh band is ready for review.
- Tweak how the band is formatted in the record, for example showing only the median, or including the data source and confidence level.
Frequently asked questions
Why do I need this if I already have a salary philosophy doc?
Does this overwrite a band I already set manually?
What if the salary lookup has low confidence for a niche role?
Can I send the notification somewhere other than Slack?
Does this work with my existing Airtable hiring tracker?
Stop shipping job postings without a salary range.
Connect Airtable, the salary data source, and Slack once, and every new requisition gets a fresh benchmark band the moment it lands.