|
CI / checks (push) Successful in 2m40s
Details
The recruiter table was user-centric (GET /candidate/fetch/users), so it could only ever render account fields - name, email, created date. Everything a recruiter actually triages on lives on the application, not the user. Point the table at GET /candidate/fetch and map application rows through a new toApplicationListView, adding Job, ATS (score + band chip), Stage and Recruiter columns. Stage and band become real filters; the dead Department facet is gone. Manual uploads came back unscored because the list path never joined the ATS results, so attach scores there and expose ai_score/recommendation from the manager serializer, deriving the band from the score when the model omitted it. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| .vite/deps | ||
| dist | ||
| node_modules | ||
| src | ||
| .dockerignore | ||
| .env.development | ||
| .env.production | ||
| Dockerfile | ||
| candidates-table.test.mjs | ||
| inbox-loading.test.mjs | ||
| index.html | ||
| mobile.test.mjs | ||
| nginx.conf | ||
| package-lock.json | ||
| package.json | ||
| smoke.test.mjs | ||
| theme.test.mjs | ||
| token.test.mjs | ||
| vite.config.js | ||