{
  "id": "tickup-hr-matching",
  "title": "HR platform with AI candidate matching",
  "producer": { "name": "TickUp", "handle": "tickup", "kind": "vendor" },
  "pitch": "Stand up a hiring page that auto-ranks candidates against any role — powered by TickUp's matching engine.",
  "vendorDescription": "TickUp's HR-matching kit. We've shipped candidate matching for 200+ recruiting teams. Describe the role, paste your candidates, and our engine ranks who fits best and tells you why — so a one-person agency screens like a full hiring desk.",
  "summary": "A clean single-page hiring site (no setup, no login) with a role box and a candidate list. Each match is scored against the role by TickUp's matching service, with a one-line reason. Built for you in one shot; the matching runs every time you use it.",
  "outcomeScore": 0.94,
  "outcomeStats": { "builds": 38, "working": 36 },
  "safetyBadge": "verified",
  "riskClass": "C",
  "dataTouched": {
    "egress": ["the role you describe", "the candidate names + details you paste"],
    "scope": "external",
    "paid": { "model": "per-use", "note": "a small amount each time the matching service ranks candidates" }
  },
  "attestation": { "privacy": "attested", "attestedBy": "tickup", "at": "2026-05-20T00:00:00.000Z" },
  "vetting": { "verdict": "reviewed", "stakes": "ordinary", "signature": null, "capabilities": null, "findings": [] },
  "rating": { "stars": 4.8, "count": 27 },
  "tags": [
    "hr", "human resources", "recruiting", "recruiter", "recruitment",
    "candidate", "candidates", "candidate matching", "matching", "match",
    "hiring", "hire", "applicant", "applicants", "ats", "talent", "resume",
    "resumes", "screening", "shortlist", "job", "roles"
  ],
  "reward": {
    "model": "recurring",
    "unit": "per match",
    "perUseValue": 0.40,
    "oneTimeValue": 12.0,
    "note": "TickUp earns a small amount every time the matching service ranks candidates — for as long as the site runs."
  },
  "service": {
    "id": "tickup-match",
    "label": "TickUp matching service",
    "endpointPath": "/match",
    "contract": "POST /match  body: { role: string, candidates: string[] }  ->  { ranked: [{ name: string, score: number(0-100), why: string, skills: string[] }] }  (ranked is best-first; skills is a list of strings)"
  },
  "buildDir": "candidate-matcher"
}
