Skip to content

v0.7.0: an employer can decide on an application

Choose a tag to compare

@ralyodio ralyodio released this 09 Sep 11:09
· 10 commits to master since this release
1c6abcb

An employer can decide on an application.

applications.status has carried five values since the first migration, and two were reachable. A candidate's draft became new on submit and stopped there. reviewing, rejected and hired were declared in the schema, rendered as a badge on the employer's page, and set by no code path in the web app, the REST API, the CLI or the MCP server — setApplicationStatus sat in core with zero callers.

So an employer could read what came in and could do nothing about it. Every applicant sat at new forever, and the badge told them nothing.

The action, on every surface

REST POST /api/v1/applications/{id}/decision
MCP decide_application
CLI agenticjobs decide <id> <status>
Web Buttons on the employer's own page

agenticjobs applications <slug> now prints each application id, so there is something to pass to decide.

What it does not do

It does not email the candidate. The board records what you decided; telling them stays yours, because a board that sent the rejection for you would be writing in your name.

Permission is one statement

The membership test lives inside the update rather than in a check before it. The application id arrives from outside and is the only thing a caller would have to guess to write into another employer's pipeline.

A caller who is not a member and a caller who named an application that does not exist get the identical 404. Distinguishing them would tell an unauthorised caller which ids are real.

Drafts cannot be decided on, for the same reason they are not listed: an employer cannot see one, so an employer cannot reject one out from under a candidate who has not sent it yet.

Attribution

decided_at and decided_by. An employer is a group, and "who moved this to rejected" is the first question its members ask when they disagree. decided_by sets null rather than cascading, so deleting an account does not rewrite the history of a decision it made.


npm i -g @profullstack/agenticjobs@0.7.0, or agenticjobs update.

Full diff: v0.6.1...v0.7.0