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/apiAuthentication
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.
proxy/logs/:idStatus Values
pendingTask is queued and waiting for worker
processingTask is currently being analyzed by AI
completedTask finished successfully (responseData included)
failedAn 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", ... } }proxy/upload/resumeResume Analysis
Asynchronously scan and score a resume against a job description. Returns a logId for tracking.
Parameters
resumeFileThe candidate Resume file (PDF, DOCX)
Requiredjd_fileFileEither pass JD as file (PDF). Do not pass both jd and jd_file.
jdTextOr 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" } }proxy/upload/interviewInterview Analysis
Analyze an interview recording. Provides transcription and behavioral insights.
Parameters
resumeFileThe candidate Resume file (PDF, DOCX)
RequiredaudioFileRecording (MP3, WAV, M4A)
Requiredjd_fileFileEither pass JD as file (PDF). Do not pass both jd and jd_file.
jdTextOr 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" } }proxy/generate/questionsGenerate Questions
Create tailored interview questions from a Job Description.
Parameters
jd_fileFileEither pass JD as file (PDF). Do not pass both jd and jd_file.
jdTextOr pass raw Job Description text. Do not pass both jd and jd_file.
languageTextOptional: 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" } }proxy/logsRetrieve Logs
Get a paginated list of all your past API requests and their processing status. Use pagination to navigate through large histories.
Parameters
pageQueryPage number for pagination (default: 1)
limitQueryNumber 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 } }