Skip to content
Back to Resources
How-To

How to Automate Performance Review Preparation

Skopx Team
July 27, 2026
10 min read

Review season stalls for one reason: the evidence is scattered. A manager with eight reports has to reconstruct nine months of work from Jira, GitHub, Salesforce, Zendesk, shared docs, and half-remembered Slack threads, then write it all up in a week. When you automate performance review prep, you stop asking managers to be archaeologists. Assembling the evidence becomes a scheduled job that runs before the cycle opens, and the manager's time goes where it belongs: judgment about what the evidence means, what the rating should be, and what the person should do next. This guide builds that workflow in Skopx, in plain English, with the sensitive parts deliberately left to humans.

What performance review prep actually costs teams

The cost is rarely visible on a calendar, because it hides inside "writing time" that managers do at night. Break it apart and the pattern is consistent across companies:

Prep taskWho does it todayWhy it drags
Rebuilding the work historyManager, per reportRequires visiting five or six tools and filtering by date range and assignee
Chasing peer feedbackManager or HR partnerManual reminders, no single view of who has responded
Collecting goal progressManagerGoals live in a doc or an OKR tool that nobody updated in month two
Reconciling self assessmentsHR partnerArrives in a form, has to be matched to the right template
Formatting the packManagerEvery manager builds a slightly different document
Calibration prepHR partnerPacks are inconsistent, so calibration debates are about missing data rather than performance

None of that is judgment work. It is retrieval, formatting, and reminding. It is also the part that expands to fill whatever time exists, which is why review cycles slip and why the last few packs are always the thinnest.

The second cost is quieter and worse: recency bias. When a manager reconstructs a year from memory in three hours, the last six weeks dominate. A workflow that pulls the whole period evenly, from the actual systems of record, is not just faster. It produces a fairer starting document.

The workflow design

The workflow has one job: produce a factual, sourced evidence pack per person, before the manager opens the review form. It does not rate. It does not compare people. It does not decide anything.

A basic version runs on a weekly schedule during the prep window, reads the review roster, pulls work signals from the tools where work actually happens, hands the raw material to an AI step for structuring, writes a document, and tells the manager it is ready.

Basic review prep pack

Weekly Monday 07:00

Read review roster

Pull closed tickets

Pull merged PRs

Draft evidence summary

Create draft doc

Notify manager

A weekly schedule assembles each manager's evidence pack from the tools where work already lives.

Two design decisions matter more than the tool choices.

First, scope each run to one manager's team, not the whole company. Skopx workflows are acyclic, so there is no loop that walks a list and creates one document per row. One run produces one document with a section per report, which is what managers want anyway. If you need a single person's pack on demand, build a second version on a webhook trigger and pass the employee email in the payload.

Second, pull signals that describe contribution, not activity volume. Counting tickets rewards whoever files the most tickets. The pack should carry titles, links, dates, and outcomes so the manager can read the work, not a leaderboard.

Signal sourceWhat it contributesSection of the pack
Jira or LinearShipped scope, project names, datesDelivered
GitHub or GitLabMerged pull requests, reviews given to othersDelivered, Collaboration
Salesforce or HubSpotClosed opportunities, accounts ownedDelivered
Zendesk or IntercomResolved conversations, escalations handledDelivered
Google Docs or NotionSpecs, runbooks, docs authoredImpact beyond tickets
Slack recognition channelPeer praise with contextCollaboration
Goal or OKR toolStated goals and current stateGoals

Skopx connects to nearly 1,000 business tools, so the constraint is almost never whether a source can be reached. The constraint is deciding which sources genuinely represent the role. A designer, a program manager, and a backend engineer should not be measured through the same three integrations.

What to automate versus what stays human

Skopx has no human approval step, and performance reviews are exactly the case where that limitation turns out to be the correct design. A workflow that could write into an HRIS, publish a rating, or send feedback to an employee would be a workflow one bad prompt away from a serious incident.

So the rule is simple. The workflow prepares and notifies. A person reads, decides, and submits.

