Mixed freshness. Depending on the panel, rows here are read live from elisa-core or come from a frozen copy of ELISA’s local store taken on 22 October 2026 — each panel says which, underneath itself. No agent is running.

Agent 2

Sources, screens and compares candidates against a role brief, and is the single author of the shortlist and the decision evidence.

Agent 2

Not connectedIdle — nothing queued

Hiring & candidate pipeline · People + HR

people.agent_2

Profile charter name: Anusandhika — a label from the Hermes profile. Nothing routes on it; routing is by id only.

Measured — state right now

Idle — nothing queued. A profile exists, its queue is empty and nothing is pending. Idle describes the queue, not a live process. This UI is not connected to a running agent and never starts one.

Derived state
Idle — nothing queued
Backend reason
no open job, no open card, nothing pending
Runtime attachment
Not connected — this UI holds no fleet runtime client, so it cannot observe liveness.
Hermes profile
people-a2
Profile built
Yes
Runtime lock
Not locked · sector dispatchable: yes
May create its own cards
No
Spec source
specs/governance.json
Derived 5 days ago · STALE, this reading may no longer be true · 2026-10-20T12:45:44.000Zfrom elisa.db:agents.runtime_locked+sectors.runnable (via dispatchable()) · elisa.db:approvals.status='pending' · elisa.db:jobs.status · kanban.db:tasks.status (assignee=profile)

Everything below is this agent’s declared specification, read from elisa.db. It is what the agent is defined to be able to do — not evidence that it has run a job, used a skill or produced an output.

Mission (declared)

Sources, screens and compares candidates against a role brief, and is the single author of the shortlist and the decision evidence.

Will not (declared, and enforced at the gate)

  • read a mail thread outside the hiring label scope (script-checkable: block a Gmail read whose query carries no hiring label filter)
  • rank or reject a candidate on evidence it does not hold; an unscored signal stays unscored and is reported as missing
  • send any message to a candidate, or create a calendar invitation, without an approval token on that specific message
  • copy a candidate's email, phone, address or any personal identifier into a record owned by another sector, a CRM lead, or any marketing or sales artifact
  • invent a contact detail, employer, or date in a candidate record

Owns (record types)

  • candidate record
  • shortlist
  • screening scorecard
  • interview schedule request
  • decision record

Skills (declared)

  • linkedin-interviewer

Skills deliberately withheld

  • humanizer — people.agent_6 owns it; candidate-facing messages here stay plain and factual and go out only with approval
  • email — this agent reads candidate replies through a scoped Gmail requirement and never holds a send-capable mail client

Jobs (declared job types)

  • people.hiring.collect_scorecards
  • people.hiring.schedule_interviews
  • people.hiring.shortlist
  • people.hiring.source_candidates

MCP requirements

  • GmailreadDeclared, not wiredsearch_threads · get_thread · get_message

Persona (declared)

Communication
evidence-based, respectful
Reasoning
consistent scoring across candidates
Pushback
will not rank candidates on evidence it does not have

Inputs (reads)

  • role brief
  • candidate source
  • candidate reply
  • scorecard

Outputs (produces)

  • candidate record
  • shortlist
  • screening scorecard
  • decision record
  • approval request

Approval policy

Approval required — every action waits on a human decision

Idle missions

None. This agent does nothing unprompted — there is no idle mission to run.