Contents

v1 · Beta

Partner API

Candidate Intelligence API Integration

Give recruiters more confidence before interviews

Run Candidate Intelligence reports directly inside your ATS to verify candidate information, surface unexpected signals, and generate interview questions in seconds.

Request API Access

Best fit for

Applicant Tracking Systems (ATS)

Recruitment CRMs

Job Boards

Internal Talent Platforms

Executive Search Firms

HR Tech Vendors

Partner Benefits

Why Integrate Candidate Intelligence?

Give your customers additional context before interviews while creating new value inside your platform.

📈

Increase Recruiter Engagement

Keep recruiters inside your ATS by providing candidate verification, interview preparation, and additional hiring insights directly within candidate profiles.

💰

Create a New Revenue Stream

Offer Candidate Intelligence reports to your customers and earn recurring revenue through the partner program.

Differentiate Your Platform

Stand out from competing ATS and recruitment solutions with built-in Candidate Intelligence capabilities.

🔍

No Additional Research Required

Help recruiters uncover relevant information beyond the CV without leaving their workflow.

🎯

Improve Hiring Quality

Help recruiters and hiring managers make more informed decisions by providing additional context beyond the CV, highlighting verified findings, surfacing potential risks, and identifying areas that require further validation.

Fast Integration

Typical implementation requires only a few API endpoints and can be completed in less than a day.

Integration flow

1

Get approved and receive an API key

Request access from TieTalent. Once approved, you receive an API key (prefix ats_) for your integration.

2

Add a button inside candidate profiles

Add a "Run candidate intelligence report" button within candidate profiles. When clicked, it changes to "Running intelligence report..." while the report generates. Once ready, the report opens automatically and the button becomes "✕ Close report". When closed, the button reverts to "View Intelligence report" to reopen a report you have already generated.

3

Call the TieTalent API when clicked

POST to /api/v1/analyses with the candidate, client (recruiter), and language. Use your own external IDs on client.id and candidate.id.

4

TieTalent generates the report

The analysis runs in the background. Poll GET /api/v1/analyses/'{'id'}' using the returned id — wait at least 10 seconds between requests while status is queued or processing (see Retry-After response header). Call DELETE on the same path to cancel if the recruiter leaves the profile.

5

Display the report in the candidate profile

Render the report JSON in your own UI, open the hosted report link from metadata.pdf_download_url, or follow the recommended partner UI pattern below.

Performance & Latency

Candidate Intelligence is designed to provide a responsive experience directly within recruiter workflows.

Action

Typical Response Time

Existing report found

< 1 second

New report generation

30–60 seconds

Report reuse logic

Reports are uniquely identified by platform + company + candidate.

Same client company + same candidate → existing report returned instantly, no charge
Different client company + same candidate → new report generated and billed separately
Same client company + different candidate → new report generated and billed

Authentication

Approval required: API keys are issued only to approved partner platforms. Include your key on every request; never expose it in client-side code or public repositories.

HTTP headers

X-API-Key: ats_your_api_key_here
Content-Type: application/json

Create analysis

POST/api/v1/analyses
{
  "language": "en",
  "client": {
    "id": "client_company_123",
    "first_name": "Jane",
    "last_name": "Smith",
    "company": "Acme Recruiting"
  },
  "candidate": {
    "id": "candidate_456",
    "first_name": "John",
    "last_name": "Doe",
    "company": "Example Company",
    "location": "London, UK",
    "role": "Software Engineer",
    "cv": "Optional plain-text CV content…"
  }
}

202 Accepted

The Location header points to GET /api/v1/analyses/'{'id'}'. Retry-After: 10 indicates when to poll next.

202 Accepted
{
  "id": "cmqp23kgg00067gk0rh6jol5o",
  "status": "queued",
  "candidate_id": "candidate_456",
  "created_at": "2026-06-29T12:00:00.000Z"
}

Polling & progressive results

After POST returns 202 Accepted, poll GET /api/v1/analyses/'{'id'}' with the same X-API-Key header. Use the id from the create response.

While status is queued or processing, each GET response includes Retry-After: 10 — wait at least 10 seconds before your next request.

Stop polling when status is completed, failed, or canceled.

