Skip to main content

Evolve Candidate Frontend API Reference

The frontend consumes the Evolve backend API (per the repo's swagger.json) plus one same-origin proxy route of its own for the n8n auto-assign webhook.

Authentication​

Session via /auth/login, refreshed via /auth/refresh. Backend-issued token, not PocketBase.

Base URL​

Configured via env - see Getting Started.

Backend endpoints used​

MethodPathPurpose
POST/auth/loginCandidate login
POST/auth/refreshRefresh session token
POST/auth/logoutLog out
POST/candidate/registerCandidate registration
POST/candidate/request-password-resetStart reset-password flow
POST/candidate/reset-passwordComplete reset-password flow
GET/candidate/email/{email}Look up candidate by email (used for the pre-filled/locked login flow)
POST/candidate/help-requestCandidate support/help request
GET/test/available-roundsList rounds available to the candidate
POST/test/personality/scheduleSchedule the personality round
POST/test/candidates/auto-scheduleAuto-schedule a candidate into a round
GET/test/instance/{testInstanceId}Fetch a specific test instance
GET/examFetch current exam data
PUT/exam/begin/{testInstanceId}Mark an exam instance as started
PUT/exam/submitSubmit exam answers
POST/user-activity/event/loggedinActivity logging: login event
POST/user-activity/event/loggedoutActivity logging: logout event

Own routes​

MethodPathPurpose
POST/api/webhook/auto-assignServer-side proxy: forwards MCQ-submission auto-assign events to the n8n webhook using NEXT_PUBLIC_AUTO_ASSIGN_WEBHOOK_URL + basic auth (NEXT_PUBLIC_N8N_BASIC_AUTH_USER/PASS)
Env-gated webhook

/api/webhook/auto-assign returns HTTP 500 if NEXT_PUBLIC_AUTO_ASSIGN_WEBHOOK_URL isn't set - check .env before assuming auto-assign is broken.

Next Steps​