v2.0 Public Beta

API Reference

Integrate Recruitment AI Agent directly into your ATS or internal tools. Our REST API allows you to programmatically analyze resumes, process interviews, and generate tailored questions.

Base URL

API Gateway (Public Endpoint)

https://recruitaiagent-api.keertikaonline.com/api

Authentication

All API requests must include your API Key in the X-API-Key header. You can find your API key in your account dashboard.

Header Format

X-API-Key: sk_live_51M...

Process Tracking

When using the Gateway URL for uploads, the API will immediately return a logId. Use the tracking endpoint to poll for the final result.

GETproxy/logs/:id

Status Values

pending

Task is queued and waiting for worker

processing

Task is currently being analyzed by AI

completed

Task finished successfully (responseData included)

failed

An error occurred during processing

Example Request

const response = await fetch('https://recruitaiagent-api.keertikaonline.com/api/proxy/logs/YOUR_LOG_ID', {
  method: 'GET',
  headers: { 'X-API-Key': 'YOUR_API_KEY' }
});

const result = await response.json();
// Result: { "success": true, "data": { "status": "completed", ... } }

POSTproxy/upload/resume

Resume Analysis

Asynchronously scan and score a resume against a job description. Returns a logId for tracking.

Parameters

resumeFile

The candidate Resume file (PDF, DOCX)

Required
jd_fileFile

Either pass JD as file (PDF). Do not pass both jd and jd_file.

jdText

Or pass raw Job Description text. Do not pass both jd and jd_file.

Example Request

const response = await fetch('https://recruitaiagent-api.keertikaonline.com/api/proxy/upload/resume', {
  method: 'POST',
  headers: { 'X-API-Key': 'YOUR_API_KEY' },
  body: formData
});

const result = await response.json();
// Result: { "success": true, "data": { "logId": "...", "status": "pending" } }
POSTproxy/upload/interview

Interview Analysis

Analyze an interview recording. Provides transcription and behavioral insights.

Parameters

resumeFile

The candidate Resume file (PDF, DOCX)

Required
audioFile

Recording (MP3, WAV, M4A)

Required
jd_fileFile

Either pass JD as file (PDF). Do not pass both jd and jd_file.

jdText

Or pass raw Job Description text. Do not pass both jd and jd_file.

Example Request

const response = await fetch('https://recruitaiagent-api.keertikaonline.com/api/proxy/upload/interview', {
  method: 'POST',
  headers: { 'X-API-Key': 'YOUR_API_KEY' },
  body: formData
});

const result = await response.json();
// Result: { "success": true, "data": { "logId": "...", "status": "pending" } }
POSTproxy/generate/questions

Generate Questions

Create tailored interview questions from a Job Description.

Parameters

jd_fileFile

Either pass JD as file (PDF). Do not pass both jd and jd_file.

jdText

Or pass raw Job Description text. Do not pass both jd and jd_file.

languageText

Optional: Question language (default: English)

Example Request

const response = await fetch('https://recruitaiagent-api.keertikaonline.com/api/proxy/generate/questions', {
  method: 'POST',
  headers: { 'X-API-Key': 'YOUR_API_KEY' },
  body: formData
});

const result = await response.json();
// Result: { "success": true, "data": { "logId": "...", "status": "pending" } }
GETproxy/logs

Retrieve Logs

Get a paginated list of all your past API requests and their processing status. Use pagination to navigate through large histories.

Parameters

pageQuery

Page number for pagination (default: 1)

limitQuery

Number of items per page (default: 10, max: 100)

Example Request

const response = await fetch('https://recruitaiagent-api.keertikaonline.com/api/proxy/logs?page=1&limit=20', {
  method: 'GET',
  headers: {
    'X-API-Key': 'YOUR_API_KEY'
  }
});

const result = await response.json();
// Result: { "success": true, "data": [...], "pagination": { "total": 100, "page": 1, "limit": 20, "pages": 5 } }