TalentSprout
API Reference

Webhooks

Receive real-time HTTP POST notifications when interviews are completed. Build powerful integrations and automate your hiring workflow.

Quick Start

1

Configure your webhook URL

Add a global URL in Settings → Global Interview Settings or set a per-interview override in the Settings tab.

2

Handle incoming requests

Your endpoint should return a 2xx status code within 10 seconds.

Events

interview.completed
Triggered when a qualified interview finishes

Webhooks are only sent for completed interviews that pass quality checks. Demo, failed, and abandoned interviews are excluded.

Payload

response.json
{
  "event": "interview.completed",
  "apiVersion": "2024-01-01",
  "timestamp": "2024-12-27T00:25:50.431Z",
  "data": {
    "interview": {
      "id": "c04f53d2",
      "title": "Senior Software Engineer",
      "companyName": "Acme Corp",
      "dashboardUrl": "https://app.talentsprout.ai/dashboard/interviews/c04f53d2"
    },
    "candidate": {
      "id": "6907d2602dab93276cdedb2a",
      "firstName": "John",
      "lastName": "Doe",
      "fullName": "John Doe",
      "email": "john.doe@example.com",
      "phone": "+1234567890",
      "profileUrl": "https://app.talentsprout.ai/dashboard/..."
    },
    "session": {
      "id": "694f268cd70bb7447a4e4d4e",
      "token": "3f54f82d...",
      "status": "completed",
      "startedAt": "2024-12-27T00:21:36.836Z",
      "completedAt": "2024-12-27T00:25:46.490Z",
      "durationMinutes": 4.16,
      "recordingUrl": "https://...",
      "resumeUrl": null
    },
    "scores": {
      "overall": 85,
      "interview": 85,
      "resume": null
    },
    "evaluation": {
      "performanceSummary": "Strong candidate with excellent communication...",
      "performance": {
        "communicationSkills": { "name": "Communication Skills", "score": 88, "notes": "..." },
        "problemSolving": { "name": "Problem Solving", "score": 82, "notes": "..." }
      },
      "summary": {
        "overview": "Candidate brings strong technical background...",
        "strengths": ["Strong communication", "Technical expertise"],
        "concerns": ["Limited experience with specific stack"],
        "tags": ["senior", "leadership"]
      }
    },
    "transcript": [
      { "timestamp": "2024-12-27T00:21:36.836Z", "speaker": "agent", "text": "Hello! Welcome..." },
      { "timestamp": "2024-12-27T00:21:42.000Z", "speaker": "candidate", "text": "Thank you..." }
    ]
  }
}

Field Reference

FieldDescription
eventEvent type
apiVersionAPI version
timestampISO 8601 timestamp
data.interviewInterview details & dashboard URL
data.candidateCandidate info & profile URL
data.sessionSession timing & recording URL
data.scoresOverall, interview & resume scores
data.evaluationPerformance metrics & summaries
data.transcriptFull conversation transcript

Note: Optional fields like resumeEvaluation, language, and customScores are included only when applicable.

Request Headers

HeaderValue
Content-Typeapplication/json
User-AgentTalentSprout-Webhooks/1.0
X-TalentSprout-Eventinterview.completed

Best Practices

Respond quickly

Return a 2xx status code within 10 seconds

Process async

Handle heavy operations asynchronously

Deduplicate

Use session.id to handle potential retries

Use HTTPS

Only secure endpoints are supported

Testing

Use webhook.site to generate a temporary test endpoint and inspect incoming payloads.

!

Preview mode interviews do not trigger webhooks. Complete a real interview to test your integration.

Need help with your integration?

Our team is here to help you get set up.

Contact Support
    Webhooks - TalentSprout API