{"openapi":"3.1.0","info":{"title":"ResumeAI API","version":"1.0.0","description":"API for generating and exporting ATS-optimized resumes."},"servers":[{"url":"https://resumeai.jalentrades.com"}],"paths":{"/api/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Service status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/generate-resume":{"get":{"summary":"Service info","deprecated":true,"responses":{"200":{"description":"Service metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}},"post":{"summary":"Generate a resume","deprecated":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResumeRequest"}}}},"responses":{"200":{"description":"Resume generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResumeResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"AI service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/generate-resume-v2":{"get":{"summary":"Structured resume generation service info","responses":{"200":{"description":"Service metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}},"post":{"summary":"Generate structured resume output","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResumeRequest"}}}},"responses":{"200":{"description":"Structured resume generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResumeV2Response"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"AI service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/generate-cover-letter":{"post":{"summary":"Generate a tailored cover letter","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverLetterRequest"}}}},"responses":{"200":{"description":"Cover letter generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverLetterResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/ai/transform":{"post":{"summary":"Transform a resume section","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformRequest"}}}},"responses":{"200":{"description":"Transformed content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"AI service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/analyze-job":{"post":{"summary":"Analyze a job description","deprecated":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeJobRequest"}}}},"responses":{"200":{"description":"Job analysis","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeJobResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/analyze-match-v2":{"get":{"summary":"Analyze match service info","responses":{"200":{"description":"Service metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}},"post":{"summary":"Analyze weighted requirement match between job and resume","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeMatchV2Request"}}}},"responses":{"200":{"description":"Weighted match analysis","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeMatchV2Response"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/analyze-resume":{"post":{"summary":"Analyze a resume","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeResumeRequest"}}}},"responses":{"200":{"description":"Resume analysis","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeResumeResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/import-profile":{"post":{"summary":"Import and normalize profile data from text or PDF","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportProfileRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ImportProfileMultipartRequest"}}}},"responses":{"200":{"description":"Profile imported and parsed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportProfileResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/import-linkedin":{"get":{"summary":"LinkedIn import service info","deprecated":true,"responses":{"200":{"description":"Service metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}},"post":{"summary":"Legacy LinkedIn import endpoint","deprecated":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Profile import result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportProfileResponse"}}}}}}},"/api/import-indeed":{"get":{"summary":"Indeed import service info","deprecated":true,"responses":{"200":{"description":"Service metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}},"post":{"summary":"Legacy Indeed import endpoint","deprecated":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"url":{"type":"string"}}}}}},"responses":{"200":{"description":"Profile import result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportProfileResponse"}}}}}}},"/api/capabilities":{"get":{"summary":"Get runtime feature flags and plan entitlements","responses":{"200":{"description":"Capabilities payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilitiesResponse"}}}}}}},"/api/analytics":{"get":{"summary":"Analytics ingest service info","responses":{"200":{"description":"Service metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}},"post":{"summary":"Ingest privacy-safe product analytics event","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsIngestRequest"}}}},"responses":{"202":{"description":"Event accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsIngestResponse"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/metrics/funnel":{"get":{"summary":"Get funnel metrics for monitoring","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":90,"default":30}},{"name":"x-metrics-key","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Funnel metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelMetricsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/export-pdf":{"post":{"summary":"Export resume to PDF","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"200":{"description":"PDF document","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Premium template requires Pro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/export-docx":{"post":{"summary":"Export resume to DOCX","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"200":{"description":"DOCX document","content":{"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Premium template requires Pro","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"HealthResponse":{"type":"object","properties":{"status":{"type":"string"},"service":{"type":"string"},"time":{"type":"string"},"baseUrl":{"type":"string"},"version":{"type":"string"}}},"ServiceInfo":{"type":"object","properties":{"message":{"type":"string"},"status":{"type":"string"},"features":{"type":"array","items":{"type":"string"}}}},"PersonalInfo":{"type":"object","properties":{"fullName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"location":{"type":"string"},"summary":{"type":"string"}},"required":["fullName","email"]},"ProfessionalInfo":{"type":"object","properties":{"experience":{"type":"string"},"skills":{"type":"string"},"education":{"type":"string"}},"required":["experience","skills"]},"JobTargeting":{"type":"object","properties":{"jobDescription":{"type":"string"},"jobTitle":{"type":"string"},"company":{"type":"string"}}},"GenerateResumeRequest":{"type":"object","properties":{"personalInfo":{"$ref":"#/components/schemas/PersonalInfo"},"professionalInfo":{"$ref":"#/components/schemas/ProfessionalInfo"},"jobTargeting":{"$ref":"#/components/schemas/JobTargeting"}},"required":["personalInfo","professionalInfo"]},"GenerateResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"resume":{"type":"string"},"analytics":{"type":"object"},"metadata":{"type":"object"}}},"StructuredResume":{"type":"object","properties":{"header":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"location":{"type":"string"}}},"summary":{"type":"string"},"experience":{"type":"array","items":{"type":"string"}},"skills":{"type":"array","items":{"type":"string"}},"education":{"type":"array","items":{"type":"string"}}}},"GenerateResumeV2Response":{"type":"object","properties":{"success":{"type":"boolean"},"structuredResume":{"$ref":"#/components/schemas/StructuredResume"},"renderedText":{"type":"string"},"analytics":{"type":"object"},"quality":{"type":"object"},"metadata":{"type":"object"}}},"CoverLetterRequest":{"type":"object","properties":{"jobDescription":{"type":"string"},"resumeId":{"type":"string"},"tone":{"type":"string","enum":["neutral","confident","executive"]},"resumePayload":{"type":"object"}},"required":["jobDescription"]},"CoverLetterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"coverLetter":{"type":"string"},"metadata":{"type":"object"}}},"TransformRequest":{"type":"object","properties":{"sectionType":{"type":"string","enum":["experience","summary","skills","education","projects"]},"currentText":{"type":"string"},"action":{"type":"string","enum":["improve","shorten","tone","quantify","suggest-skills"]},"options":{"type":"object","properties":{"tone":{"type":"string","enum":["neutral","confident","executive"]},"jobDescription":{"type":"string"}}}},"required":["sectionType","currentText","action"]},"TransformResponse":{"type":"object","properties":{"success":{"type":"boolean"},"transformedText":{"type":"string"},"requestId":{"type":"string"}}},"AnalyzeJobRequest":{"type":"object","properties":{"jobDescription":{"type":"string"}},"required":["jobDescription"]},"AnalyzeJobResponse":{"type":"object"},"AnalyzeMatchV2Request":{"type":"object","properties":{"jobDescription":{"type":"string"},"resumeText":{"type":"string"},"resumeId":{"type":"string"},"userSkills":{"type":"string"}},"required":["jobDescription"]},"AnalyzeMatchV2Response":{"type":"object","properties":{"success":{"type":"boolean"},"analysis":{"type":"object"},"metadata":{"type":"object"}}},"AnalyzeResumeRequest":{"type":"object","properties":{"resume":{"type":"string"}},"required":["resume"]},"AnalyzeResumeResponse":{"type":"object"},"ImportProfileRequest":{"type":"object","properties":{"source":{"type":"string","enum":["pdf_resume","linkedin_pdf","indeed_pdf","text"]},"text":{"type":"string"},"useAI":{"type":"boolean"}},"required":["source"]},"ImportProfileMultipartRequest":{"type":"object","properties":{"source":{"type":"string","enum":["pdf_resume","linkedin_pdf","indeed_pdf","text"]},"text":{"type":"string"},"file":{"type":"string","format":"binary"},"useAI":{"type":"boolean"}},"required":["source"]},"ImportProfileResponse":{"type":"object","properties":{"success":{"type":"boolean"},"source":{"type":"string"},"parsed":{"type":"object"},"metadata":{"type":"object"}}},"CapabilitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"plan":{"type":"string"},"features":{"type":"object"},"entitlements":{"type":"object"},"usage":{"type":["object","null"]},"deprecatedRoutes":{"type":"object"}}},"AnalyticsIngestRequest":{"type":"object","properties":{"event":{"type":"string"},"source":{"type":"string","enum":["web","server"]},"sessionId":{"type":"string"},"path":{"type":"string"},"occurredAt":{"type":"string","format":"date-time"},"properties":{"type":"object","additionalProperties":true}},"required":["event"]},"AnalyticsIngestResponse":{"type":"object","properties":{"success":{"type":"boolean"},"accepted":{"type":"boolean"},"eventId":{"type":"string"},"sessionId":{"type":"string"},"requestId":{"type":"string"}}},"FunnelMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"funnel":{"type":"object"},"metadata":{"type":"object"}}},"ExportRequest":{"type":"object","properties":{"personalInfo":{"$ref":"#/components/schemas/PersonalInfo"},"professionalInfo":{"$ref":"#/components/schemas/ProfessionalInfo"},"generatedResume":{"type":"string"},"template":{"type":"string"},"mode":{"type":"string"},"color":{"type":"string"}},"required":["personalInfo","generatedResume"]},"ErrorResponse":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}