API reference

The machine-readable OpenAPI document lives at https://interview-prep-backend-production-3b9c.up.railway.app/api/v1/openapi.json. Load it into your agent, Postman, or an OpenAPI client generator for full request and response schemas.

MethodPathDescription
get/meCaller identity, plan, and remaining usage
get/profile/resumeGet the default resume
put/profile/resumeSet the default resume (JSON resumeText, or multipart resumeFile PDF)
get/opportunitiesList or search opportunities
post/opportunitiesCreate an opportunity (JSON, or multipart with PDF files)
get/opportunities/{opportunity_id}Get an opportunity with its interviewers
patch/opportunities/{opportunity_id}Update an opportunity (omitted = unchanged, null = clear)
post/opportunities/{opportunity_id}/archiveArchive an opportunity (frees active capacity)
post/opportunities/{opportunity_id}/activateMark an opportunity active (subject to the active-opportunity cap)
get/opportunities/{opportunity_id}/interviewersList interviewers on an opportunity
post/opportunities/{opportunity_id}/interviewersAdd an interviewer (JSON, or multipart with a LinkedIn PDF)
patch/opportunities/{opportunity_id}/interviewers/{interviewer_id}Update an interviewer (omitted = unchanged, null = clear)
get/opportunities/{opportunity_id}/interviewers/{interviewer_id}/intelligenceInterviewer intelligence and generated questions (section-gated by plan)
post/opportunities/{opportunity_id}/interviewers/{interviewer_id}/generateStart intelligence generation (async; poll the returned job)
get/jobs/{job_id}Poll a generation job
delete/tokens/selfRevoke the token used for this request (logout)