डेवलपर API

AssessFit को अपने ATS, Zapier या आंतरिक टूल से जोड़ें — नौकरियाँ बनाएँ, उम्मीदवार आमंत्रित करें, परिणाम खींचें, और उम्मीदवार के पूरा करते ही हस्ताक्षरित वेबहुक पाएँ।

प्रमाणीकरण

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

एक ही कॉल में नौकरी बनाएँ और उम्मीदवार आमंत्रित करें। निमंत्रण ईमेल अपने-आप जाते हैं; हर निमंत्रण एक क्रेडिट लेता है।

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, custom। क्या testsछोड़ सकते हैं? नहीं — जो टेस्ट कुंजियाँ चाहिए वही भेजें; लाइब्रेरी डैशबोर्ड से देखें।

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

एक उम्मीदवार का पूर्ण परिणाम खींचें: कुल स्कोर, प्रति-टेस्ट स्कोर, शुचिता स्कोर, निर्णय व चिह्न, और समय-विश्लेषण। उम्मीदवार के पूरा करने तक 404 लौटाता है।

वेबहुक

Settings में वेबहुक 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.

एकीकरण नुस्ख़े