@nova-sdk/api
import { Nova } from "@nova-sdk/api";
const nova = new Nova({
apiKey: "sk_test_...",
tenantId: "acme-corp",
});
const result = await nova.jobs.applications.scoringJobs.get({
jobId: "job_abc123",
applicationId: "app_xyz789",
scoringJobId: "sj_abc123",
});curl -X GET "https://embed.nova.dweet.com/v1/jobs/job_abc123/applications/app_xyz789/scoring-jobs/sj_abc123" \
-H "Authorization: Bearer sk_test_..." \
-H "X-Tenant-Id: acme-corp"{
"scoringJob": {
"id": "<string>",
"criteriaVersionId": "<string>",
"jobId": "<string>",
"applicationId": "<string>",
"status": "pending",
"isRescore": true,
"score": 123,
"assessment": {
"verdict": "<string>",
"strengths": [
"<string>"
],
"concerns": [
"<string>"
],
"interviewFocus": [
"<string>"
]
},
"errorCode": "UNAUTHORIZED",
"errorMessage": "<string>",
"queuedAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"failedAt": "2023-11-07T05:31:56Z"
}
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}API endpoints
Get Scoring Job
Retrieve score results for a specific scoring job by ID
GET
/
v1
/
jobs
/
{jobId}
/
applications
/
{applicationId}
/
scoring-jobs
/
{scoringJobId}
@nova-sdk/api
import { Nova } from "@nova-sdk/api";
const nova = new Nova({
apiKey: "sk_test_...",
tenantId: "acme-corp",
});
const result = await nova.jobs.applications.scoringJobs.get({
jobId: "job_abc123",
applicationId: "app_xyz789",
scoringJobId: "sj_abc123",
});curl -X GET "https://embed.nova.dweet.com/v1/jobs/job_abc123/applications/app_xyz789/scoring-jobs/sj_abc123" \
-H "Authorization: Bearer sk_test_..." \
-H "X-Tenant-Id: acme-corp"{
"scoringJob": {
"id": "<string>",
"criteriaVersionId": "<string>",
"jobId": "<string>",
"applicationId": "<string>",
"status": "pending",
"isRescore": true,
"score": 123,
"assessment": {
"verdict": "<string>",
"strengths": [
"<string>"
],
"concerns": [
"<string>"
],
"interviewFocus": [
"<string>"
]
},
"errorCode": "UNAUTHORIZED",
"errorMessage": "<string>",
"queuedAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"failedAt": "2023-11-07T05:31:56Z"
}
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}{
"type": "<string>",
"code": "UNAUTHORIZED",
"status": 123,
"message": "<string>",
"retryable": true,
"traceId": "<string>",
"details": [
{
"field": "<string>",
"code": "<string>",
"message": "<string>"
}
]
}Retrieve score results by scoring job ID. Use this if you missed the webhook or need to re-fetch results.
Poll by hitting this endpoint every 3 seconds until
Response States
| Status | Description |
|---|---|
pending | Queued or currently scoring |
completed | Scoring finished successfully |
failed | Scoring couldn’t be completed |
Score (1-10)
| Range | Meaning |
|---|---|
| 9-10 | Exceptional match. Verified must-have evidence. |
| 7-8 | Strong fit. Minor questions to explore. |
| 5-6 | Mixed signals or unverified must-haves. |
| 3-4 | Significant gaps. |
| 1-2 | Missing fundamental requirements. |
Assessment Fields
| Field | Description |
|---|---|
verdict | 2-3 sentence summary with hiring recommendation |
strengths | Evidence-backed positive observations |
concerns | Gaps or potential issues |
interviewFocus | Suggested topics for interviews |
Polling
Prefer webhooks. Polling uses your rate limit and adds latency.
status is completed or failed.
Results are stored indefinitely.
Authorizations
Use Authorization: Bearer sk_test_* or Authorization: Bearer sk_live_*.
Headers
Your customer identifier. Tenants are auto-provisioned on first request.
Path Parameters
Your job identifier (external ID).
Your application identifier (external ID).
Scoring job ID.
Response
Scoring job
Show child attributes
Show child attributes
Was this page helpful?