Skip to main content
Each Auto Apply API response includes a status field indicating the current state of the session. States are either active (further actions possible) or terminal (session is finished).

State Reference

StatusTerminalDescriptionAction
FormReadyForm fields are available to fill on the current pageCall Set Answers with field values
NextAvailableCurrent page is complete; next step is availableHandled automatically — next page fields returned
SubmitReadyAll pages complete; submit action is availableHandled automatically — application submitted
RedirectRequiredPage redirected to a different ATS providerStart a new session with the redirectUrl
SubmittedApplication submitted successfullyDone! Session auto-closed
LoginRequiredLogin or registration requiredEnd session — manual intervention needed
CaptchaRequiredCAPTCHA needs to be solvedEnd session — manual intervention needed
ExpiredJob posting has expiredEnd session
ErrorAn error occurred during the stepCheck error message, retry or end session

State Flow Diagram

Handling Terminal States

TERMINAL_STATUSES = {"Submitted", "LoginRequired", "CaptchaRequired", "Expired", "Error"}

if result["status"] in TERMINAL_STATUSES:
    if result["status"] == "Submitted":
        print("Application submitted!")
    else:
        print(f"Session ended: {result['status']} - {result.get('error')}")
        # Clean up
        requests.delete(f"{API_BASE}/api/auto-apply/sessions/{session_id}", headers=HEADERS)
Always call End Session for terminal error states to release browser resources, even if is_terminal is true.