curl --request GET \
--url https://api.instaview.sk/sourcing/{id}/results \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/sourcing/{id}/results"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instaview.sk/sourcing/{id}/results', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instaview.sk/sourcing/{id}/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.instaview.sk/sourcing/{id}/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.instaview.sk/sourcing/{id}/results")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/sourcing/{id}/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"requestId": "req_550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"createdAt": "2025-01-01T00:00:00.000Z",
"candidatesSourcedCount": 8,
"foundCount": 42,
"scoredCount": 30,
"message": "The sourcing agent is actively analyzing candidates. Please poll again in 10 seconds.",
"candidates": [
{
"profileId": "a1b2c3d4e5f6",
"name": "Jane Smith",
"linkedinUrl": "https://www.linkedin.com/in/janesmith",
"matchScore": 87,
"rationale": "Strong fintech background with Node.js expertise.",
"skills": [
"Node.js",
"TypeScript",
"PostgreSQL"
],
"headline": "Senior Software Engineer at Stripe",
"location": "San Francisco, CA",
"currentCompany": "Stripe",
"currentRole": "Senior Software Engineer",
"aiFitPoints": [
"5+ years Node.js",
"FinTech background"
],
"aiRedFlags": [
"No public cloud experience"
],
"aiDetailedRationale": [
{
"title": "Senior Developer",
"company": "Tech Corp",
"duration": "2 years",
"relevanceExplanation": "Led a team of 5 developers using Python/Django."
}
],
"detailedExperience": [
{
"role": "Staff ML Infrastructure Engineer",
"company": "TechCorp",
"duration": "2023 - Present",
"highlights": [
"Architected low-latency prompt caching server decreasing LLM inference cost by 42%."
]
}
],
"emails": [
"jane.smith@example.com"
]
}
],
"errorCode": "AGENT_ERROR",
"errorMessage": "The sourcing agent encountered an unexpected error.",
"completedAt": "2025-01-01T00:01:30.000Z"
}{
"success": true,
"requestId": "req_550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"createdAt": "2025-01-01T00:00:00.000Z",
"candidatesSourcedCount": 8,
"foundCount": 42,
"scoredCount": 30,
"message": "The sourcing agent is actively analyzing candidates. Please poll again in 10 seconds.",
"candidates": [
{
"profileId": "a1b2c3d4e5f6",
"name": "Jane Smith",
"linkedinUrl": "https://www.linkedin.com/in/janesmith",
"matchScore": 87,
"rationale": "Strong fintech background with Node.js expertise.",
"skills": [
"Node.js",
"TypeScript",
"PostgreSQL"
],
"headline": "Senior Software Engineer at Stripe",
"location": "San Francisco, CA",
"currentCompany": "Stripe",
"currentRole": "Senior Software Engineer",
"aiFitPoints": [
"5+ years Node.js",
"FinTech background"
],
"aiRedFlags": [
"No public cloud experience"
],
"aiDetailedRationale": [
{
"title": "Senior Developer",
"company": "Tech Corp",
"duration": "2 years",
"relevanceExplanation": "Led a team of 5 developers using Python/Django."
}
],
"detailedExperience": [
{
"role": "Staff ML Infrastructure Engineer",
"company": "TechCorp",
"duration": "2023 - Present",
"highlights": [
"Architected low-latency prompt caching server decreasing LLM inference cost by 42%."
]
}
],
"emails": [
"jane.smith@example.com"
]
}
],
"errorCode": "AGENT_ERROR",
"errorMessage": "The sourcing agent encountered an unexpected error.",
"completedAt": "2025-01-01T00:01:30.000Z"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}Get Sourcing Results
Returns the current state of a sourcing run. Responds with 202 and status ‘processing’ while in progress, or 200 with the full ranked candidate list (or error details) when completed.
curl --request GET \
--url https://api.instaview.sk/sourcing/{id}/results \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/sourcing/{id}/results"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instaview.sk/sourcing/{id}/results', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instaview.sk/sourcing/{id}/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.instaview.sk/sourcing/{id}/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.instaview.sk/sourcing/{id}/results")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/sourcing/{id}/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"requestId": "req_550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"createdAt": "2025-01-01T00:00:00.000Z",
"candidatesSourcedCount": 8,
"foundCount": 42,
"scoredCount": 30,
"message": "The sourcing agent is actively analyzing candidates. Please poll again in 10 seconds.",
"candidates": [
{
"profileId": "a1b2c3d4e5f6",
"name": "Jane Smith",
"linkedinUrl": "https://www.linkedin.com/in/janesmith",
"matchScore": 87,
"rationale": "Strong fintech background with Node.js expertise.",
"skills": [
"Node.js",
"TypeScript",
"PostgreSQL"
],
"headline": "Senior Software Engineer at Stripe",
"location": "San Francisco, CA",
"currentCompany": "Stripe",
"currentRole": "Senior Software Engineer",
"aiFitPoints": [
"5+ years Node.js",
"FinTech background"
],
"aiRedFlags": [
"No public cloud experience"
],
"aiDetailedRationale": [
{
"title": "Senior Developer",
"company": "Tech Corp",
"duration": "2 years",
"relevanceExplanation": "Led a team of 5 developers using Python/Django."
}
],
"detailedExperience": [
{
"role": "Staff ML Infrastructure Engineer",
"company": "TechCorp",
"duration": "2023 - Present",
"highlights": [
"Architected low-latency prompt caching server decreasing LLM inference cost by 42%."
]
}
],
"emails": [
"jane.smith@example.com"
]
}
],
"errorCode": "AGENT_ERROR",
"errorMessage": "The sourcing agent encountered an unexpected error.",
"completedAt": "2025-01-01T00:01:30.000Z"
}{
"success": true,
"requestId": "req_550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"createdAt": "2025-01-01T00:00:00.000Z",
"candidatesSourcedCount": 8,
"foundCount": 42,
"scoredCount": 30,
"message": "The sourcing agent is actively analyzing candidates. Please poll again in 10 seconds.",
"candidates": [
{
"profileId": "a1b2c3d4e5f6",
"name": "Jane Smith",
"linkedinUrl": "https://www.linkedin.com/in/janesmith",
"matchScore": 87,
"rationale": "Strong fintech background with Node.js expertise.",
"skills": [
"Node.js",
"TypeScript",
"PostgreSQL"
],
"headline": "Senior Software Engineer at Stripe",
"location": "San Francisco, CA",
"currentCompany": "Stripe",
"currentRole": "Senior Software Engineer",
"aiFitPoints": [
"5+ years Node.js",
"FinTech background"
],
"aiRedFlags": [
"No public cloud experience"
],
"aiDetailedRationale": [
{
"title": "Senior Developer",
"company": "Tech Corp",
"duration": "2 years",
"relevanceExplanation": "Led a team of 5 developers using Python/Django."
}
],
"detailedExperience": [
{
"role": "Staff ML Infrastructure Engineer",
"company": "TechCorp",
"duration": "2023 - Present",
"highlights": [
"Architected low-latency prompt caching server decreasing LLM inference cost by 42%."
]
}
],
"emails": [
"jane.smith@example.com"
]
}
],
"errorCode": "AGENT_ERROR",
"errorMessage": "The sourcing agent encountered an unexpected error.",
"completedAt": "2025-01-01T00:01:30.000Z"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}202 Accepted with status: "processing". Once finished it becomes 200 OK with the full ranked candidate list (or error details if the run failed).
Overview
Use this endpoint to poll for results when you do not have a webhook endpoint configured. TherequestId is the value returned by POST /sourcing.
Polling Strategy
429 RATE_LIMIT_EXCEEDED.async function waitForSourcingResults(requestId) {
const url = `https://api.instaview.sk/sourcing/${requestId}/results`;
const headers = { Authorization: `Bearer ${process.env.INSTAVIEW_API_KEY}` };
while (true) {
const res = await fetch(url, { headers });
const body = await res.json();
if (body.status === 'completed') return body.candidates;
if (body.status === 'failed') throw new Error(`Sourcing failed: ${body.errorMessage}`);
await new Promise(r => setTimeout(r, 5000));
}
}
Response Examples
Still Processing (202 Accepted)
{
"success": true,
"requestId": "req_9f3b827e-8c31-4bda-a7a2-b2d99d14f4e2",
"status": "processing",
"candidatesSourcedCount": 8,
"message": "The sourcing agent is actively analyzing candidates. Please poll again in 5 seconds.",
"createdAt": "2026-05-20T13:20:45.000Z"
}
Completed (200 OK)
{
"success": true,
"requestId": "req_9f3b827e-8c31-4bda-a7a2-b2d99d14f4e2",
"status": "completed",
"foundCount": 115,
"scoredCount": 20,
"createdAt": "2026-05-20T13:20:45.000Z",
"completedAt": "2026-05-20T13:22:04.000Z",
"candidates": [
{
"profileId": "prof_a9238f82-a723",
"name": "Jane Doe",
"linkedinUrl": "https://www.linkedin.com/in/janedoe-ml",
"matchScore": 96,
"rationale": "Jane has over 6 years of experience leading ML Infrastructure. She has active contributions to vLLM, has fine-tuned LLaMA-based architectures, and is remote-compliant.",
"headline": "Staff ML Infrastructure Engineer at TechCorp",
"skills": ["vLLM", "PyTorch", "Kubernetes", "LLMs", "Vector Databases"],
"location": "Seattle, WA, USA",
"currentCompany": "TechCorp",
"currentRole": "Staff ML Infrastructure Engineer",
"aiFitPoints": [
"Active open-source contributor to vLLM library",
"Experience scaling agent architectures to 2M DAU at TechCorp"
],
"aiRedFlags": [
"Short average job tenure in pre-2022 startup roles"
],
"aiDetailedRationale": [
{
"title": "Staff ML Infrastructure Engineer",
"company": "TechCorp",
"duration": "3.5 years",
"relevanceExplanation": "LLM scaling & low-latency infrastructure, Kubernetes orchestration"
}
],
"detailedExperience": [
{
"role": "Staff ML Infrastructure Engineer",
"company": "TechCorp",
"duration": "2023 - Present",
"highlights": [
"Architected low-latency prompt caching server decreasing LLM inference cost by 42%.",
"Deployed production-level multi-agent workflow system servicing 2M DAU."
]
}
]
}
]
}
Failed (200 OK with status: "failed")
{
"success": true,
"requestId": "req_9f3b827e-8c31-4bda-a7a2-b2d99d14f4e2",
"status": "failed",
"errorCode": "PROVIDER_TEMPORARILY_UNAVAILABLE",
"errorMessage": "External sourcing indexing platform returned a 503 after exhausting retries.",
"createdAt": "2026-05-20T13:20:45.000Z",
"completedAt": "2026-05-20T13:21:01.000Z"
}
Multi-Tenant Isolation
If therequestId does not belong to the company associated with the authenticating API key, the API returns 404 REQUEST_NOT_FOUND. This is intentional — it prevents adversarial probing of active execution queues.Authorizations
API key for authentication using Bearer scheme
Path Parameters
The requestId returned by POST /sourcing (e.g. req_550e8400-…).
Response
Sourcing results (completed or failed)
Whether the response was successful.
true
Unique external identifier for this sourcing run.
"req_550e8400-e29b-41d4-a716-446655440000"
Current status of the run.
processing, completed, failed "completed"
ISO 8601 timestamp when the run was created.
"2025-01-01T00:00:00.000Z"
Running count of candidates found so far. Present when status = 'processing'.
8
Total number of candidates found before scoring.
42
Number of candidates that were AI-scored.
30
Human-readable status message. Present when status = 'processing'.
"The sourcing agent is actively analyzing candidates. Please poll again in 10 seconds."
Scored and ranked candidates. Present when status = 'completed'.
Show child attributes
Show child attributes
Machine-readable error code when status = 'failed'.
"AGENT_ERROR"
Human-readable error message when status = 'failed'.
"The sourcing agent encountered an unexpected error."
ISO 8601 timestamp when the run completed or failed.
"2025-01-01T00:01:30.000Z"