hiring-a-players-and-sops — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited hiring-a-players-and-sops (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A gym stops scaling when the owner is the bottleneck. Run a role-outcome hiring funnel that finds people who produce results without supervision, and a four-step method that turns the owner's knowledge into SOPs someone else can run.
Pick the entry point: if the owner is drowning in operations, start at Step 5 (SOPs). If growth is capped by the owner's own selling or coaching hours, start at Step 1 (hiring).
A scaling single-location gym hires in this order:
Name which role you are hiring now and why it is next.
A task list attracts task-doers; an outcome attracts people who want to win. Fill the role-scorecard before posting anything:
Hiring is a funnel like lead generation — more candidates at the top means a better hire at the bottom.
See references/hiring-funnel for sourcing and screening detail.
An A-player earns more in salary but costs less per result — more output, less management, longer tenure. Run ab_player_cost.js, then decide on cost per result, not on salary.
Fill the sop-template for each process, starting with the highest-frequency or highest-risk ones (consult booking, front-desk open, new-member onboarding). See references/sop-method.
Self-contained Node script. Save as ab_player_cost.js and run with node ab_player_cost.js. No dependencies.
// A-player vs B-player cost per result. Edit inputs, then: node ab_player_cost.js
const inputs = {
aPlayerSalary: 70000,
aPlayerResults: 100, // results produced per year (e.g. members closed)
bPlayerSalary: 45000,
bPlayerResults: 45,
targetResults: 100, // results the gym needs per year
}
function compare(i) {
const aCostPerResult = i.aPlayerSalary / i.aPlayerResults
const bCostPerResult = i.bPlayerSalary / i.bPlayerResults
const cheaperPct = (bCostPerResult - aCostPerResult) / bCostPerResult
const aNeeded = i.targetResults / i.aPlayerResults
const bNeeded = i.targetResults / i.bPlayerResults
const aCost = aNeeded * i.aPlayerSalary
const bCost = bNeeded * i.bPlayerSalary
return { aCostPerResult, bCostPerResult, cheaperPct, aNeeded, bNeeded, aCost, bCost }
}
const r = compare(inputs)
const m = (n) => '$' + Math.round(n).toLocaleString('en-US')
console.log('A-player cost per result:', m(r.aCostPerResult))
console.log('B-player cost per result:', m(r.bCostPerResult))
console.log('A-player is', (r.cheaperPct * 100).toFixed(0) + '% cheaper per result')
console.log('To deliver', inputs.targetResults, 'results:')
console.log(' A-players needed:', r.aNeeded.toFixed(1), '=>', m(r.aCost))
console.log(' B-players needed:', r.bNeeded.toFixed(1), '=>', m(r.bCost))
console.log(' Savings with A-players:', m(r.bCost - r.aCost) + '/yr')Worked example output:
A-player cost per result: $700
B-player cost per result: $1,000
A-player is 30% cheaper per result
To deliver 100 results:
A-players needed: 1.0 => $70,000
B-players needed: 2.2 => $100,000
Savings with A-players: $30,000/yrRead it: the A-player earns more in salary yet costs $300 less per result and saves $30,000/yr to deliver the same output — before counting the management time and turnover the B-players add. Pay for output, not for the lowest sticker price.
ROLE SCORECARD. [FILL: role title]
MISSION (one line)
[FILL: what this role produces]
OUTCOMES (with numbers)
90 days: [FILL]
12 months: [FILL]
Ongoing: [FILL: e.g. book 60 consults/mo at 70% show]
COMPETENCIES (the few that predict success)
[FILL]
[FILL]
[FILL]
INTERVIEW + WORK SAMPLE
Screen question: [FILL]
Work sample: [FILL: the actual task, e.g. mock booking call]
Pass bar: [FILL: what good looks like]SOP. [FILL: process name]
PURPOSE
[FILL: why this process exists]
TRIGGER
[FILL: what starts it]
STEPS
1. [FILL]
2. [FILL]
3. [FILL]
DEFINITION OF DONE
[FILL: how you know it was done right]
OWNER
[FILL: role responsible]Sourcing: treat openings like a marketing campaign. Post where your candidate avatar looks, ask members and your network for referrals, and keep a pipeline warm even when you are not hiring. Volume at the top raises quality at the bottom.
Role-outcome definition: candidates rise to the bar you set. A task list ("teach classes, clean equipment") attracts people who want a job. An outcome ("members you coach hit their goals and renew at 80%") attracts people who want to win. Define and screen on the outcome.
Work-sample screening: interviews reward people who interview well. Work samples reward people who do the work well, which is what you are buying. Have a setter run a mock booking call, a coach run a real session with real members, a manager redesign a broken process. Watch how they actually perform.
A-player pay logic: A-players are not expensive, they are efficient. They produce more per dollar, need less oversight, and stay longer, so the fully loaded cost per result is lower even at a premium salary. Paying bottom of market usually costs more in output, management, and turnover. Run the calculator and decide on cost per result.
The four-step method turns tacit knowledge into a transferable process:
Worked example, consult-booking SOP:
Document the highest-frequency and highest-risk processes first. Each SOP you finish is one more thing the owner no longer has to do personally.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.