How integrations work
In the Integrations flow, you configure core communication channels between InterviewFlowAI and your external systems:| API / Feature | Description |
|---|---|
| Ingestion API | Push candidate data into InterviewFlowAI programmatically to trigger interview invitations. |
| Fetch API | Retrieve candidate lists, specific interview details, and filter records directly from our system. |
| Patch API | Update custom fields and sync statuses back to candidate records in InterviewFlowAI. |
Generate your API key
Before setting up any connections, you must authenticate your requests.
- Navigate to the API Keys section in your main dashboard settings.
- Click Generate to create a new secure API key.
Access Interviewer-specific integrations
Integrations are scoped to specific Interviewers to ensure candidates are routed to the correct interview flow.
- Select your target Interviewer from the main dashboard.
- Click on View Interviews.
- Click on the Integrations tab.
Configure the Ingestion API
The Ingestion API allows you to programmatically add candidates to a specific Interviewer pipeline.
Payload structure
| Field | Type | Required | Description |
|---|---|---|---|
interviewerId | string | ✅ Yes | The unique ID of the Interviewer to ingest candidates into. |
status | string | ❌ No | shortlisted or draft. Controls onboarding experience. |
skills | array | ❌ No | ["nodejs", "aws", "mongodb"] array of skills to generate custom questions. |
data | array | ✅ Yes | Array of candidate objects. |
data[].name | string | ✅ Yes | Candidate’s full name. |
data[].email | string | ✅ Yes | Candidate’s email address. |
data[].additionalFields | object | ❌ No | Custom key-value fields to tag against the candidate (e.g. scores, flags). |
data[].metadata | object | ❌ No | External reference data (e.g. ATS ID, phone number). Not used in scoring. |
Status routing
| Status | Behavior |
|---|---|
shortlisted | Candidate bypasses the application form and is redirected straight to the interview lobby (requires Resume Screening and Screening Questions to be disabled). |
draft | Candidate must fill out the application form. Your team will then need to manually shortlist them from the dashboard. |
Default behavior (when status is omitted)
| Interviewer Visibility | Default Status |
|---|---|
| Public Interviewer | shortlisted |
| Private Interviewer | draft |
Example request
Retrieve data with the Fetch API
The Fetch API allows you to pull candidate and interview data back into your own internal systems. All fetch requests are
POST requests with a JSON body.Request body fields
| Field | Type | Required | Description |
|---|---|---|---|
interviewerId | string | ✅ Yes | The unique ID of the Interviewer to fetch candidates from. |
page | number | ❌ No | Page number for paginated results. |
limit | number | ❌ No | Number of results per page. |
interviewId | string | ❌ No | Fetch a single candidate by their unique interview ID. |
additionalFields | object | ❌ No | Filter candidates by custom field values (see filtering rules below). |
1. Paginated fetch
Retrieve a paginated list of candidates for a specific Interviewer.2. Single candidate fetch
Look up a specific candidate using their unique interview ID.3. Custom field filters
Filter your candidate list based on values inadditionalFields. Filtering rules:- Numeric values: Returns candidates where the field value is ≥ the specified number (e.g.
"score": 50returns all candidates with score 50 or above). - String values: Returns candidates where the field value exactly matches the string (e.g.
"review": "yes").

