{"openapi":"3.0.3","info":{"title":"Vaultd API","description":"AI-powered resume optimization. Check ATS compatibility, generate optimized content, tailor resumes to job descriptions.","version":"1.0.0","contact":{"email":"support@vaultd.ai","url":"https://vaultd.ai/developers"}},"servers":[{"url":"https://vaultd.ai","description":"Production"}],"security":[{"bearerAuth":[]}],"paths":{"/api/v1/ats-check":{"post":{"operationId":"checkATS","summary":"Check ATS compatibility","description":"Analyze resume text for ATS compatibility. Returns score, breakdown, issues, keyword analysis.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["resumeText"],"properties":{"resumeText":{"type":"string","minLength":50,"description":"Full resume text to analyze (min 50 chars)"},"industry":{"type":"string","enum":["general","healthcare","technology","finance"],"default":"general"}}}}}},"responses":{"200":{"description":"ATS analysis result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ATSResult"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/NoCredits"},"429":{"$ref":"#/components/responses/RateLimit"}}}},"/api/v1/generate":{"post":{"operationId":"generateResume","summary":"Generate optimized resume","description":"Takes structured resume data and generates ATS-optimized content using AI.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateInput"}}}},"responses":{"200":{"description":"Generated resume content"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/NoCredits"}}}},"/api/v1/tailor":{"post":{"operationId":"tailorResume","summary":"Tailor resume to job description","description":"Analyzes job description and suggests resume changes to maximize match rate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["resumeData","jobDescription"],"properties":{"resumeData":{"$ref":"#/components/schemas/ParsedResume"},"jobDescription":{"type":"string","minLength":20}}}}}},"responses":{"200":{"description":"Tailored changes and match score"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/NoCredits"}}}},"/api/v1/parse":{"post":{"operationId":"parseResume","summary":"Parse resume file (API only)","description":"Upload PDF or DOCX. AI extracts and structures content. Not supported in GPT Actions.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["resume"],"properties":{"resume":{"type":"string","format":"binary","description":"PDF or DOCX file (max 5MB)"}}}}}},"responses":{"200":{"description":"Parsed resume data"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/NoCredits"},"422":{"description":"Could not extract text from file"}}}},"/api/v1/optimize":{"post":{"operationId":"optimizeContent","summary":"Optimize resume section","description":"Takes a section of resume content and returns an ATS-optimized version.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content","industry"],"properties":{"content":{"type":"string","minLength":10},"industry":{"type":"string"},"jobTitle":{"type":"string"},"section":{"type":"string","enum":["summary","experience","skills","education"]}}}}}},"responses":{"200":{"description":"Optimized content"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/NoCredits"}}}},"/api/v1/usage":{"get":{"operationId":"getUsage","summary":"Check API key usage","description":"Returns remaining credits, rate limit, and key metadata.","responses":{"200":{"description":"Usage data"},"401":{"$ref":"#/components/responses/Unauthorized"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Vaultd API key (vaultd_sk_...)"}},"schemas":{"ATSResult":{"type":"object","properties":{"score":{"type":"integer","minimum":0,"maximum":100},"breakdown":{"type":"object","properties":{"format":{"type":"integer"},"structure":{"type":"integer"},"content":{"type":"integer"},"keywords":{"type":"integer"}}},"issues":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"message":{"type":"string"},"impact":{"type":"string"}}}},"wordCount":{"type":"integer"},"matchedKeywords":{"type":"array","items":{"type":"string"}},"missingKeywords":{"type":"array","items":{"type":"string"}},"actionVerbCount":{"type":"integer"}}},"ParsedResume":{"type":"object","properties":{"personalInfo":{"type":"object","properties":{"fullName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"location":{"type":"string"}}},"summary":{"type":"string"},"experience":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"company":{"type":"string"},"position":{"type":"string"},"description":{"type":"string"}}}},"education":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"institution":{"type":"string"},"degree":{"type":"string"}}}},"skills":{"type":"array","items":{"type":"string"}},"industry":{"type":"string"}}},"GenerateInput":{"type":"object","required":["personalInfo","skills","industry"],"properties":{"personalInfo":{"type":"object","required":["name","email"],"properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"location":{"type":"string"},"summary":{"type":"string"}}},"experience":{"type":"array","items":{"type":"object","properties":{"company":{"type":"string"},"position":{"type":"string"},"startDate":{"type":"string"},"endDate":{"type":"string"},"description":{"type":"string"}}}},"education":{"type":"array","items":{"type":"object","properties":{"institution":{"type":"string"},"degree":{"type":"string"},"graduationDate":{"type":"string"}}}},"skills":{"type":"array","items":{"type":"string"},"minItems":1},"industry":{"type":"string","enum":["healthcare","tech","technology","finance"]}}}},"responses":{"Unauthorized":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"NoCredits":{"description":"No credits remaining","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"credits_remaining":{"type":"integer"}}}}}},"RateLimit":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"limit":{"type":"integer"}}}}}}}}}