開発者 API

AssessFit を ATS、Zapier、社内ツールと連携 — 求人の作成、候補者の招待、結果の取得、そして候補者が完了した瞬間に署名付き Webhook を受信できます。

認証

API キーは Employer Dashboard → Settings → API & integrations で生成し、すべてのリクエストに添えてください:

curl https://assessfit.com/api/v1/jobs \
  -H "X-Api-Key: tp_live_…"

キーはワークスペース単位です。ローテーションすると旧キーは即時無効になります。リクエストは IP あたり毎分 300 件に制限されます。

エンドポイント

GET/api/v1/jobs

求人の一覧を、招待数・完了数つきで返します。

POST/api/v1/jobs

1 回の呼び出しで求人を作成し候補者を招待します。招待メールは自動送信され、招待 1 件につきクレジットを 1 消費します。

curl -X POST https://assessfit.com/api/v1/jobs \
  -H "X-Api-Key: tp_live_…" -H "Content-Type: application/json" \
  -d '{
    "title": "Senior Accountant",
    "roleKey": "accountant",
    "tests": ["attention", "financial", "numerical", "conscientiousness"],
    "cameraRequired": true,
    "shareResults": false,
    "candidates": [
      { "name": "Ana Putri", "email": "ana@example.com" }
    ]
  }'

ロールキー: accountant, engineer, sales, support, marketing, analyst, customtestsは省略できますか?いいえ — 使いたいテストキーを渡してください。ライブラリはダッシュボードで確認できます。

GET/api/v1/jobs/:id

求人の完全な詳細:各招待のファネルタイムスタンプ(tracking.sent/opened/loggedIn)、個別招待の link、完了後は result オブジェクトを含みます。

POST/api/v1/jobs/:id/invites

既存の求人に候補者を追加: {"candidates":[{"name":"…","email":"…"}]}。作成された招待をリンクつきで返します。

GET/api/v1/invites/:id/result

候補者 1 名の完了結果を取得:総合スコア、テスト別スコア、公正性スコア、判定とフラグ、時間分析。候補者が完了するまで 404 を返します。

Webhook

Settings で Webhook URL を設定してください。AssessFit は JSON イベントを POST し、生のボディに対して API キー をシークレットとして計算した HMAC-SHA256 署名を付与します:

POST https://your-app.example.com/hooks/assessfit
X-AssessFit-Event: candidate.completed
X-AssessFit-Signature: sha256=3f5a…

{
  "event": "candidate.completed",
  "createdAt": "2026-07-22T09:14:03.000Z",
  "data": {
    "inviteId": "inv_…",
    "jobId": "job_…",
    "jobTitle": "Senior Accountant",
    "candidate": { "name": "Ana Putri", "email": "ana@example.com" },
    "overall": 84,
    "scores": { "attention": 83, "numerical": 100 },
    "integrity": { "score": 100, "verdict": "clean" }
  }
}

ペイロードを信頼する前に署名を検証してください:

// Node.js
const crypto = require("crypto");
function verify(rawBody, signatureHeader, apiKey) {
  const expected = "sha256=" +
    crypto.createHmac("sha256", apiKey).update(rawBody).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(signatureHeader), Buffer.from(expected));
}

配信は 3 回リトライされます(即時、+2 秒、+8 秒)。すべての試行は Settings → Recent webhook deliveriesで確認でき、「Send Test Event」ボタンでいつでも webhook.test イベントを発火できます。イベント一覧: candidate.completed, webhook.test.

連携レシピ