Automate: gathering work evidence across tools, normalizing date ranges, pulling self assessment and peer feedback responses, listing who has not responded yet, structuring raw material into a consistent template, creating the draft document, and telling the manager it is ready.

Keep human: the rating, the promotion recommendation, compensation, anything about performance improvement plans, the written narrative that the employee will read, and every word of the conversation itself.

Concretely, the AI step should be instructed to describe and to flag gaps, never to score. A useful line in the prompt is that it must not suggest a rating, must not compare people to each other, and must mark anything it cannot evidence as "needs manager input" rather than filling the space with plausible language. An evidence pack that honestly says "no evidence found for the mentoring goal" is far more valuable than one that invents a sentence about mentoring.

The same boundary shows up in other people workflows. When you automate employee onboarding across every tool, the account creation is safe to automate and the offer terms are not. When you automate offboarding and access removal, revocation is automatable and the decision to trigger it is not.

How to automate performance review prep in Skopx, step by step

You build this by describing it. There is no canvas to drag nodes onto. Open skopx.com/workflows, start a new workflow, and type what you want in a chat message.

1. Connect the sources first. Connect the roster source (a Google Sheet or your HRIS), the work tools for the team, the document tool, and the notification channel. A workflow can only act on tools that are already connected.

2. Set up the roster. A sheet with columns for employee name, employee email, manager email, cycle start date, and status is enough to start. It gives you a single place to control who is in the cycle without editing the workflow.

3. Describe the workflow. Paste something close to this:

Every Monday at 7:00 in America/New_York, read the rows in the "Review Cycle" Google Sheet where status is Active and manager is manager@company.com, pull the Jira issues those people closed since the cycle start date, the GitHub pull requests they merged in the same period, and the Zendesk tickets they resolved, send all of it to an AI step that writes one section per person with the headings Delivered, Collaboration, Goals, and Gaps, citing links and dates and never suggesting a rating, create a single Google Doc named "Review prep, week of {{ trigger.timestamp }}" in the Review Prep folder, and send the manager a Slack DM with the document link.

4. Check the generated steps. Skopx turns that sentence into a schedule trigger and a sequence of integration and AI steps. Read them. Confirm the date filters use the cycle start date from the roster rather than a hardcoded date, and that the AI step receives the real outputs from the earlier steps through expressions like {{ steps.jira_closed.output.issues }} and {{ steps.roster.output.rows }}.

5. Add the guardrail in the AI prompt. Ask Skopx to update the AI step so its instructions explicitly forbid ratings, comparisons, and speculation, and require a "needs manager input" line wherever evidence is missing.

6. Run it manually once. The manual trigger runs the same workflow immediately. Use a test roster row for yourself before pointing it at a real team.

7. Duplicate per manager, or switch to a webhook. Since there are no loops, either duplicate the workflow per manager with a different filter value and Slack recipient, or build one webhook version that takes an employee email and cycle dates in the payload so HR can fire a single pack on request.

Keep an eye on the step count. The ceiling is 20 steps per workflow, and a pack that pulls from four tools, transforms fields, drafts, writes, and notifies fits comfortably. If you are approaching the limit, split it: one workflow gathers and writes a raw evidence document, a second reads that document and formats the manager pack.

The advanced version: coverage checks and two outcomes

The basic pack works until you hit the person whose contribution does not appear in any ticketing system. The advanced version measures its own evidence coverage before it hands anything over, then branches.

Coverage-aware review prep

completethin

Daily 07:00

Read cycle roster

Gather work signals

Score evidence coverage

Enough evidence?

Build review pack

Request missing input

Notify manager

An if/else step routes thin evidence to a request for input instead of shipping a hollow pack.

The AI step returns a coverage field, for example a count of evidence items per person or a simple label. An if/else condition then checks it, using something like greater_than on the item count or is_empty on the evidence list. The complete branch builds the pack. The thin branch emails the employee and the manager asking for three to five accomplishments with links, and the manager is notified either way so nothing goes silently missing.

This is the honest version of automation. The workflow does not pretend it found evidence it did not find. It tells a human what is missing and asks for it.

How to tell it is working

Every run in Skopx is inspectable. Each step records its real output, how long it took, and the exact error if it failed, so verification is reading, not guessing.

