Compensation review board for your CharlieHR pay round

By General Input

See every team member's salary, time since their last raise, and pay band position in one place, then draft and log your raise decisions.

Integrations

  • CharlieHR
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • HR & People
  • Finance

Build me a compensation review board that I open each time we run a pay round. It reads from CharlieHR and gives me one screen where I can see everyone's pay, spot outliers, draft proposed raises, and then get the round logged, exported, and communicated.

The main screen is a roster table listing every active team member with their name, job title, team, office, current salary, the date that salary last changed, and how many months it has been since their last raise. Build the roster from CharlieHR's List Team Members, current pay and effective dates from List Salaries, and resolve names for team and office using List Teams and List Offices. Calculate months since last raise from the effective date of the most recent salary record. Let me filter the table by team and by office, and let me sort by months since last raise so the people who have waited longest rise to the top.

Alongside the table, show a per team pay spread with the lowest, median, and highest salary for each team so outliers are obvious at a glance. When I filter to a single team or office, the spread recalculates for that selection. Visually flag anyone whose salary sits well outside the range for their team.

Clicking a person opens their detail view showing their full salary history from List Team Member Salaries, newest first, with each amount, its effective date, and the percentage change from the previous figure. Include a compact timeline so I can see the shape of their pay progression over time.

Optionally I can point the app at a Google Sheet of pay bands per role and level. Let me enter a spreadsheet ID and range in the app's settings, read it with Google Sheets Get Values, and expect columns for role, level, minimum, midpoint, and maximum. When bands are configured, flag each person as below band, within band, or above band, and show where they sit relative to the midpoint of their range. When no sheet is configured, hide the band column entirely rather than rendering empty cells.

For each person I can draft a proposed new salary with a rationale, in a form on their detail view. Persist proposals in the app's own storage, keyed by the pay round, so I can work through a round across several sittings and come back to a half finished draft. Next to each proposal show the increase amount, the increase percentage, and the resulting band position, plus a running total of what the whole round would cost.

Three actions close out the round. First, log the decision back to CharlieHR as a note on the person's record using Create Team Member Note, capturing the proposed figure, the rationale, and the date. Second, export the whole proposed round to a Google Sheet for finance sign off using Append Values, one row per person with current salary, proposed salary, increase, team, office, band position, and rationale. Third, send each manager a Slack message summarizing their team's proposals using Slack Bot's Send a Message, with the destination channel or user chosen in the app. Confirm with me before any of these run, and track which people have already been noted, exported, or messaged so nothing gets double posted.

Two CharlieHR rules are important. CharlieHR is read only for salaries, so the app must never claim to write a new salary back to CharlieHR. It proposes, logs a note, and exports, and the copy in the app should make clear that the actual pay change still has to be made by a person inside CharlieHR. Salary data is also restricted to Super Admin credentials, so if salary fields come back empty or partial, show a clear explanation that the connected CharlieHR key lacks Super Admin access to salary data, rather than rendering a blank table.

CharlieHR list endpoints return at most 25 records per page and paginate with a next page link in the response metadata, so every handler must page through until results run out rather than assuming a single response holds the whole company. Keep the design calm and dense, since this is a serious internal tool handling sensitive data, and put a quiet note on the main screen reminding whoever opens it that only Super Admins can see salary figures.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board