Skip to content
Cupidex

Platform

Matching infrastructure, built for precision.

Cupidex gives your product a matching engine that ranks by real fit, explains every result, and adapts to the rules of your domain.

Capabilities

A focused toolkit for precise matching

Each capability is designed to make results more accurate, easier to trust, and simpler to ship.

Precision matching engine

Score every candidate pair across many signals at once and return a ranked shortlist, not a long list to sift through.

Explainable scores

Each match comes with the factors behind it, so your team and your users can see why a result ranks where it does.

Configurable criteria

Set weights, hard requirements, and business rules for your domain, and adjust them without retraining anything.

Real-time indexing

New profiles, listings, and changes flow into the index continuously, so matches reflect what is true right now.

API-first integration

A clean REST API and webhooks let you bring matching into your existing product, workflows, and tools.

Privacy by design

Your data is used to power your matches and nothing else. Access is scoped, and sensitive attributes can be excluded.

How matching works

From request to ranked, explained results

A single API call takes a subject, a pool, and your criteria, and returns the best matches with the reasons attached.

  1. 1

    Ingest and normalize

    Send records through the API or a batch import. Cupidex maps them into a consistent schema of attributes, skills, and constraints.

  2. 2

    Define what a good match means

    Choose the signals that matter, set their weights, and mark the requirements that can never be broken.

  3. 3

    Score and rank

    Each request scores the eligible pool against your criteria and returns a ranked shortlist in a single call.

  4. 4

    Explain and deliver

    Every result includes a per-factor breakdown, so you can show users why a match was made and audit it later.

Request
POST /v1/matches
{
  "subject": { "type": "role", "id": "role_2048" },
  "pool": "candidates",
  "criteria": {
    "skills":     { "weight": 0.5 },
    "experience": { "weight": 0.3, "min_years": 6 },
    "location":   { "weight": 0.2, "timezone_overlap": 4 }
  },
  "limit": 3,
  "explain": true
}
Response
{
  "matches": [
    {
      "id": "profile_4821",
      "score": 0.97,
      "factors": {
        "skills": 0.96,
        "experience": 0.91,
        "location": 0.99
      }
    }
  ]
}

Illustrative example. Field names are simplified.

Designed for trust

Precision without a black box

Matching decisions affect real people. Cupidex is built so you can understand, review, and stand behind every result.

People stay in control

Cupidex proposes and ranks. Your team and your users make the final call, with full context.

Auditable by default

Scores, factors, and the criteria version used are recorded with every result for later review.

Sensitive attributes excluded

Choose fields that must never influence a score, and Cupidex leaves them out of matching entirely.

FAQ

Common questions

See Cupidex on your own data.

Tell us what you need to match, and we’ll show you how Cupidex can bring precision to it.