EntityMap v1.0
This is the EntityMap of 5xer.com — a structured,
entity-first index of the knowledge this site publishes: which entities it covers, how they relate,
and where the evidence is. Where the sitemap lists what pages exist,
this file says what they are about. The machine-readable primary file is
entitymap.json; this page is its human- and
crawler-readable rendering. Published by Fivexer.
The company behind the Fivexer Cloud routing platform and the open-source assignment-user-matcher engine. Fivexer is an Estonian company (Testreel OÜ); the hosted cloud runs in the EU.
“Fivexer assigns work and builds rosters for support desks, field crews and shift teams — from your rules for skills, capacity, priority and fairness. Your dispatcher stops holding the board in their head; your auditor gets a record of who was considered and why.”
Fivexer — Work Routing and Shift Rostering — published by Fivexer
“Fivexer is an Estonian company. The cloud runs in Frankfurt, the standard DPA is published rather than negotiated, this site sets no cookies — and the open-source engine self-hosts, which removes the processor question altogether.”
GDPR-Compliant Task Routing, Hosted in the EU — Fivexer — published by Fivexer
The open-source (MIT), Redis-backed matching engine that powers Fivexer. It matches a pool of workers to a high volume of tasks using tags, weighted skills, priority, fairness modes and hard vetoes, and records a per-decision audit trail.
“The self-hosted engine (assignment-user-matcher) is the open-source (MIT) Redis-backed matching engine that powers Fivexer. It is the right choice when you want to run routing entirely on your own infrastructure.”
Fivexer Self-Hosted Engine — published by Fivexer
“Unlike queue-based routers, there are no static queues — matching is declarative and reruns every time something changes.”
How Fivexer Matching Works — published by Fivexer
The hosted task-routing platform built on assignment-user-matcher: tasks, workers, decision traces, quotas and signed webhooks over a /v1 REST API, with SDKs, an MCP server and an operator console. EU-hosted, with a free tier.
“Routing data stays in the EU. One region — DigitalOcean Frankfurt, Germany. Not a "primarily EU" arrangement. Every subprocessor is named on /security, with what reaches each one.”
Fivexer — Work Routing and Shift Rostering — published by Fivexer
“Fivexer Cloud pricing: free up to 10,000 matched tasks/mo, Pro €99/mo for 50,000, Scale €399/mo for 250,000. Enterprise custom. Launch prices locked 12 months.”
Fivexer Cloud Pricing — Simple, Task-Based Routing Plans — published by Fivexer
Matching each unit of work to the worker whose tags and weighted skills satisfy it — continuously, and without static queues. Fivexer's whole product is an implementation of this concept.
“Fivexer continuously matches tasks to workers based on tags, skills, priority, and business rules. Unlike queue-based routers, there are no static queues — matching is declarative and reruns every time something changes.”
How Fivexer Matching Works — published by Fivexer
“Fivexer — skill-based routing, hosted in the EU or self-hosted on the open-source (MIT) assignment-user-matcher engine.”
Fivexer — Work Routing and Shift Rostering — published by Fivexer
The per-worker, per-tag weights (routingWeights) the engine routes on. Only a
positive weight makes a worker eligible for a matching task; a weight of 0 is a hard veto that
no score, fairness mode or learning layer can override.
“A rule you did not write cannot be broken, and a veto you did write cannot be learned around — the learning layer only re-ranks candidates who already passed every hard rule.”
Fivexer — Work Routing and Shift Rostering — published by Fivexer
“Hard vetoes — rules you define can forbid a match regardless of score (e.g., "agent_1 cannot take billing tasks on Fridays").”
How Fivexer Matching Works — published by Fivexer
Fivexer's explainable match record: who was considered for a task, who won, and why — captured during the matching pass, including candidates ruled out and the reason for each exclusion.
“Decision — the platform's explainable match record: who was considered, who won, and why.”
How Fivexer Matching Works — published by Fivexer
“To see the exact reasoning for any task, call GET /v1/decisions?taskId=...”
How Fivexer Matching Works — published by Fivexer
Fivexer's selectable arbitration policy for the case where several workers are eligible for the same task: first-come, best-match, balanced or spread-work. The choice is per-workspace and switchable at runtime.
“Fairness mode — choose whether to prefer first-come, best-match, balanced load, or spread-work.”
How Fivexer Matching Works — published by Fivexer
Building the timetable itself: which employee works which shift, over a period, under working-time law.
In Fivexer this is a companion engine to matching — a pure, Redis-free constraint solver
(solveSchedule) in the open-source library, and the roster planner in Fivexer Cloud.
Matching answers who takes this task now; scheduling answers who is on shift next month.
“A companion engine for rostering: generating fair, constraint-compliant timetables that assign employees to shifts over a period. Unlike the matcher, this module is pure and Redis-free — solveSchedule(input) is a synchronous in-process function; wrap it in your own queue if you need one.”
assignment-user-matcher — Shift Scheduling (scheduling module) — published by Fivexer
“Infeasibility is never silent: understaffed periods return a best-effort partial schedule with status: partial, an unfilledSlots count, and per-slot violations; slots with zero eligible employees are reported before the search runs. Violations carry actual, required, unit and citation.”
assignment-user-matcher — Shift Scheduling (scheduling module) — published by Fivexer
“Scale (500 employees × 31 days × 3 shifts/day, full EU rule set): first feasible ~0.4s, converged within the time budget, compliance re-check ~0.1s, repair ~0.15s.”
assignment-user-matcher — Shift Scheduling (scheduling module) — published by Fivexer
The rules input of the scheduling engine: daily and weekly rest, rolling working-time
averages, overtime, night work, breaks, consecutive days, notice, qualifications, contract limits and
fairness. Fivexer ships the shapes these rules take and never a jurisdiction's numbers — every value is
supplied by the customer, and a rule left blank is simply not checked. Employee.rules
overrides the global set per person, which is how age classes, individual opt-outs and hazardous-work
status are expressed.
“The rules field is the labour-law layer. Every field is optional and every value is caller-supplied — the library ships the shapes EU working-time law takes, never a jurisdiction numbers, because those differ per member state, per sector and per collective agreement, and change without notice.”
assignment-user-matcher — Working-time rules — published by Fivexer
“Rules cover: daily rest (rolling window, reduction allowances, clock-band containment), weekly rest (two-level floor plus average), rolling working-time averages with absence neutralisation, overtime (ordinary-vs-overtime split, consent, per-day and per-window caps, time-off-in-lieu), duty-type volume quotas, night work (configurable band, per-shift cap, averaging, hazardous absolute cap, volume quotas, prohibited bands), in-shift breaks, consecutive days and nights, forbidden shift successions, minimum start interval, Sunday and holiday rules, minimum engagement, publication and change notice, availability and preferences, date-valid qualifications, group composition, statutory protections, contract limits, and fairness.”
assignment-user-matcher — Working-time rules — published by Fivexer
“Employee.personId aggregates several contracts onto one natural person, which rest and window rules require: overlap (no-overlap) and inter-assignment rest (min-rest, dailyRest) are judged on the person timeline — spanning sibling contracts and supplied history — so two contracts cannot double-book a person or dodge a rest floor at the period boundary.”
assignment-user-matcher — Working-time rules — published by Fivexer
One dated occurrence of a shift template, identified as <templateId>@<date> —
the unit everything in a roster refers to: assignments, violations, candidate rankings and the planning
grid a host renders. Overnight shifts roll into the next day explicitly, and duration is resolved on a
DST-correct wall clock rather than by epoch arithmetic.
“Every shift occurrence gets a unique shift-instance id (<templateId>@<date>), overnight shifts (endTime <= startTime) roll into the next day explicitly, and durations are resolved through a DST-correct clock — pass period.timeZone and a 22:00–06:00 shift is 7h on the spring transition and 9h on the autumn one, not 8h.”
assignment-user-matcher — Shift Scheduling (scheduling module) — published by Fivexer
“Working time is the span less unpaidBreakMinutes, scaled by any duty classification, so hour budgets see 8h15 for a 9h shift with a 45-minute break.”
assignment-user-matcher — Shift Scheduling (scheduling module) — published by Fivexer
“expandShiftInstances(input) returns the dated planning grid a host should render before anything is assigned — the same <templateId>@<date> ids every other call refers to. Use it so the grid ids never drift from the instances the solver will judge.”
assignment-user-matcher — Operational APIs — published by Fivexer
The sick-call path: repairSchedule re-plans a published roster around a disruption with
everything untouched pinned, so the result is a diff rather than a new roster, and returns a ranked list
of who can lawfully cover with each candidate compliance verdicts, marginal cost and rationale.
checkCompliance, explainCandidate and diagnoseInfeasibility share
the solver's constraint set — there is deliberately no second validation path.
“repairSchedule is the call-in path: everything untouched is pinned, so you get a diff rather than an unrecognisable new roster, plus a ranked list of who can lawfully cover, each with compliance verdicts, marginal cost and a rationale.”
assignment-user-matcher — Operational APIs — published by Fivexer
“checkCompliance also runs the solver ledger pass, so a hand-edited roster reports the same accrued obligations (compensatory rest, late-cancellation pay, protection fallbacks, time off in lieu) that solveSchedule would report for the same assignments — a human override can never validate as compliant but owing nothing.”
assignment-user-matcher — Operational APIs — published by Fivexer
Site data as a first-class roster input for firms running several locations: a sites
registry with coordinates and an asymmetric travel matrix, Employee.siteIds as a hard
allow-list, homeSiteId as a soft preference, and a hard travel-gap rule between consecutive
assignments at different sites. Cover suggestions measure nearby from the candidate's nearest same-day
assignment.
“When you run several sites in one city, site data makes the solver and the call-in suggestions location- aware. Travel-time resolution order: explicit matrix entry → haversine kilometres ÷ travelSpeedKmh → unknown. When minutes are unknown, suggestions still show distanceKm for host-side re-sorting.”
assignment-user-matcher — Multi-site rosters — published by Fivexer
“The site-travel-gap rule is a hard constraint: two consecutive assignments at different sites must leave at least the travel time between them. It reads the same person timeline as the rest rules, so it works across contracts (personId) and across the period boundary via history entries that carry siteId.”
assignment-user-matcher — Multi-site rosters — published by Fivexer
The deliberate limit on what may influence who is offered a shift. Fivexer's roster ranking uses
declared qualifications, contractual availability, legal limits, cost and fairness debt from realised
counts — never reliability scores, no-show prediction, acceptance history or learned per-worker
behaviour, and the scheduling module is not wired to the matcher's learning layer. That boundary is what
keeps a roster solver outside the EU AI Act's high-risk employment category, and
result.provenance asserts it.
“Ranking uses declared qualifications, contractual availability, legal limits, cost, and fairness debt computed from realised assignment counts. It never consumes reliability scores, no-show prediction, acceptance history or learned per-worker behaviour, and the module is not wired to the matcher learning layer.”
assignment-user-matcher — Compliance boundary — published by Fivexer
“Under AI Act Annex III point 4(b), allocating on individual behaviour or traits is high-risk, and the Art 6(3) narrow-task filter has an absolute carve-back for profiling — so that boundary is what keeps this a constraint solver. result.provenance records { engineVersion, seed, rulesHash, profilingFree } for audit.”
assignment-user-matcher — Compliance boundary — published by Fivexer
Fivexer's Model Context Protocol server: it exposes a Fivexer workspace to Claude Code, Claude Desktop, Cursor, and any other MCP client, so an AI agent can create and manage routed work directly.
“@fivexer/mcp exposes a Fivexer workspace to Claude Code, Claude Desktop, Cursor, and any other MCP client — 54 tools covering tasks, workers, skills, teams, decisions, learning, and stats.”
Fivexer MCP Server — Route Tasks from Claude and Cursor — published by Fivexer
“The server also publishes fivexer://concepts — a short mental model of the platform: the task lifecycle, how routingWeights and hard vetoes work, wildcard syntax, skill thresholds, and geo limits. Agents that read it before calling tools make far fewer wrong-shaped requests, because the rules that surprise people (weight 0 is a veto, wildcards are suffix-only) are stated up front.”
Fivexer MCP Server — Route Tasks from Claude and Cursor — published by Fivexer
Fivexer's vendor-neutral daemon that runs AI agents on your own machines as Fivexer workers: the matcher routes a task to the agent, the daemon picks it up, runs the local agent CLI, and reports the result back.
“@fivexer/agent runs AI agents on your own machines as Fivexer workers. Someone asks for an SEO audit, the matcher picks the worker that fits, and if that worker is an agent on your laptop, this daemon picks the task up, runs it, and reports back.”
Fivexer Agent Daemon — Run AI Agents as Workers — published by Fivexer
“The daemon spawns a command and reads a JSON file. That works with Claude Code, Codex, OpenCode, Cline, Goose, Aider — or a #!/bin/sh script, which is what the test suite runs against. Nothing in it depends on any vendor's protocol.”
Fivexer Agent Daemon — Run AI Agents as Workers — published by Fivexer
Fivexer's official Python SDK for the hosted /v1 API, published on PyPI as fivexer.
Supports Python 3.9+, ships sync and async clients for all three credential planes (workspace,
worker, supervisor), and is type-annotated end to end.
“The Python SDK (fivexer) supports Python 3.9+, ships sync and async clients for all three credential planes, and is type-annotated end to end (py.typed).”
Fivexer Python SDK — published by Fivexer
Fivexer's official Java SDK for the hosted /v1 API, published to Maven Central as
com.fivexer:fivexer-sdk (the Java package for imports is io.fivexer.sdk).
Targets Java 11 bytecode and works on the JVM and Android.
“The Java SDK (com.fivexer:fivexer-sdk) targets Java 11 bytecode and works on the JVM and Android.”
Fivexer Java SDK — published by Fivexer
Fivexer's official TypeScript SDK and the reference implementation for the hosted /v1 API,
published on npm as @fivexer/sdk. Zero runtime dependencies; runs anywhere with
fetch. Also exports verifyWebhookSignature for checking x-fivexer-signature headers.
“The TypeScript SDK (@fivexer/sdk) is the reference implementation for the /v1 API. It has zero runtime dependencies and runs anywhere with fetch.”
Fivexer TypeScript SDK — published by Fivexer
The EU cluster for DPO and procurement readers: whether anything crosses the border (/eu), where every store sits (/eu/data-residency), and the Schrems II transfer analysis with how to stop each transfer (/eu/data-transfers). Routing data stays in Frankfurt; the published DPA is already in force via the terms.
“9 of 11 classes of data never leave the EEA — including every byte of task content, routing state and decision trace. The 2 that do carry no task content, and both are named above with their safeguard.”
GDPR-Compliant Task Routing, Hosted in the EU — Fivexer — published by Fivexer
“Fivexer Cloud is the convenient answer. The open-source engine is the absolute one. They are the same routing engine — the difference is whose infrastructure it runs on.”
GDPR-Compliant Task Routing, Hosted in the EU — Fivexer — published by Fivexer
Fivexer's page for electrical, HVAC, roofing and plumbing subcontractors: certification gates are hard vetoes, so an uncertified engineer is never offered the job, and the crew gets a branded app with no app store, no passwords, and PIN sign-in on the phones they already have.
“The wrong engineer can't be sent to the job. Tickets, distance and who's actually free — settled before the job leaves the office. Your crew sees it in an app with your name on it.”
Software for Trade Subcontractors | Fivexer — published by Fivexer
“The version of this that works is not a reminder. It is that the job is never offered to him in the first place — not flagged, not warned about, not there. He sees the four jobs he can do and none of the ones he cannot.”
Software for Trade Subcontractors | Fivexer — published by Fivexer
Fivexer's page for commercial cleaning and facilities contractors: per-night site lists on each cleaner's own phone, a completion record per site, night and person, and one-move re-cover when someone doesn't show — proof of service without chasing photos and texts.
“Prove the building was cleaned. Without chasing anyone. Your cleaners get an app with your name on it. They see tonight's sites, mark off what's done, and you get the record. No app store, no company phones, no passwords.”
Software for Commercial Cleaning Firms | Fivexer — published by Fivexer
“What ends this conversation is a record: which site, which night, who, and what was on the list. Not a photo album nobody opens — a line you can read out.”
Software for Commercial Cleaning Firms | Fivexer — published by Fivexer
Fivexer's maintained migration guide for Twilio TaskRouter users: a concept map (Workspace, TaskQueue, Workflow, Reservation), before/after code in both SDKs, and a cutover playbook.
“Fivexer and Twilio TaskRouter solve the same problem — route tasks to the right worker — but with different models. This guide maps TaskRouter concepts to Fivexer, shows before/after code, and gives a safe cutover playbook.”
Migrate from Twilio TaskRouter to Fivexer — published by Fivexer
“Fivexer has no queue objects. Matching is tag/skill-based and continuous.”
Migrate from Twilio TaskRouter to Fivexer — published by Fivexer