peopleanalyst

Platform · Building · new here

Deterministic counterfactual recommendations (US11836633B2 design-around)

Actionable-explainability layer ON TOP of the JobFrame matchers: given a candidate FEATURE VECTOR + per-feature ATTRIBUTIONS (SHAP/anchor-style, supplied or derived by a transparent deterministic attributor) + a current/target score + declared CONSTRAINTS (immutable features, [min,max] ranges, step granularity), compute the MINIMAL feasible feature edits that raise the predicted outcome to the target -- "what would make this candidate rank higher". Output is edits to the REAL candidate feature vector (from->to->delta + per-change score contribution + rationale), never a synthesized profile; immutable features are never proposed for change; sparsity-budgeted (maxChanges); honest already-met + infeasible (reasoned, no partial answer). Pure + deterministic, no external model / no API key. IP-clean design-around of in-force US11836633B2 (which GENERATES counterfactual candidate profiles with a GAN -- adversarial generator/discriminator synthesizing fictional higher-ranking profiles): the mechanism here is deterministic feature attribution + constrained search over the declared feasible region -- NO GAN, no generator, no discriminator, no sampling, no learned synthesis. COMPLEMENT (not a duplicate) to the two-sided matcher / semantic-rank / trajectory-match: those give the score + gaps, this gives the minimal change set to clear a threshold.

Cluster
Platform
Type
algo
Status
Building
Used by
people-analytics-toolbox, performix

Maturity evidence

Functioning
core/counterfactual-recs.ts (recommendCounterfactual + deriveAttributions: constrained greedy minimal-change search over the declared feasible region, immutable-feature guard, step-snapping, sparsity budget, honest already-met/infeasible) + contracts/counterfactual-recs.ts (Zod) + REST (POST /api/spokes/job-family-agent/counterfactual-recs, public IP-rate-limited) + MCP (job-family-agent.counterfactual-recs) wired from one contract; 7 passing tests (tsx --test src/spokes/job-family-agent/tests/counterfactual-recs.test.ts) incl. below-threshold->minimal change reaching target, immutable-feature-respected, already-above->no change, honest infeasibility, determinism (byte-identical reruns), no-generative-step assertion (edits to real features only), derived-attribution fallback; changed-files typecheck clean, check:spokes (0 required gaps) + check:standards green.
Valuable
The actionable layer the matchers lack -- turns a match score + gap into the minimal feasible next steps to clear a threshold (candidate guidance + hiring-manager what-if). No live consumer wiring yet, and IN-FORCE patent -- pending legal review on the non-infringement path before any commercial use.
Understood
spoke README section (claim-vs-design-around prose, synthesis decision: complements .match/.semantic-rank/.trajectory-match rather than duplicating, mermaid of feature vector + attributions + target + constraints -> constrained minimal-change search -> counterfactual recommendations + honest empty) + CHANGELOG 1.21.0.
Integrated
REST + MCP from one declaration on branch feat/counterfactual-recs-us11836633b2 (PR open, NOT merged); MCP tool wired in tools.ts/tool-descriptions.ts/handlers.ts/register.ts within the live job-family-agent spoke. No live consumer wiring yet.

How to use it

REST
/api/spokes/job-family-agent/counterfactual-recs
MCP
job-family-agent.counterfactual-recs
Data
src/spokes/job-family-agent/core/counterfactual-recs.ts

Other Platform capabilities

← Every platform capability

Capability detail sourced from the People Analytics Toolbox capability feed (source of truth), snapshot retrieved 2026-07-23.