{"openapi":"3.1.0","info":{"title":"TalentInitiator Applications API","version":"1.0.0","description":"Send applications from your own site, applicant tracking system or job board. Every application states its legal basis and goes through the same reading, redaction and matching as the rest; a person decides every outcome. Under live evaluation a résumé is read by a model only with the candidate’s consent to processing outside Canada (legalBasis.foreignProcessing); without it the application waits for that consent. Call the API from a server, never from a web page."},"servers":[{"url":"https://app.talentinitiator-ca.com/api/public/v1"}],"security":[{"bearerKey":[]}],"components":{"securitySchemes":{"bearerKey":{"type":"http","scheme":"bearer","description":"An API key from Settings › API: ti_live_… (or ti_demo_… in a demo)."}},"schemas":{"ApiError":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","UNAUTHENTICATED","SESSION_EXPIRED","FORBIDDEN","ROLE_NOT_ALLOWED","PLATFORM_ADMIN_REQUIRED","NOT_FOUND","CONFLICT","RATE_LIMITED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","FEATURE_DISABLED","IDEMPOTENCY_KEY_REQUIRED","IDEMPOTENCY_KEY_REUSED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","LINK_INVALID","LINK_EXPIRED","HUMAN_REASON_REQUIRED","AI_ONLY_DECISION_REFUSED","REASON_CODE_NOT_ALLOWED","INVALID_STAGE_TRANSITION","DECISION_ALREADY_RECORDED","COMPLIANCE_BLOCKED","COMP_RANGE_TOO_WIDE","COMP_RANGE_REQUIRED","AI_STATEMENT_MISSING","LANGUAGE_JUSTIFICATION_REQUIRED","FRENCH_VERSION_REQUIRED","POSTING_VERSION_IMMUTABLE","TEMPLATE_LOCKED_BLOCK","RUBRIC_NOT_APPROVED","RUBRIC_PROTECTED_PROXY","CONSENT_REQUIRED","CONSENT_WITHDRAWN","CASL_BASIS_MISSING","RECIPIENT_SUPPRESSED","OUTREACH_APPROVAL_REQUIRED","MESSAGE_NOT_EDITABLE","UNSUBSCRIBE_LINK_EXPIRED","SEAT_LIMIT_REACHED","PLAN_LIMIT_REACHED","METER_LIMIT_REACHED","PAYMENTS_PENDING","AI_BUDGET_EXCEEDED","AI_PROVIDER_UNAVAILABLE","AI_OUTPUT_INVALID","NEEDS_HUMAN_REVIEW","REDACTION_REQUIRED","LEGAL_HOLD_ACTIVE","RETENTION_MINIMUM","INTERVIEW_NOT_CONSENTED","RERECORD_LIMIT_REACHED","TRANSCRIPT_REVIEW_REQUIRED","INTERVIEW_ALREADY_SUBMITTED","UPLOAD_INCOMPLETE","SLOT_UNAVAILABLE","NOTICE_ALREADY_SENT","SNOOZE_PAST_DUE_DATE","INTEGRATION_PENDING","WEBHOOK_SIGNATURE_INVALID","WEBHOOK_REPLAYED","DUPLICATE_CANDIDATE","DEMO_ONLY"]},"messageKey":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"requestId":{"type":"string"}},"required":["code","messageKey"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"paths":{"/jobs":{"get":{"operationId":"listPublicJobs","summary":"Open jobs with their ids, titles in English and French and references (scope jobs:read)","x-required-scope":"jobs:read","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"object","properties":{"en":{"type":"string"},"fr":{"type":["string","null"]}},"required":["en","fr"],"additionalProperties":false},"references":{"type":"array","items":{"type":"string"}},"city":{"type":"string"},"province":{"type":"string","enum":["ON","QC","BC","AB","MB","SK","NS","NB","NL","PE","YT","NT","NU"]},"employmentType":{"type":"string","enum":["full_time","part_time","casual","temporary","contract","seasonal"]},"postedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","title","references","city","province","employmentType","postedAt"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}}},"401":{"description":"Error: UNAUTHENTICATED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error: FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Error: RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error: INTERNAL_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/applications":{"post":{"operationId":"submitPublicApplication","summary":"Send an application with its résumé and legal basis; it is read, redacted and matched (scope applications:write)","x-required-scope":"applications:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Optional. 16 to 128 letters, digits, hyphens or underscores. A retry with the same key gets the first answer back.","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{16,128}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"default":null,"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"jobReference":{"default":null,"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"candidate":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100},"lastName":{"type":"string","minLength":1,"maxLength":100},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"default":null,"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"preferredLanguage":{"default":"en","type":"string","enum":["en","fr"]},"city":{"default":null,"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"province":{"default":null,"anyOf":[{"type":"string","enum":["ON","QC","BC","AB","MB","SK","NS","NB","NL","PE","YT","NT","NU"]},{"type":"null"}]}},"required":["firstName","lastName","email"]},"resume":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"file"},"fileName":{"type":"string","minLength":1,"maxLength":200},"contentType":{"type":"string","enum":["application/pdf","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]},"base64":{"type":"string","minLength":1,"maxLength":13981016}},"required":["kind","fileName","contentType","base64"]},{"type":"object","properties":{"kind":{"type":"string","const":"text"},"text":{"type":"string","minLength":40,"maxLength":100000}},"required":["kind","text"]}]},"source":{"type":"object","properties":{"system":{"type":"string","minLength":1,"maxLength":80},"externalApplicationId":{"type":"string","minLength":1,"maxLength":200}},"required":["system","externalApplicationId"]},"legalBasis":{"type":"object","properties":{"basis":{"type":"string","enum":["inbound_application","consent"]},"attested":{"type":"boolean","const":true},"consentReference":{"default":null,"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}]},"foreignProcessing":{"default":null,"anyOf":[{"type":"object","properties":{"attested":{"type":"boolean","const":true},"consentReference":{"type":"string","minLength":1,"maxLength":200}},"required":["attested","consentReference"]},{"type":"null"}]}},"required":["basis","attested"]}},"required":["candidate","resume","source","legalBasis"]}}}},"responses":{"200":{"description":"No new application: this external application id was received before, or this person already applied to this job","content":{"application/json":{"schema":{"type":"object","properties":{"applicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["processing","ready_for_review","needs_review","waiting_for_consent","duplicate"]},"duplicate":{"type":"boolean"},"receivedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"statusUrl":{"type":"string"}},"required":["applicationId","jobId","status","duplicate","receivedAt","statusUrl"],"additionalProperties":false}}}},"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"applicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["processing","ready_for_review","needs_review","waiting_for_consent","duplicate"]},"duplicate":{"type":"boolean"},"receivedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"statusUrl":{"type":"string"}},"required":["applicationId","jobId","status","duplicate","receivedAt","statusUrl"],"additionalProperties":false}}}},"400":{"description":"Error: VALIDATION_FAILED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Error: UNAUTHENTICATED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error: FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error: NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Error: CONFLICT, IDEMPOTENCY_KEY_REUSED, METER_LIMIT_REACHED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Error: PAYLOAD_TOO_LARGE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"415":{"description":"Error: UNSUPPORTED_MEDIA_TYPE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Error: CONSENT_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Error: RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error: INTERNAL_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/applications/{applicationId}":{"get":{"operationId":"getPublicApplication","summary":"Processing status of an application sent through the API (scope applications:read)","x-required-scope":"applications:read","parameters":[{"name":"applicationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"applicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["processing","ready_for_review","needs_review","waiting_for_consent","duplicate"]},"receivedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"source":{"type":"object","properties":{"system":{"type":"string"},"externalApplicationId":{"type":"string"}},"required":["system","externalApplicationId"],"additionalProperties":false}},"required":["applicationId","jobId","status","receivedAt","updatedAt","source"],"additionalProperties":false}}}},"401":{"description":"Error: UNAUTHENTICATED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error: FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error: NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Error: RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error: INTERNAL_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}