GET/api/v1/analyses/'{'id'}'
{
  "id": "cmqp23kgg00067gk0rh6jol5o",
  "status": "processing",
  "candidate_id": "candidate_456",
  "stage": "enrichment",
  "created_at": "2026-06-29T12:00:00.000Z",
  "updated_at": "2026-06-29T12:00:20.000Z",
  "quick_signal": {
    "level": "Green",
    "reason": "Identity supported by multiple matching signals.",
    "identityConfidence": "Medium"
  },
  "signals": [
    {
      "statement": "Senior engineer at Example Company since 2021.",
      "sourceType": "web",
      "sourceUrl": "https://example.com/…",
      "reliability": "High"
    }
  ],
  "report": null,
  "metadata": null,
  "error": null
}

Fields that populate while processing

quick_signalPreliminary identity signal (Green, Orange, or Red) with a short reason — available once enrichment begins.
signalsLive web signals discovered during enrichment. The array grows as external searches complete.
stageCurrent pipeline stage: identity → enrichment → report → done.
reportFull Candidate Intelligence report — populated only when status is completed.
metadataReport metadata including pdf_download_url — populated only when status is completed.

Status values

queuedAccepted and waiting to start.
processingIn progress — poll for quick_signal, signals, and stage updates.
completedReport ready — report and metadata are populated.
failedAnalysis failed — error is populated.
canceledAnalysis was canceled via DELETE /api/v1/analyses/'{'id'}' or reached a terminal cancel state.

Cancel an analysis

DELETE /api/v1/analyses/'{'id'}' stops a queued or in-progress analysis when a recruiter leaves the candidate profile or dismisses a running report. Use the same X-API-Key header as POST and GET.

If the analysis is already completed, failed, or canceled, the endpoint returns the current resource unchanged — no additional charge or side effects.

DELETE/api/v1/analyses/'{'id'}'
// No request body — include X-API-Key header only

200 OK

Returns the analysis resource with status canceled. Partial quick_signal or signals may be present if cancellation happened mid-pipeline. Stop polling once status is canceled.

200 OK
{
  "id": "cmqp23kgg00067gk0rh6jol5o",
  "status": "canceled",
  "candidate_id": "candidate_456",
  "stage": "enrichment",
  "created_at": "2026-06-29T12:00:00.000Z",
  "updated_at": "2026-06-29T12:00:25.000Z",
  "quick_signal": null,
  "signals": [],
  "report": null,
  "metadata": null,
  "error": null
}

Completed analysis

Returned when status is completed.

JSON200 OK
{
  "id": "clx_analysis_id",
  "status": "completed",
  "candidate_id": "candidate_456",
  "stage": "done",
  "created_at": "2026-06-29T12:00:00.000Z",
  "updated_at": "2026-06-29T12:00:45.000Z",
  "quick_signal": {
    "level": "Green",
    "reason": "Identity supported by multiple matching signals.",
    "identityConfidence": "Medium"
  },
  "signals": [
    {
      "statement": "…",
      "sourceType": "web",
      "reliability": "High"
    }
  ],
  "report": {
    "candidateName": "John Doe",
    "recommendation": {
      "decision": "GO with validation",
      "confidence": "Medium",
      "reason": "…",
      "evidence": ["…"]
    },
    "summary": "…",
    "whatToValidate": ["…"]
  },
  "metadata": {
    "report_id": "clx_analysis_id",
    "candidate_id": "candidate_456",
    "language": "en",
    "generated_at": "2026-06-29T12:00:45.000Z",
    "pdf_download_url": "https://intelligence.tietalent.com/api/ats/reports/{id}/pdf?sig=…"
  },
  "error": null
}

Privacy & security

Reports are decision-support tools only and must not be used as the sole basis for hiring decisions. Human review and independent assessment are always required.
Each partner integration is isolated by API key — you can only access analyses created with your credentials.
Use your client.id and candidate.id to map analyses to records in your ATS.
Optional CV text in the request is used for analysis and is not retained afterward.
Data is stored in EU-region infrastructure with encryption at rest.
Candidate Intelligence provides recommendations and validation signals but does not make automated hiring decisions on behalf of users.
Data processing follows the principles of data minimization and purpose limitation.

⚖️ AI Compliance Notice

Candidate Intelligence is designed to support recruiter decision-making, not replace it. Hiring decisions remain the responsibility of the employer and should always include appropriate human review and oversight.

Partner Program

Start integrating Candidate Intelligence

Request access and we will activate your partner API credentials. Integration typically takes less than a day.