openapi: 3.0.3 info: title: SmartRecruiters Candidate Applications API description: The SmartRecruiters Candidate API enables customers to import, export, read, and update candidate data. Provides full candidate profile management including personal information, application history, notes, and attachments. version: 1.0.0 contact: name: SmartRecruiters Developer Support url: https://developers.smartrecruiters.com/ servers: - url: https://api.smartrecruiters.com description: SmartRecruiters Production API security: - ApiKey: [] tags: - name: Applications paths: /candidates/{candidateId}/applications: get: operationId: listCandidateApplications summary: List Candidate Applications description: Returns all job applications associated with a specific candidate. tags: - Applications parameters: - name: candidateId in: path required: true description: The unique candidate identifier schema: type: string responses: '200': description: List of applications content: application/json: schema: type: object properties: content: type: array items: $ref: '#/components/schemas/Application' '401': description: Unauthorized '403': description: Forbidden '404': description: Candidate not found /v1/companies/{companyIdentifier}/postings/{postingId}/candidates: post: operationId: submitApplication summary: Submit Job Application description: Creates a new candidate application for a specific job posting. Supports submission of candidate profile, screening question answers, and resume/CV attachments. tags: - Applications parameters: - name: companyIdentifier in: path required: true description: The company identifier schema: type: string - name: postingId in: path required: true description: The unique posting ID or UUID schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ApplicationSubmission' responses: '201': description: Application submitted successfully content: application/json: schema: $ref: '#/components/schemas/ApplicationResult' '400': description: Bad request '401': description: Unauthorized '404': description: Posting not found '429': description: Too many requests /v1/companies/{companyIdentifier}/postings/{postingId}/candidates/{candidateId}/status: get: operationId: getApplicationStatus summary: Get Application Status description: Retrieves the current application status of a specific candidate for a specific job posting. tags: - Applications parameters: - name: companyIdentifier in: path required: true description: The company identifier schema: type: string - name: postingId in: path required: true description: The unique posting ID or UUID schema: type: string - name: candidateId in: path required: true description: The candidate ID schema: type: string responses: '200': description: Application status content: application/json: schema: $ref: '#/components/schemas/ApplicationStatus' '401': description: Unauthorized '403': description: Forbidden '404': description: Application not found components: schemas: Answer: type: object properties: id: type: string description: Question ID answer: oneOf: - type: string - type: array items: type: string - type: boolean SourceDetails: type: object properties: type: type: string description: The source type (e.g., DIRECT, REFERRAL, LINKEDIN) subtype: type: string refId: type: string Location: type: object properties: country: type: string description: ISO 3166-1 alpha-2 country code countryCode: type: string region: type: string city: type: string address: type: string postalCode: type: string remote: type: boolean description: Whether the position is remote ApplicationSubmission: type: object required: - firstName - lastName - email properties: firstName: type: string description: Candidate first name lastName: type: string description: Candidate last name email: type: string format: email description: Candidate email address phone: type: string description: Candidate phone number location: $ref: '#/components/schemas/Location' web: type: object properties: linkedIn: type: string format: uri facebook: type: string format: uri portfolio: type: string format: uri tags: type: array items: type: string answers: type: array description: Answers to screening questions items: $ref: '#/components/schemas/Answer' ApplicationStatus: type: object properties: candidateId: type: string postingId: type: string status: type: string enum: - IN_PROGRESS - REJECTED - OFFERED - HIRED reasonForRejection: type: object properties: id: type: string label: type: string ApplicationResult: type: object properties: id: type: string description: Application ID candidateId: type: string description: Candidate ID postingId: type: string description: Posting ID status: type: string description: Initial application status Application: type: object properties: id: type: string candidateId: type: string jobId: type: string jobTitle: type: string status: type: string enum: - IN_PROGRESS - REJECTED - OFFERED - HIRED appliedOn: type: string format: date-time updatedOn: type: string format: date-time source: $ref: '#/components/schemas/SourceDetails' securitySchemes: ApiKey: type: apiKey in: header name: X-SmartToken OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://www.smartrecruiters.com/identity/oauth/token scopes: candidates.read: Read candidate data candidates.write: Write candidate data