Skip to main content
curl -X PATCH "https://backend.jobhive.ai/v1/interviews/int_abc123def456" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduled_at": "2024-01-16T14:00:00Z",
    "reschedule_reason": "Candidate requested time change"
  }'
{
  "success": true,
  "data": {
    "id": "int_abc123def456",
    "status": "scheduled",
    "candidate_email": "[email protected]",
    "position": "Senior Full Stack Developer",
    "skills": ["JavaScript", "React", "Node.js", "TypeScript"],
    "scheduled_at": "2024-01-16T14:00:00Z",
    "duration_minutes": 60,
    "difficulty": "senior",
    "company_name": "TechCorp Inc",
    "instructions": "Focus on TypeScript advanced features and architectural patterns",
    "created_at": "2024-01-15T14:30:00Z",
    "updated_at": "2024-01-15T16:45:00Z",
    "notification_sent": true
  },
  "meta": {
    "timestamp": "2024-01-15T16:45:00Z",
    "request_id": "req_update_int_001"
  }
}
Updates an existing interview’s details. Allows rescheduling, modifying assessment parameters, and updating candidate information before the interview starts.
Most fields can only be updated for scheduled interviews. In-progress or completed interviews have limited update options.

Path Parameters

id
string
required
Unique interview identifier (e.g., int_abc123def456)

Request Body

scheduled_at
string
ISO 8601 timestamp to reschedule the interview
position
string
Updated job position or role title
skills
array
Updated array of skills to assess
duration_minutes
integer
Updated interview duration in minutes (15-90)
difficulty
string
Updated difficulty level: junior, intermediate, senior, expert
company_name
string
Updated company name for personalization
instructions
string
Updated custom instructions for the AI interviewer
candidate_email
string
Updated candidate email (scheduled interviews only)
send_notification
boolean
default:"true"
Whether to notify candidate of changes via email
reschedule_reason
string
Reason for rescheduling (included in notification email)

Update Rules by Status

Different fields can be updated based on interview status:
FieldScheduledIn ProgressCompleted
scheduled_at✅ Yes❌ No❌ No
candidate_email✅ Yes❌ No❌ No
position✅ Yes❌ No❌ No
skills✅ Yes❌ No❌ No
duration_minutes✅ Yes❌ No❌ No
difficulty✅ Yes❌ No❌ No
instructions✅ Yes⚠️ Limited❌ No
company_name✅ Yes✅ Yes❌ No

Response

id
string
Unique interview identifier
status
string
Current interview status
candidate_email
string
Updated candidate email
position
string
Updated job position
skills
array
Updated skills array
scheduled_at
string
Updated schedule timestamp
duration_minutes
integer
Updated duration
difficulty
string
Updated difficulty level
company_name
string
Updated company name
instructions
string
Updated custom instructions
updated_at
string
ISO 8601 timestamp when interview was last updated
notification_sent
boolean
Whether update notification was sent to candidate

Examples

curl -X PATCH "https://backend.jobhive.ai/v1/interviews/int_abc123def456" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduled_at": "2024-01-16T14:00:00Z",
    "reschedule_reason": "Candidate requested time change"
  }'
{
  "success": true,
  "data": {
    "id": "int_abc123def456",
    "status": "scheduled",
    "candidate_email": "[email protected]",
    "position": "Senior Full Stack Developer",
    "skills": ["JavaScript", "React", "Node.js", "TypeScript"],
    "scheduled_at": "2024-01-16T14:00:00Z",
    "duration_minutes": 60,
    "difficulty": "senior",
    "company_name": "TechCorp Inc",
    "instructions": "Focus on TypeScript advanced features and architectural patterns",
    "created_at": "2024-01-15T14:30:00Z",
    "updated_at": "2024-01-15T16:45:00Z",
    "notification_sent": true
  },
  "meta": {
    "timestamp": "2024-01-15T16:45:00Z",
    "request_id": "req_update_int_001"
  }
}

Error Responses

{
  "success": false,
  "error": {
    "code": "INTERVIEW_NOT_FOUND",
    "message": "Interview with ID 'int_invalid123' not found"
  }
}

Webhook Events

Updating an interview triggers webhook events based on the changes:
  • interview.updated - Sent for any interview update
  • interview.rescheduled - Sent when scheduled_at is changed
  • candidate.notified - Sent when notification email is delivered

Best Practices

Rescheduling Guidelines

  • Professional Communication
  • Batch Operations
  • Validation
// Always provide a reason for rescheduling
const rescheduled = await jobhive.interviews.update(interviewId, {
  scheduled_at: newDateTime,
  reschedule_reason: 'Interviewer has a scheduling conflict',
  send_notification: true
});

Skill Assessment Updates

When updating skills or difficulty:
  1. Preserve Context: Keep related skills together for coherent assessment
  2. Match Difficulty: Ensure difficulty level matches the skills being tested
  3. Update Instructions: Modify custom instructions to reflect new focus areas
Candidates receive email notifications for significant changes (rescheduling, skill updates) unless send_notification: false is specified.
Use the reschedule_reason field to maintain professional communication and reduce candidate confusion about changes.