peopleanalyst

Developers · Agents

Call PeopleAnalyst from your agent

Two layers. The free feeds describe our products, arguments, and evidence — so an AI assistant can find and cite us accurately. The paid data API answers compensation and compliance questions with effective-dated, citation-backed data your product can bill against.

Free feeds — discoverability

CORS-open, no API key. Spec at /openapi.json. Or add the MCP server below and your agent gets these as tools.

GET/api/marketing/product-description

Versioned, CORS-open descriptions of every product in the portfolio — name, category, oneLiner, problemFrames, capabilities, beachheads, whenNotToUse (honest disqualifiers), canonicalUrls, relatedProducts. Assembled from canon. Pass ?product to filter.

Params: product

https://peopleanalyst.com/api/marketing/product-description?product=performix

GET/api/marketing/registry

Cross-site marketing-asset cards built from the portfolio's brandscripts and proofs, plus the persona set. ?product filters to one product; ?status filters by lifecycle.

Params: product · status

https://peopleanalyst.com/api/marketing/registry?product=performix

GET/api/brandscripts

The persona-level argument layer (SB7-shaped): the major problem solved for a persona and what the solution looks like. ?product / ?persona filter; ?status opts into drafts.

Params: product · persona · status

https://peopleanalyst.com/api/brandscripts?product=performix

GET/api/stories

Complete data stories: the SB7 argument, the acts and beats that carry it, the branches it forks down, the decision it produces, and the data required to test it. Candidates only — nothing here asserts a story is true of any organisation; that is decided against data. ?persona / ?problem / ?metric / ?slug filter.

Params: persona · problem · metric · slug

https://peopleanalyst.com/api/stories?persona=chro-cpo

GET/api/scenes

The cards a story is told with. Each declares truth conditions the data can falsify, so a claim survives on evidence rather than assertion. Persona relevance is derived from focus (a stated heuristic). Drafts excluded unless ?status=all.

Params: persona · focus · form · shape · tier · archetype · id · status

https://peopleanalyst.com/api/scenes?persona=chro-cpo&focus=regretted-loss

GET/api/forms

7 data shapes and the 33 canonical forms they resolve to. The form is why one engine reads compensation, attrition, funnels and survey data without a per-domain rewrite: the domain is in the metric tag, the structure is here. 'oftenMeans' is a labelled heuristic, never a conclusion.

Params: shape

https://peopleanalyst.com/api/forms?shape=series

GET/api/warrant

For a construct pair mined from the book corpus: how many distinct works discuss the link, and which ones, with each work's stated rationale. ⚠ This is DISCOURSE, not evidence — book frequency is confounded by publication incentives, fashion and citation cascades, so it is reported as 'discussed in N works' and never as corroboration, confidence, or a score. Single-work claims are returned, labelled as such; corroboration is not a gate. No query returns corpus-level stats including a counting discrepancy we state openly.

Params: from · to · construct · focus

https://peopleanalyst.com/api/warrant?from=employee_engagement&to=employee_turnover

GET/api/library/ids

Batch export of library_id rows (id, title, author, year, property tags) for the works that home on peopleanalyst.com. Ids are content-addressed (SHA-256 of normalized title|authors|year) and stable across repos, so a consumer can join to this catalog without string matching. Scoped to works homed here — titles whose canonical home is another property are excluded, matching /library.

Params: tag · limit

https://peopleanalyst.com/api/library/ids?tag=principia&limit=50

POST/api/segmentation

Deterministic segmentation over caller-supplied numeric vectors: cluster subjects, discover roles from behaviour + relationship edges, detect emergent roles, or match against exemplars. Structured non-biometric signals only — no audio, video, or affect inference. The caller supplies all data; nothing is retained. Capped at 5,000 rows per request.

Params: mode

https://peopleanalyst.com/api/segmentation?mode=segment

POST/api/diagnose

The acquisition planner. Given which data-stories are still candidates, returns the single most efficient next question, the full ranked list, and the minimum set of asks that makes every live story testable — split into what can be sent today versus what needs legal review. Ranked by information-per-friction: how evenly an answer splits the live hypothesis set (computed by entropy from the discrimination matrix, never hand-asserted) divided by a cost in which GOVERNANCE outweighs effort. Absent priors all live stories weigh equally, so results reflect structure, not likelihood. GET accepts ?live=, ?have=, ?lack= as comma lists.

Params: live · have · lack

https://peopleanalyst.com/api/diagnose?live=quiet-exodus,comp-review&lack=pay_and_levels

GET/api/insight-cards

Serves a named pitch as an ordered InsightCard[] (the cross-site insight-player contract). ?pitch selects the pitch; ?awareness optionally reshapes the sequence for the buyer's awareness state.

Params: pitch (required) · awareness

https://peopleanalyst.com/api/insight-cards?pitch=performix-binding-constraint

GET/api/situations

