{"openapi":"3.0.0","info":{"version":"1.0.0","title":"The Fractional Match (TFM) API","description":"API documentation for TFM Backend"},"servers":[{"url":"https://api.ddsmatchmaker.net"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"partnerApiKey":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"RegisterRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"password":{"type":"string","minLength":6,"maxLength":128},"role":{"type":"string","enum":["expert","client","rpo"],"default":"expert"},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","password"]},"LoginRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"password":{"type":"string","minLength":1,"maxLength":128},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","password"]},"AdminLoginRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"masterPassword":{"type":"string","minLength":1,"maxLength":256},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","masterPassword"]},"VerifyEmailRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"otp":{"type":"string","pattern":"^\\d{6}$"},"source":{"type":"string","enum":["jobs"]}},"required":["email","otp"]},"ResendOtpRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"}},"required":["email"]},"ChangePasswordRequest":{"type":"object","properties":{"currentPassword":{"type":"string","minLength":1,"maxLength":128},"newPassword":{"type":"string","minLength":6,"maxLength":128}},"required":["currentPassword","newPassword"]},"ForgotPasswordRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email"]},"ResetPasswordRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"otp":{"type":"string","pattern":"^\\d{6}$"},"newPassword":{"type":"string","minLength":6,"maxLength":128},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","otp","newPassword"]},"UpdateUserRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"avatarUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","enum":[""]}]}}},"FullProfileUpdateRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"avatarUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","enum":[""]}]},"role":{"type":"string","enum":["expert","client"]},"onboardingStep":{"type":"string","nullable":true,"minLength":1,"maxLength":64},"profile":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"credential":{"type":"string","maxLength":100},"specialty":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"yearsExperience":{"type":"number"},"availability":{"type":"string","maxLength":50},"availabilityDate":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"bio":{"type":"string","maxLength":2000},"phoneNumber":{"type":"string","pattern":"^\\d{6,15}$"},"countryCode":{"type":"string","pattern":"^\\+\\d{1,4}$"},"linkedinUrl":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"personalWebsite":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"systemsExperience":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"engagementType":{"type":"string","nullable":true,"maxLength":50},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":100}},"company":{"type":"string","maxLength":200},"jobSeekerIntent":{"type":"string","enum":["actively_looking","open_to_opportunities","not_looking"]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["category","items"]}},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItemInput"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}}}}}},"OutcomeItem":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"metric":{"type":"string","maxLength":200},"description":{"type":"string","maxLength":1000}},"required":["title","metric","description"]},"BackgroundItem":{"type":"object","properties":{"company":{"type":"string","maxLength":200},"role":{"type":"string","maxLength":200},"startYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2100},"endYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2100},"description":{"type":"string","maxLength":2000},"currentlyWorking":{"type":"boolean"}},"required":["company","role","startYear","endYear","description","currentlyWorking"]},"CredentialItem":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"issuer":{"type":"string","maxLength":200},"year":{"type":"string","maxLength":20}},"required":["name","issuer","year"]},"LicenseItem":{"type":"object","properties":{"licenseNumber":{"type":"string","minLength":1,"maxLength":100},"licensedState":{"type":"string","minLength":1,"maxLength":100}},"required":["licenseNumber","licensedState"]},"EducationItemInput":{"type":"object","properties":{"school":{"type":"string","minLength":1,"maxLength":150},"degree":{"type":"string","minLength":1,"maxLength":150},"fieldOfStudy":{"type":"string","minLength":1,"maxLength":150},"startMonth":{"type":"integer","nullable":true,"minimum":1,"maximum":12},"startYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2036},"endMonth":{"type":"integer","nullable":true,"minimum":1,"maximum":12},"endYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2036},"grade":{"type":"string","maxLength":50},"programType":{"type":"string","nullable":true,"enum":["general_dentistry","ada_specialty","other",null]},"affiliation":{"type":"string","nullable":true,"enum":["student","class_president","faculty","dean","alumni",null]},"studentYear":{"type":"string","nullable":true,"enum":["D1","D2","D3","D4",null]}},"required":["school","degree","fieldOfStudy","startMonth","startYear","endMonth","endYear","grade"]},"AdditionalDetailUpdate":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"credential":{"type":"string","maxLength":100},"specialty":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"yearsExperience":{"type":"number"},"availability":{"type":"string","maxLength":50},"availabilityDate":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"bio":{"type":"string","maxLength":2000},"phoneNumber":{"type":"string","pattern":"^\\d{6,15}$"},"countryCode":{"type":"string","pattern":"^\\+\\d{1,4}$"},"linkedinUrl":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"personalWebsite":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"systemsExperience":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"engagementType":{"type":"string","nullable":true,"maxLength":50},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItemInput"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItemInput"}}}},"BackgroundItemInput":{"type":"object","properties":{"company":{"type":"string","maxLength":200},"role":{"type":"string","maxLength":200},"startYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2100},"endYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2100},"description":{"type":"string","maxLength":2000},"currentlyWorking":{"type":"boolean"}},"required":["company","role","startYear","endYear","description","currentlyWorking"]},"CreateAssetUploadUrlRequest":{"type":"object","properties":{"fileName":{"type":"string","minLength":1},"contentType":{"type":"string","minLength":1},"fileSizeBytes":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":52428800},"folder":{"type":"string","enum":["user-avatars","feed-images","community-videos","expert-assets","role-assets","general-assets","luma-event-covers","job-cvs","vendor-attachments","vendor-videos"],"default":"general-assets"},"feedPostId":{"type":"string","format":"uuid"}},"required":["fileName","contentType","fileSizeBytes"]},"AssetObjectPathRequest":{"type":"object","properties":{"objectPath":{"type":"string","minLength":1}},"required":["objectPath"]},"RolePosting":{"type":"object","properties":{"companyName":{"type":"string","maxLength":200},"healthcareVertical":{"type":"string","maxLength":100},"contactPerson":{"type":"string","maxLength":100},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","maxLength":200},"workingPreference":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"timeline":{"type":"string","maxLength":100},"budgetRange":{"type":"string","maxLength":100},"hoursPerWeek":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"status":{"type":"string","enum":["pending","active","filled","closed"]}},"required":["companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange"]},"AdminCreateRolePosting":{"type":"object","properties":{"companyName":{"type":"string","maxLength":200},"healthcareVertical":{"type":"string","maxLength":100},"contactPerson":{"type":"string","maxLength":100},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","maxLength":200},"workingPreference":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"timeline":{"type":"string","maxLength":100},"budgetRange":{"type":"string","maxLength":100},"hoursPerWeek":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"status":{"type":"string","enum":["pending","active","filled","closed"]},"userId":{"type":"string","format":"uuid"}},"required":["companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","userId"]},"RoleUpdate":{"type":"object","properties":{"companyName":{"type":"string","maxLength":200},"healthcareVertical":{"type":"string","maxLength":100},"contactPerson":{"type":"string","maxLength":100},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","maxLength":200},"workingPreference":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"timeline":{"type":"string","maxLength":100},"budgetRange":{"type":"string","maxLength":100},"hoursPerWeek":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"status":{"type":"string","enum":["pending","active","filled","closed"]}}},"RoleApplication":{"type":"object","properties":{"message":{"type":"string","maxLength":2000}}},"CreateConsultationRequest":{"type":"object","properties":{"roleTitle":{"type":"string","maxLength":200},"organizationName":{"type":"string","maxLength":200},"organizationLocation":{"type":"string","maxLength":200},"matchScore":{"type":"integer","minimum":0,"maximum":100},"curatedBy":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"primaryExpertise":{"anyOf":[{"type":"string","maxLength":200},{"type":"object","properties":{"id":{"type":"string","maxLength":100},"name":{"type":"string","maxLength":200},"category":{"type":"string","maxLength":100}},"required":["id","name"]}]},"engagementDuration":{"type":"string","maxLength":100},"hourlyRate":{"type":"string","maxLength":100},"availability":{"type":"string","maxLength":100},"timeline":{"anyOf":[{"type":"object","additionalProperties":{"nullable":true}},{"type":"string","maxLength":500}]},"matchInsights":{"type":"string","maxLength":5000}},"required":["roleTitle","organizationName","organizationLocation","matchScore","curatedBy","challenge","primaryExpertise","engagementDuration","hourlyRate","availability","timeline","matchInsights"]},"CreateFeedPost":{"type":"object","properties":{"content":{"type":"string","maxLength":5000}}},"UpdateFeedPost":{"type":"object","properties":{"content":{"type":"string","maxLength":5000},"imageUrl":{"type":"string","nullable":true,"format":"uri"}}},"CreateFeedComment":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":1000}},"required":["content"]},"AdminSendCustomEmailRequest":{"type":"object","properties":{"type":{"type":"string","enum":["admin_custom_connect_call","admin_custom_founder_invite"]},"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":10000}},"required":["type","subject","body"]},"AdminIntroEmailPreviewRequest":{"type":"object","properties":{"recipientFirstName":{"type":"string","minLength":1,"maxLength":100},"recipientLinkedin":{"type":"string","minLength":1,"format":"uri"},"introducerFirstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"introducerEmail":{"type":"string","format":"email"},"introducerLinkedin":{"type":"string","minLength":1,"format":"uri"},"introduceeFirstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"introduceeFullName":{"type":"string","minLength":1,"maxLength":200},"introduceeTitle":{"type":"string","minLength":1,"maxLength":200},"introduceeCompany":{"type":"string","minLength":1,"maxLength":200},"introduceeEmail":{"type":"string","format":"email"},"introduceeLinkedin":{"type":"string","minLength":1,"format":"uri"},"introduceeSchedulingLink":{"type":"string","minLength":1,"format":"uri"},"introReason":{"type":"string","minLength":1,"maxLength":500},"senderName":{"type":"string","minLength":1,"maxLength":100},"senderTitle":{"type":"string","minLength":1,"maxLength":200},"senderOrg":{"type":"string","minLength":1,"maxLength":200}},"required":["recipientLinkedin","introducerFirstName","introducerEmail","introducerLinkedin","introduceeFirstName","introduceeFullName","introduceeTitle","introduceeCompany","introduceeEmail","introduceeLinkedin","introduceeSchedulingLink","introReason","senderName","senderTitle","senderOrg"]},"AdminSendIntroEmailRequest":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":10000},"introducerEmail":{"type":"string","format":"email"},"introduceeEmail":{"type":"string","format":"email"}},"required":["subject","body","introducerEmail","introduceeEmail"]},"AdminZohoCandidateRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","format":"email"},"secondaryEmail":{"type":"string","format":"email"},"phone":{"type":"string","minLength":1,"maxLength":30},"city":{"type":"string","minLength":1,"maxLength":100},"state":{"type":"string","minLength":1,"maxLength":100},"currentJobTitle":{"type":"string","minLength":1,"maxLength":200},"experienceInYears":{"type":"integer","minimum":0,"maximum":70},"skillSet":{"type":"string","minLength":1,"maxLength":1000},"linkedinUrl":{"type":"string","minLength":1},"openToWork":{"type":"boolean"}},"required":["firstName","lastName"]},"ZohoCandidate":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string"},"email":{"type":"string","nullable":true},"secondaryEmail":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"currentJobTitle":{"type":"string","nullable":true},"experienceInYears":{"type":"number","nullable":true},"skillSet":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"openToWork":{"type":"boolean"},"source":{"type":"string","nullable":true,"description":"Email of the user who added the candidate"},"createdAt":{"type":"string","nullable":true}},"required":["id","firstName","lastName","email","secondaryEmail","phone","city","state","currentJobTitle","experienceInYears","skillSet","linkedinUrl","openToWork","source","createdAt"]},"AdminZohoCreateCandidateRequest":{"allOf":[{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","format":"email"},"secondaryEmail":{"type":"string","format":"email"},"phone":{"type":"string","minLength":1,"maxLength":30},"city":{"type":"string","minLength":1,"maxLength":100},"state":{"type":"string","minLength":1,"maxLength":100},"currentJobTitle":{"type":"string","minLength":1,"maxLength":200},"experienceInYears":{"type":"integer","minimum":0,"maximum":70},"skillSet":{"type":"string","minLength":1,"maxLength":1000},"linkedinUrl":{"type":"string","minLength":1},"openToWork":{"type":"boolean"}},"required":["firstName","lastName"]},{"type":"object","properties":{"jobIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"minItems":1,"maxItems":50}}}]},"AdminZohoAssociateJobsRequest":{"type":"object","properties":{"jobIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"minItems":1,"maxItems":50}},"required":["jobIds"]},"AdminZohoBulkCandidatesRequest":{"type":"object","properties":{"candidates":{"type":"array","items":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","format":"email"},"secondaryEmail":{"type":"string","format":"email"},"phone":{"type":"string","minLength":1,"maxLength":30},"city":{"type":"string","minLength":1,"maxLength":100},"state":{"type":"string","minLength":1,"maxLength":100},"currentJobTitle":{"type":"string","minLength":1,"maxLength":200},"experienceInYears":{"type":"integer","minimum":0,"maximum":70},"skillSet":{"type":"string","minLength":1,"maxLength":1000},"linkedinUrl":{"type":"string","minLength":1},"openToWork":{"type":"boolean"}},"required":["firstName","lastName"]},"minItems":1,"maxItems":10},"jobIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"minItems":1,"maxItems":50}},"required":["candidates"]},"ZohoJobOpening":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"jobOpeningId":{"type":"string","nullable":true},"clientName":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["id","title","jobOpeningId","clientName","city","state"]},"ZohoCandidateJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"jobOpeningId":{"type":"string","nullable":true},"clientName":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"applicationStatus":{"type":"string","nullable":true,"description":"The candidate's status on this job in Zoho, e.g. Associated"}},"required":["id","title","jobOpeningId","clientName","city","state","applicationStatus"]},"MessageErrorResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"EmailNotVerifiedResponse":{"type":"object","properties":{"message":{"type":"string"},"isEmailVerified":{"type":"boolean","enum":[false]},"code":{"type":"string","enum":["EMAIL_NOT_VERIFIED"]}},"required":["message","isEmailVerified"]},"AccountNotFoundResponse":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string","enum":["ACCOUNT_NOT_FOUND"]},"redirectTo":{"type":"string","enum":["/register"]}},"required":["message","code","redirectTo"]},"AccountExistsResponse":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string","enum":["ACCOUNT_EXISTS"]},"redirectTo":{"type":"string","enum":["/login"]}},"required":["message","code","redirectTo"]},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error","message"]},"EducationItem":{"type":"object","properties":{"school":{"type":"string"},"degree":{"type":"string"},"fieldOfStudy":{"type":"string"},"startMonth":{"type":"integer","nullable":true,"minimum":1,"maximum":12},"startYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2100},"endMonth":{"type":"integer","nullable":true,"minimum":1,"maximum":12},"endYear":{"type":"integer","nullable":true,"minimum":1900,"maximum":2100},"grade":{"type":"string"},"programType":{"type":"string","nullable":true,"enum":["general_dentistry","ada_specialty","other",null]},"affiliation":{"type":"string","nullable":true,"enum":["student","class_president","faculty","dean","alumni",null]},"studentYear":{"type":"string","nullable":true,"enum":["D1","D2","D3","D4",null]}},"required":["school","degree","fieldOfStudy","startMonth","startYear","endMonth","endYear","grade"]},"AdminUsersQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"default":1},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"search":{"type":"string"},"role":{"type":"string","enum":["expert","client","admin","rpo"]},"verification":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerification":{"type":"string","enum":["not-verified","verified"]},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsVerification":{"type":"string","enum":["not-verified","verified"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"platform":{"type":"string","enum":["matchmaker","jobs","vendors"]}}},"AdminPatchUser":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified"]},"isEmailVerified":{"type":"boolean"},"onboardingStep":{"type":"string","nullable":true,"maxLength":100},"jobsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified"]},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"role":{"type":"string","enum":["expert","client","admin","rpo"]},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"avatarUrl":{"type":"string"},"consultationRequestCap":{"type":"integer","minimum":0,"maximum":10000}}},"AdminAssignRole":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["expert","client","admin","rpo"]}},"required":["id","role"]},"AdminLogsQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"default":1},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"LumaEvent":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"lumaUrl":{"type":"string"},"location":{"type":"string","nullable":true}},"required":["id","name","startAt","endAt","timezone","coverUrl","lumaUrl","location"]},"LumaEventsPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"lumaUrl":{"type":"string"},"location":{"type":"string","nullable":true}},"required":["id","name","startAt","endAt","timezone","coverUrl","lumaUrl","location"]}},"nextCursor":{"type":"string","nullable":true},"hasMore":{"type":"boolean"}},"required":["items","nextCursor","hasMore"]},"CreateLumaEventRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":10000},"location":{"type":"string","maxLength":500},"meetingUrl":{"type":"string","format":"uri"},"coverUrl":{"type":"string","format":"uri"},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000},"visibility":{"type":"string","enum":["public","members-only","private"]},"inviteeEmails":{"type":"array","items":{"type":"string","format":"email"},"maxItems":500,"default":[]}},"required":["name","startAt","timezone"]},"UpdateLumaEventRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","nullable":true,"format":"date-time"},"timezone":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","nullable":true,"maxLength":10000},"location":{"type":"string","nullable":true,"maxLength":500},"meetingUrl":{"type":"string","nullable":true,"format":"uri"},"coverUrl":{"type":"string","nullable":true,"format":"uri"},"maxCapacity":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"maximum":100000},"visibility":{"type":"string","enum":["public","members-only","private"]}}},"LumaEventDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"meetingUrl":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"visibility":{"type":"string","nullable":true,"enum":["public","members-only","private",null]},"lumaUrl":{"type":"string"}},"required":["id","name","startAt","endAt","timezone","description","location","meetingUrl","coverUrl","visibility","lumaUrl"]},"LumaCoverUploadUrlRequest":{"type":"object","properties":{"contentType":{"type":"string","enum":["image/jpeg","image/png"]}},"required":["contentType"]},"LumaCoverUploadTicket":{"type":"object","properties":{"uploadUrl":{"type":"string"},"fileUrl":{"type":"string"}},"required":["uploadUrl","fileUrl"]},"LumaCreatedEvent":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"lumaUrl":{"type":"string"}},"required":["id","name","startAt","endAt","timezone","lumaUrl"]},"AddLumaGuestsRequest":{"type":"object","properties":{"inviteeIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":500,"default":[]}}},"LumaCreateEventResponseData":{"type":"object","properties":{"event":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"lumaUrl":{"type":"string"}},"required":["id","name","startAt","endAt","timezone","lumaUrl"]},"invites":{"type":"object","properties":{"invitedCount":{"type":"integer","minimum":0},"skippedIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["invitedCount","skippedIds"]}},"required":["event","invites"]},"SubmitEventRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":10000},"location":{"type":"string","maxLength":500},"meetingUrl":{"type":"string","format":"uri"},"coverUrl":{"type":"string","format":"uri"},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000},"visibility":{"type":"string","enum":["public","members-only","private"]},"ticketDrafts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["free","paid"]},"priceUsd":{"type":"number","minimum":0,"maximum":100000},"requireApproval":{"type":"boolean","default":false},"isHidden":{"type":"boolean","default":false},"description":{"type":"string","maxLength":2000},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000}},"required":["name","type"]},"maxItems":50},"inviteeEmails":{"type":"array","items":{"type":"string","format":"email"},"maxItems":500,"default":[]}},"required":["name","startAt","timezone"]},"EventRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"meetingUrl":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"maxCapacity":{"type":"number","nullable":true},"visibility":{"type":"string","nullable":true},"ticketDrafts":{"type":"array","nullable":true,"items":{"type":"object","additionalProperties":{"nullable":true}}},"lumaEventId":{"type":"string","nullable":true},"lumaEventUrl":{"type":"string","nullable":true},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"submitter":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","name","startAt","endAt","timezone","description","location","meetingUrl","coverUrl","maxCapacity","visibility","ticketDrafts","lumaEventId","lumaEventUrl","reviewedAt","rejectionReason","createdAt","submitter"]},"JobPostingRequest":{"type":"object","properties":{"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"contactPerson":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleType":{"type":"string","enum":["general","specialist"]},"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"headcount":{"type":"integer","minimum":1,"maximum":100},"location":{"type":"string","maxLength":300},"additionalLocations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\p{L}/u"},"maxItems":50},"employmentType":{"type":"string","enum":["full-time","part-time","per-diem"]},"workerClassification":{"type":"string","enum":["1099","w2"]},"requiredDaysHours":{"type":"string","maxLength":2000},"startDate":{"type":"string","maxLength":200},"annualCompMin":{"type":"number","minimum":0,"maximum":10000000},"annualCompMax":{"type":"number","minimum":0,"maximum":10000000},"guaranteedDailyRate":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"labFeeResponsibility":{"type":"string","enum":["practice","associate","split"]},"tieredCommission":{"type":"boolean"},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"benefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"yearsOfExperience":{"type":"string","enum":["0-2","3-5","5-plus"]},"experienceLevel":{"type":"string","enum":["required","preferred"]},"requiredProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"microscopeUse":{"type":"string","enum":["required","available","not-needed"]},"requiredLicenses":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":60},"nonNegotiableAvailability":{"type":"string","maxLength":2000},"openToMentoring":{"type":"boolean"},"challenge":{"type":"string","minLength":1,"maxLength":5000},"officeDescription":{"type":"string","maxLength":5000},"whyAttractive":{"type":"string","maxLength":5000},"neighborhoodDescription":{"type":"string","maxLength":5000},"majorEquipment":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"specialistCaseVolume":{"type":"string","maxLength":2000}},"required":["companyName","contactPerson","contactEmail","roleNeeded","challenge"]},"JobApplicationRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","maxLength":254,"format":"email"},"countryCode":{"type":"string","maxLength":10},"phoneNumber":{"type":"string","maxLength":30},"linkedinUrl":{"type":"string","maxLength":500,"pattern":"^https?:\\/\\/(www\\.)?linkedin\\.com\\/in\\/[^/?#\\s]+([/?#].*)?$/i"},"cvObjectPath":{"type":"string","minLength":1,"maxLength":500},"referralCode":{"type":"string","pattern":"^[2-9A-HJ-NP-Z]{8}$/i"}},"required":["firstName","lastName","email"]},"JobCvUploadRequest":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","minLength":1,"maxLength":200},"fileSizeBytes":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":5242880}},"required":["fileName","contentType","fileSizeBytes"]},"JobsMeUpdateRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"cvObjectPath":{"type":"string","minLength":1,"maxLength":500},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"credential":{"type":"string","enum":["associate-dentist","specialist","student"]},"specialty":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":5},"interestedInNonClinical":{"type":"boolean"},"lookingForMentor":{"type":"boolean"},"jobsOnboardingStep":{"type":"string","minLength":1,"maxLength":100}}},"JobDecisionRequest":{"type":"object","properties":{"reason":{"type":"string","maxLength":1000}}},"AdminJobPostingUpdateRequest":{"type":"object","properties":{"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"contactPerson":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleType":{"type":"string","enum":["general","specialist"]},"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"headcount":{"type":"integer","minimum":1,"maximum":100},"location":{"type":"string","maxLength":300},"additionalLocations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\p{L}/u"},"maxItems":50},"employmentType":{"type":"string","enum":["full-time","part-time","per-diem"]},"workerClassification":{"type":"string","enum":["1099","w2"]},"requiredDaysHours":{"type":"string","maxLength":2000},"startDate":{"type":"string","maxLength":200},"annualCompMin":{"type":"number","minimum":0,"maximum":10000000},"annualCompMax":{"type":"number","minimum":0,"maximum":10000000},"guaranteedDailyRate":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"labFeeResponsibility":{"type":"string","enum":["practice","associate","split"]},"tieredCommission":{"type":"boolean"},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"benefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"yearsOfExperience":{"type":"string","enum":["0-2","3-5","5-plus"]},"experienceLevel":{"type":"string","enum":["required","preferred"]},"requiredProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"microscopeUse":{"type":"string","enum":["required","available","not-needed"]},"requiredLicenses":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":60},"nonNegotiableAvailability":{"type":"string","maxLength":2000},"openToMentoring":{"type":"boolean"},"challenge":{"type":"string","minLength":1,"maxLength":5000},"officeDescription":{"type":"string","maxLength":5000},"whyAttractive":{"type":"string","maxLength":5000},"neighborhoodDescription":{"type":"string","maxLength":5000},"majorEquipment":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"specialistCaseVolume":{"type":"string","maxLength":2000}}},"ClinicProfile":{"type":"object","properties":{"practiceName":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryLocation":{"type":"string","nullable":true},"numberOfLocations":{"type":"integer","nullable":true},"practiceTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"rolesToHire":{"type":"array","nullable":true,"items":{"type":"string"}},"hiresPerQuarter":{"type":"string","nullable":true},"payerMix":{"type":"object","nullable":true,"properties":{"ppo":{"type":"number"},"hmo":{"type":"number"},"feeForService":{"type":"number"},"medicaid":{"type":"number"},"other":{"type":"number"}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean","nullable":true},"activeOperatories":{"type":"integer","nullable":true},"plumbedOperatories":{"type":"integer","nullable":true},"hygieneDaysPerWeek":{"type":"integer","nullable":true},"majorTechnology":{"type":"array","nullable":true,"items":{"type":"string"}},"associateRampUpPlan":{"type":"string","nullable":true},"teamCounts":{"type":"object","nullable":true,"properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","nullable":true,"items":{"type":"object","properties":{"specialty":{"type":"string"},"frequency":{"type":"string"}},"required":["specialty","frequency"]}},"officeManagerYears":{"type":"integer","nullable":true},"hasInHouseSpecialtyProgram":{"type":"boolean","nullable":true},"previousInHouseSpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistSupportExperience":{"type":"string","nullable":true},"ownerProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"associateProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"referredOutProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"dailyProductionGoal":{"type":"number","nullable":true},"guaranteedDailyAmount":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"commissionPercentage":{"type":"number","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"compensationFrequency":{"type":"string","nullable":true},"offersHealthInsurance":{"type":"boolean","nullable":true},"otherBenefits":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInMentoring":{"type":"boolean","nullable":true},"consideringSale":{"type":"boolean","nullable":true},"saleStakes":{"type":"array","nullable":true,"items":{"type":"string"}},"stayAfterSale":{"type":"boolean","nullable":true},"stayDurationMonths":{"type":"integer","nullable":true}},"required":["practiceName","description","primaryLocation","numberOfLocations","practiceTypes","rolesToHire","hiresPerQuarter","payerMix","usesInHousePlan","activeOperatories","plumbedOperatories","hygieneDaysPerWeek","majorTechnology","associateRampUpPlan","teamCounts","inHouseSpecialistCoverage","officeManagerYears","hasInHouseSpecialtyProgram","previousInHouseSpecialties","specialistSupportExperience","ownerProcedures","associateProcedures","referredOutProcedures","dailyProductionGoal","guaranteedDailyAmount","guaranteeType","commissionPercentage","tieredCommission","commissionTiers","compensationFrequency","offersHealthInsurance","otherBenefits","interestedInMentoring","consideringSale","saleStakes","stayAfterSale","stayDurationMonths"]},"VendorsMe":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"role":{"type":"string","nullable":true,"enum":["expert","admin","rpo","client",null]},"vendorsRole":{"type":"string","nullable":true,"enum":["vendor","ambassador",null]},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"vendorsOnboardingStep":{"type":"string","nullable":true},"isEmailVerified":{"type":"boolean"}},"required":["id","email","firstName","lastName","avatarUrl","role","vendorsRole","vendorsVerificationTier","vendorsOnboardingStep","isEmailVerified"]},"VendorProfile":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"legalAddress":{"type":"string","nullable":true},"signatoryName":{"type":"string","nullable":true},"signatoryTitle":{"type":"string","nullable":true},"signatoryEmail":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"categorySuggestion":{"type":"string","nullable":true},"wantsAmbassadors":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"introEmailTemplate":{"type":"string","nullable":true},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"attachmentPaths":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["companyName","legalAddress","signatoryName","signatoryTitle","signatoryEmail","offering","businessModel","sellsType","sellsDetail","painPoint","usp","videoUrl","videoObjectPath","socialUrls","linkedinUrl","facebookUrl","schedulingUrl","runsOwnEvents","supportModel","wantsSocialAmplification","categories","subcategories","categorySuggestion","wantsAmbassadors","ambassadorPreferences","ambassadorClassification","ambassadorAttributes","ambassadorTypes","repTypes","commissionOffer","commissionBasis","commissionRate","ambassadorOfferDetails","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","commissionIncludesAmbassadorComp","paymentCadence","introEmailTemplate","successMetricType","successMetricValue","successMetricPeriod","attachmentPaths"]},"AmbassadorProfile":{"type":"object","properties":{"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"paymentMethod":{"type":"string","nullable":true,"enum":["melio","cheque",null]},"monthlyPaidLeadCap":{"type":"number"}},"required":["location","bio","videoUrl","videoObjectPath","socialUrls","linkedinUrl","schedulingUrl","categories","subcategories","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","paymentMethod","monthlyPaidLeadCap"]},"VendorsMeUpdateRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100}}},"VendorProfileUpdateRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"companyName":{"type":"string","nullable":true,"maxLength":200},"legalAddress":{"type":"string","nullable":true,"maxLength":500},"signatoryName":{"type":"string","nullable":true,"maxLength":200},"signatoryTitle":{"type":"string","nullable":true,"maxLength":200},"signatoryEmail":{"type":"string","nullable":true,"maxLength":254,"format":"email"},"offering":{"type":"string","nullable":true,"maxLength":2000},"businessModel":{"type":"string","nullable":true,"maxLength":2000},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true,"maxLength":2000},"painPoint":{"type":"string","nullable":true,"maxLength":2000},"usp":{"type":"string","nullable":true,"maxLength":2000},"videoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"videoObjectPath":{"type":"string","nullable":true,"maxLength":500},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":2048},"maxItems":10},"linkedinUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"facebookUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"schedulingUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":15},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":40},"categorySuggestion":{"type":"string","nullable":true,"maxLength":200},"wantsAmbassadors":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":9},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":8},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":8},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":4},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true,"minimum":0,"maximum":1000000},"ambassadorOfferDetails":{"type":"string","nullable":true,"maxLength":4000},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"integer","nullable":true,"minimum":1,"maximum":600},"commissionTailEndMonths":{"type":"integer","nullable":true,"minimum":0,"maximum":600},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number","minimum":0,"maximum":1000000000},"percentage":{"type":"number","minimum":0,"maximum":100}},"required":["threshold","percentage"]},"maxItems":10},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"introEmailTemplate":{"type":"string","nullable":true,"maxLength":10000},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true,"minimum":0,"maximum":1000000000},"successMetricPeriod":{"type":"string","nullable":true},"attachmentPaths":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":1024},"maxItems":10}}},"AmbassadorProfileUpdateRequest":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":200},"bio":{"type":"string","nullable":true,"maxLength":4000},"videoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"videoObjectPath":{"type":"string","nullable":true,"maxLength":500},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":2048},"maxItems":10},"linkedinUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"schedulingUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"categories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":15},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":40},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":7},"coTravelHours":{"type":"string","nullable":true,"maxLength":100},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":3},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true,"maxLength":200},"paymentMethod":{"type":"string","nullable":true,"enum":["melio","cheque",null]}}},"DirectoryEntry":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["vendor","ambassador"]},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"videoUrl":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"companyName":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"yourInterest":{"type":"boolean"}},"required":["userId","kind","firstName","lastName","categories","subcategories","videoUrl","socialUrls","linkedinUrl","companyName","offering","businessModel","sellsType","sellsDetail","painPoint","usp","facebookUrl","runsOwnEvents","supportModel","wantsSocialAmplification","ambassadorPreferences","ambassadorAttributes","ambassadorTypes","repTypes","ambassadorClassification","commissionOffer","commissionIncludesAmbassadorComp","ambassadorOfferDetails","commissionBasis","commissionRate","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","paymentCadence","successMetricType","successMetricValue","successMetricPeriod","location","bio","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","yourInterest"]},"VendorsInterestSummary":{"type":"object","properties":{"interestedInYou":{"type":"integer"},"yourInterests":{"type":"integer"}},"required":["interestedInYou","yourInterests"]},"VendorInterest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"vendorUserId":{"type":"string","format":"uuid"},"vendorName":{"type":"string","nullable":true},"vendorEmail":{"type":"string"},"vendorCompanyName":{"type":"string","nullable":true},"vendorOffering":{"type":"string","nullable":true},"vendorCategories":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorUserId":{"type":"string","format":"uuid"},"ambassadorName":{"type":"string","nullable":true},"ambassadorEmail":{"type":"string"},"ambassadorLocation":{"type":"string","nullable":true},"ambassadorCategories":{"type":"array","nullable":true,"items":{"type":"string"}},"vendorInterested":{"type":"boolean"},"ambassadorInterested":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","vendorUserId","vendorName","vendorEmail","vendorCompanyName","vendorOffering","vendorCategories","ambassadorUserId","ambassadorName","ambassadorEmail","ambassadorLocation","ambassadorCategories","vendorInterested","ambassadorInterested","createdAt"]},"RecruiterProfile":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"roleTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"specialties":{"type":"array","nullable":true,"items":{"type":"string"}},"locations":{"type":"array","nullable":true,"items":{"type":"string"}},"inventory":{"type":"string","nullable":true},"listingVolume":{"type":"string","nullable":true},"displayAgencyName":{"type":"boolean","nullable":true},"introContact":{"type":"string","nullable":true}},"required":["companyName","roleTypes","specialties","locations","inventory","listingVolume","displayAgencyName","introContact"]},"MyReferral":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"candidateName":{"type":"string"},"candidateAvatarUrl":{"type":"string","nullable":true},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","candidateName","candidateAvatarUrl","createdAt","job"]},"PublicJobCard":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]},"PublicJobDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"createdAt":{"type":"string"},"applyUrl":{"type":"string","format":"uri"}},"required":["id","status","companyName","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","createdAt"]},"JobPosting":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"applicationCount":{"type":"integer"},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"poster":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","companyName","contactPerson","contactEmail","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","reviewedAt","rejectionReason","createdAt"]},"JobApplicant":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"cvUrl":{"type":"string","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true},"referralCode":{"type":"string","nullable":true},"referrer":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"referralCode":{"type":"string","nullable":true}},"required":["id","firstName","lastName","email","avatarUrl","referralCode"]},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","firstName","lastName","email","avatarUrl","countryCode","phoneNumber","linkedinUrl","cvUrl","lookingForMentor","referralCode","referrer","createdAt"]},"MyJobApplication":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","createdAt","job"]},"ChatwootIdentifierHash":{"type":"object","properties":{"identifier":{"type":"string"},"identifierHash":{"type":"string"}},"required":["identifier","identifierHash"]},"SendDocumentRequest":{"type":"object","properties":{"type":{"type":"string","enum":["practice-search-agreement","professional-work-seeking-agreement","spv-organizational-fee-agreement"],"default":"practice-search-agreement"},"provider":{"type":"string","enum":["custom","documenso"],"default":"custom"},"title":{"type":"string","minLength":1,"maxLength":200},"effectiveDate":{"type":"string","minLength":1,"maxLength":60},"practiceName":{"type":"string","minLength":1,"maxLength":200},"practiceEntityType":{"type":"string","minLength":1,"maxLength":120},"practiceAddress":{"type":"string","minLength":1,"maxLength":300},"professionalState":{"type":"string","minLength":1,"maxLength":60},"companyName":{"type":"string","minLength":1,"maxLength":200},"companyState":{"type":"string","minLength":1,"maxLength":60},"companyEntityType":{"type":"string","minLength":1,"maxLength":120},"companyAddress":{"type":"string","minLength":1,"maxLength":300},"companyContactName":{"type":"string","minLength":1,"maxLength":200},"companyContactEmail":{"type":"string","maxLength":200,"format":"email"},"signers":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"signerTitle":{"type":"string","minLength":1,"maxLength":120}},"required":["userId","signerTitle"]},"minItems":1,"maxItems":20}},"required":["title","effectiveDate","signers"]},"SignDocumentRequest":{"type":"object","properties":{"signatureBase64":{"type":"string","minLength":1}},"required":["signatureBase64"]},"SignableDocument":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"adminId":{"type":"string","format":"uuid"},"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"pdfUrl":{"type":"string"},"provider":{"type":"string"},"documensoDocumentId":{"type":"string","nullable":true},"signers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","adminId","type","title","status","pdfUrl","provider","signers","createdAt","updatedAt"]},"DocumentSigner":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]},"AdminDripifyAddLeadsRequest":{"type":"object","properties":{"linkedinUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":1000}},"required":["linkedinUrls"]},"AdminListQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"default":1},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"AdminEntityIdParam":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"AdminTablePageResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]},"AdminTableDeleteResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]},"CreateBlogRequest":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"excerpt":{"type":"string","nullable":true,"maxLength":1000},"byline":{"type":"string","nullable":true,"maxLength":200},"heroImageUrl":{"type":"string","nullable":true,"maxLength":1000,"pattern":"^https?:\\/\\//i"},"content":{"type":"string","minLength":1}},"required":["title","content"]},"UpdateBlogRequest":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"excerpt":{"type":"string","nullable":true,"maxLength":1000},"byline":{"type":"string","nullable":true,"maxLength":200},"heroImageUrl":{"type":"string","nullable":true,"maxLength":1000,"pattern":"^https?:\\/\\//i"},"content":{"type":"string","minLength":1}}}},"parameters":{}},"paths":{"/auth/register":{"post":{"summary":"Register a new user","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"password":{"type":"string","minLength":6,"maxLength":128},"role":{"type":"string","enum":["expert","client","rpo"],"default":"expert"},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","password"]}}}},"responses":{"201":{"description":"User registered successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"token":{"type":"string"}},"required":["user","token"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Account already exists — sign in instead","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string","enum":["ACCOUNT_EXISTS"]},"redirectTo":{"type":"string","enum":["/login"]}},"required":["message","code","redirectTo"]}}}}}}},"/auth/login":{"post":{"summary":"User login","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"password":{"type":"string","minLength":1,"maxLength":128},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","password"]}}}},"responses":{"200":{"description":"Login successful","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"token":{"type":"string"}},"required":["user","token"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Email not verified — a fresh OTP was sent automatically","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"isEmailVerified":{"type":"boolean","enum":[false]},"code":{"type":"string","enum":["EMAIL_NOT_VERIFIED"]}},"required":["message","isEmailVerified"]}}}},"404":{"description":"No account exists for the submitted email; client should redirect to /register","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string","enum":["ACCOUNT_NOT_FOUND"]},"redirectTo":{"type":"string","enum":["/register"]}},"required":["message","code","redirectTo"]}}}}}}},"/auth/admin/login":{"post":{"summary":"Admin master password login","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"masterPassword":{"type":"string","minLength":1,"maxLength":256},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","masterPassword"]}}}},"responses":{"200":{"description":"Admin login successful","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"token":{"type":"string"}},"required":["user","token"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/verify-email":{"post":{"summary":"Verify the email OTP sent at registration; returns a session token on success","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"otp":{"type":"string","pattern":"^\\d{6}$"},"source":{"type":"string","enum":["jobs"]}},"required":["email","otp"]}}}},"responses":{"200":{"description":"Email verified — session issued","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"token":{"type":"string"}},"required":["user","token"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid or expired verification code","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/email-status":{"post":{"summary":"Does an account already exist for this email? Drives the email-first \"request an invite\" flow","description":"Deliberately account-enumerating, behind the same rate limiter and Turnstile challenge as /auth/login — it answers nothing that the 409 on /auth/register and the 404 on /auth/login do not already answer. Returns the boolean and nothing else.","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email"]}}}},"responses":{"200":{"description":"Whether an account exists","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"exists":{"type":"boolean"}},"required":["exists"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Too many attempts","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/resend-otp":{"post":{"summary":"Resend the email verification code (max 3 per 10 minutes per user; 200 for unknown or already-verified emails to avoid account enumeration)","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"}},"required":["email"]}}}},"responses":{"200":{"description":"Generic acknowledgement — no account-existence leak","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Too many code requests — retry after `meta.retryAfterSeconds` seconds","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/change-password":{"post":{"summary":"Change the password of the logged-in user; rotates the session and returns a fresh token","tags":["Auth"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"currentPassword":{"type":"string","minLength":1,"maxLength":128},"newPassword":{"type":"string","minLength":6,"maxLength":128}},"required":["currentPassword","newPassword"]}}}},"responses":{"200":{"description":"Password changed — new session issued","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"token":{"type":"string"}},"required":["user","token"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Current password is incorrect or input invalid","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/forgot-password":{"post":{"summary":"Email a password-reset code to a verified account (max 3 per 10 minutes per user)","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email"]}}}},"responses":{"200":{"description":"Reset code sent","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Please verify your email address first","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"No account exists with this email address","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Too many code requests — retry after `meta.retryAfterSeconds` seconds","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/reset-password":{"post":{"summary":"Verify a reset code and set a new password; returns a session token on success","tags":["Auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"otp":{"type":"string","pattern":"^\\d{6}$"},"newPassword":{"type":"string","minLength":6,"maxLength":128},"turnstileToken":{"type":"string","maxLength":2048}},"required":["email","otp","newPassword"]}}}},"responses":{"200":{"description":"Password reset — session issued","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"token":{"type":"string"}},"required":["user","token"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid or expired reset code","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/me":{"get":{"summary":"Get current user profile","tags":["Auth"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"hasRequestedSpeaker":{"type":"boolean"}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Update current user profile","tags":["Auth"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"avatarUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","enum":[""]}]}}}}}},"responses":{"200":{"description":"Profile updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"hasRequestedSpeaker":{"type":"boolean"}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/profile":{"patch":{"summary":"Update full user and expert profile","tags":["Auth"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"avatarUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","enum":[""]}]},"role":{"type":"string","enum":["expert","client"]},"onboardingStep":{"type":"string","nullable":true,"minLength":1,"maxLength":64},"profile":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"credential":{"type":"string","maxLength":100},"specialty":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"yearsExperience":{"type":"number"},"availability":{"type":"string","maxLength":50},"availabilityDate":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"bio":{"type":"string","maxLength":2000},"phoneNumber":{"type":"string","pattern":"^\\d{6,15}$"},"countryCode":{"type":"string","pattern":"^\\+\\d{1,4}$"},"linkedinUrl":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"personalWebsite":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"systemsExperience":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"engagementType":{"type":"string","nullable":true,"maxLength":50},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":100}},"company":{"type":"string","maxLength":200},"jobSeekerIntent":{"type":"string","enum":["actively_looking","open_to_opportunities","not_looking"]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["category","items"]}},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItemInput"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}}}}}}}}},"responses":{"200":{"description":"Full profile updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"hasRequestedSpeaker":{"type":"boolean"}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/auth/pro-payment-request":{"post":{"summary":"Verified user agrees to pay $500 for Pro; notifies the team","tags":["Auth"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Payment request received; team notified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Only verified users can request Pro upgrade","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/assets/upload-url":{"post":{"summary":"Create a signed Google Cloud Storage upload URL","tags":["Assets"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1},"contentType":{"type":"string","minLength":1},"fileSizeBytes":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":52428800},"folder":{"type":"string","enum":["user-avatars","feed-images","community-videos","expert-assets","role-assets","general-assets","luma-event-covers","job-cvs","vendor-attachments","vendor-videos"],"default":"general-assets"},"feedPostId":{"type":"string","format":"uuid"}},"required":["fileName","contentType","fileSizeBytes"]}}}},"responses":{"200":{"description":"Signed upload URL generated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"uploadUrl":{"type":"string","format":"uri"},"fileUrl":{"type":"string","format":"uri"},"signedViewUrl":{"type":"string","format":"uri"},"signedViewUrlExpiresAt":{"type":"string"},"objectPath":{"type":"string"},"contentType":{"type":"string"},"expiresAt":{"type":"string"}},"required":["uploadUrl","fileUrl","signedViewUrl","signedViewUrlExpiresAt","objectPath","contentType","expiresAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/assets/view-url":{"post":{"summary":"Create a signed Google Cloud Storage read URL for an object","tags":["Assets"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"objectPath":{"type":"string","minLength":1}},"required":["objectPath"]}}}},"responses":{"200":{"description":"Signed view URL generated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"objectPath":{"type":"string"},"fileUrl":{"type":"string","format":"uri"},"signedViewUrl":{"type":"string","format":"uri"},"signedViewUrlExpiresAt":{"type":"string"}},"required":["objectPath","fileUrl","signedViewUrl","signedViewUrlExpiresAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/assets/view-url":{"post":{"summary":"Signed read URL for any stored object (admin console)","description":"The reviewer-facing counterpart to POST /assets/view-url, which asserts that the object path belongs to the caller and therefore cannot serve the documents attached to someone else’s application. Authorised by the admin middleware on the route instead of by path ownership, and every call is logged with the admin id and the object path.","tags":["Admin"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"objectPath":{"type":"string","minLength":1}},"required":["objectPath"]}}}},"responses":{"200":{"description":"Signed view URL generated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"objectPath":{"type":"string"},"fileUrl":{"type":"string","format":"uri"},"signedViewUrl":{"type":"string","format":"uri"},"signedViewUrlExpiresAt":{"type":"string"}},"required":["objectPath","fileUrl","signedViewUrl","signedViewUrlExpiresAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an admin","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/assets/metadata":{"post":{"summary":"Get metadata for an uploaded object","tags":["Assets"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"objectPath":{"type":"string","minLength":1}},"required":["objectPath"]}}}},"responses":{"200":{"description":"Asset metadata retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"objectPath":{"type":"string"},"fileUrl":{"type":"string","format":"uri"},"exists":{"type":"boolean"},"contentType":{"type":"string","nullable":true},"sizeBytes":{"type":"number","nullable":true},"updatedAt":{"type":"string","nullable":true},"md5Hash":{"type":"string","nullable":true}},"required":["objectPath","fileUrl","exists","contentType","sizeBytes","updatedAt","md5Hash"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/assets":{"delete":{"summary":"Delete an uploaded object","tags":["Assets"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"objectPath":{"type":"string","minLength":1}},"required":["objectPath"]}}}},"responses":{"200":{"description":"Asset deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"objectPath":{"type":"string"},"deleted":{"type":"boolean"}},"required":["objectPath","deleted"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts":{"get":{"summary":"Get all experts","tags":["Experts"],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"location","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"skills","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"interestedSkills","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"tags","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"jobSeekerIntent","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"engagementType","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"availability","in":"query"},{"schema":{"type":"string","enum":["newest","experience"],"default":"newest"},"required":false,"name":"sortBy","in":"query"}],"responses":{"200":{"description":"List of experts retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","user","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"},"totalVerifiedExperts":{"type":"integer"}},"required":["items","page","limit","total","totalPages","hasMore","totalVerifiedExperts"]},"message":{"type":"string"}},"required":["data","message"]}}}}}}},"/constants":{"get":{"summary":"Get all application constants (dropdown options, taxonomies, country codes, etc.)","tags":["Constants"],"responses":{"200":{"description":"All application constants","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"skills":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"parentCategory":{"type":"array","items":{"type":"string"}},"items":{"type":"array","items":{"type":"string"}}},"required":["category","parentCategory","items"]}},"interestedSkills":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"parentCategory":{"type":"array","items":{"type":"string"}},"items":{"type":"array","items":{"type":"string"}}},"required":["category","parentCategory","items"]}},"professionalTags":{"type":"array","items":{"type":"string"}},"engagementTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"availabilityOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"jobSeekerOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"primaryRoles":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"verticals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string"},"description":{"type":"string"}},"required":["id","name","icon","description"]}},"expertiseAreas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"systems":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"doctoralCredentials":{"type":"array","items":{"type":"string"}},"countryDialCodes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"iso":{"type":"string"}},"required":["value","label","iso"]}},"defaultCountryDialCode":{"type":"string"},"availabilityLabels":{"type":"object","additionalProperties":{"type":"string"}},"rolePostingForm":{"type":"object","properties":{"organizationVerticals":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"roleOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"workingPreferences":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"budgetRanges":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"timelineOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"commitmentOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"tagOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["organizationVerticals","roleOptions","workingPreferences","budgetRanges","timelineOptions","commitmentOptions","tagOptions"]},"recruitCandidateForm":{"type":"object","properties":{"credentials":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"specialties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["credentials","specialties"]},"clinicProfileForm":{"type":"object","properties":{"practiceTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"hiresPerQuarter":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"specialties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"procedureGroups":{"type":"array","items":{"type":"object","properties":{"group":{"type":"string"},"label":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["group","label","items"]}},"guaranteeTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"compensationFrequencies":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"saleStakes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"specialistSupportExperience":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"specialistFrequencies":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["practiceTypes","hiresPerQuarter","specialties","procedureGroups","guaranteeTypes","compensationFrequencies","saleStakes","specialistSupportExperience","specialistFrequencies"]},"recruiterProfileForm":{"type":"object","properties":{"roleTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"specialties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"inventory":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"listingVolume":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["roleTypes","specialties","inventory","listingVolume"]},"jobPostingForm":{"type":"object","properties":{"roleTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"specialties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"employmentTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"workerClassifications":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"startDateOptions":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"guaranteeTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"labFeeResponsibilities":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"yearsOfExperience":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"experienceLevels":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"microscopeUse":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"procedureGroups":{"type":"array","items":{"type":"object","properties":{"group":{"type":"string"},"label":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["group","label","items"]}}},"required":["roleTypes","specialties","employmentTypes","workerClassifications","startDateOptions","guaranteeTypes","labFeeResponsibilities","yearsOfExperience","experienceLevels","microscopeUse","procedureGroups"]},"vendorsForm":{"type":"object","properties":{"vendorCategories":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"subcategories":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["value","label"]}},"ambassadorPreferences":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorSelfIdentification":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"vendorRepTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"commissionOffers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"commissionBases":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"commissionRecurrences":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"paymentCadences":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorClassifications":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorWorkArrangements":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorAvailabilities":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorPaymentMethods":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorAttributes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"ambassadorTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"vendorSellsTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"vendorSupportModels":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"payoutExpirations":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"successMetricTypes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"successMetricPeriods":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"coTravelDays":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"coTravelFormats":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}}},"required":["vendorCategories","ambassadorPreferences","ambassadorSelfIdentification","vendorRepTypes","commissionOffers","commissionBases","commissionRecurrences","paymentCadences","ambassadorClassifications","ambassadorWorkArrangements","ambassadorAvailabilities","ambassadorPaymentMethods","ambassadorAttributes","ambassadorTypes","vendorSellsTypes","vendorSupportModels","payoutExpirations","successMetricTypes","successMetricPeriods","coTravelDays","coTravelFormats"]},"usCities":{"type":"array","items":{"type":"string"}}},"required":["skills","interestedSkills","professionalTags","engagementTypes","availabilityOptions","jobSeekerOptions","primaryRoles","verticals","expertiseAreas","systems","doctoralCredentials","countryDialCodes","defaultCountryDialCode","availabilityLabels","rolePostingForm","recruitCandidateForm","clinicProfileForm","recruiterProfileForm","jobPostingForm","vendorsForm","usCities"]},"message":{"type":"string"}},"required":["data","message"]}}}}}}},"/luma/events/upcoming":{"get":{"summary":"Get a page of the calendar's upcoming Luma events","tags":["Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"A page of upcoming events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"lumaUrl":{"type":"string"},"location":{"type":"string","nullable":true}},"required":["id","name","startAt","endAt","timezone","coverUrl","lumaUrl","location"]}},"nextCursor":{"type":"string","nullable":true},"hasMore":{"type":"boolean"}},"required":["items","nextCursor","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/luma/events/past":{"get":{"summary":"Get a page of the calendar's past Luma events","tags":["Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"A page of past events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"lumaUrl":{"type":"string"},"location":{"type":"string","nullable":true}},"required":["id","name","startAt","endAt","timezone","coverUrl","lumaUrl","location"]}},"nextCursor":{"type":"string","nullable":true},"hasMore":{"type":"boolean"}},"required":["items","nextCursor","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/luma/events/requests":{"post":{"summary":"Submit a Luma event for admin approval (verified members).","tags":["Luma"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":10000},"location":{"type":"string","maxLength":500},"meetingUrl":{"type":"string","format":"uri"},"coverUrl":{"type":"string","format":"uri"},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000},"visibility":{"type":"string","enum":["public","members-only","private"]},"ticketDrafts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["free","paid"]},"priceUsd":{"type":"number","minimum":0,"maximum":100000},"requireApproval":{"type":"boolean","default":false},"isHidden":{"type":"boolean","default":false},"description":{"type":"string","maxLength":2000},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000}},"required":["name","type"]},"maxItems":50},"inviteeEmails":{"type":"array","items":{"type":"string","format":"email"},"maxItems":500,"default":[]}},"required":["name","startAt","timezone"]}}}},"responses":{"201":{"description":"Event request created (pending approval)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]}},"required":["id","status"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"get":{"summary":"The requesting member's own event submissions (any status).","tags":["Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","enum":["pending","approved","rejected"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Your event requests","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"meetingUrl":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"maxCapacity":{"type":"number","nullable":true},"visibility":{"type":"string","nullable":true},"ticketDrafts":{"type":"array","nullable":true,"items":{"type":"object","additionalProperties":{"nullable":true}}},"lumaEventId":{"type":"string","nullable":true},"lumaEventUrl":{"type":"string","nullable":true},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"submitter":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","name","startAt","endAt","timezone","description","location","meetingUrl","coverUrl","maxCapacity","visibility","ticketDrafts","lumaEventId","lumaEventUrl","reviewedAt","rejectionReason","createdAt","submitter"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/luma/events/speaker-interest":{"post":{"summary":"Register interest in speaking at an event (Pro members, once per member).","tags":["Luma"],"security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Speaker request recorded","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requested":{"type":"boolean"}},"required":["requested"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Already requested to speak","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/luma/invitees/search":{"get":{"summary":"Typeahead search for platform users to invite to an event request.","tags":["Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":200},"required":false,"name":"search","in":"query"},{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":20,"default":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Matching users","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"title":{"type":"string","nullable":true},"location":{"type":"string","nullable":true}},"required":["id","firstName","lastName","avatarUrl","title","location"]}}},"required":["items"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/luma/cover-upload-url":{"post":{"summary":"Mint a signed Luma CDN URL to upload an event-request cover image.","tags":["Luma"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contentType":{"type":"string","enum":["image/jpeg","image/png"]}},"required":["contentType"]}}}},"responses":{"200":{"description":"Signed upload + file URL","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"uploadUrl":{"type":"string"},"fileUrl":{"type":"string"}},"required":["uploadUrl","fileUrl"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Account not verified","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/event-requests":{"get":{"summary":"List member-submitted event requests (paginated, filter by status).","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","enum":["pending","approved","rejected"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Page of event requests","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"meetingUrl":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"maxCapacity":{"type":"number","nullable":true},"visibility":{"type":"string","nullable":true},"ticketDrafts":{"type":"array","nullable":true,"items":{"type":"object","additionalProperties":{"nullable":true}}},"lumaEventId":{"type":"string","nullable":true},"lumaEventUrl":{"type":"string","nullable":true},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"submitter":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","name","startAt","endAt","timezone","description","location","meetingUrl","coverUrl","maxCapacity","visibility","ticketDrafts","lumaEventId","lumaEventUrl","reviewedAt","rejectionReason","createdAt","submitter"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/event-requests/{id}/approve":{"post":{"summary":"Approve an event request — creates the event on Luma.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Request approved, Luma event created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"lumaEventId":{"type":"string","nullable":true},"lumaEventUrl":{"type":"string","nullable":true}},"required":["id","status","lumaEventId","lumaEventUrl"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Event request not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Event request already reviewed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/event-requests/{id}/reject":{"post":{"summary":"Reject an event request — nothing is sent to Luma.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":1000}}}}}},"responses":{"200":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]}},"required":["id","status"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Event request not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Event request already reviewed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/me":{"get":{"summary":"Get the current user profile for jobs form prefilling.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Jobs profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"jobsRole":{"type":"string","nullable":true,"enum":["candidate","recruiter","clinic_owner",null]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsOnboardingStep":{"type":"string","nullable":true},"hasCv":{"type":"boolean"},"cvUrl":{"type":"string","nullable":true},"cvUpdatedAt":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"referralCode":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"interestedInNonClinical":{"type":"boolean","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true}},"required":["id","email","jobsRole","jobsVerificationTier","jobsOnboardingStep","hasCv","cvUrl","cvUpdatedAt","credential","specialty","firstName","lastName","avatarUrl","referralCode","countryCode","phoneNumber","linkedinUrl","interestedInNonClinical","lookingForMentor"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Complete the jobs-portal profile (name + CV) from inside the portal.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"cvObjectPath":{"type":"string","minLength":1,"maxLength":500},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"credential":{"type":"string","enum":["associate-dentist","specialist","student"]},"specialty":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":5},"interestedInNonClinical":{"type":"boolean"},"lookingForMentor":{"type":"boolean"},"jobsOnboardingStep":{"type":"string","minLength":1,"maxLength":100}}}}}},"responses":{"200":{"description":"Jobs profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"jobsRole":{"type":"string","nullable":true,"enum":["candidate","recruiter","clinic_owner",null]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsOnboardingStep":{"type":"string","nullable":true},"hasCv":{"type":"boolean"},"cvUrl":{"type":"string","nullable":true},"cvUpdatedAt":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"referralCode":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"interestedInNonClinical":{"type":"boolean","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true}},"required":["id","email","jobsRole","jobsVerificationTier","jobsOnboardingStep","hasCv","cvUrl","cvUpdatedAt","credential","specialty","firstName","lastName","avatarUrl","referralCode","countryCode","phoneNumber","linkedinUrl","interestedInNonClinical","lookingForMentor"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/clinic-profile":{"get":{"summary":"Get the clinic owner's practice profile (all fields nullable until onboarded).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Clinic profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"practiceName":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryLocation":{"type":"string","nullable":true},"numberOfLocations":{"type":"integer","nullable":true},"practiceTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"rolesToHire":{"type":"array","nullable":true,"items":{"type":"string"}},"hiresPerQuarter":{"type":"string","nullable":true},"payerMix":{"type":"object","nullable":true,"properties":{"ppo":{"type":"number"},"hmo":{"type":"number"},"feeForService":{"type":"number"},"medicaid":{"type":"number"},"other":{"type":"number"}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean","nullable":true},"activeOperatories":{"type":"integer","nullable":true},"plumbedOperatories":{"type":"integer","nullable":true},"hygieneDaysPerWeek":{"type":"integer","nullable":true},"majorTechnology":{"type":"array","nullable":true,"items":{"type":"string"}},"associateRampUpPlan":{"type":"string","nullable":true},"teamCounts":{"type":"object","nullable":true,"properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","nullable":true,"items":{"type":"object","properties":{"specialty":{"type":"string"},"frequency":{"type":"string"}},"required":["specialty","frequency"]}},"officeManagerYears":{"type":"integer","nullable":true},"hasInHouseSpecialtyProgram":{"type":"boolean","nullable":true},"previousInHouseSpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistSupportExperience":{"type":"string","nullable":true},"ownerProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"associateProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"referredOutProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"dailyProductionGoal":{"type":"number","nullable":true},"guaranteedDailyAmount":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"commissionPercentage":{"type":"number","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"compensationFrequency":{"type":"string","nullable":true},"offersHealthInsurance":{"type":"boolean","nullable":true},"otherBenefits":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInMentoring":{"type":"boolean","nullable":true},"consideringSale":{"type":"boolean","nullable":true},"saleStakes":{"type":"array","nullable":true,"items":{"type":"string"}},"stayAfterSale":{"type":"boolean","nullable":true},"stayDurationMonths":{"type":"integer","nullable":true}},"required":["practiceName","description","primaryLocation","numberOfLocations","practiceTypes","rolesToHire","hiresPerQuarter","payerMix","usesInHousePlan","activeOperatories","plumbedOperatories","hygieneDaysPerWeek","majorTechnology","associateRampUpPlan","teamCounts","inHouseSpecialistCoverage","officeManagerYears","hasInHouseSpecialtyProgram","previousInHouseSpecialties","specialistSupportExperience","ownerProcedures","associateProcedures","referredOutProcedures","dailyProductionGoal","guaranteedDailyAmount","guaranteeType","commissionPercentage","tieredCommission","commissionTiers","compensationFrequency","offersHealthInsurance","otherBenefits","interestedInMentoring","consideringSale","saleStakes","stayAfterSale","stayDurationMonths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a clinic owner","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Save one section of the clinic practice onboarding (partial merge).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"practiceName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"description":{"type":"string","minLength":1,"maxLength":5000},"primaryLocation":{"type":"string","minLength":1,"maxLength":300},"numberOfLocations":{"type":"integer","minimum":1,"maximum":10000},"practiceTypes":{"type":"array","items":{"type":"string","enum":["general","specialty","multi-specialty","dso","pediatric","ortho"]},"maxItems":50},"rolesToHire":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":30},"hiresPerQuarter":{"type":"string","enum":["0-1","2-3","4-6","7-plus"]},"payerMix":{"type":"object","properties":{"ppo":{"type":"number","minimum":0,"maximum":100},"hmo":{"type":"number","minimum":0,"maximum":100},"feeForService":{"type":"number","minimum":0,"maximum":100},"medicaid":{"type":"number","minimum":0,"maximum":100},"other":{"type":"number","minimum":0,"maximum":100}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean"},"activeOperatories":{"type":"integer","minimum":0,"maximum":999},"plumbedOperatories":{"type":"integer","minimum":0,"maximum":999},"hygieneDaysPerWeek":{"type":"integer","minimum":0,"maximum":7},"majorTechnology":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"associateRampUpPlan":{"type":"string","maxLength":5000},"teamCounts":{"type":"object","properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","items":{"type":"object","properties":{"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"frequency":{"type":"string","enum":["weekly","biweekly","monthly","as-needed"]}},"required":["specialty","frequency"]},"maxItems":20},"officeManagerYears":{"type":"integer","minimum":0,"maximum":80},"hasInHouseSpecialtyProgram":{"type":"boolean"},"previousInHouseSpecialties":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":12},"specialistSupportExperience":{"type":"string","enum":["none","some","extensive"]},"ownerProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"associateProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"referredOutProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"guaranteedDailyAmount":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"commissionPercentage":{"type":"number","minimum":0,"maximum":100},"tieredCommission":{"type":"boolean"},"commissionTiers":{"type":"array","items":{"type":"object","properties":{"threshold":{"type":"number","minimum":0,"maximum":1000000},"percentage":{"type":"number","minimum":0,"maximum":100}},"required":["threshold","percentage"]},"maxItems":10},"compensationFrequency":{"type":"string","enum":["daily","weekly","monthly","quarterly"]},"offersHealthInsurance":{"type":"boolean"},"otherBenefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"interestedInMentoring":{"type":"boolean"},"consideringSale":{"type":"boolean"},"saleStakes":{"type":"array","items":{"type":"string","enum":["minority","majority","entire"]},"maxItems":3},"stayAfterSale":{"type":"boolean"},"stayDurationMonths":{"type":"integer","minimum":0,"maximum":600},"jobsOnboardingStep":{"type":"string","minLength":1,"maxLength":100}}}}}},"responses":{"200":{"description":"Clinic profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"practiceName":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryLocation":{"type":"string","nullable":true},"numberOfLocations":{"type":"integer","nullable":true},"practiceTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"rolesToHire":{"type":"array","nullable":true,"items":{"type":"string"}},"hiresPerQuarter":{"type":"string","nullable":true},"payerMix":{"type":"object","nullable":true,"properties":{"ppo":{"type":"number"},"hmo":{"type":"number"},"feeForService":{"type":"number"},"medicaid":{"type":"number"},"other":{"type":"number"}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean","nullable":true},"activeOperatories":{"type":"integer","nullable":true},"plumbedOperatories":{"type":"integer","nullable":true},"hygieneDaysPerWeek":{"type":"integer","nullable":true},"majorTechnology":{"type":"array","nullable":true,"items":{"type":"string"}},"associateRampUpPlan":{"type":"string","nullable":true},"teamCounts":{"type":"object","nullable":true,"properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","nullable":true,"items":{"type":"object","properties":{"specialty":{"type":"string"},"frequency":{"type":"string"}},"required":["specialty","frequency"]}},"officeManagerYears":{"type":"integer","nullable":true},"hasInHouseSpecialtyProgram":{"type":"boolean","nullable":true},"previousInHouseSpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistSupportExperience":{"type":"string","nullable":true},"ownerProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"associateProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"referredOutProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"dailyProductionGoal":{"type":"number","nullable":true},"guaranteedDailyAmount":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"commissionPercentage":{"type":"number","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"compensationFrequency":{"type":"string","nullable":true},"offersHealthInsurance":{"type":"boolean","nullable":true},"otherBenefits":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInMentoring":{"type":"boolean","nullable":true},"consideringSale":{"type":"boolean","nullable":true},"saleStakes":{"type":"array","nullable":true,"items":{"type":"string"}},"stayAfterSale":{"type":"boolean","nullable":true},"stayDurationMonths":{"type":"integer","nullable":true}},"required":["practiceName","description","primaryLocation","numberOfLocations","practiceTypes","rolesToHire","hiresPerQuarter","payerMix","usesInHousePlan","activeOperatories","plumbedOperatories","hygieneDaysPerWeek","majorTechnology","associateRampUpPlan","teamCounts","inHouseSpecialistCoverage","officeManagerYears","hasInHouseSpecialtyProgram","previousInHouseSpecialties","specialistSupportExperience","ownerProcedures","associateProcedures","referredOutProcedures","dailyProductionGoal","guaranteedDailyAmount","guaranteeType","commissionPercentage","tieredCommission","commissionTiers","compensationFrequency","offersHealthInsurance","otherBenefits","interestedInMentoring","consideringSale","saleStakes","stayAfterSale","stayDurationMonths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a clinic owner","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/recruiter-profile":{"get":{"summary":"Get the recruiter's profile (all fields nullable until onboarded).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Recruiter profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"roleTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"specialties":{"type":"array","nullable":true,"items":{"type":"string"}},"locations":{"type":"array","nullable":true,"items":{"type":"string"}},"inventory":{"type":"string","nullable":true},"listingVolume":{"type":"string","nullable":true},"displayAgencyName":{"type":"boolean","nullable":true},"introContact":{"type":"string","nullable":true}},"required":["companyName","roleTypes","specialties","locations","inventory","listingVolume","displayAgencyName","introContact"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a recruiter","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Save one step of the recruiter onboarding (partial merge).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleTypes":{"type":"array","items":{"type":"string","enum":["general","specialist"]},"maxItems":10},"specialties":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":20},"locations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"maxItems":100},"inventory":{"type":"string","enum":["candidates","opportunities","both"]},"listingVolume":{"type":"string","enum":["0-5","6-15","16-30","30-plus"]},"displayAgencyName":{"type":"boolean"},"introContact":{"type":"string","minLength":1,"maxLength":300},"jobsOnboardingStep":{"type":"string","minLength":1,"maxLength":100}}}}}},"responses":{"200":{"description":"Recruiter profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"roleTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"specialties":{"type":"array","nullable":true,"items":{"type":"string"}},"locations":{"type":"array","nullable":true,"items":{"type":"string"}},"inventory":{"type":"string","nullable":true},"listingVolume":{"type":"string","nullable":true},"displayAgencyName":{"type":"boolean","nullable":true},"introContact":{"type":"string","nullable":true}},"required":["companyName","roleTypes","specialties","locations","inventory","listingVolume","displayAgencyName","introContact"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a recruiter","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/my-referrals":{"get":{"summary":"Applications credited to the signed-in recruiter's referral code.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Page of referred applications","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"candidateName":{"type":"string"},"candidateAvatarUrl":{"type":"string","nullable":true},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","candidateName","candidateAvatarUrl","createdAt","job"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"},"summary":{"type":"object","properties":{"last30Days":{"type":"integer"},"listings":{"type":"integer"},"practices":{"type":"integer"}},"required":["last30Days","listings","practices"]}},"required":["items","page","limit","total","totalPages","hasMore","summary"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a verified recruiter","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs":{"get":{"summary":"Browse approved job listings (filter, sort, paginate). Public.","description":"Public and unauthenticated. Partner platforms may send their `x-api-key` header for a higher rate limit and an `applyUrl` on every card — the DDS Recruit job page with their referral code attached, which is what their Apply button should link to. The key does not change which listings are returned.","tags":["Jobs"],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","maxLength":200},"required":false,"name":"keyword","in":"query"},{"schema":{"type":"string","maxLength":200},"required":false,"name":"location","in":"query"},{"schema":{"type":"string","maxLength":200},"required":false,"name":"role","in":"query"},{"schema":{"type":"string","enum":["general","specialist"]},"required":false,"name":"roleType","in":"query"},{"schema":{"type":"string","enum":["0-2","3-5","5-plus"]},"required":false,"name":"yearsOfExperience","in":"query"},{"schema":{"type":"string","enum":["full-time","part-time","per-diem"]},"required":false,"name":"employmentType","in":"query"},{"schema":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"required":false,"name":"specialty","in":"query"},{"schema":{"type":"string","enum":["newest","oldest"],"default":"newest"},"required":false,"name":"sort","in":"query"}],"responses":{"200":{"description":"Page of listing cards","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"},"applyUrl":{"type":"string","format":"uri"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"post":{"summary":"Submit a job listing (stays pending until an admin approves).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"contactPerson":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleType":{"type":"string","enum":["general","specialist"]},"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"headcount":{"type":"integer","minimum":1,"maximum":100},"location":{"type":"string","maxLength":300},"additionalLocations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\p{L}/u"},"maxItems":50},"employmentType":{"type":"string","enum":["full-time","part-time","per-diem"]},"workerClassification":{"type":"string","enum":["1099","w2"]},"requiredDaysHours":{"type":"string","maxLength":2000},"startDate":{"type":"string","maxLength":200},"annualCompMin":{"type":"number","minimum":0,"maximum":10000000},"annualCompMax":{"type":"number","minimum":0,"maximum":10000000},"guaranteedDailyRate":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"labFeeResponsibility":{"type":"string","enum":["practice","associate","split"]},"tieredCommission":{"type":"boolean"},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"benefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"yearsOfExperience":{"type":"string","enum":["0-2","3-5","5-plus"]},"experienceLevel":{"type":"string","enum":["required","preferred"]},"requiredProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"microscopeUse":{"type":"string","enum":["required","available","not-needed"]},"requiredLicenses":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":60},"nonNegotiableAvailability":{"type":"string","maxLength":2000},"openToMentoring":{"type":"boolean"},"challenge":{"type":"string","minLength":1,"maxLength":5000},"officeDescription":{"type":"string","maxLength":5000},"whyAttractive":{"type":"string","maxLength":5000},"neighborhoodDescription":{"type":"string","maxLength":5000},"majorEquipment":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"specialistCaseVolume":{"type":"string","maxLength":2000}},"required":["companyName","contactPerson","contactEmail","roleNeeded","challenge"]}}}},"responses":{"201":{"description":"Listing submitted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]}},"required":["id","status"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/my-postings":{"get":{"summary":"The current user's own job listings (with applicant counts).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Page of postings","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"applicationCount":{"type":"integer"},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"poster":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","companyName","contactPerson","contactEmail","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","reviewedAt","rejectionReason","createdAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/my-applications":{"get":{"summary":"The current user's job applications with their listing details.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Page of applications","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","createdAt","job"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/{jobId}":{"get":{"summary":"Public job page — shareable without login. Approved listings only, plus the caller’s own pending or rejected listing when a token is sent.","description":"Partner platforms may send their `x-api-key` header for a higher rate limit and an `applyUrl` carrying their referral code. A partner key does not widen visibility — an unapproved listing still returns 404.","tags":["Jobs"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Public job detail","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"createdAt":{"type":"string"},"applyUrl":{"type":"string","format":"uri"}},"required":["id","status","companyName","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","createdAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"put":{"summary":"Replace your own job listing while it is still pending review.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"contactPerson":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleType":{"type":"string","enum":["general","specialist"]},"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"headcount":{"type":"integer","minimum":1,"maximum":100},"location":{"type":"string","maxLength":300},"additionalLocations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\p{L}/u"},"maxItems":50},"employmentType":{"type":"string","enum":["full-time","part-time","per-diem"]},"workerClassification":{"type":"string","enum":["1099","w2"]},"requiredDaysHours":{"type":"string","maxLength":2000},"startDate":{"type":"string","maxLength":200},"annualCompMin":{"type":"number","minimum":0,"maximum":10000000},"annualCompMax":{"type":"number","minimum":0,"maximum":10000000},"guaranteedDailyRate":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"labFeeResponsibility":{"type":"string","enum":["practice","associate","split"]},"tieredCommission":{"type":"boolean"},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"benefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"yearsOfExperience":{"type":"string","enum":["0-2","3-5","5-plus"]},"experienceLevel":{"type":"string","enum":["required","preferred"]},"requiredProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"microscopeUse":{"type":"string","enum":["required","available","not-needed"]},"requiredLicenses":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":60},"nonNegotiableAvailability":{"type":"string","maxLength":2000},"openToMentoring":{"type":"boolean"},"challenge":{"type":"string","minLength":1,"maxLength":5000},"officeDescription":{"type":"string","maxLength":5000},"whyAttractive":{"type":"string","maxLength":5000},"neighborhoodDescription":{"type":"string","maxLength":5000},"majorEquipment":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"specialistCaseVolume":{"type":"string","maxLength":2000}},"required":["companyName","contactPerson","contactEmail","roleNeeded","challenge"]}}}},"responses":{"200":{"description":"Listing updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"applicationCount":{"type":"integer"},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"poster":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","companyName","contactPerson","contactEmail","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","reviewedAt","rejectionReason","createdAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Listing already reviewed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/cv-upload-url":{"post":{"summary":"Mint a presigned R2 URL to upload a CV/resume.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","minLength":1,"maxLength":200},"fileSizeBytes":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":5242880}},"required":["fileName","contentType","fileSizeBytes"]}}}},"responses":{"200":{"description":"Signed upload URL","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"uploadUrl":{"type":"string"},"objectPath":{"type":"string"}},"required":["uploadUrl","objectPath"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/{jobId}/apply":{"post":{"summary":"Apply to a job listing (no onboarding required).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","maxLength":254,"format":"email"},"countryCode":{"type":"string","maxLength":10},"phoneNumber":{"type":"string","maxLength":30},"linkedinUrl":{"type":"string","maxLength":500,"pattern":"^https?:\\/\\/(www\\.)?linkedin\\.com\\/in\\/[^/?#\\s]+([/?#].*)?$/i"},"cvObjectPath":{"type":"string","minLength":1,"maxLength":500},"referralCode":{"type":"string","pattern":"^[2-9A-HJ-NP-Z]{8}$/i"}},"required":["firstName","lastName","email"]}}}},"responses":{"201":{"description":"Application submitted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Cannot apply to your own listing","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Already applied","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/{jobId}/application-status":{"get":{"summary":"Check whether the current jobs user already applied or owns the listing.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Application status","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"hasApplied":{"type":"boolean"},"isOwnListing":{"type":"boolean"}},"required":["hasApplied","isOwnListing"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/jobs/{jobId}/applicants":{"get":{"summary":"Applicants for a listing you own (full PII + signed CV URL).","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Applicants","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"cvUrl":{"type":"string","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true},"referralCode":{"type":"string","nullable":true},"referrer":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"referralCode":{"type":"string","nullable":true}},"required":["id","firstName","lastName","email","avatarUrl","referralCode"]},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","firstName","lastName","email","avatarUrl","countryCode","phoneNumber","linkedinUrl","cvUrl","lookingForMentor","referralCode","referrer","createdAt"]}}},"required":["items"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not the listing owner","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/job-postings":{"get":{"summary":"List job listings for review (paginated, filter by status).","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","enum":["pending","approved","rejected"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","format":"uuid"},"required":false,"name":"referrerId","in":"query"},{"schema":{"type":"string","format":"uuid"},"required":false,"name":"applicantId","in":"query"}],"responses":{"200":{"description":"Page of postings","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"applicationCount":{"type":"integer"},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"poster":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","companyName","contactPerson","contactEmail","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","reviewedAt","rejectionReason","createdAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/job-applications":{"get":{"summary":"List job applications (paginated) with signed CV URLs, plus every referrer for the filter.","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","enum":["pending","approved","rejected"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","format":"uuid"},"required":false,"name":"referrerId","in":"query"},{"schema":{"type":"string","format":"uuid"},"required":false,"name":"applicantId","in":"query"}],"responses":{"200":{"description":"Page of applications","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"cvUrl":{"type":"string","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true},"referralCode":{"type":"string","nullable":true},"referrer":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string"},"avatarUrl":{"type":"string","nullable":true},"referralCode":{"type":"string","nullable":true}},"required":["id","firstName","lastName","email","avatarUrl","referralCode"]},"createdAt":{"type":"string"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleNeeded":{"type":"string"},"companyName":{"type":"string"},"location":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","roleNeeded","companyName","location","createdAt"]}},"required":["id","jobId","firstName","lastName","email","avatarUrl","countryCode","phoneNumber","linkedinUrl","cvUrl","lookingForMentor","referralCode","referrer","createdAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"},"referrers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string"},"referralCode":{"type":"string","nullable":true},"count":{"type":"integer"}},"required":["id","firstName","lastName","email","referralCode","count"]}}},"required":["items","page","limit","total","totalPages","hasMore","referrers"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/job-postings/{jobId}/approve":{"post":{"summary":"Approve a job listing — makes it public.","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Listing approved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]}},"required":["id","status"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Job already reviewed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/job-postings/{jobId}/reject":{"post":{"summary":"Reject a job listing.","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":1000}}}}}},"responses":{"200":{"description":"Listing rejected","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]}},"required":["id","status"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Job already reviewed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/job-postings/{jobId}":{"patch":{"summary":"Correct a job listing. Every field optional; status is left alone.","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"contactPerson":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleType":{"type":"string","enum":["general","specialist"]},"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"headcount":{"type":"integer","minimum":1,"maximum":100},"location":{"type":"string","maxLength":300},"additionalLocations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\p{L}/u"},"maxItems":50},"employmentType":{"type":"string","enum":["full-time","part-time","per-diem"]},"workerClassification":{"type":"string","enum":["1099","w2"]},"requiredDaysHours":{"type":"string","maxLength":2000},"startDate":{"type":"string","maxLength":200},"annualCompMin":{"type":"number","minimum":0,"maximum":10000000},"annualCompMax":{"type":"number","minimum":0,"maximum":10000000},"guaranteedDailyRate":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"labFeeResponsibility":{"type":"string","enum":["practice","associate","split"]},"tieredCommission":{"type":"boolean"},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"benefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"yearsOfExperience":{"type":"string","enum":["0-2","3-5","5-plus"]},"experienceLevel":{"type":"string","enum":["required","preferred"]},"requiredProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"microscopeUse":{"type":"string","enum":["required","available","not-needed"]},"requiredLicenses":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":60},"nonNegotiableAvailability":{"type":"string","maxLength":2000},"openToMentoring":{"type":"boolean"},"challenge":{"type":"string","minLength":1,"maxLength":5000},"officeDescription":{"type":"string","maxLength":5000},"whyAttractive":{"type":"string","maxLength":5000},"neighborhoodDescription":{"type":"string","maxLength":5000},"majorEquipment":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"specialistCaseVolume":{"type":"string","maxLength":2000}}}}}},"responses":{"200":{"description":"Listing updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","approved","rejected"]},"companyName":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"roleType":{"type":"string","nullable":true},"specialty":{"type":"string","nullable":true},"headcount":{"type":"integer","nullable":true},"location":{"type":"string","nullable":true},"additionalLocations":{"type":"array","nullable":true,"items":{"type":"string"}},"employmentType":{"type":"string","nullable":true},"workerClassification":{"type":"string","nullable":true},"requiredDaysHours":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"annualCompMin":{"type":"number","nullable":true},"annualCompMax":{"type":"number","nullable":true},"guaranteedDailyRate":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"labFeeResponsibility":{"type":"string","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"dailyProductionGoal":{"type":"number","nullable":true},"benefits":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsOfExperience":{"type":"string","nullable":true},"experienceLevel":{"type":"string","nullable":true},"requiredProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"microscopeUse":{"type":"string","nullable":true},"requiredLicenses":{"type":"array","nullable":true,"items":{"type":"string"}},"nonNegotiableAvailability":{"type":"string","nullable":true},"openToMentoring":{"type":"boolean","nullable":true},"challenge":{"type":"string"},"officeDescription":{"type":"string","nullable":true},"whyAttractive":{"type":"string","nullable":true},"neighborhoodDescription":{"type":"string","nullable":true},"majorEquipment":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistCaseVolume":{"type":"string","nullable":true},"applicationCount":{"type":"integer"},"reviewedAt":{"type":"string","nullable":true},"rejectionReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"poster":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["id","email","name"]}},"required":["id","status","companyName","contactPerson","contactEmail","roleNeeded","roleType","specialty","headcount","location","additionalLocations","employmentType","workerClassification","requiredDaysHours","startDate","annualCompMin","annualCompMax","guaranteedDailyRate","guaranteeType","labFeeResponsibility","tieredCommission","dailyProductionGoal","benefits","yearsOfExperience","experienceLevel","requiredProcedures","microscopeUse","requiredLicenses","nonNegotiableAvailability","openToMentoring","challenge","officeDescription","whyAttractive","neighborhoodDescription","majorEquipment","specialistCaseVolume","reviewedAt","rejectionReason","createdAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Soft-delete a job listing and its applications.","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"jobId","in":"path"}],"responses":{"200":{"description":"Listing deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/events/{id}":{"get":{"summary":"Fetch full Luma event detail for the admin edit modal.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Event detail","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"meetingUrl":{"type":"string","nullable":true},"coverUrl":{"type":"string","nullable":true},"visibility":{"type":"string","nullable":true,"enum":["public","members-only","private",null]},"lumaUrl":{"type":"string"}},"required":["id","name","startAt","endAt","timezone","description","location","meetingUrl","coverUrl","visibility","lumaUrl"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Event not found on Luma","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Patch a Luma event. Only fields supplied are sent to Luma; omitted fields stay as-is.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","nullable":true,"format":"date-time"},"timezone":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","nullable":true,"maxLength":10000},"location":{"type":"string","nullable":true,"maxLength":500},"meetingUrl":{"type":"string","nullable":true,"format":"uri"},"coverUrl":{"type":"string","nullable":true,"format":"uri"},"maxCapacity":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"maximum":100000},"visibility":{"type":"string","enum":["public","members-only","private"]}}}}}},"responses":{"200":{"description":"Event updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the update","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Cancel (and irreversibly delete on Luma) a Luma event the team owns. Two-step on Luma's side: cancel-request → cancel, with optional refund of paid guests.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"required":false,"name":"refund","in":"query"}],"responses":{"200":{"description":"Event cancelled","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the cancellation","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/events/{id}/guests":{"get":{"summary":"List guests on a Luma event (paginated).","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","enum":["approved","session","pending_approval","invited","declined","waitlist"]},"required":false,"name":"approvalStatus","in":"query"}],"responses":{"200":{"description":"Page of guests","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string","nullable":true},"status":{"type":"string","enum":["approved","session","pending_approval","invited","declined","waitlist"]},"invitedAt":{"type":"string","nullable":true},"registeredAt":{"type":"string","nullable":true},"checkedInAt":{"type":"string","nullable":true}},"required":["id","email","name","status","invitedAt","registeredAt","checkedInAt"]}},"nextCursor":{"type":"string","nullable":true},"hasMore":{"type":"boolean"}},"required":["items","nextCursor","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"post":{"summary":"Invite additional platform users to an existing Luma event. Luma sends each invitee its branded invitation email with an RSVP link.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"inviteeIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":500,"default":[]}}}}}},"responses":{"200":{"description":"Invites sent (or partially skipped for unknown user ids)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"invitedCount":{"type":"integer","minimum":0},"skippedIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["invitedCount","skippedIds"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/events/{id}/guests/{guestId}":{"patch":{"summary":"Change a Luma guest's approval status (approved / declined / pending_approval / waitlist). Optionally refund paid guests when moving them off approved.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"guestId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["approved","declined","pending_approval","waitlist"]},"shouldRefund":{"type":"boolean"},"sendEmail":{"type":"boolean"}},"required":["status"]}}}},"responses":{"200":{"description":"Status updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["approved","session","pending_approval","invited","declined","waitlist"]}},"required":["id","status"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/events/{id}/ticket-types":{"get":{"summary":"List ticket types attached to a Luma event.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Ticket types","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["free","paid"]},"cents":{"type":"number","nullable":true},"currency":{"type":"string","nullable":true},"requireApproval":{"type":"boolean"},"isHidden":{"type":"boolean"},"description":{"type":"string","nullable":true},"maxCapacity":{"type":"number","nullable":true}},"required":["id","name","type","cents","currency","requireApproval","isHidden","description","maxCapacity"]}}},"required":["items"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"post":{"summary":"Create a free or paid (USD) ticket type on a Luma event.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["free","paid"]},"priceUsd":{"type":"number","minimum":0,"maximum":100000},"requireApproval":{"type":"boolean","default":false},"isHidden":{"type":"boolean","default":false},"description":{"type":"string","maxLength":2000},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000}},"required":["name","type"]}}}},"responses":{"201":{"description":"Ticket type created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["free","paid"]},"cents":{"type":"number","nullable":true},"currency":{"type":"string","nullable":true},"requireApproval":{"type":"boolean"},"isHidden":{"type":"boolean"},"description":{"type":"string","nullable":true},"maxCapacity":{"type":"number","nullable":true}},"required":["id","name","type","cents","currency","requireApproval","isHidden","description","maxCapacity"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/ticket-types/{id}":{"patch":{"summary":"Patch a Luma ticket type. Only fields supplied are sent to Luma.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["free","paid"]},"priceUsd":{"type":"number","nullable":true,"minimum":0,"maximum":100000},"requireApproval":{"type":"boolean"},"isHidden":{"type":"boolean"},"description":{"type":"string","nullable":true,"maxLength":2000},"maxCapacity":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"maximum":100000}}}}}},"responses":{"200":{"description":"Ticket type updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Delete a Luma ticket type.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Ticket type deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/cover-upload-url":{"post":{"summary":"Mint a Luma-hosted upload URL for a cover image. The admin then PUTs the image bytes to `uploadUrl` and passes the returned `fileUrl` as the event's coverUrl when creating the event (Luma only accepts cover URLs on images.lumacdn.com).","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contentType":{"type":"string","enum":["image/jpeg","image/png"]}},"required":["contentType"]}}}},"responses":{"200":{"description":"Upload URL minted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"uploadUrl":{"type":"string"},"fileUrl":{"type":"string"}},"required":["uploadUrl","fileUrl"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/luma/events":{"post":{"summary":"Create a Luma event on the calendar tied to LUMA_API_KEY and (optionally) add the supplied user ids as guests so Luma sends each one an invitation email.","tags":["Admin","Luma"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":10000},"location":{"type":"string","maxLength":500},"meetingUrl":{"type":"string","format":"uri"},"coverUrl":{"type":"string","format":"uri"},"maxCapacity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100000},"visibility":{"type":"string","enum":["public","members-only","private"]},"inviteeEmails":{"type":"array","items":{"type":"string","format":"email"},"maxItems":500,"default":[]}},"required":["name","startAt","timezone"]}}}},"responses":{"201":{"description":"Event created (and any matching invitees added as guests)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"event":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"startAt":{"type":"string"},"endAt":{"type":"string","nullable":true},"timezone":{"type":"string"},"lumaUrl":{"type":"string"}},"required":["id","name","startAt","endAt","timezone","lumaUrl"]},"invites":{"type":"object","properties":{"invitedCount":{"type":"integer","minimum":0},"skippedIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["invitedCount","skippedIds"]}},"required":["event","invites"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input or Luma rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Luma request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/chatwoot/identifier-hash":{"get":{"operationId":"getChatwootIdentifierHash","summary":"Mint the Chatwoot identity-validation HMAC for the current user","tags":["Chatwoot"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Identifier hash generated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"identifier":{"type":"string"},"identifierHash":{"type":"string"}},"required":["identifier","identifierHash"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/{id}":{"get":{"summary":"Get expert by ID","tags":["Experts"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Expert retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","user","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"404":{"description":"Expert not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/profile":{"put":{"summary":"Update expert profile","tags":["Experts"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"credential":{"type":"string","maxLength":100},"specialty":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"yearsExperience":{"type":"number"},"availability":{"type":"string","maxLength":50},"availabilityDate":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"bio":{"type":"string","maxLength":2000},"phoneNumber":{"type":"string","pattern":"^\\d{6,15}$"},"countryCode":{"type":"string","pattern":"^\\+\\d{1,4}$"},"linkedinUrl":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"personalWebsite":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"systemsExperience":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"engagementType":{"type":"string","nullable":true,"maxLength":50},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItemInput"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItemInput"}}}}}}},"responses":{"200":{"description":"Profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","user","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/saved":{"get":{"summary":"Get all saved experts for current user","tags":["Experts"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"location","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"skills","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"interestedSkills","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"tags","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"jobSeekerIntent","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"engagementType","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"availability","in":"query"},{"schema":{"type":"string","enum":["newest","experience"],"default":"newest"},"required":false,"name":"sortBy","in":"query"}],"responses":{"200":{"description":"Saved experts retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","user","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/{expertId}/save":{"post":{"summary":"Save an expert to favorites","tags":["Experts"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"expertId","in":"path"}],"responses":{"200":{"description":"Expert saved","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Save failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/{expertId}/unsave":{"delete":{"summary":"Remove an expert from favorites","tags":["Experts"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"expertId","in":"path"}],"responses":{"200":{"description":"Expert unsaved","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Unsave failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/{expertId}/consultation-requests":{"post":{"summary":"Create a consultation request for an expert","tags":["Experts"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"expertId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"roleTitle":{"type":"string","maxLength":200},"organizationName":{"type":"string","maxLength":200},"organizationLocation":{"type":"string","maxLength":200},"matchScore":{"type":"integer","minimum":0,"maximum":100},"curatedBy":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"primaryExpertise":{"anyOf":[{"type":"string","maxLength":200},{"type":"object","properties":{"id":{"type":"string","maxLength":100},"name":{"type":"string","maxLength":200},"category":{"type":"string","maxLength":100}},"required":["id","name"]}]},"engagementDuration":{"type":"string","maxLength":100},"hourlyRate":{"type":"string","maxLength":100},"availability":{"type":"string","maxLength":100},"timeline":{"anyOf":[{"type":"object","additionalProperties":{"nullable":true}},{"type":"string","maxLength":500}]},"matchInsights":{"type":"string","maxLength":5000}},"required":["roleTitle","organizationName","organizationLocation","matchScore","curatedBy","challenge","primaryExpertise","engagementDuration","hourlyRate","availability","timeline","matchInsights"]}}}},"responses":{"201":{"description":"Consultation request created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"expertId":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"status":{"type":"string"},"roleTitle":{"type":"string"},"organizationName":{"type":"string"},"organizationLocation":{"type":"string"},"matchScore":{"type":"number"},"curatedBy":{"type":"string"},"challenge":{"type":"string"},"primaryExpertise":{"type":"string"},"engagementDuration":{"type":"string"},"hourlyRate":{"type":"string"},"availability":{"type":"string"},"timeline":{"type":"object","additionalProperties":{"nullable":true}},"matchInsights":{"type":"string"},"acceptMessage":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","expertId","clientId","status","roleTitle","organizationName","organizationLocation","matchScore","curatedBy","challenge","primaryExpertise","engagementDuration","hourlyRate","availability","timeline","matchInsights","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/consultation-requests/incoming":{"get":{"summary":"Get incoming consultation requests for current expert","tags":["Experts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Incoming consultation requests retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"expertId":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"status":{"type":"string"},"roleTitle":{"type":"string"},"organizationName":{"type":"string"},"organizationLocation":{"type":"string"},"matchScore":{"type":"number"},"curatedBy":{"type":"string"},"challenge":{"type":"string"},"primaryExpertise":{"type":"string"},"engagementDuration":{"type":"string"},"hourlyRate":{"type":"string"},"availability":{"type":"string"},"timeline":{"type":"object","additionalProperties":{"nullable":true}},"matchInsights":{"type":"string"},"acceptMessage":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","expertId","clientId","status","roleTitle","organizationName","organizationLocation","matchScore","curatedBy","challenge","primaryExpertise","engagementDuration","hourlyRate","availability","timeline","matchInsights","createdAt","updatedAt"]}},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/experts/consultation-requests/outgoing":{"get":{"summary":"Get outgoing consultation requests sent by current user","tags":["Experts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Outgoing consultation requests retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"expertId":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"status":{"type":"string"},"roleTitle":{"type":"string"},"organizationName":{"type":"string"},"organizationLocation":{"type":"string"},"matchScore":{"type":"number"},"curatedBy":{"type":"string"},"challenge":{"type":"string"},"primaryExpertise":{"type":"string"},"engagementDuration":{"type":"string"},"hourlyRate":{"type":"string"},"availability":{"type":"string"},"timeline":{"type":"object","additionalProperties":{"nullable":true}},"matchInsights":{"type":"string"},"acceptMessage":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","expertId","clientId","status","roleTitle","organizationName","organizationLocation","matchScore","curatedBy","challenge","primaryExpertise","engagementDuration","hourlyRate","availability","timeline","matchInsights","createdAt","updatedAt"]}},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/roles":{"get":{"summary":"Get all role postings (paginated)","tags":["Roles"],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Roles retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}}}},"post":{"summary":"Create a new role posting","tags":["Roles"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyName":{"type":"string","maxLength":200},"healthcareVertical":{"type":"string","maxLength":100},"contactPerson":{"type":"string","maxLength":100},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","maxLength":200},"workingPreference":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"timeline":{"type":"string","maxLength":100},"budgetRange":{"type":"string","maxLength":100},"hoursPerWeek":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"status":{"type":"string","enum":["pending","active","filled","closed"]}},"required":["companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange"]}}}},"responses":{"201":{"description":"Role created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/roles/{roleId}/apply":{"post":{"summary":"Apply to a role posting","tags":["Roles"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"roleId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":2000}}}}}},"responses":{"201":{"description":"Applied successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleId":{"type":"string","format":"uuid"},"applicantId":{"type":"string","format":"uuid"},"message":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","roleId","applicantId","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Application failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/roles/my-postings":{"get":{"summary":"Get my posted roles with applicants (paginated)","tags":["Roles"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Posted roles with applicants retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"applications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleId":{"type":"string","format":"uuid"},"applicantId":{"type":"string","format":"uuid"},"message":{"type":"string","nullable":true},"applicant":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string"},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","avatarUrl","verificationTier"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","roleId","applicantId","applicant","createdAt","updatedAt"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","applications","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/roles/{roleId}":{"get":{"summary":"Get a single role posting by id (public, no auth required)","tags":["Roles"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"roleId","in":"path"}],"responses":{"200":{"description":"Role retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"404":{"description":"Role not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"put":{"summary":"Update a role posting","tags":["Roles"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"roleId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyName":{"type":"string","maxLength":200},"healthcareVertical":{"type":"string","maxLength":100},"contactPerson":{"type":"string","maxLength":100},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","maxLength":200},"workingPreference":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"timeline":{"type":"string","maxLength":100},"budgetRange":{"type":"string","maxLength":100},"hoursPerWeek":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"status":{"type":"string","enum":["pending","active","filled","closed"]}}}}}},"responses":{"200":{"description":"Role updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Role not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Delete a role posting","tags":["Roles"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"roleId","in":"path"}],"responses":{"200":{"description":"Role deleted","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Role not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/roles/my-applications":{"get":{"summary":"Get roles I applied to (paginated)","tags":["Roles"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Applied roles retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"roleId":{"type":"string","format":"uuid"},"applicantId":{"type":"string","format":"uuid"},"message":{"type":"string","nullable":true},"role":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","createdAt","updatedAt"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","roleId","applicantId","role","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/feed/posts":{"post":{"summary":"Create a feed post with text and/or image","tags":["Feed"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","maxLength":5000}}}}}},"responses":{"201":{"description":"Post created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"authorId":{"type":"string","format":"uuid"},"author":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"additionalDetail":{"type":"object","nullable":true,"properties":{"title":{"type":"string","nullable":true}},"required":["title"]}},"required":["id","avatarUrl","verificationTier"]},"content":{"type":"string"},"imageUrl":{"type":"string","nullable":true},"hashtags":{"type":"array","items":{"type":"string"},"default":[]},"likeCount":{"type":"number"},"commentCount":{"type":"number"},"isLikedByMe":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorId","author","content","likeCount","commentCount","isLikedByMe","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"get":{"summary":"Get feed posts","tags":["Feed"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Feed retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"authorId":{"type":"string","format":"uuid"},"author":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"additionalDetail":{"type":"object","nullable":true,"properties":{"title":{"type":"string","nullable":true}},"required":["title"]}},"required":["id","avatarUrl","verificationTier"]},"content":{"type":"string"},"imageUrl":{"type":"string","nullable":true},"hashtags":{"type":"array","items":{"type":"string"},"default":[]},"likeCount":{"type":"number"},"commentCount":{"type":"number"},"isLikedByMe":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorId","author","content","likeCount","commentCount","isLikedByMe","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/feed/posts/{postId}":{"patch":{"summary":"Update a feed post (content and/or image URL)","tags":["Feed"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"postId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","maxLength":5000},"imageUrl":{"type":"string","nullable":true,"format":"uri"}}}}}},"responses":{"200":{"description":"Post updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"authorId":{"type":"string","format":"uuid"},"author":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"additionalDetail":{"type":"object","nullable":true,"properties":{"title":{"type":"string","nullable":true}},"required":["title"]}},"required":["id","avatarUrl","verificationTier"]},"content":{"type":"string"},"imageUrl":{"type":"string","nullable":true},"hashtags":{"type":"array","items":{"type":"string"},"default":[]},"likeCount":{"type":"number"},"commentCount":{"type":"number"},"isLikedByMe":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorId","author","content","likeCount","commentCount","isLikedByMe","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Post not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/feed/posts/{postId}/likes":{"post":{"summary":"Like a post","tags":["Feed"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"postId","in":"path"}],"responses":{"200":{"description":"Post liked","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Like failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Unlike a post","tags":["Feed"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"postId","in":"path"}],"responses":{"200":{"description":"Post unliked","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Unlike failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/feed/posts/{postId}/comments":{"post":{"summary":"Create a comment on a post","tags":["Feed"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"postId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":1000}},"required":["content"]}}}},"responses":{"201":{"description":"Comment created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"postId":{"type":"string","format":"uuid"},"authorId":{"type":"string","format":"uuid"},"author":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"additionalDetail":{"type":"object","nullable":true,"properties":{"title":{"type":"string","nullable":true}},"required":["title"]}},"required":["id","avatarUrl","verificationTier"]},"content":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","postId","authorId","author","content","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Comment failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"get":{"summary":"List comments for a post","tags":["Feed"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"postId","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Comments retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"postId":{"type":"string","format":"uuid"},"authorId":{"type":"string","format":"uuid"},"author":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"additionalDetail":{"type":"object","nullable":true,"properties":{"title":{"type":"string","nullable":true}},"required":["title"]}},"required":["id","avatarUrl","verificationTier"]},"content":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","postId","authorId","author","content","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Post not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/dashboard":{"get":{"summary":"Get admin dashboard data","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Admin data retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"metrics":{"type":"object","properties":{"users":{"type":"number"},"rolePostings":{"type":"number"},"expertProfiles":{"type":"number"},"introRequests":{"type":"number"},"savedExperts":{"type":"number"}},"required":["users","rolePostings","expertProfiles","introRequests","savedExperts"]},"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"consultationRequestCap":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","email","role","avatarUrl","verificationTier","consultationRequestCap","createdAt","updatedAt"]}},"rolePostings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","createdAt","updatedAt"]}},"expertProfiles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"userFirstName":{"type":"string","nullable":true},"userLastName":{"type":"string","nullable":true},"userEmail":{"type":"string"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"yearsExperience":{"type":"number","nullable":true},"matchScore":{"type":"number"},"profileViews":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","location","availability","availabilityDate","yearsExperience","matchScore","profileViews","createdAt","updatedAt"]}},"introRequests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"expertId":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"status":{"type":"string"},"roleTitle":{"type":"string"},"organizationName":{"type":"string"},"organizationLocation":{"type":"string"},"matchScore":{"type":"number"},"curatedBy":{"type":"string"},"challenge":{"type":"string"},"primaryExpertise":{"type":"string"},"engagementDuration":{"type":"string"},"hourlyRate":{"type":"string"},"availability":{"type":"string"},"acceptMessage":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","expertId","clientId","status","roleTitle","organizationName","organizationLocation","matchScore","curatedBy","challenge","primaryExpertise","engagementDuration","hourlyRate","availability","createdAt","updatedAt"]}},"savedExperts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"userFirstName":{"type":"string","nullable":true},"userLastName":{"type":"string","nullable":true},"userEmail":{"type":"string"},"expertId":{"type":"string","format":"uuid"},"createdAt":{"type":"string"}},"required":["id","userId","expertId","createdAt"]}},"activity":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"at":{"type":"string"}},"required":["id","type","title","detail","at"]}}},"required":["metrics","users","rolePostings","expertProfiles","introRequests","savedExperts","activity"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users":{"get":{"summary":"List all users (paginated, searchable)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","enum":["expert","client","admin","rpo"]},"required":false,"name":"role","in":"query"},{"schema":{"type":"string","enum":["not-verified","verified","pro"]},"required":false,"name":"verification","in":"query"},{"schema":{"type":"string","enum":["not-verified","verified"]},"required":false,"name":"jobsVerification","in":"query"},{"schema":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"required":false,"name":"jobsRole","in":"query"},{"schema":{"type":"string","enum":["not-verified","verified"]},"required":false,"name":"vendorsVerification","in":"query"},{"schema":{"type":"string","enum":["vendor","ambassador"]},"required":false,"name":"vendorsRole","in":"query"},{"schema":{"type":"string","enum":["matchmaker","jobs","vendors"]},"required":false,"name":"platform","in":"query"}],"responses":{"200":{"description":"Users retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"jobsRole":{"type":"string","nullable":true,"enum":["candidate","recruiter","clinic_owner",null]},"cvUrl":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"vendorsRole":{"type":"string","nullable":true,"enum":["vendor","ambassador",null]},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"hasClinicProfile":{"type":"boolean"},"hasVendorProfile":{"type":"boolean"},"hasAmbassadorProfile":{"type":"boolean"},"schedulingUrl":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"isEmailVerified":{"type":"boolean"},"referralCode":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInNonClinical":{"type":"boolean","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"consultationRequestCap":{"type":"integer"},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"vendorsOnboardingStep":{"type":"string","nullable":true}},"required":["id","email","role","jobsRole","cvUrl","avatarUrl","verificationTier","jobsVerificationTier","vendorsRole","vendorsVerificationTier","hasClinicProfile","hasVendorProfile","hasAmbassadorProfile","schedulingUrl","linkedinUrl","isEmailVerified","referralCode","credential","specialty","interestedInNonClinical","lookingForMentor","accreditedInvestor","startupAdvisor","createdAt","updatedAt","consultationRequestCap"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"},"notVerifiedCount":{"type":"integer"},"verifiedCount":{"type":"integer"},"proCount":{"type":"integer"},"jobsNotVerifiedCount":{"type":"integer"},"jobsVerifiedCount":{"type":"integer"},"candidateCount":{"type":"integer"},"recruiterCount":{"type":"integer"},"clinicOwnerCount":{"type":"integer"},"vendorsNotVerifiedCount":{"type":"integer"},"vendorsVerifiedCount":{"type":"integer"},"vendorCount":{"type":"integer"},"ambassadorCount":{"type":"integer"}},"required":["items","page","limit","total","totalPages","hasMore","notVerifiedCount","verifiedCount","proCount","jobsNotVerifiedCount","jobsVerifiedCount","candidateCount","recruiterCount","clinicOwnerCount","vendorsNotVerifiedCount","vendorsVerifiedCount","vendorCount","ambassadorCount"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}":{"patch":{"summary":"Update a user (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified"]},"isEmailVerified":{"type":"boolean"},"onboardingStep":{"type":"string","nullable":true,"maxLength":100},"jobsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified"]},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"role":{"type":"string","enum":["expert","client","admin","rpo"]},"jobsRole":{"type":"string","enum":["candidate","recruiter","clinic_owner"]},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"avatarUrl":{"type":"string"},"consultationRequestCap":{"type":"integer","minimum":0,"maximum":10000}}}}}},"responses":{"200":{"description":"User updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"jobsRole":{"type":"string","nullable":true,"enum":["candidate","recruiter","clinic_owner",null]},"cvUrl":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"vendorsRole":{"type":"string","nullable":true,"enum":["vendor","ambassador",null]},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"hasClinicProfile":{"type":"boolean"},"hasVendorProfile":{"type":"boolean"},"hasAmbassadorProfile":{"type":"boolean"},"schedulingUrl":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"isEmailVerified":{"type":"boolean"},"referralCode":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInNonClinical":{"type":"boolean","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"consultationRequestCap":{"type":"integer"},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"vendorsOnboardingStep":{"type":"string","nullable":true}},"required":["id","email","role","jobsRole","cvUrl","avatarUrl","verificationTier","jobsVerificationTier","vendorsRole","vendorsVerificationTier","hasClinicProfile","hasVendorProfile","hasAmbassadorProfile","schedulingUrl","linkedinUrl","isEmailVerified","referralCode","credential","specialty","interestedInNonClinical","lookingForMentor","accreditedInvestor","startupAdvisor","createdAt","updatedAt","consultationRequestCap"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Soft-delete a user (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"User deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true}},"required":["id","email","role"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Cannot delete this user","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/profile":{"get":{"summary":"Fetch a user with their full profile (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"User profile retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"hasRequestedSpeaker":{"type":"boolean"}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Update any user's full profile (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"avatarUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","enum":[""]}]},"role":{"type":"string","enum":["expert","client"]},"onboardingStep":{"type":"string","nullable":true,"minLength":1,"maxLength":64},"profile":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"credential":{"type":"string","maxLength":100},"specialty":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"yearsExperience":{"type":"number"},"availability":{"type":"string","maxLength":50},"availabilityDate":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"bio":{"type":"string","maxLength":2000},"phoneNumber":{"type":"string","pattern":"^\\d{6,15}$"},"countryCode":{"type":"string","pattern":"^\\+\\d{1,4}$"},"linkedinUrl":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"personalWebsite":{"type":"string","nullable":true,"maxLength":500,"format":"uri"},"systemsExperience":{"type":"array","nullable":true,"items":{"type":"string","maxLength":100}},"engagementType":{"type":"string","nullable":true,"maxLength":50},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":100}},"company":{"type":"string","maxLength":200},"jobSeekerIntent":{"type":"string","enum":["actively_looking","open_to_opportunities","not_looking"]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["category","items"]}},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItemInput"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}}}}}}}}},"responses":{"200":{"description":"User profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]},"hasRequestedSpeaker":{"type":"boolean"}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Phone number already in use","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/clinic-profile":{"get":{"summary":"Read a clinic owner's practice profile (admin + RPO).","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Clinic profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"practiceName":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryLocation":{"type":"string","nullable":true},"numberOfLocations":{"type":"integer","nullable":true},"practiceTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"rolesToHire":{"type":"array","nullable":true,"items":{"type":"string"}},"hiresPerQuarter":{"type":"string","nullable":true},"payerMix":{"type":"object","nullable":true,"properties":{"ppo":{"type":"number"},"hmo":{"type":"number"},"feeForService":{"type":"number"},"medicaid":{"type":"number"},"other":{"type":"number"}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean","nullable":true},"activeOperatories":{"type":"integer","nullable":true},"plumbedOperatories":{"type":"integer","nullable":true},"hygieneDaysPerWeek":{"type":"integer","nullable":true},"majorTechnology":{"type":"array","nullable":true,"items":{"type":"string"}},"associateRampUpPlan":{"type":"string","nullable":true},"teamCounts":{"type":"object","nullable":true,"properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","nullable":true,"items":{"type":"object","properties":{"specialty":{"type":"string"},"frequency":{"type":"string"}},"required":["specialty","frequency"]}},"officeManagerYears":{"type":"integer","nullable":true},"hasInHouseSpecialtyProgram":{"type":"boolean","nullable":true},"previousInHouseSpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistSupportExperience":{"type":"string","nullable":true},"ownerProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"associateProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"referredOutProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"dailyProductionGoal":{"type":"number","nullable":true},"guaranteedDailyAmount":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"commissionPercentage":{"type":"number","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"compensationFrequency":{"type":"string","nullable":true},"offersHealthInsurance":{"type":"boolean","nullable":true},"otherBenefits":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInMentoring":{"type":"boolean","nullable":true},"consideringSale":{"type":"boolean","nullable":true},"saleStakes":{"type":"array","nullable":true,"items":{"type":"string"}},"stayAfterSale":{"type":"boolean","nullable":true},"stayDurationMonths":{"type":"integer","nullable":true}},"required":["practiceName","description","primaryLocation","numberOfLocations","practiceTypes","rolesToHire","hiresPerQuarter","payerMix","usesInHousePlan","activeOperatories","plumbedOperatories","hygieneDaysPerWeek","majorTechnology","associateRampUpPlan","teamCounts","inHouseSpecialistCoverage","officeManagerYears","hasInHouseSpecialtyProgram","previousInHouseSpecialties","specialistSupportExperience","ownerProcedures","associateProcedures","referredOutProcedures","dailyProductionGoal","guaranteedDailyAmount","guaranteeType","commissionPercentage","tieredCommission","commissionTiers","compensationFrequency","offersHealthInsurance","otherBenefits","interestedInMentoring","consideringSale","saleStakes","stayAfterSale","stayDurationMonths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Edit a clinic owner's practice profile on their behalf (admin).","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"practiceName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"description":{"type":"string","minLength":1,"maxLength":5000},"primaryLocation":{"type":"string","minLength":1,"maxLength":300},"numberOfLocations":{"type":"integer","minimum":1,"maximum":10000},"practiceTypes":{"type":"array","items":{"type":"string","enum":["general","specialty","multi-specialty","dso","pediatric","ortho"]},"maxItems":50},"rolesToHire":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"maxItems":30},"hiresPerQuarter":{"type":"string","enum":["0-1","2-3","4-6","7-plus"]},"payerMix":{"type":"object","properties":{"ppo":{"type":"number","minimum":0,"maximum":100},"hmo":{"type":"number","minimum":0,"maximum":100},"feeForService":{"type":"number","minimum":0,"maximum":100},"medicaid":{"type":"number","minimum":0,"maximum":100},"other":{"type":"number","minimum":0,"maximum":100}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean"},"activeOperatories":{"type":"integer","minimum":0,"maximum":999},"plumbedOperatories":{"type":"integer","minimum":0,"maximum":999},"hygieneDaysPerWeek":{"type":"integer","minimum":0,"maximum":7},"majorTechnology":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":50},"associateRampUpPlan":{"type":"string","maxLength":5000},"teamCounts":{"type":"object","properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer","minimum":0,"maximum":999},"partTime":{"type":"integer","minimum":0,"maximum":999}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","items":{"type":"object","properties":{"specialty":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"frequency":{"type":"string","enum":["weekly","biweekly","monthly","as-needed"]}},"required":["specialty","frequency"]},"maxItems":20},"officeManagerYears":{"type":"integer","minimum":0,"maximum":80},"hasInHouseSpecialtyProgram":{"type":"boolean"},"previousInHouseSpecialties":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":12},"specialistSupportExperience":{"type":"string","enum":["none","some","extensive"]},"ownerProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"associateProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"referredOutProcedures":{"type":"array","items":{"type":"string","enum":["restorative-basic","restorative-full-arch","restorative-veneers","endo-anterior","endo-bicuspid","endo-molar","endo-retreatment","perio-implants-straightforward","perio-implants-full-arch","perio-surgical-extractions","perio-sinus-lift","perio-osseous-surgery","os-third-molars-erupted","os-third-molars-pbi","os-third-molars-fbi","sedation-iv"]},"maxItems":50},"dailyProductionGoal":{"type":"number","minimum":0,"maximum":1000000},"guaranteedDailyAmount":{"type":"number","minimum":0,"maximum":1000000},"guaranteeType":{"type":"string","enum":["base","draw"]},"commissionPercentage":{"type":"number","minimum":0,"maximum":100},"tieredCommission":{"type":"boolean"},"commissionTiers":{"type":"array","items":{"type":"object","properties":{"threshold":{"type":"number","minimum":0,"maximum":1000000},"percentage":{"type":"number","minimum":0,"maximum":100}},"required":["threshold","percentage"]},"maxItems":10},"compensationFrequency":{"type":"string","enum":["daily","weekly","monthly","quarterly"]},"offersHealthInsurance":{"type":"boolean"},"otherBenefits":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"maxItems":30},"interestedInMentoring":{"type":"boolean"},"consideringSale":{"type":"boolean"},"saleStakes":{"type":"array","items":{"type":"string","enum":["minority","majority","entire"]},"maxItems":3},"stayAfterSale":{"type":"boolean"},"stayDurationMonths":{"type":"integer","minimum":0,"maximum":600},"jobsOnboardingStep":{"type":"string","minLength":1,"maxLength":100}}}}}},"responses":{"200":{"description":"Clinic profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"practiceName":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryLocation":{"type":"string","nullable":true},"numberOfLocations":{"type":"integer","nullable":true},"practiceTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"rolesToHire":{"type":"array","nullable":true,"items":{"type":"string"}},"hiresPerQuarter":{"type":"string","nullable":true},"payerMix":{"type":"object","nullable":true,"properties":{"ppo":{"type":"number"},"hmo":{"type":"number"},"feeForService":{"type":"number"},"medicaid":{"type":"number"},"other":{"type":"number"}},"required":["ppo","hmo","feeForService","medicaid","other"]},"usesInHousePlan":{"type":"boolean","nullable":true},"activeOperatories":{"type":"integer","nullable":true},"plumbedOperatories":{"type":"integer","nullable":true},"hygieneDaysPerWeek":{"type":"integer","nullable":true},"majorTechnology":{"type":"array","nullable":true,"items":{"type":"string"}},"associateRampUpPlan":{"type":"string","nullable":true},"teamCounts":{"type":"object","nullable":true,"properties":{"associateDentists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"hygienists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"dentalAssistants":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"inHouseSpecialists":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]},"other":{"type":"object","properties":{"fullTime":{"type":"integer"},"partTime":{"type":"integer"}},"required":["fullTime","partTime"]}},"required":["associateDentists","hygienists","dentalAssistants","inHouseSpecialists","other"]},"inHouseSpecialistCoverage":{"type":"array","nullable":true,"items":{"type":"object","properties":{"specialty":{"type":"string"},"frequency":{"type":"string"}},"required":["specialty","frequency"]}},"officeManagerYears":{"type":"integer","nullable":true},"hasInHouseSpecialtyProgram":{"type":"boolean","nullable":true},"previousInHouseSpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"specialistSupportExperience":{"type":"string","nullable":true},"ownerProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"associateProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"referredOutProcedures":{"type":"array","nullable":true,"items":{"type":"string"}},"dailyProductionGoal":{"type":"number","nullable":true},"guaranteedDailyAmount":{"type":"number","nullable":true},"guaranteeType":{"type":"string","nullable":true},"commissionPercentage":{"type":"number","nullable":true},"tieredCommission":{"type":"boolean","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"compensationFrequency":{"type":"string","nullable":true},"offersHealthInsurance":{"type":"boolean","nullable":true},"otherBenefits":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInMentoring":{"type":"boolean","nullable":true},"consideringSale":{"type":"boolean","nullable":true},"saleStakes":{"type":"array","nullable":true,"items":{"type":"string"}},"stayAfterSale":{"type":"boolean","nullable":true},"stayDurationMonths":{"type":"integer","nullable":true}},"required":["practiceName","description","primaryLocation","numberOfLocations","practiceTypes","rolesToHire","hiresPerQuarter","payerMix","usesInHousePlan","activeOperatories","plumbedOperatories","hygieneDaysPerWeek","majorTechnology","associateRampUpPlan","teamCounts","inHouseSpecialistCoverage","officeManagerYears","hasInHouseSpecialtyProgram","previousInHouseSpecialties","specialistSupportExperience","ownerProcedures","associateProcedures","referredOutProcedures","dailyProductionGoal","guaranteedDailyAmount","guaranteeType","commissionPercentage","tieredCommission","commissionTiers","compensationFrequency","offersHealthInsurance","otherBenefits","interestedInMentoring","consideringSale","saleStakes","stayAfterSale","stayDurationMonths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/recruiter-profile":{"get":{"summary":"Read a recruiter's agency profile (admin + RPO).","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Recruiter profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"roleTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"specialties":{"type":"array","nullable":true,"items":{"type":"string"}},"locations":{"type":"array","nullable":true,"items":{"type":"string"}},"inventory":{"type":"string","nullable":true},"listingVolume":{"type":"string","nullable":true},"displayAgencyName":{"type":"boolean","nullable":true},"introContact":{"type":"string","nullable":true}},"required":["companyName","roleTypes","specialties","locations","inventory","listingVolume","displayAgencyName","introContact"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Edit a recruiter's agency profile on their behalf (admin).","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"companyName":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\p{L}/u"},"roleTypes":{"type":"array","items":{"type":"string","enum":["general","specialist"]},"maxItems":10},"specialties":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":20},"locations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"maxItems":100},"inventory":{"type":"string","enum":["candidates","opportunities","both"]},"listingVolume":{"type":"string","enum":["0-5","6-15","16-30","30-plus"]},"displayAgencyName":{"type":"boolean"},"introContact":{"type":"string","minLength":1,"maxLength":300},"jobsOnboardingStep":{"type":"string","minLength":1,"maxLength":100}}}}}},"responses":{"200":{"description":"Recruiter profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"roleTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"specialties":{"type":"array","nullable":true,"items":{"type":"string"}},"locations":{"type":"array","nullable":true,"items":{"type":"string"}},"inventory":{"type":"string","nullable":true},"listingVolume":{"type":"string","nullable":true},"displayAgencyName":{"type":"boolean","nullable":true},"introContact":{"type":"string","nullable":true}},"required":["companyName","roleTypes","specialties","locations","inventory","listingVolume","displayAgencyName","introContact"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/candidate-profile":{"patch":{"summary":"Edit a candidate's credential and specialty on their behalf (admin).","tags":["Admin","Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"credential":{"type":"string","enum":["associate-dentist","specialist","student"]},"specialty":{"type":"array","items":{"type":"string","enum":["endodontics","oral-maxillofacial-surgery","orthodontics","pediatric-dentistry","periodontics","prosthodontics","oral-maxillofacial-pathology","oral-maxillofacial-radiology","dental-public-health","oral-medicine","orofacial-pain","dental-anesthesiology"]},"maxItems":5},"interestedInNonClinical":{"type":"boolean"},"lookingForMentor":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Candidate profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"jobsRole":{"type":"string","nullable":true,"enum":["candidate","recruiter","clinic_owner",null]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsOnboardingStep":{"type":"string","nullable":true},"hasCv":{"type":"boolean"},"cvUrl":{"type":"string","nullable":true},"cvUpdatedAt":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"referralCode":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"interestedInNonClinical":{"type":"boolean","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true}},"required":["id","email","jobsRole","jobsVerificationTier","jobsOnboardingStep","hasCv","cvUrl","cvUpdatedAt","credential","specialty","firstName","lastName","avatarUrl","referralCode","countryCode","phoneNumber","linkedinUrl","interestedInNonClinical","lookingForMentor"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/email-templates":{"get":{"summary":"List admin-composable email templates for a user (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Email templates retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"label":{"type":"string"},"defaultSubject":{"type":"string"},"defaultBody":{"type":"string"}},"required":["type","label","defaultSubject","defaultBody"]}}},"required":["templates"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/email":{"post":{"summary":"Send a custom transactional email to a user (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["admin_custom_connect_call","admin_custom_founder_invite"]},"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":10000}},"required":["type","subject","body"]}}}},"responses":{"200":{"description":"Custom email sent","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"email":{"type":"string"},"type":{"type":"string"},"subject":{"type":"string"},"sentAt":{"type":"string"}},"required":["userId","email","type","subject","sentAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/intro-email/preview":{"post":{"summary":"Render the LinkedIn follow-up intro email for a recipient, without sending (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"recipientFirstName":{"type":"string","minLength":1,"maxLength":100},"recipientLinkedin":{"type":"string","minLength":1,"format":"uri"},"introducerFirstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"introducerEmail":{"type":"string","format":"email"},"introducerLinkedin":{"type":"string","minLength":1,"format":"uri"},"introduceeFirstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"introduceeFullName":{"type":"string","minLength":1,"maxLength":200},"introduceeTitle":{"type":"string","minLength":1,"maxLength":200},"introduceeCompany":{"type":"string","minLength":1,"maxLength":200},"introduceeEmail":{"type":"string","format":"email"},"introduceeLinkedin":{"type":"string","minLength":1,"format":"uri"},"introduceeSchedulingLink":{"type":"string","minLength":1,"format":"uri"},"introReason":{"type":"string","minLength":1,"maxLength":500},"senderName":{"type":"string","minLength":1,"maxLength":100},"senderTitle":{"type":"string","minLength":1,"maxLength":200},"senderOrg":{"type":"string","minLength":1,"maxLength":200}},"required":["recipientLinkedin","introducerFirstName","introducerEmail","introducerLinkedin","introduceeFirstName","introduceeFullName","introduceeTitle","introduceeCompany","introduceeEmail","introduceeLinkedin","introduceeSchedulingLink","introReason","senderName","senderTitle","senderOrg"]}}}},"responses":{"200":{"description":"Rendered subject, body and routing","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"subject":{"type":"string"},"body":{"type":"string"},"to":{"type":"string"},"cc":{"type":"array","items":{"type":"string"}}},"required":["subject","body","to","cc"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/intro-email":{"post":{"summary":"Send the (possibly edited) intro email to a recipient, CCing both sides and the team (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":10000},"introducerEmail":{"type":"string","format":"email"},"introduceeEmail":{"type":"string","format":"email"}},"required":["subject","body","introducerEmail","introduceeEmail"]}}}},"responses":{"200":{"description":"Intro email sent","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"email":{"type":"string"},"subject":{"type":"string"},"cc":{"type":"array","items":{"type":"string"}},"sentAt":{"type":"string"}},"required":["userId","email","subject","cc","sentAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/zoho/candidates":{"post":{"summary":"Add a new candidate to Zoho Recruit with Source set to the caller's email. 409s when the email or LinkedIn profile is already in Zoho, whoever added it; existing candidates are changed with PUT. Optional jobIds assign the candidate to those job openings (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","format":"email"},"secondaryEmail":{"type":"string","format":"email"},"phone":{"type":"string","minLength":1,"maxLength":30},"city":{"type":"string","minLength":1,"maxLength":100},"state":{"type":"string","minLength":1,"maxLength":100},"currentJobTitle":{"type":"string","minLength":1,"maxLength":200},"experienceInYears":{"type":"integer","minimum":0,"maximum":70},"skillSet":{"type":"string","minLength":1,"maxLength":1000},"linkedinUrl":{"type":"string","minLength":1},"openToWork":{"type":"boolean"}},"required":["firstName","lastName"]},{"type":"object","properties":{"jobIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"minItems":1,"maxItems":50}}}]}}}},"responses":{"201":{"description":"Candidate created in Zoho Recruit","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"zohoCandidateId":{"type":"string"},"action":{"type":"string","enum":["created","updated"]},"associatedJobIds":{"type":"array","items":{"type":"string"},"description":"Job openings the candidate was assigned to on create"}},"required":["zohoCandidateId","action"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Email or LinkedIn profile already in Zoho Recruit","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"get":{"summary":"List Zoho Recruit candidates, newest first, or search by name, email or LinkedIn; RPOs see only candidates whose Source is their email (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"required":false,"name":"perPage","in":"query"},{"schema":{"type":"string","maxLength":100},"required":false,"name":"search","in":"query"}],"responses":{"200":{"description":"Zoho Recruit candidates","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string"},"email":{"type":"string","nullable":true},"secondaryEmail":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"currentJobTitle":{"type":"string","nullable":true},"experienceInYears":{"type":"number","nullable":true},"skillSet":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"openToWork":{"type":"boolean"},"source":{"type":"string","nullable":true,"description":"Email of the user who added the candidate"},"createdAt":{"type":"string","nullable":true}},"required":["id","firstName","lastName","email","secondaryEmail","phone","city","state","currentJobTitle","experienceInYears","skillSet","linkedinUrl","openToWork","source","createdAt"]}},"page":{"type":"integer"},"perPage":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","perPage","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/zoho/candidates/bulk":{"post":{"summary":"Add up to 10 candidates to Zoho Recruit with the same rules as a single add, optionally assigning each to job openings; returns a result per row so one bad row does not fail the batch (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"candidates":{"type":"array","items":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","format":"email"},"secondaryEmail":{"type":"string","format":"email"},"phone":{"type":"string","minLength":1,"maxLength":30},"city":{"type":"string","minLength":1,"maxLength":100},"state":{"type":"string","minLength":1,"maxLength":100},"currentJobTitle":{"type":"string","minLength":1,"maxLength":200},"experienceInYears":{"type":"integer","minimum":0,"maximum":70},"skillSet":{"type":"string","minLength":1,"maxLength":1000},"linkedinUrl":{"type":"string","minLength":1},"openToWork":{"type":"boolean"}},"required":["firstName","lastName"]},"minItems":1,"maxItems":10},"jobIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"minItems":1,"maxItems":50}},"required":["candidates"]}}}},"responses":{"200":{"description":"Per-row import results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","enum":["created","updated","failed"]},"zohoCandidateId":{"type":"string","nullable":true},"message":{"type":"string","nullable":true}},"required":["status","zohoCandidateId","message"]},"description":"One result per submitted candidate, in order"}},"required":["results"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/zoho/candidates/lookup":{"get":{"summary":"Check whether a lead is already in Zoho Recruit by email or LinkedIn profile, for warning while the add form is filled in. Reports a match even when the caller cannot open it, but only returns the id and name of a candidate they could already see (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"email"},"required":false,"name":"email","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"linkedinUrl","in":"query"}],"responses":{"200":{"description":"Duplicate check result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"exists":{"type":"boolean"},"matchedOn":{"type":"string","nullable":true,"enum":["email","linkedin",null]},"addedByYou":{"type":"boolean"},"candidateId":{"type":"string","nullable":true,"description":"Null when the caller cannot open the existing candidate"},"name":{"type":"string","nullable":true}},"required":["exists","matchedOn","addedByYou","candidateId","name"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/zoho/candidates/{id}":{"put":{"summary":"Replace a Zoho Recruit candidate's details; blank optional fields are cleared and Source never changes. RPOs may only edit their own candidates (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"email":{"type":"string","format":"email"},"secondaryEmail":{"type":"string","format":"email"},"phone":{"type":"string","minLength":1,"maxLength":30},"city":{"type":"string","minLength":1,"maxLength":100},"state":{"type":"string","minLength":1,"maxLength":100},"currentJobTitle":{"type":"string","minLength":1,"maxLength":200},"experienceInYears":{"type":"integer","minimum":0,"maximum":70},"skillSet":{"type":"string","minLength":1,"maxLength":1000},"linkedinUrl":{"type":"string","minLength":1},"openToWork":{"type":"boolean"}},"required":["firstName","lastName"]}}}},"responses":{"200":{"description":"Candidate updated in Zoho Recruit","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"zohoCandidateId":{"type":"string"},"action":{"type":"string","enum":["created","updated"]},"associatedJobIds":{"type":"array","items":{"type":"string"},"description":"Job openings the candidate was assigned to on create"}},"required":["zohoCandidateId","action"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Candidate not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Delete a candidate from Zoho Recruit (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Candidate deleted from Zoho Recruit","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"zohoCandidateId":{"type":"string"}},"required":["zohoCandidateId"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/zoho/job-openings":{"get":{"summary":"List In-progress Zoho Recruit job openings (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Active Zoho Recruit job openings","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"jobOpeningId":{"type":"string","nullable":true},"clientName":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["id","title","jobOpeningId","clientName","city","state"]}}},"required":["items"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/dripify/campaigns":{"get":{"summary":"List ACTIVE Dripify campaigns, newest first (admin only)","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Active Dripify campaigns","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"string","nullable":true}},"required":["id","name","createdAt"]}}},"required":["items"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Dripify request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Dripify is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/dripify/campaigns/{id}/leads":{"post":{"summary":"Add LinkedIn profiles to a Dripify campaign as a new lead list named after the date and the admin (admin only)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"linkedinUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":1000}},"required":["linkedinUrls"]}}}},"responses":{"200":{"description":"The lead list created in the campaign","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"leadListId":{"type":"string"},"leadListName":{"type":"string"},"acceptedCount":{"type":"number","description":"Unique leads written to the new list"},"duplicateCount":{"type":"number","description":"Leads dropped as duplicates within the request"}},"required":["leadListId","leadListName","acceptedCount","duplicateCount"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Dripify request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Dripify is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/zoho/candidates/{id}/job-openings":{"get":{"summary":"List the job openings a Zoho Recruit candidate is on, with their status on each; Zoho's API cannot remove these. RPOs may only read their own candidates (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The candidate's job openings","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"jobOpeningId":{"type":"string","nullable":true},"clientName":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"applicationStatus":{"type":"string","nullable":true,"description":"The candidate's status on this job in Zoho, e.g. Associated"}},"required":["id","title","jobOpeningId","clientName","city","state","applicationStatus"]}}},"required":["items"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Candidate not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"post":{"summary":"Assign a Zoho Recruit candidate to job openings; RPOs may only assign their own candidates (admin or RPO)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"jobIds":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"minItems":1,"maxItems":50}},"required":["jobIds"]}}}},"responses":{"200":{"description":"Candidate assigned to the job openings","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"zohoCandidateId":{"type":"string"},"jobIds":{"type":"array","items":{"type":"string"}}},"required":["zohoCandidateId","jobIds"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Candidate not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Zoho Recruit rejected the request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Zoho Recruit is not configured","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/role":{"patch":{"summary":"Assign a role to a user (admin)","tags":["Admin"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["expert","client","admin","rpo"]}},"required":["id","role"]}}}},"responses":{"200":{"description":"User role assigned","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"jobsRole":{"type":"string","nullable":true,"enum":["candidate","recruiter","clinic_owner",null]},"cvUrl":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"vendorsRole":{"type":"string","nullable":true,"enum":["vendor","ambassador",null]},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"hasClinicProfile":{"type":"boolean"},"hasVendorProfile":{"type":"boolean"},"hasAmbassadorProfile":{"type":"boolean"},"schedulingUrl":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"isEmailVerified":{"type":"boolean"},"referralCode":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"interestedInNonClinical":{"type":"boolean","nullable":true},"lookingForMentor":{"type":"boolean","nullable":true},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"consultationRequestCap":{"type":"integer"},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"vendorsOnboardingStep":{"type":"string","nullable":true}},"required":["id","email","role","jobsRole","cvUrl","avatarUrl","verificationTier","jobsVerificationTier","vendorsRole","vendorsVerificationTier","hasClinicProfile","hasVendorProfile","hasAmbassadorProfile","schedulingUrl","linkedinUrl","isEmailVerified","referralCode","credential","specialty","interestedInNonClinical","lookingForMentor","accreditedInvestor","startupAdvisor","createdAt","updatedAt","consultationRequestCap"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Cannot change this role","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/role-postings":{"post":{"summary":"Create a role posting on behalf of an admin user","tags":["Admin"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"companyName":{"type":"string","maxLength":200},"healthcareVertical":{"type":"string","maxLength":100},"contactPerson":{"type":"string","maxLength":100},"contactEmail":{"type":"string","maxLength":254,"format":"email"},"roleNeeded":{"type":"string","maxLength":200},"workingPreference":{"type":"string","maxLength":100},"challenge":{"type":"string","maxLength":5000},"timeline":{"type":"string","maxLength":100},"budgetRange":{"type":"string","maxLength":100},"hoursPerWeek":{"type":"string","maxLength":50},"location":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":50}},"status":{"type":"string","enum":["pending","active","filled","closed"]},"userId":{"type":"string","format":"uuid"}},"required":["companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","userId"]}}}},"responses":{"201":{"description":"Role created by admin","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"avatarUrl":{"type":"string"},"referralCode":{"type":"string","nullable":true},"verificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"jobsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"onboardingStep":{"type":"string","nullable":true},"jobsOnboardingStep":{"type":"string","nullable":true},"consultationRequestCap":{"type":"integer"},"additionalDetail":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"specialty":{"type":"array","nullable":true,"items":{"type":"string"}},"secondarySpecialties":{"type":"array","nullable":true,"items":{"type":"string"}},"yearsExperience":{"type":"number","nullable":true},"availability":{"type":"string","nullable":true},"availabilityDate":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"personalWebsite":{"type":"string","nullable":true},"systemsExperience":{"type":"string","nullable":true},"engagementType":{"type":"string","nullable":true},"outcomes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OutcomeItem"}},"background":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/BackgroundItem"}},"credentials":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/CredentialItem"}},"licenses":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/LicenseItem"}},"desiredLicensedStates":{"type":"array","nullable":true,"items":{"type":"string"}},"matchScore":{"type":"number"},"imageAlt":{"type":"string"},"profileViews":{"type":"number"},"company":{"type":"string","nullable":true},"jobSeekerIntent":{"type":"string","nullable":true,"enum":["actively_looking","open_to_opportunities","not_looking",null]},"accreditedInvestor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"startupAdvisor":{"type":"string","nullable":true,"enum":["yes","no","unsure",null]},"skills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"interestedSkills":{"type":"array","nullable":true,"items":{"type":"object","properties":{"category":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["category","items"]}},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"education":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EducationItem"}},"tourProgress":{"type":"object","nullable":true,"additionalProperties":{"type":"boolean"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","title","credential","specialty","secondarySpecialties","yearsExperience","availability","availabilityDate","location","bio","phoneNumber","countryCode","linkedinUrl","personalWebsite","systemsExperience","engagementType","outcomes","background","credentials","matchScore","imageAlt","profileViews","createdAt","updatedAt"]}},"required":["id","email","role","verificationTier","jobsVerificationTier"]},"companyName":{"type":"string"},"healthcareVertical":{"type":"string"},"contactPerson":{"type":"string"},"contactEmail":{"type":"string"},"roleNeeded":{"type":"string"},"workingPreference":{"type":"string"},"challenge":{"type":"string"},"timeline":{"type":"string"},"budgetRange":{"type":"string"},"hoursPerWeek":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string"},"applicantCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","userId","companyName","healthcareVertical","contactPerson","contactEmail","roleNeeded","workingPreference","challenge","timeline","budgetRange","status","applicantCount","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"get":{"summary":"List RolePosting rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"RolePosting rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/logs":{"get":{"summary":"List all admin logs (paginated)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Admin logs retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"admin":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id","email","avatarUrl"]},"targetUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id","email","avatarUrl"]},"action":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}},"createdAt":{"type":"string"}},"required":["id","admin","targetUser","action","details","createdAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/vendor-interests":{"get":{"summary":"The DDS Vendors interest log.","description":"Every vendor↔ambassador pair someone has marked, and which side marked it. This is the only place the two sides appear together — the platform never introduces them to each other, so the team works the introductions from here. A `bothSides` pair is not a match: neither user has been told anything beyond their own count. `counts` describes the whole search-filtered set, not the current page.","tags":["Admin","Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","maxLength":200},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","enum":["all","both","vendor-only","ambassador-only"],"default":"all"},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Vendor interests retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"vendorUserId":{"type":"string","format":"uuid"},"vendorName":{"type":"string","nullable":true},"vendorEmail":{"type":"string"},"vendorCompanyName":{"type":"string","nullable":true},"vendorOffering":{"type":"string","nullable":true},"vendorCategories":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorUserId":{"type":"string","format":"uuid"},"ambassadorName":{"type":"string","nullable":true},"ambassadorEmail":{"type":"string"},"ambassadorLocation":{"type":"string","nullable":true},"ambassadorCategories":{"type":"array","nullable":true,"items":{"type":"string"}},"vendorInterested":{"type":"boolean"},"ambassadorInterested":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","vendorUserId","vendorName","vendorEmail","vendorCompanyName","vendorOffering","vendorCategories","ambassadorUserId","ambassadorName","ambassadorEmail","ambassadorLocation","ambassadorCategories","vendorInterested","ambassadorInterested","createdAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"},"counts":{"type":"object","properties":{"total":{"type":"integer"},"bothSides":{"type":"integer"},"vendorOnly":{"type":"integer"},"ambassadorOnly":{"type":"integer"}},"required":["total","bothSides","vendorOnly","ambassadorOnly"]}},"required":["items","page","limit","total","totalPages","hasMore","counts"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/documents":{"post":{"summary":"Generate an unsigned PDF, store it, and either email a signing link (custom) or push to Documenso (documenso). Provider chosen per-document via the `provider` field.","tags":["Admin"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["practice-search-agreement","professional-work-seeking-agreement","spv-organizational-fee-agreement"],"default":"practice-search-agreement"},"provider":{"type":"string","enum":["custom","documenso"],"default":"custom"},"title":{"type":"string","minLength":1,"maxLength":200},"effectiveDate":{"type":"string","minLength":1,"maxLength":60},"practiceName":{"type":"string","minLength":1,"maxLength":200},"practiceEntityType":{"type":"string","minLength":1,"maxLength":120},"practiceAddress":{"type":"string","minLength":1,"maxLength":300},"professionalState":{"type":"string","minLength":1,"maxLength":60},"companyName":{"type":"string","minLength":1,"maxLength":200},"companyState":{"type":"string","minLength":1,"maxLength":60},"companyEntityType":{"type":"string","minLength":1,"maxLength":120},"companyAddress":{"type":"string","minLength":1,"maxLength":300},"companyContactName":{"type":"string","minLength":1,"maxLength":200},"companyContactEmail":{"type":"string","maxLength":200,"format":"email"},"signers":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"signerTitle":{"type":"string","minLength":1,"maxLength":120}},"required":["userId","signerTitle"]},"minItems":1,"maxItems":20}},"required":["title","effectiveDate","signers"]}}}},"responses":{"201":{"description":"Document sent","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"adminId":{"type":"string","format":"uuid"},"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"pdfUrl":{"type":"string"},"provider":{"type":"string"},"documensoDocumentId":{"type":"string","nullable":true},"signers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","adminId","type","title","status","pdfUrl","provider","signers","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"502":{"description":"Upstream Documenso request failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/documents/{id}":{"delete":{"summary":"Delete a document row and its unsigned/signed PDFs from storage","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Document deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Document not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/documents/me":{"get":{"summary":"List the signed/unsigned documents addressed to the logged-in user","tags":["Documents"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Documents retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"document":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"adminId":{"type":"string","format":"uuid"},"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"pdfUrl":{"type":"string"},"provider":{"type":"string"},"documensoDocumentId":{"type":"string","nullable":true},"signers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","adminId","type","title","status","pdfUrl","provider","signers","createdAt","updatedAt"]},"viewUrl":{"type":"string","nullable":true},"signer":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]},"documenso":{"type":"object","nullable":true,"properties":{"token":{"type":"string"},"embedHost":{"type":"string"}},"required":["token","embedHost"]}},"required":["document","viewUrl","signer","documenso"]}},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/documents/{token}":{"get":{"summary":"Fetch a document for signing (caller must be authenticated and own it)","tags":["Documents"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Document retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"document":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"adminId":{"type":"string","format":"uuid"},"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"pdfUrl":{"type":"string"},"provider":{"type":"string"},"documensoDocumentId":{"type":"string","nullable":true},"signers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","adminId","type","title","status","pdfUrl","provider","signers","createdAt","updatedAt"]},"viewUrl":{"type":"string","nullable":true},"signer":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]},"documenso":{"type":"object","nullable":true,"properties":{"token":{"type":"string"},"embedHost":{"type":"string"}},"required":["token","embedHost"]}},"required":["document","viewUrl","signer","documenso"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Document not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/documents/{token}/sign":{"post":{"summary":"Append the user signature to the PDF (custom flow only). Documenso-provider documents are signed in the embedded iframe and reject this endpoint with 409.","tags":["Documents"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"token","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"signatureBase64":{"type":"string","minLength":1}},"required":["signatureBase64"]}}}},"responses":{"200":{"description":"Document signed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"document":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"adminId":{"type":"string","format":"uuid"},"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"pdfUrl":{"type":"string"},"provider":{"type":"string"},"documensoDocumentId":{"type":"string","nullable":true},"signers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","adminId","type","title","status","pdfUrl","provider","signers","createdAt","updatedAt"]},"viewUrl":{"type":"string","nullable":true},"signer":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"documentId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"signerOrder":{"type":"number"},"signerTitle":{"type":"string"},"signingToken":{"type":"string"},"status":{"type":"string"},"signedAt":{"type":"string","nullable":true},"documensoRecipientId":{"type":"string","nullable":true},"documensoSigningToken":{"type":"string","nullable":true},"user":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","nullable":true,"format":"email"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string"}},"required":["id"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","documentId","userId","signerOrder","signerTitle","signingToken","status","signedAt","createdAt","updatedAt"]},"documenso":{"type":"object","nullable":true,"properties":{"token":{"type":"string"},"embedHost":{"type":"string"}},"required":["token","embedHost"]}},"required":["document","viewUrl","signer","documenso"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Document not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Document is already signed, or routed through Documenso","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/additional-details":{"get":{"summary":"List AdditionalDetail rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"AdditionalDetail rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/additional-details/{id}":{"delete":{"summary":"Soft-delete a AdditionalDetail row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"AdditionalDetail row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"AdditionalDetail not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/saved-experts":{"get":{"summary":"List SavedExpert rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"SavedExpert rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/saved-experts/{id}":{"delete":{"summary":"Soft-delete a SavedExpert row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"SavedExpert row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"SavedExpert not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/role-postings/{id}":{"delete":{"summary":"Soft-delete a RolePosting row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"RolePosting row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"RolePosting not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/role-applications":{"get":{"summary":"List RoleApplication rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"RoleApplication rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/role-applications/{id}":{"delete":{"summary":"Soft-delete a RoleApplication row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"RoleApplication row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"RoleApplication not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/intro-requests":{"get":{"summary":"List IntroRequest rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"IntroRequest rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/intro-requests/{id}":{"delete":{"summary":"Soft-delete a IntroRequest row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"IntroRequest row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"IntroRequest not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/feed-posts":{"get":{"summary":"List FeedPost rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"FeedPost rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/feed-posts/{id}":{"delete":{"summary":"Soft-delete a FeedPost row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"FeedPost row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"FeedPost not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/feed-post-likes":{"get":{"summary":"List FeedPostLike rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"FeedPostLike rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/feed-post-likes/{id}":{"delete":{"summary":"Soft-delete a FeedPostLike row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"FeedPostLike row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"FeedPostLike not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/feed-post-comments":{"get":{"summary":"List FeedPostComment rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"FeedPostComment rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/feed-post-comments/{id}":{"delete":{"summary":"Soft-delete a FeedPostComment row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"FeedPostComment row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"FeedPostComment not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/signable-documents":{"get":{"summary":"List SignableDocument rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"SignableDocument rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/signable-documents/{id}":{"delete":{"summary":"Soft-delete a SignableDocument row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"SignableDocument row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"SignableDocument not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/email-logs":{"get":{"summary":"List EmailLog rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"EmailLog rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/email-logs/{id}":{"delete":{"summary":"Soft-delete a EmailLog row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"EmailLog row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"EmailLog not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/speaker-requests":{"get":{"summary":"List SpeakerRequest rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"SpeakerRequest rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/speaker-requests/{id}":{"delete":{"summary":"Soft-delete a SpeakerRequest row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"SpeakerRequest row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"SpeakerRequest not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/vendor-profiles":{"get":{"summary":"List VendorProfile rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"VendorProfile rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/vendor-profiles/{id}":{"delete":{"summary":"Soft-delete a VendorProfile row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"VendorProfile row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"VendorProfile not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/ambassador-profiles":{"get":{"summary":"List AmbassadorProfile rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"AmbassadorProfile rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/ambassador-profiles/{id}":{"delete":{"summary":"Soft-delete a AmbassadorProfile row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"AmbassadorProfile row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"AmbassadorProfile not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/vendor-ambassador-interests":{"get":{"summary":"List VendorAmbassadorInterest rows (paginated, raw entity shape)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"VendorAmbassadorInterest rows retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":{"nullable":true}}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/vendor-ambassador-interests/{id}":{"delete":{"summary":"Soft-delete a VendorAmbassadorInterest row","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"VendorAmbassadorInterest row deleted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"VendorAmbassadorInterest not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/blogs":{"get":{"summary":"List published blog posts (public)","tags":["Blogs"],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":12},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"}],"responses":{"200":{"description":"Blogs retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string","nullable":true},"content":{"type":"string"},"authorName":{"type":"string"},"authorAvatarUrl":{"type":"string","nullable":true},"byline":{"type":"string","nullable":true},"heroImageUrl":{"type":"string","nullable":true},"publishedAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","title","excerpt","content","authorName","authorAvatarUrl","byline","heroImageUrl","publishedAt","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}}}}},"/blogs/{slug}":{"get":{"summary":"Get a single blog post by slug (public)","tags":["Blogs"],"parameters":[{"schema":{"type":"string","maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Blog retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string","nullable":true},"content":{"type":"string"},"authorName":{"type":"string"},"authorAvatarUrl":{"type":"string","nullable":true},"byline":{"type":"string","nullable":true},"heroImageUrl":{"type":"string","nullable":true},"publishedAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","title","excerpt","content","authorName","authorAvatarUrl","byline","heroImageUrl","publishedAt","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"404":{"description":"Blog not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/blogs":{"get":{"summary":"List all blog posts (admin)","tags":["Admin","Blogs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":12},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"}],"responses":{"200":{"description":"Blogs retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string","nullable":true},"content":{"type":"string"},"authorName":{"type":"string"},"authorAvatarUrl":{"type":"string","nullable":true},"byline":{"type":"string","nullable":true},"heroImageUrl":{"type":"string","nullable":true},"publishedAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","title","excerpt","content","authorName","authorAvatarUrl","byline","heroImageUrl","publishedAt","createdAt","updatedAt"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"post":{"summary":"Create a blog post (admin)","tags":["Admin","Blogs"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"excerpt":{"type":"string","nullable":true,"maxLength":1000},"byline":{"type":"string","nullable":true,"maxLength":200},"heroImageUrl":{"type":"string","nullable":true,"maxLength":1000,"pattern":"^https?:\\/\\//i"},"content":{"type":"string","minLength":1}},"required":["title","content"]}}}},"responses":{"201":{"description":"Blog created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string","nullable":true},"content":{"type":"string"},"authorName":{"type":"string"},"authorAvatarUrl":{"type":"string","nullable":true},"byline":{"type":"string","nullable":true},"heroImageUrl":{"type":"string","nullable":true},"publishedAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","title","excerpt","content","authorName","authorAvatarUrl","byline","heroImageUrl","publishedAt","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Slug already in use","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/blogs/{id}":{"patch":{"summary":"Update a blog post (admin)","tags":["Admin","Blogs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"excerpt":{"type":"string","nullable":true,"maxLength":1000},"byline":{"type":"string","nullable":true,"maxLength":200},"heroImageUrl":{"type":"string","nullable":true,"maxLength":1000,"pattern":"^https?:\\/\\//i"},"content":{"type":"string","minLength":1}}}}}},"responses":{"200":{"description":"Blog updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string","nullable":true},"content":{"type":"string"},"authorName":{"type":"string"},"authorAvatarUrl":{"type":"string","nullable":true},"byline":{"type":"string","nullable":true},"heroImageUrl":{"type":"string","nullable":true},"publishedAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","title","excerpt","content","authorName","authorAvatarUrl","byline","heroImageUrl","publishedAt","createdAt","updatedAt"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Blog not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"delete":{"summary":"Soft-delete a blog post (admin)","tags":["Admin","Blogs"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Blog deleted","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Blog not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/me":{"get":{"summary":"The signed-in user's vendors role, verification tier and onboarding progress.","description":"Read by the portal middleware on every gated navigation. `vendorsRole` is null until the user picks at /choose-role; `vendorsVerificationTier` of `not-verified` is what makes the portal show the book-a-call prompt.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Vendors profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"role":{"type":"string","nullable":true,"enum":["expert","admin","rpo","client",null]},"vendorsRole":{"type":"string","nullable":true,"enum":["vendor","ambassador",null]},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"vendorsOnboardingStep":{"type":"string","nullable":true},"isEmailVerified":{"type":"boolean"}},"required":["id","email","firstName","lastName","avatarUrl","role","vendorsRole","vendorsVerificationTier","vendorsOnboardingStep","isEmailVerified"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Set the vendors role (once), the display name, or the onboarding step.","description":"`vendorsRole` is a one-time self-selection — changing it after it is set returns 409, because vendor and ambassador have separate profile tables and switching would strand a half-filled row.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"vendorsRole":{"type":"string","enum":["vendor","ambassador"]},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100}}}}}},"responses":{"200":{"description":"Vendors profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"role":{"type":"string","nullable":true,"enum":["expert","admin","rpo","client",null]},"vendorsRole":{"type":"string","nullable":true,"enum":["vendor","ambassador",null]},"vendorsVerificationTier":{"type":"string","enum":["not-verified","verified","pro"]},"vendorsOnboardingStep":{"type":"string","nullable":true},"isEmailVerified":{"type":"boolean"}},"required":["id","email","firstName","lastName","avatarUrl","role","vendorsRole","vendorsVerificationTier","vendorsOnboardingStep","isEmailVerified"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Vendors role already set","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/vendor-profile":{"get":{"summary":"Get the vendor company's profile (all fields nullable until onboarded).","tags":["Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Vendor profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"legalAddress":{"type":"string","nullable":true},"signatoryName":{"type":"string","nullable":true},"signatoryTitle":{"type":"string","nullable":true},"signatoryEmail":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"categorySuggestion":{"type":"string","nullable":true},"wantsAmbassadors":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"introEmailTemplate":{"type":"string","nullable":true},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"attachmentPaths":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["companyName","legalAddress","signatoryName","signatoryTitle","signatoryEmail","offering","businessModel","sellsType","sellsDetail","painPoint","usp","videoUrl","videoObjectPath","socialUrls","linkedinUrl","facebookUrl","schedulingUrl","runsOwnEvents","supportModel","wantsSocialAmplification","categories","subcategories","categorySuggestion","wantsAmbassadors","ambassadorPreferences","ambassadorClassification","ambassadorAttributes","ambassadorTypes","repTypes","commissionOffer","commissionBasis","commissionRate","ambassadorOfferDetails","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","commissionIncludesAmbassadorComp","paymentCadence","introEmailTemplate","successMetricType","successMetricValue","successMetricPeriod","attachmentPaths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a vendor","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Save one step of the vendor onboarding (partial merge).","description":"Setting `vendorsOnboardingStep` to 'completed' for the first time fires the application-received email to the vendor and a notification to the team. Later saves of an already-completed application send nothing.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"companyName":{"type":"string","nullable":true,"maxLength":200},"legalAddress":{"type":"string","nullable":true,"maxLength":500},"signatoryName":{"type":"string","nullable":true,"maxLength":200},"signatoryTitle":{"type":"string","nullable":true,"maxLength":200},"signatoryEmail":{"type":"string","nullable":true,"maxLength":254,"format":"email"},"offering":{"type":"string","nullable":true,"maxLength":2000},"businessModel":{"type":"string","nullable":true,"maxLength":2000},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true,"maxLength":2000},"painPoint":{"type":"string","nullable":true,"maxLength":2000},"usp":{"type":"string","nullable":true,"maxLength":2000},"videoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"videoObjectPath":{"type":"string","nullable":true,"maxLength":500},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":2048},"maxItems":10},"linkedinUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"facebookUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"schedulingUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":15},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":40},"categorySuggestion":{"type":"string","nullable":true,"maxLength":200},"wantsAmbassadors":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":9},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":8},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":8},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":4},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true,"minimum":0,"maximum":1000000},"ambassadorOfferDetails":{"type":"string","nullable":true,"maxLength":4000},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"integer","nullable":true,"minimum":1,"maximum":600},"commissionTailEndMonths":{"type":"integer","nullable":true,"minimum":0,"maximum":600},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number","minimum":0,"maximum":1000000000},"percentage":{"type":"number","minimum":0,"maximum":100}},"required":["threshold","percentage"]},"maxItems":10},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"introEmailTemplate":{"type":"string","nullable":true,"maxLength":10000},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true,"minimum":0,"maximum":1000000000},"successMetricPeriod":{"type":"string","nullable":true},"attachmentPaths":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":1024},"maxItems":10}}}}}},"responses":{"200":{"description":"Vendor profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"legalAddress":{"type":"string","nullable":true},"signatoryName":{"type":"string","nullable":true},"signatoryTitle":{"type":"string","nullable":true},"signatoryEmail":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"categorySuggestion":{"type":"string","nullable":true},"wantsAmbassadors":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"introEmailTemplate":{"type":"string","nullable":true},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"attachmentPaths":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["companyName","legalAddress","signatoryName","signatoryTitle","signatoryEmail","offering","businessModel","sellsType","sellsDetail","painPoint","usp","videoUrl","videoObjectPath","socialUrls","linkedinUrl","facebookUrl","schedulingUrl","runsOwnEvents","supportModel","wantsSocialAmplification","categories","subcategories","categorySuggestion","wantsAmbassadors","ambassadorPreferences","ambassadorClassification","ambassadorAttributes","ambassadorTypes","repTypes","commissionOffer","commissionBasis","commissionRate","ambassadorOfferDetails","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","commissionIncludesAmbassadorComp","paymentCadence","introEmailTemplate","successMetricType","successMetricValue","successMetricPeriod","attachmentPaths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not a vendor","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/ambassador-profile":{"get":{"summary":"Get the ambassador's profile (all fields nullable until onboarded).","tags":["Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Ambassador profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"paymentMethod":{"type":"string","nullable":true,"enum":["melio","cheque",null]},"monthlyPaidLeadCap":{"type":"number"}},"required":["location","bio","videoUrl","videoObjectPath","socialUrls","linkedinUrl","schedulingUrl","categories","subcategories","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","paymentMethod","monthlyPaidLeadCap"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an ambassador","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"patch":{"summary":"Save the ambassador application (partial merge).","description":"Setting `vendorsOnboardingStep` to 'completed' for the first time fires the application-received email and a notification to the team. `monthlyPaidLeadCap` is read-only here — it is an admin knob.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"lastName":{"type":"string","minLength":1,"maxLength":100,"pattern":"\\p{L}/u"},"vendorsOnboardingStep":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":200},"bio":{"type":"string","nullable":true,"maxLength":4000},"videoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"videoObjectPath":{"type":"string","nullable":true,"maxLength":500},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string","minLength":1,"maxLength":2048},"maxItems":10},"linkedinUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"schedulingUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"categories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":15},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":40},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":7},"coTravelHours":{"type":"string","nullable":true,"maxLength":100},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":3},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true,"maxLength":200},"paymentMethod":{"type":"string","nullable":true,"enum":["melio","cheque",null]}}}}}},"responses":{"200":{"description":"Ambassador profile updated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"paymentMethod":{"type":"string","nullable":true,"enum":["melio","cheque",null]},"monthlyPaidLeadCap":{"type":"number"}},"required":["location","bio","videoUrl","videoObjectPath","socialUrls","linkedinUrl","schedulingUrl","categories","subcategories","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","paymentMethod","monthlyPaidLeadCap"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an ambassador","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/directory":{"get":{"summary":"Browse the other side of the platform.","description":"A vendor gets ambassadors, an ambassador gets vendors — decided by the caller's own `vendorsRole`, never by a parameter. Only approved, onboarding-complete profiles appear, and vendors who set `wantsAmbassadors` to false are excluded. Each entry is the member's whole profile, commission terms included, but never an email address or scheduling link: introductions go through the opt-in email `POST /vendors/interest/{userId}` sends. `filter=interested-in-me` lists the people who marked the caller. `coTravel=true` keeps ambassadors who host co-travel, or vendors who asked for it.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":12},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","maxLength":200},"required":false,"name":"search","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"required":false,"name":"categories","in":"query"},{"schema":{"type":"string","enum":["all","interested","interested-in-me"],"default":"all"},"required":false,"name":"filter","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"coTravel","in":"query"}],"responses":{"200":{"description":"Directory page","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["vendor","ambassador"]},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"videoUrl":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"companyName":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"yourInterest":{"type":"boolean"}},"required":["userId","kind","firstName","lastName","categories","subcategories","videoUrl","socialUrls","linkedinUrl","companyName","offering","businessModel","sellsType","sellsDetail","painPoint","usp","facebookUrl","runsOwnEvents","supportModel","wantsSocialAmplification","ambassadorPreferences","ambassadorAttributes","ambassadorTypes","repTypes","ambassadorClassification","commissionOffer","commissionIncludesAmbassadorComp","ambassadorOfferDetails","commissionBasis","commissionRate","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","paymentCadence","successMetricType","successMetricValue","successMetricPeriod","location","bio","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","yourInterest"]}},"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"hasMore":{"type":"boolean"}},"required":["items","page","limit","total","totalPages","hasMore"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an approved vendors member","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/directory/{userId}":{"get":{"summary":"One profile on the other side.","description":"The same entry the directory list returns, under the same visibility rules — anyone the caller could not see in the list is a 404.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"Directory entry","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["vendor","ambassador"]},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"videoUrl":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"companyName":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"yourInterest":{"type":"boolean"}},"required":["userId","kind","firstName","lastName","categories","subcategories","videoUrl","socialUrls","linkedinUrl","companyName","offering","businessModel","sellsType","sellsDetail","painPoint","usp","facebookUrl","runsOwnEvents","supportModel","wantsSocialAmplification","ambassadorPreferences","ambassadorAttributes","ambassadorTypes","repTypes","ambassadorClassification","commissionOffer","commissionIncludesAmbassadorComp","ambassadorOfferDetails","commissionBasis","commissionRate","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","paymentCadence","successMetricType","successMetricValue","successMetricPeriod","location","bio","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","yourInterest"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an approved vendors member","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Profile not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/interest/summary":{"get":{"summary":"How many people are interested in you.","description":"Both counts are listable through the directory: `interestedInYou` via `filter=interested-in-me`, `yourInterests` via `filter=interested`.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Interest summary","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"interestedInYou":{"type":"integer"},"yourInterests":{"type":"integer"}},"required":["interestedInYou","yourInterests"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an approved vendors member","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/vendors/interest/{userId}":{"post":{"summary":"Mark interest in someone on the other side.","description":"One-way and one-time: there is no body and no withdrawal. A repeat click is a silent no-op. The first click sends one opt-in email to the marked member, with the DDS team in CC and the caller in BCC; the caller's address is not in the body.","tags":["Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"userId","in":"path"}],"responses":{"200":{"description":"The updated directory entry","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["vendor","ambassador"]},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"videoUrl":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"companyName":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"yourInterest":{"type":"boolean"}},"required":["userId","kind","firstName","lastName","categories","subcategories","videoUrl","socialUrls","linkedinUrl","companyName","offering","businessModel","sellsType","sellsDetail","painPoint","usp","facebookUrl","runsOwnEvents","supportModel","wantsSocialAmplification","ambassadorPreferences","ambassadorAttributes","ambassadorTypes","repTypes","ambassadorClassification","commissionOffer","commissionIncludesAmbassadorComp","ambassadorOfferDetails","commissionBasis","commissionRate","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","paymentCadence","successMetricType","successMetricValue","successMetricPeriod","location","bio","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","yourInterest"]},"message":{"type":"string"}},"required":["data","message"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Not an approved vendors member","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Profile not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/vendor-profile":{"get":{"summary":"Read a vendor's application for the admin review modal.","description":"Returns the same all-null shape as the portal when the vendor has not started onboarding, so the UI has one code path rather than two. Read-only, so RPO viewers may call it.","tags":["Admin","Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Vendor profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"companyName":{"type":"string","nullable":true},"legalAddress":{"type":"string","nullable":true},"signatoryName":{"type":"string","nullable":true},"signatoryTitle":{"type":"string","nullable":true},"signatoryEmail":{"type":"string","nullable":true},"offering":{"type":"string","nullable":true},"businessModel":{"type":"string","nullable":true},"sellsType":{"type":"string","nullable":true},"sellsDetail":{"type":"string","nullable":true},"painPoint":{"type":"string","nullable":true},"usp":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"facebookUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"runsOwnEvents":{"type":"boolean","nullable":true},"supportModel":{"type":"string","nullable":true},"wantsSocialAmplification":{"type":"boolean","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"categorySuggestion":{"type":"string","nullable":true},"wantsAmbassadors":{"type":"boolean","nullable":true},"ambassadorPreferences":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorClassification":{"type":"string","nullable":true,"enum":["1099","w2","based_on_discussion",null]},"ambassadorAttributes":{"type":"array","nullable":true,"items":{"type":"string"}},"ambassadorTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"repTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"commissionOffer":{"type":"string","nullable":true,"enum":["yes","no","based_on_discussion",null]},"commissionBasis":{"type":"string","nullable":true,"enum":["fixed_fee","percentage",null]},"commissionRate":{"type":"number","nullable":true},"ambassadorOfferDetails":{"type":"string","nullable":true},"commissionRecurrence":{"type":"string","nullable":true,"enum":["one_time","ongoing",null]},"payoutExpiration":{"type":"string","nullable":true},"payoutExpirationMonths":{"type":"number","nullable":true},"commissionTailEndMonths":{"type":"number","nullable":true},"commissionTiers":{"type":"array","nullable":true,"items":{"type":"object","properties":{"threshold":{"type":"number"},"percentage":{"type":"number"}},"required":["threshold","percentage"]}},"commissionIncludesAmbassadorComp":{"type":"boolean","nullable":true},"paymentCadence":{"type":"string","nullable":true,"enum":["annual","semi_annual","quarterly","monthly","upon_transaction",null]},"introEmailTemplate":{"type":"string","nullable":true},"successMetricType":{"type":"string","nullable":true},"successMetricValue":{"type":"number","nullable":true},"successMetricPeriod":{"type":"string","nullable":true},"attachmentPaths":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["companyName","legalAddress","signatoryName","signatoryTitle","signatoryEmail","offering","businessModel","sellsType","sellsDetail","painPoint","usp","videoUrl","videoObjectPath","socialUrls","linkedinUrl","facebookUrl","schedulingUrl","runsOwnEvents","supportModel","wantsSocialAmplification","categories","subcategories","categorySuggestion","wantsAmbassadors","ambassadorPreferences","ambassadorClassification","ambassadorAttributes","ambassadorTypes","repTypes","commissionOffer","commissionBasis","commissionRate","ambassadorOfferDetails","commissionRecurrence","payoutExpiration","payoutExpirationMonths","commissionTailEndMonths","commissionTiers","commissionIncludesAmbassadorComp","paymentCadence","introEmailTemplate","successMetricType","successMetricValue","successMetricPeriod","attachmentPaths"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/admin/users/{id}/ambassador-profile":{"get":{"summary":"Read an ambassador's application for the admin review modal.","tags":["Admin","Vendors"],"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Ambassador profile","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoObjectPath":{"type":"string","nullable":true},"socialUrls":{"type":"array","nullable":true,"items":{"type":"string"}},"linkedinUrl":{"type":"string","nullable":true},"schedulingUrl":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"subcategories":{"type":"array","nullable":true,"items":{"type":"string"}},"availableVirtual":{"type":"boolean","nullable":true},"availableField":{"type":"boolean","nullable":true},"availableTradeShows":{"type":"boolean","nullable":true},"isKolOrSpeaker":{"type":"boolean","nullable":true},"ownsSocialGroup":{"type":"boolean","nullable":true},"isSocialInfluencer":{"type":"boolean","nullable":true},"availableCoTravel":{"type":"boolean","nullable":true},"coTravelDays":{"type":"array","nullable":true,"items":{"type":"string"}},"coTravelHours":{"type":"string","nullable":true},"coTravelFormats":{"type":"array","nullable":true,"items":{"type":"string"}},"workArrangement":{"type":"string","nullable":true,"enum":["prefers_1099","open_to_w2",null]},"availability":{"type":"string","nullable":true,"enum":["part_time","full_time","hourly","fractional",null]},"territory":{"type":"string","nullable":true},"paymentMethod":{"type":"string","nullable":true,"enum":["melio","cheque",null]},"monthlyPaidLeadCap":{"type":"number"}},"required":["location","bio","videoUrl","videoObjectPath","socialUrls","linkedinUrl","schedulingUrl","categories","subcategories","availableVirtual","availableField","availableTradeShows","isKolOrSpeaker","ownsSocialGroup","isSocialInfluencer","availableCoTravel","coTravelDays","coTravelHours","coTravelFormats","workArrangement","availability","territory","paymentMethod","monthlyPaidLeadCap"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}}}}