{"openapi":"3.1.0","info":{"title":"maxcv.ai API","version":"0.1.0","description":"Tailor a CV/resume to a specific job posting. Honest tailoring (no fabrication), ATS keyword optimization, match score, cover letter and interview prep. See also the MCP server at /mcp and the agent skill at /maxcv/SKILL.md.","contact":{"email":"hello@maxcv.ai","url":"https://maxcv.ai"}},"servers":[{"url":"https://maxcv.ai"}],"paths":{"/api/score":{"post":{"summary":"Score how well a CV matches a job posting (fast, score-only).","description":"Returns the original and tailored match score without generating a full CV. Rate-limited per IP for guests.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"cvText":{"type":"string","description":"CV as plain text (or upload `cv` as a PDF instead)."},"cv":{"type":"string","format":"binary","description":"CV as a PDF file."},"jobDescription":{"type":"string","description":"The job posting text."}},"required":["jobDescription"]}}}},"responses":{"200":{"description":"Score result","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"originalScore":{"type":"number"},"matchScore":{"type":"number"},"requirementCount":{"type":"integer"},"matchedCount":{"type":"integer"}}}}}}}},"429":{"description":"Rate limit exceeded"}}}},"/api/tailor":{"post":{"summary":"Tailor a CV to a job posting (full pipeline).","description":"Generates a tailored CV with ATS keywords, a match score, role-fit assessment and interview prep. Requires authentication (credits). For a no-login trial use the MCP server at /mcp.","security":[{"sessionCookie":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"cvText":{"type":"string"},"cv":{"type":"string","format":"binary"},"jobDescription":{"type":"string"},"outputFormat":{"type":"string","enum":["json","html","pdf"],"default":"json"}},"required":["jobDescription"]}}}},"responses":{"200":{"description":"Tailored CV (JSON, HTML or PDF depending on outputFormat)."},"402":{"description":"Insufficient credits"}}}},"/api/cv/analyze":{"post":{"summary":"Parse a CV into a structured object.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"cvText":{"type":"string"},"cv":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Structured CV"},"429":{"description":"Rate limit exceeded"}}}}},"components":{"securitySchemes":{"sessionCookie":{"type":"apiKey","in":"cookie","name":"session"}}}}