Skip to main content
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

// 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.