{
  "version": "1.0",
  "schema": "https://entitymap.org/spec/v1.0",
  "publisher": {
    "name": "Fivexer",
    "url": "https://5xer.com",
    "sameAs": "https://github.com/ViljarVoidula/assignment-user-matcher"
  },
  "generated": "2026-08-22T16:00:00Z",
  "profile": "core",
  "verificationStatus": "self-declared",
  "entities": [
    {
      "entityId": "e_org",
      "@type": "Organization",
      "name": "Fivexer",
      "alternateName": "5xer",
      "description": "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.",
      "audienceType": "general",
      "relations": [
        { "predicate": "OFFERS", "targetId": "e_engine", "targetName": "assignment-user-matcher" },
        { "predicate": "OFFERS", "targetId": "e_cloud", "targetName": "Fivexer Cloud" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_org_1",
          "text": "Fivexer routes tickets, cases and jobs to the right person automatically. Work out what routing by hand costs you, and what it takes to break even.",
          "sourceUrl": "https://5xer.com/",
          "pageTitle": "Fivexer — Skill-Based Routing to the Right Person",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        },
        {
          "chunkId": "c_org_2",
          "text": "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.",
          "sourceUrl": "https://5xer.com/eu/",
          "pageTitle": "GDPR-Compliant Task Routing, Hosted in the EU — Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.93,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_engine",
      "@type": "SoftwareProduct",
      "name": "assignment-user-matcher",
      "description": "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.",
      "canonicalLabel": "task routing engine",
      "sameAs": "https://github.com/ViljarVoidula/assignment-user-matcher",
      "maturityStatus": "established",
      "audienceType": "technical",
      "hasChunks": [
        {
          "chunkId": "c_engine_1",
          "text": "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.",
          "sourceUrl": "https://5xer.com/docs/engine/",
          "pageTitle": "Fivexer Self-Hosted Engine",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.98,
          "contentType": "definition"
        },
        {
          "chunkId": "c_engine_2",
          "text": "Unlike queue-based routers, there are no static queues — matching is declarative and reruns every time something changes.",
          "sourceUrl": "https://5xer.com/docs/concepts/how-matching-works/",
          "pageTitle": "How Fivexer Matching Works",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.9,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_cloud",
      "@type": "Service",
      "name": "Fivexer Cloud",
      "description": "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.",
      "audienceType": "general",
      "relations": [
        { "predicate": "DEPENDS_ON", "targetId": "e_engine", "targetName": "assignment-user-matcher" },
        { "predicate": "DESCRIBED_BY", "targetId": "e_migrate", "targetName": "Migrate from Twilio TaskRouter to Fivexer" },
        { "predicate": "DESCRIBED_BY", "targetId": "e_eu", "targetName": "EU Data Residency & GDPR at Fivexer" },
        { "predicate": "DESCRIBED_BY", "targetId": "e_trade", "targetName": "Fivexer for Trade Subcontractors" },
        { "predicate": "DESCRIBED_BY", "targetId": "e_clean", "targetName": "Fivexer for Commercial Cleaning Firms" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_cloud_1",
          "text": "Managed EU cloud, self-host the open-source (MIT) engine, or bring your own Redis — the locked-in platforms are hosted-only, at any price.",
          "sourceUrl": "https://5xer.com/",
          "pageTitle": "Fivexer — Skill-Based Routing to the Right Person",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.94,
          "contentType": "definition"
        },
        {
          "chunkId": "c_cloud_2",
          "text": "Fivexer Cloud pricing: free up to 10,000 matched tasks/mo, Pro €99/mo for 50,000, Scale €499/mo for 250,000. Enterprise custom. Launch prices locked 12 months.",
          "sourceUrl": "https://5xer.com/pricing/",
          "pageTitle": "Fivexer Cloud Pricing — Simple, Task-Based Routing Plans",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.92,
          "contentType": "statistic"
        }
      ]
    },
    {
      "entityId": "e_sbr",
      "@type": "Concept",
      "name": "Skill-Based Routing",
      "description": "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.",
      "maturityStatus": "established",
      "audienceType": "general",
      "relations": [
        { "predicate": "COVERS", "targetId": "e_weights", "targetName": "Routing Weights" },
        { "predicate": "COVERS", "targetId": "e_fairness", "targetName": "Fairness Modes" },
        { "predicate": "COVERS", "targetId": "e_traces", "targetName": "Decision Trace" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_sbr_1",
          "text": "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.",
          "sourceUrl": "https://5xer.com/docs/concepts/how-matching-works/",
          "pageTitle": "How Fivexer Matching Works",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.96,
          "contentType": "definition"
        },
        {
          "chunkId": "c_sbr_2",
          "text": "Fivexer — skill-based routing, hosted in the EU or self-hosted on the open-source (MIT) assignment-user-matcher engine.",
          "sourceUrl": "https://5xer.com/",
          "pageTitle": "Fivexer — Skill-Based Routing to the Right Person",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.88,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_weights",
      "@type": "ProprietaryTerm",
      "name": "Routing Weights",
      "canonicalLabel": "skill weighting",
      "description": "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.",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_engine", "targetName": "assignment-user-matcher" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_weights_1",
          "text": "A zero-weight veto is absolute — the learning layer cannot override it.",
          "sourceUrl": "https://5xer.com/",
          "pageTitle": "Fivexer — Skill-Based Routing to the Right Person",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.95,
          "contentType": "definition"
        },
        {
          "chunkId": "c_weights_2",
          "text": "Hard vetoes — rules you define can forbid a match regardless of score (e.g., \"agent_1 cannot take billing tasks on Fridays\").",
          "sourceUrl": "https://5xer.com/docs/concepts/how-matching-works/",
          "pageTitle": "How Fivexer Matching Works",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.9,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_traces",
      "@type": "ProprietaryTerm",
      "name": "Decision Trace",
      "alternateName": "Decision",
      "canonicalLabel": "routing audit trail",
      "description": "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.",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_engine", "targetName": "assignment-user-matcher" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_traces_1",
          "text": "Decision — the platform's explainable match record: who was considered, who won, and why.",
          "sourceUrl": "https://5xer.com/docs/concepts/how-matching-works/",
          "pageTitle": "How Fivexer Matching Works",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.96,
          "contentType": "definition"
        },
        {
          "chunkId": "c_traces_2",
          "text": "To see the exact reasoning for any task, call GET /v1/decisions?taskId=...",
          "sourceUrl": "https://5xer.com/docs/concepts/how-matching-works/",
          "pageTitle": "How Fivexer Matching Works",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.85,
          "contentType": "procedure"
        }
      ]
    },
    {
      "entityId": "e_fairness",
      "@type": "ProprietaryTerm",
      "name": "Fairness Modes",
      "canonicalLabel": "match arbitration policy",
      "description": "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.",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_engine", "targetName": "assignment-user-matcher" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_fairness_1",
          "text": "Fairness mode — choose whether to prefer first-come, best-match, balanced load, or spread-work.",
          "sourceUrl": "https://5xer.com/docs/concepts/how-matching-works/",
          "pageTitle": "How Fivexer Matching Works",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.95,
          "contentType": "definition"
        }
      ]
    },
    {
      "entityId": "e_duel",
      "@type": "SoftwareProduct",
      "name": "Dispatch Duel",
      "description": "Fivexer's free browser game at /duel: the visitor dispatches one 90-second shift of 30 jobs across four vans while the routing engine plays the same shift live, and both are scored by the same function.",
      "audienceType": "general",
      "relations": [
        { "predicate": "DEPENDS_ON", "targetId": "e_engine", "targetName": "assignment-user-matcher" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_duel_1",
          "text": "Think you can route work better than an algorithm? 30 jobs, four vans, 90 seconds. Beat the engine — it's playing this exact shift live.",
          "sourceUrl": "https://5xer.com/duel/",
          "pageTitle": "Dispatch Duel — Can You Route Work Better Than an Algorithm?",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        }
      ]
    },
    {
      "entityId": "e_mcp",
      "@type": "SoftwareProduct",
      "name": "@fivexer/mcp",
      "canonicalLabel": "MCP server",
      "description": "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.",
      "sameAs": "https://www.npmjs.com/package/@fivexer/mcp",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_cloud", "targetName": "Fivexer Cloud" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_mcp_1",
          "text": "@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.",
          "sourceUrl": "https://5xer.com/docs/agentic/mcp/",
          "pageTitle": "Fivexer MCP Server — Route Tasks from Claude and Cursor",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        },
        {
          "chunkId": "c_mcp_2",
          "text": "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.",
          "sourceUrl": "https://5xer.com/docs/agentic/mcp/",
          "pageTitle": "Fivexer MCP Server — Route Tasks from Claude and Cursor",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.88,
          "contentType": "procedure"
        }
      ]
    },
    {
      "entityId": "e_agent",
      "@type": "SoftwareProduct",
      "name": "@fivexer/agent",
      "canonicalLabel": "agent daemon",
      "description": "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.",
      "sameAs": "https://www.npmjs.com/package/@fivexer/agent",
      "audienceType": "technical",
      "relations": [
        { "predicate": "DEPENDS_ON", "targetId": "e_cloud", "targetName": "Fivexer Cloud" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_agent_1",
          "text": "@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.",
          "sourceUrl": "https://5xer.com/docs/agentic/agent/",
          "pageTitle": "Fivexer Agent Daemon — Run AI Agents as Workers",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        },
        {
          "chunkId": "c_agent_2",
          "text": "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.",
          "sourceUrl": "https://5xer.com/docs/agentic/agent/",
          "pageTitle": "Fivexer Agent Daemon — Run AI Agents as Workers",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.9,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_sdk_python",
      "@type": "SoftwareProduct",
      "name": "fivexer (Python SDK)",
      "canonicalLabel": "Python SDK",
      "description": "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.",
      "sameAs": "https://pypi.org/project/fivexer/",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_cloud", "targetName": "Fivexer Cloud" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_sdk_python_1",
          "text": "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).",
          "sourceUrl": "https://5xer.com/docs/sdks/python/",
          "pageTitle": "Fivexer Python SDK",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.96,
          "contentType": "definition"
        }
      ]
    },
    {
      "entityId": "e_sdk_java",
      "@type": "SoftwareProduct",
      "name": "com.fivexer:fivexer-sdk (Java SDK)",
      "canonicalLabel": "Java SDK",
      "description": "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.",
      "sameAs": "https://central.sonatype.com/artifact/com.fivexer/fivexer-sdk",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_cloud", "targetName": "Fivexer Cloud" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_sdk_java_1",
          "text": "The Java SDK (com.fivexer:fivexer-sdk) targets Java 11 bytecode and works on the JVM and Android.",
          "sourceUrl": "https://5xer.com/docs/sdks/java/",
          "pageTitle": "Fivexer Java SDK",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.96,
          "contentType": "definition"
        }
      ]
    },
    {
      "entityId": "e_sdk_ts",
      "@type": "SoftwareProduct",
      "name": "@fivexer/sdk (TypeScript SDK)",
      "canonicalLabel": "TypeScript SDK",
      "description": "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.",
      "sameAs": "https://www.npmjs.com/package/@fivexer/sdk",
      "audienceType": "technical",
      "relations": [
        { "predicate": "PART_OF", "targetId": "e_cloud", "targetName": "Fivexer Cloud" }
      ],
      "hasChunks": [
        {
          "chunkId": "c_sdk_ts_1",
          "text": "The TypeScript SDK (@fivexer/sdk) is the reference implementation for the /v1 API. It has zero runtime dependencies and runs anywhere with fetch.",
          "sourceUrl": "https://5xer.com/docs/sdks/typescript/",
          "pageTitle": "Fivexer TypeScript SDK",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.96,
          "contentType": "definition"
        }
      ]
    },
    {
      "entityId": "e_eu",
      "@type": "Guide",
      "name": "EU Data Residency & GDPR at Fivexer",
      "description": "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.",
      "audienceType": "general",
      "hasChunks": [
        {
          "chunkId": "c_eu_1",
          "text": "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.",
          "sourceUrl": "https://5xer.com/eu/",
          "pageTitle": "GDPR-Compliant Task Routing, Hosted in the EU — Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.96,
          "contentType": "statistic"
        },
        {
          "chunkId": "c_eu_2",
          "text": "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.",
          "sourceUrl": "https://5xer.com/eu/",
          "pageTitle": "GDPR-Compliant Task Routing, Hosted in the EU — Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.9,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_trade",
      "@type": "Guide",
      "name": "Fivexer for Trade Subcontractors",
      "description": "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.",
      "audienceType": "general",
      "hasChunks": [
        {
          "chunkId": "c_trade_1",
          "text": "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.",
          "sourceUrl": "https://5xer.com/for/trade-contractors/",
          "pageTitle": "Software for Trade Subcontractors | Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        },
        {
          "chunkId": "c_trade_2",
          "text": "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.",
          "sourceUrl": "https://5xer.com/for/trade-contractors/",
          "pageTitle": "Software for Trade Subcontractors | Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.92,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_clean",
      "@type": "Guide",
      "name": "Fivexer for Commercial Cleaning Firms",
      "description": "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.",
      "audienceType": "general",
      "hasChunks": [
        {
          "chunkId": "c_clean_1",
          "text": "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.",
          "sourceUrl": "https://5xer.com/for/cleaning-companies/",
          "pageTitle": "Software for Commercial Cleaning Firms | Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        },
        {
          "chunkId": "c_clean_2",
          "text": "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.",
          "sourceUrl": "https://5xer.com/for/cleaning-companies/",
          "pageTitle": "Software for Commercial Cleaning Firms | Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.92,
          "contentType": "evidence"
        }
      ]
    },
    {
      "entityId": "e_migrate",
      "@type": "Guide",
      "name": "Migrate from Twilio TaskRouter to Fivexer",
      "description": "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.",
      "audienceType": "technical",
      "hasChunks": [
        {
          "chunkId": "c_migrate_1",
          "text": "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.",
          "sourceUrl": "https://5xer.com/docs/migrate/from-twilio-taskrouter/",
          "pageTitle": "Migrate from Twilio TaskRouter to Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.97,
          "contentType": "definition"
        },
        {
          "chunkId": "c_migrate_2",
          "text": "Fivexer has no queue objects. Matching is tag/skill-based and continuous.",
          "sourceUrl": "https://5xer.com/docs/migrate/from-twilio-taskrouter/",
          "pageTitle": "Migrate from Twilio TaskRouter to Fivexer",
          "publisher": "Fivexer",
          "retrieved": "2026-08-22T00:00:00Z",
          "relevanceScore": 0.9,
          "contentType": "evidence"
        }
      ]
    }
  ]
}
