{"openapi":"3.1.0","info":{"title":"CVTailorly API","version":"1.0.0","description":"Check, score and tailor CVs (UK first; US, Canada, Australia, NZ, Ireland, Europe formats). Check, keywords, interview questions and score are free; tailoring uses one credit from the user's account (Bearer API key issued after purchase). Never fabricates experience."},"servers":[{"url":"https://cvtailorly.com/"}],"components":{"securitySchemes":{"userKey":{"type":"http","scheme":"bearer","description":"User API key (cvb_...) shown after purchase"}},"schemas":{"PaymentRequired":{"type":"object","properties":{"paymentRequired":{"type":"boolean"},"message":{"type":"string"},"buyUrl":{"type":"string"},"freeScore":{"type":"object"}}}}},"paths":{"/api/v1/check":{"post":{"operationId":"checkCv","summary":"Free CV check: ATS, country conventions, length, weak verbs, spelling","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cv_text"],"properties":{"cv_text":{"type":"string"},"region":{"type":"string","enum":["uk","ie","us","ca","au","nz","eu","intl"]},"job_text":{"type":"string"}}}}}},"responses":{"200":{"description":"Check report with categories and findings"},"400":{"description":"Invalid input"}}}},"/api/v1/keywords":{"post":{"operationId":"extractJobKeywords","summary":"Free: keywords and must/nice-to-have requirements from a job ad","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["job_text"],"properties":{"job_text":{"type":"string"},"cv_text":{"type":"string"}}}}}},"responses":{"200":{"description":"Keywords grouped and prioritised"},"400":{"description":"Invalid input"}}}},"/api/v1/interview-questions":{"post":{"operationId":"interviewQuestions","summary":"Free: likely interview questions from a job ad","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["job_text"],"properties":{"job_text":{"type":"string"}}}}}},"responses":{"200":{"description":"Grouped questions"},"400":{"description":"Invalid input"}}}},"/api/v1/score":{"post":{"operationId":"scoreCvAgainstJob","summary":"Free match score + missing keywords","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cv_text","job_text"],"properties":{"cv_text":{"type":"string","minLength":80},"job_text":{"type":"string","minLength":60}}}}}},"responses":{"200":{"description":"Score","content":{"application/json":{"schema":{"type":"object","properties":{"score":{"type":"integer"},"jobTitle":{"type":"string"},"matchedKeywords":{"type":"array","items":{"type":"string"}},"missingKeywords":{"type":"array","items":{"type":"string"}},"tips":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"}}}},"/api/v1/tailor":{"post":{"operationId":"tailorCvToJob","summary":"Tailored UK CV, LinkedIn copy, recruiter note (1 credit); cover letter when the credit includes one","security":[{"userKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cv_text","job_text"],"properties":{"cv_text":{"type":"string","minLength":80},"job_text":{"type":"string","minLength":60}}}}}},"responses":{"200":{"description":"Tailored pack with DOCX/PDF download links"},"402":{"description":"No key/credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}}}}},"/api/v1/nhs-statement":{"post":{"operationId":"nhsSupportingStatement","summary":"NHS supporting statement answering each criterion (1 credit)","security":[{"userKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cv_text","person_spec"],"properties":{"cv_text":{"type":"string"},"person_spec":{"type":"string"}}}}}},"responses":{"200":{"description":"Criteria with STAR evidence, statement, interview questions"},"402":{"description":"No key/credits"}}}}}}