Skip to main content
GET
/
sourcing
/
{id}
/
results
Get sourcing results
curl --request GET \
  --url https://api.instaview.sk/sourcing/{id}/results \
  --header 'Authorization: Bearer <token>'
{
  "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"
}

Documentation Index

Fetch the complete documentation index at: https://docs.instaview.sk/llms.txt

Use this file to discover all available pages before exploring further.

Returns the current state of a sourcing run. While the run is in progress the response is 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. The requestId is the value returned by POST /sourcing.

Polling Strategy

Poll at most once every 5 seconds. Exceeding 120 requests per minute on this endpoint will trigger 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 the requestId 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

Authorization
string
header
required

API key for authentication using Bearer scheme

Path Parameters

id
string
required

The requestId returned by POST /sourcing (e.g. req_550e8400-…).

Response

Sourcing results (completed or failed)

success
boolean
required

Whether the response was successful.

Example:

true

requestId
string
required

Unique external identifier for this sourcing run.

Example:

"req_550e8400-e29b-41d4-a716-446655440000"

status
enum<string>
required

Current status of the run.

Available options:
processing,
completed,
failed
Example:

"completed"

createdAt
string
required

ISO 8601 timestamp when the run was created.

Example:

"2025-01-01T00:00:00.000Z"

candidatesSourcedCount
integer

Running count of candidates found so far. Present when status = 'processing'.

Example:

8

foundCount
integer

Total number of candidates found before scoring.

Example:

42

scoredCount
integer

Number of candidates that were AI-scored.

Example:

30

message
string

Human-readable status message. Present when status = 'processing'.

Example:

"The sourcing agent is actively analyzing candidates. Please poll again in 10 seconds."

candidates
object[]

Scored and ranked candidates. Present when status = 'completed'.

errorCode
string

Machine-readable error code when status = 'failed'.

Example:

"AGENT_ERROR"

errorMessage
string

Human-readable error message when status = 'failed'.

Example:

"The sourcing agent encountered an unexpected error."

completedAt
string

ISO 8601 timestamp when the run completed or failed.

Example:

"2025-01-01T00:01:30.000Z"