This guide walks you through a complete integration flow: generating clarification questions, creating criteria for a job, and scoring a candidate.
Prerequisites
API key from the Embed Portal (sk_test_* for sandbox)
A tenant ID (your customer identifier)
Step 1: Generate Clarification Questions (Optional)
First, generate clarification questions. This step is optional but recommended for better criteria calibration.
curl -X POST https://embed.nova.dweet.com/v1/criteria/questions \
-H "Authorization: Bearer sk_test_your_key" \
-H "X-Tenant-Id: acme-corp" \
-H "Content-Type: application/json" \
-d '{
"jobContext": {
"jobId": "job-123",
"jobTitle": "Senior Software Engineer",
"companyName": "Acme Corp",
"jobDescription": "We are looking for a Senior Software Engineer with 5+ years of experience in backend development. Strong proficiency in Go or Python required. Experience with Kubernetes and cloud infrastructure preferred."
}
}'
Response:
{
"questionSetId": "qs_abc123def456",
"questions": [
{
"id": "q1",
"type": "singleSelect",
"question": "What level of seniority are you targeting?",
"options": ["Junior (0-2 years)", "Mid (2-5 years)", "Senior (5+ years)", "Lead/Staff"],
"hint": "Helps calibrate experience requirements"
},
{
"id": "q2",
"type": "multiSelect",
"question": "Which skills are absolutely required vs nice-to-have?",
"options": ["Go", "Python", "Kubernetes", "AWS", "Docker"],
"hint": "Helps distinguish MUST_HAVE from PREFERRED criteria"
}
],
"guidance": "These questions will help calibrate the screening criteria."
}
Store the questionSetId - you’ll need it when generating criteria with your team’s answers.
Step 2: Generate Criteria
Generate screening criteria from your job description, optionally including your team’s answers:
curl -X POST https://embed.nova.dweet.com/v1/criteria/generate \
-H "Authorization: Bearer sk_test_your_key" \
-H "X-Tenant-Id: acme-corp" \
-H "Content-Type: application/json" \
-d '{
"jobContext": {
"jobId": "job-123",
"jobTitle": "Senior Software Engineer",
"companyName": "Acme Corp",
"jobDescription": "We are looking for a Senior Software Engineer..."
},
"questionSetId": "qs_abc123def456",
"answers": [
{ "id": "q1", "type": "singleSelect", "value": "Senior (5+ years)" },
{ "id": "q2", "type": "multiSelect", "value": ["Go", "Kubernetes"] }
]
}'
curl -X POST https://embed.nova.dweet.com/v1/criteria/generate \
-H "Authorization: Bearer sk_test_your_key" \
-H "X-Tenant-Id: acme-corp" \
-H "Content-Type: application/json" \
-d '{
"jobContext": {
"jobId": "job-123",
"jobTitle": "Senior Software Engineer",
"companyName": "Acme Corp",
"jobDescription": "We are looking for a Senior Software Engineer with 5+ years of experience in backend development. Strong proficiency in Go or Python required."
}
}'
Response:
{
"jobId": "job-123",
"criteria": [
{
"id": "crit_abc123",
"text": "5+ years of professional software engineering experience",
"importance": "MUST_HAVE"
},
{
"id": "crit_def456",
"text": "Strong proficiency in Go for backend development",
"importance": "MUST_HAVE"
},
{
"id": "crit_ghi789",
"text": "Experience with Kubernetes and container orchestration",
"importance": "PREFERRED"
}
],
"status": "active",
"createdAt": "2025-01-15T10:00:00Z"
}
Step 3: Score a Candidate
When a candidate applies, submit their resume for scoring. Notice how simple this is - just the job ID, application ID, and resume:
curl -X POST https://embed.nova.dweet.com/v1/score \
-H "Authorization: Bearer sk_test_your_key" \
-H "X-Tenant-Id: acme-corp" \
-H "Content-Type: application/json" \
-d '{
"jobId": "job-123",
"applicationId": "app-456",
"candidate": {
"resumeUrl": "https://your-storage.com/resumes/candidate-123.pdf?token=..."
}
}'
Response (202 Accepted):
{
"scoringJobId": "sj_abc123def456",
"status": "queued",
"estimatedCompletionSeconds": 30
}
Step 4: Receive Results
Results are delivered via webhook to your configured endpoint:
{
"event": "score.completed",
"scoringJobId": "sj_abc123def456",
"jobId": "job-123",
"applicationId": "app-456",
"result": {
"score": 7,
"assessment": {
"verdict": "Strong candidate with solid backend experience. Meets core requirements but lacks direct Kubernetes experience. Recommend proceeding to technical interview.",
"strengths": [
"6 years of backend engineering experience at high-growth startups",
"Strong Go proficiency demonstrated through open-source contributions"
],
"concerns": [
"No direct Kubernetes experience; container orchestration exposure is limited"
],
"interviewFocus": [
"Probe depth of distributed systems knowledge",
"Assess willingness and ability to learn Kubernetes quickly"
]
}
},
"completedAt": "2025-01-15T10:30:45Z"
}
If you miss the webhook, you can retrieve results using GET /v1/score/{scoringJobId}.
What’s Next?