Skip to main content

Authentication

All API endpoints require an API key to be provided in the Authorization header:
Authorization: YOUR_API_KEY

Evaluate Resume

/api/recruit/v1/evaluate
Evaluate a resume against job requirements using LLM.

Description

This endpoint validates the request and authentication, processes the resume and job details through LLM, and returns structured evaluation results.

Request Body

job_id
string
required
Unique identifier for the job
application_id
string
required
Unique identifier for the application
resume_url
string
URL to the resume document (PDF or other supported format)
job_details
object
required
Details about the job requirements
job_details.description
string
Text description of the job
job_details.description_file_url
string
URL to a file containing the job description
job_details.required_skills
array
required
Array of required skills for the job

Response

skills
object
Evaluation results for each skill
skills.{skill_name}.score
integer
Score from 0-100 for the skill
skills.{skill_name}.evidence
string
Evidence from the resume supporting the score
skills.{skill_name}.confidence
integer
Confidence level (0-100) in the evaluation
evaluation_date
string
ISO 8601 timestamp of when the evaluation was performed

Error Codes

StatusDescription
400Bad Request
401Unauthorized
422Validation error
429Rate limit exceeded
500Internal Server Error
curl -X POST https://api.appliedai.club/api/recruit/v1/evaluate \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_id": "job-123",
    "application_id": "app-456",
    "resume_url": "https://example.com/resumes/candidate.pdf",
    "job_details": {
      "description": "We are looking for a senior software engineer with experience in React, Node.js, and AWS.",
      "required_skills": [
        {
          "name": "React",
          "type": "technical",
          "required": true
        },
        {
          "name": "Node.js",
          "type": "technical",
          "required": true
        },
        {
          "name": "AWS",
          "type": "technical",
          "required": true
        }
      ]
    }
  }'
{
  "skills": {
    "React": {
      "score": 85,
      "evidence": "Candidate has 3 years of experience with React, built multiple production applications, and contributed to open source React libraries.",
      "confidence": 90
    },
    "Node.js": {
      "score": 75,
      "evidence": "Candidate has worked with Node.js for backend services and API development for 2 years.",
      "confidence": 85
    },
    "AWS": {
      "score": 60,
      "evidence": "Candidate mentions using AWS services like S3 and EC2, but lacks deeper experience with other AWS services.",
      "confidence": 80
    }
  },
  "evaluation_date": "2023-06-15T10:30:00Z"
}

Analyze Job Description

/api/recruit/v1/analyze-job
Analyze a job description to extract key parameters.

Description

This endpoint processes a job description through LLM and returns structured analysis results including job title, required skills (2-5), and interview questions (2-5).

Request Body

description
string
Text of the job description
description_file_url
string
URL to a file containing the job description

Response

name
string
Extracted job title
required_skills
array
Array of required skills (2-5 items)
required_skills[].name
string
Name of the skill
required_skills[].type
string
Type of skill (e.g., technical, soft skill)
required_skills[].required
boolean
Whether the skill is required or optional
interview_questions
array
Array of suggested interview questions (2-5 items)
description
string
Original job description text
description_file_url
string
Original job description file URL

Error Codes

StatusDescription
400Bad Request
401Unauthorized
422Validation error
429Rate limit exceeded
500Internal Server Error
curl -X POST https://api.appliedai.club/api/recruit/v1/analyze-job \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "We are looking for a Senior Software Engineer to join our team. The ideal candidate will have 5+ years of experience with React, Node.js, and AWS. They should be comfortable working in an agile environment and have excellent communication skills."
  }'
{
  "name": "Senior Software Engineer",
  "required_skills": [
    {
      "name": "React",
      "type": "technical",
      "required": true
    },
    {
      "name": "Node.js",
      "type": "technical",
      "required": true
    },
    {
      "name": "AWS",
      "type": "technical",
      "required": true
    },
    {
      "name": "Agile Methodology",
      "type": "process",
      "required": true
    },
    {
      "name": "Communication",
      "type": "soft skill",
      "required": true
    }
  ],
  "interview_questions": [
    "Can you describe a complex React component you've built and the challenges you faced?",
    "How have you used Node.js to build scalable backend services?",
    "What AWS services have you worked with and how did you implement them?",
    "How do you approach working in an agile team environment?",
    "Describe a situation where your communication skills were crucial to a project's success."
  ],
  "description": "We are looking for a Senior Software Engineer to join our team. The ideal candidate will have 5+ years of experience with React, Node.js, and AWS. They should be comfortable working in an agile environment and have excellent communication skills."
}

Extract Resumes

/api/recruit/v1/extract-resumes
Extract information from resumes.

Description

This endpoint submits documents for asynchronous processing and returns a job ID for tracking progress.

Request Body

files
array
Array of resume files to process
files[].filename
string
required
Name of the file
files[].content_type
string
required
MIME type of the file
files[].content
string
required
Base64 encoded file content
urls
array
Array of URLs to resume files

Response

job_id
string
Unique identifier for the extraction job
message
string
Status message
total_documents
integer
Total number of documents submitted for processing

Error Codes

StatusDescription
400Bad Request
401Unauthorized
422Validation error
429Rate limit exceeded
500Internal Server Error
curl -X POST https://api.appliedai.club/api/recruit/v1/extract-resumes \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://example.com/resumes/candidate1.pdf",
      "https://example.com/resumes/candidate2.pdf"
    ]
  }'
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Processing started",
  "total_documents": 2
}

Get Extraction Status

/api/recruit/v1/extraction-status/{job_id}
Get the status and results of a resume extraction job.

Path Parameters

job_id
string
required
The ID of the extraction job to check

Response

successful_extractions
array
Array of successfully extracted resume details
successful_extractions[].application_name
string
Name of the applicant
successful_extractions[].email
string
Email of the applicant
successful_extractions[].resume_url
string
URL to the resume
total_processed
integer
Total number of documents processed
successful_count
integer
Number of documents successfully processed
failed_count
integer
Number of documents that failed processing
status
string
Current status of the extraction job

Error Codes

StatusDescription
400Bad Request
401Unauthorized
404Not Found
422Validation error
429Rate limit exceeded
500Internal Server Error
curl -X GET https://api.appliedai.club/api/recruit/v1/extraction-status/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: YOUR_API_KEY"
{
  "successful_extractions": [
    {
      "application_name": "John Doe",
      "email": "john.doe@example.com",
      "resume_url": "https://example.com/resumes/candidate1.pdf"
    },
    {
      "application_name": "Jane Smith",
      "email": "jane.smith@example.com",
      "resume_url": "https://example.com/resumes/candidate2.pdf"
    }
  ],
  "total_processed": 2,
  "successful_count": 2,
  "failed_count": 0,
  "status": "completed"
}
I