Check these in the first two weeks:

  • Run history is clean. Open the latest runs and confirm each step returned data. A step that "succeeded" with an empty array usually means a wrong date filter or a wrong project key, not an unproductive employee.
  • Date windows are right. Spot check one person: does the pulled work start at the cycle start date and end today? Off-by-a-quarter errors are the most common failure here.
  • Attribution is right. Confirm the Jira assignee and GitHub username actually map to the person in the roster. Mismatched identities produce confidently wrong packs.
  • The gaps section is populated. If the Gaps heading is always empty, the AI step is filling space instead of flagging holes. Tighten the prompt.
  • Managers edit rather than rewrite. The real success signal is qualitative. If managers are pasting the pack into the review form and editing it, the workflow is doing its job. If they are ignoring it, ask which sources are missing.

One scheduling note worth planning around: if a scheduled run is missed beyond a two hour grace window, Skopx records it as failed rather than firing it late. For a weekly prep job that is the safer behavior, because a pack that arrives three days after calibration is worse than an alert telling you it never ran. Watch for failed runs during the cycle and rerun manually.

Common mistakes when you automate performance review prep

Letting AI suggest ratings. It is the single fastest way to lose manager trust and create a legal problem. Evidence in, judgment human.

Measuring volume instead of contribution. Ticket counts and pull request counts punish reviewers, mentors, and anyone who works on hard problems slowly. Pull titles and outcomes, not just totals.

Using one integration set for every role. Build role variants. A support lead's pack should be weighted toward Zendesk and escalation handling, not merged pull requests.

Hardcoding dates. Put the cycle start date in the roster and reference it with an expression. Otherwise every cycle requires editing the workflow.

Forgetting the timezone. Schedules run in the IANA timezone you choose. A distributed team with one manager in Berlin and one in Denver needs the packs to land on their Monday morning, not yours.

Giving the workflow write access to the HRIS. It never needs it. Read the roster, write to a document, notify a person. Anything that touches the official record stays a human action.

Including compensation or personal data in the pack. Evidence packs get shared, pasted, and forwarded. Keep pay, health, and disciplinary information out entirely.

Building one giant workflow. Twenty steps is the ceiling and readability drops long before that. Split gathering from formatting, and formatting from distribution.

Assuming AI steps run without a key. AI steps run on your own provider key, billed to you with zero markup. If no key is set on the account, those steps will not run, and the pack will arrive as raw data with no structure.

Frequently asked questions

Can Skopx write the performance review for me?

No, and it should not. The workflow assembles sourced evidence and structures it into a consistent template. The narrative the employee reads, the rating, and every decision attached to them stay with the manager. Skopx has no human approval step, so anything sensitive is prepared and routed to a person rather than executed by the workflow.

What about employees whose work does not live in tickets?

Use the coverage branch. When the evidence gathered falls below your threshold, the workflow emails the employee and the manager asking for accomplishments with links, instead of generating a hollow pack. You can also add document tools and recognition channels as sources, which usually captures strategy, design, and program work that ticketing systems miss.

How do I handle a whole company, given there are no loops?

Scope each workflow to one manager's team and duplicate it, or build a webhook version that takes one employee and cycle window in the payload so HR can trigger packs individually. One run produces one document containing a section per report, which is the format managers actually want.

What does this cost to run?

Skopx is $5 per month for Solo, $16 per seat per month for Team, and $5,000 per month for Enterprise. Every plan bills from day one. AI steps run on your own provider key with zero markup, so the model usage is billed by your provider directly, not marked up by us.

Can the same pattern handle other people processes?

Yes. The gather, structure, notify shape is the same one behind automating interview scheduling and candidate updates and automating employee onboarding across every tool. Build one, and the second takes an afternoon.

Start with a single manager and a single cycle. Describe it at skopx.com/workflows, run it manually against your own roster row, read the step outputs, and only then point it at a real team.

Share this article

Skopx Team

The Skopx engineering and product team

Related Articles

Stay Updated

Get the latest insights on AI-powered code intelligence delivered to your inbox.