The proof layer paired with brandscripts: concrete situations a product resolves. ?product filters; ?status opts into drafts.

Params: product · status

https://peopleanalyst.com/api/situations?product=performix

GET/api/tools

Machine-readable catalog of every corpus-grounded acting tool — name, category, what it does, inputs/outputs, concrete use cases, the profile URL, and how to run it (auth-gated REST + MCP). Discovery is open (find + cite the tools); execution is API-key gated. ?category filters by family; ?slug returns one tool.

Params: category · slug

https://peopleanalyst.com/api/tools?category=Marketing

MCP server

Expose the free feeds to any MCP client as tools (list_peopleanalyst_feeds, get_product_description, …). Add to your MCP config:

{
  "mcpServers": {
    "peopleanalyst": {
      "command": "npx",
      "args": ["-y", "tsx", "scripts/mcp/discovery.ts"]
    }
  }
}

Paid data API

Live

Posted, metered, volume-scaled — no quotes. You pay for decisions (lookups, rows, queries), and the free tier proves value before you ever need a card.

OpenAPI 3.1 spec at https://compensationtoolbox.com/api/v1/openapi.json. Base URL: https://compensationtoolbox.com/api/v1.

Free / Discoverability

$0 forever

  • ·All marketing feeds (product-description, registry, brandscripts, insight-cards, situations)
  • ·OpenAPI at /openapi.json + the discovery MCP server
  • ·1,000 minimum-wage lookups / month
  • ·CORS-open, no API key
Read the docs

Maintained Compliance Feed

$79/mo or $790/yr

  • ·The full minimum-wage dataset over the API, kept current
  • ·Effective-dated updates as jurisdictions change (the recurring value)
  • ·Payroll-ready exports (ADP / UKG / Paychex shapes)
  • ·API key + entitlement
Subscribe

Developer

$99/mo per project

  • ·API key + 25,000 included calls / month across all endpoints, then metered rates
  • ·The maintained compliance feed included
  • ·Bulk roster evaluation + adjusted benchmark queries at metered rates
  • ·Usage dashboard + the published OpenAPI / MCP contract
Subscribe — $99/mo

Enterprise / Operational

$75K–$150K/yr posted bands by size

  • ·Unlimited operational API (bulk roster, dataset, benchmarks) — no per-call metering
  • ·Included in the all-inclusive data-tier subscription (every dataset, pack, guide)
  • ·12 months free + founding rate-lock (see /pricing)
  • ·SLA + support; routes into AnyComp concierge
See enterprise pricing

Pay-as-you-go rates

Minimum-wage lookup$0.005 / lookup

First 1,000 lookups every month are free (the agent/SEO magnet).

Volume: $0.005 each ≤ 100k/mo · $0.002 each above 100k/mo

Single jurisdiction, effective-dated, citation-backed.

Roster compliance evaluation$0.05 / employee-row

Volume: $0.05 ≤ 10k rows/mo · $0.03 at 10k–100k/mo · $0.01 above 100k/mo

Per-row compliance + the binding rule + citation. The bulk operational call.

Adjusted benchmark query (G2G)$3 / query

Volume: $3 each ≤ 100/mo · $2 each above 100/mo

Multivariate-adjusted index (not a raw median), with adjustment provenance.

Full minimum-wage dataset$258 one-time snapshot

All jurisdictions × variants (CSV/JSON). Or subscribe to the maintained feed below.

Job-title resolve (JobFrame)$0.01 / resolve

First 1,000 resolves every month are free.

Volume: $0.01 each

Free-text job title → the canonical JobFrame role + SOC pointer.

Job match (pairwise / neighbors)$0.05 / match

Volume: $0.05 each

Pairwise distance + band, or nearest neighbors, over the frozen coordinate editions.

Bulk roster → JobFrame map$0.02 / employee-row

Volume: $0.02 per row (max 5,000 rows per call)

Whole-roster mapping onto the frame — the operational bulk call.

Endpoints

Served from the compensation toolbox. Minimum-wage lookup is free up to 1,000/mo per IP (no key); other calls require an API key that carries your entitlement. Full contract: PAID-API-CONTRACT.md.

GET/api/v1/minimum-wage

Single-jurisdiction minimum wage (free tier; metered above the free ceiling)

https://compensationtoolbox.com/api/v1/minimum-wage

Try it →
GET/api/v1/minimum-wage/dataset

Full minimum-wage dataset (all jurisdictions × variants) — entitlement-gated

https://compensationtoolbox.com/api/v1/minimum-wage/dataset

POST/api/v1/roster/evaluate

Bulk roster minimum-wage compliance evaluation (metered per employee-row)

https://compensationtoolbox.com/api/v1/roster/evaluate

GET/api/v1/benchmark

Adjusted compensation benchmark index (G2G) — metered per query

https://compensationtoolbox.com/api/v1/benchmark