# H1R3: Australian job board for bots

> Bot-first AU job board: live jobs, verified candidates apply via bots. First 100 employers free.

- name: dev.workers.h1r3.h1r3/h1r3
- version: 0.9.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 73/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.workers.h1r3.h1r3%2Fh1r3
- tools: https://api.protogrid.dev/v1/servers/dev.workers.h1r3.h1r3%2Fh1r3/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "h1r3": {
      "type": "http",
      "url": "https://h1r3.h1r3.workers.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 97
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-93% +updated-3d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: update_application (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); add_cert (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); submit_test (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,453 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 27, about 2,453 tokens to load them all
- tool set hash: a18364bee6374a68a0a038ab3b7899bd
- tools last changed: 2026-10-19T11:54:42.901Z
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.workers.h1r3.h1r3/h1r3.svg)](https://protogrid.dev/servers/dev.workers.h1r3.h1r3/h1r3)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `get_selfie_link` added
  - Bots cannot do the selfie check. This returns a one-time 30-minute link for your human to open on a phone with a camera; the check runs on their device (MediaPipe), nothing is uploaded. Poll get_verification_status for the result.
- 2026-10-19 `get_verification_status` added
  - Seeker verification level and steps: Not verified, Basic verified (FREE: email confirmed + selfie check; a real person was at the camera, not an ID check), ID verified (A$3/yr: ID document check). Shows what is missing to apply.
- 2026-10-19 `search_seekers` changed (description, inputSchema)
  - before: Search searchable seekers (ABN-verified employer key). Filters: verified_task (code), verified_cert (type), verified_skill (badge), min_score, min_identity, min_skills, min_references (0-100).
  - after: Search searchable seekers (ABN-verified employer key). Each result has verification_level (Basic verified | ID verified). Filters: id_verified_only, min_level (basic|phone|id), verified_task (code), verified_cert (type), verified_skill (badge), min_score, min_identity, min_skills, min_references (0-100).
- 2026-10-19 `list_applications` changed (description)
  - before: List applicants for a job you own (employer key), with verified badges.
  - after: List applicants for a job you own (employer key), with skill badges and verification_level (Basic verified | ID verified).
- 2026-10-19 `apply` changed (description) **meaning changed**
  - before: Apply to a job (seeker key).
  - after: Apply to a job (seeker key). Needs Basic verified (free: email + selfie check) or higher; jobs with min_verification=id ("ID verified only") need ID verified (A$3/yr).
- 2026-10-19 `post_job` changed (description, inputSchema)
  - before: Post a job (employer key, ABN-verified, 1 credit). Returns Fair Work/moderation warnings.
  - after: Post a job (employer key, ABN-verified, 1 credit). Returns Fair Work/moderation warnings. Set id_verified_only=true to accept ID verified applicants only (default: Basic verified or higher).
- 2026-10-19 `search_jobs` changed (description, inputSchema)
  - before: Search live Australian jobs; every result has pay_type verified (ABN-verified employer on H1R3) | advertised (stated in source ad) | estimate (H1R3 estimate from ABS/JSA medians, not from the employer, with estimate_basis) | null; filter with pay=verified|advertised|estimate|any; sourced results carry direct_to {apply_url, go_url, method, login_required, anti_bot_seen, notes} to send the candidate straight to the employer page, plus apply_mode (candidate_bot_ok / candidate_bot_grey / human_only). source=verified (paid, verified H1R3 employers) | sourced (public ATS listings; apply at original) | all (default; verified ranked first).
  - after: Search live Australian jobs; every result has pay_type verified (ABN-verified employer on H1R3) | advertised (stated in source ad) | estimate (H1R3 estimate from ABS/JSA medians, not from the employer, with estimate_basis) | null; filter with pay=verified|advertised|estimate|any; sourced results carry direct_to {apply_url, go_url, method, login_required, anti_bot_seen, notes} to send the candidate straight to the employer page, plus apply_mode (candidate_bot_ok / candidate_bot_grey / human_only). source=verified (paid, verified H1R3 employers) | sourced (public ATS listings; apply at original) | all (default; verified ranked first). Seek-style filters: industry (ANZSIC division), category/occupation (ANZSCO), location (state/region/remote), q (keywords), page/per_page. Options: GET /api/v1/jobs/filters.
- 2026-10-18 `find_adjacent_roles` added
  - H1R3 Cloud: given a role title or ANZSCO code (and optionally the candidate's verified tasks, free text or H1R3 task codes like admin.payroll), return the most adjacent occupations by shared skills (JSA Australian Skills Classification), with score, shared tasks (why), tasks the candidate has vs is missing, and live H1R3 job counts + sample jobs.
- 2026-10-18 `search_jobs` changed (description, inputSchema)
  - before: Search live Australian jobs; sourced results carry direct_to {apply_url, go_url, method, login_required, anti_bot_seen, notes} to send the candidate straight to the employer page, plus apply_mode (candidate_bot_ok / candidate_bot_grey / human_only). source=verified (paid, verified H1R3 employers) | sourced (public ATS listings; apply at original) | all (default; verified ranked first).
  - after: Search live Australian jobs; every result has pay_type verified (ABN-verified employer on H1R3) | advertised (stated in source ad) | estimate (H1R3 estimate from ABS/JSA medians, not from the employer, with estimate_basis) | null; filter with pay=verified|advertised|estimate|any; sourced results carry direct_to {apply_url, go_url, method, login_required, anti_bot_seen, notes} to send the candidate straight to the employer page, plus apply_mode (candidate_bot_ok / candidate_bot_grey / human_only). source=verified (paid, verified H1R3 employers) | sourced (public ATS listings; apply at original) | all (default; verified ranked first).
- 2026-10-17 `search_jobs` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/dev.workers.h1r3.h1r3%2Fh1r3/changes

## Remotes

- https://h1r3.h1r3.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.93333334)

## Packages

_none_

## Tools (27)

- `add_cert`: Add a cert/licence (metadata + optional document SHA-256; no file upload).
- `add_referee`: Nominate a referee for a role; returns a unique single-use 30-day referee link to share.
- `add_role`: Add an employment-history role with claimed tasks (taxonomy codes or {custom}). Roles current or ended within 24 months are reference-eligible.
- `apply`: Apply to a job (seeker key). Needs Basic verified (free: email + selfie check) or higher; jobs with min_verification=id ("ID verified only") need ID verified (A$3/yr).
- `claim_listing`: Verified (ABN) employer claims a sourced listing for their company; converts to an H1R3 job using 1 credit.
- `confirm_email`: Email a single-use 24h confirmation link to the account email (identity score +15).
- `find_adjacent_roles`: H1R3 Cloud: given a role title or ANZSCO code (and optionally the candidate's verified tasks, free text or H1R3 task codes like admin.payroll), return the most adjacent occupations by shared skills (JSA Australian Skills Classification), with score, shared tasks (why), tasks the candidate has vs is missing, and live H1R3 job counts + sample jobs.
- `get_passport`: Read a shared passport by its token.
- `get_selfie_link`: Bots cannot do the selfie check. This returns a one-time 30-minute link for your human to open on a phone with a camera; the check runs on their device (MediaPipe), nothing is uploaded. Poll get_verification_status for the result.
- `get_verification`: Your portable verified passport: three 0-100 scores (identity, skills_certs, references) with level + breakdown, certs, roles, per-task matrix, learning & attitude.
- `get_verification_status`: Seeker verification level and steps: Not verified, Basic verified (FREE: email confirmed + selfie check; a real person was at the camera, not an ID check), ID verified (A$3/yr: ID document check). Shows what is missing to apply.
- `join_waitlist`: Join the pre-launch waitlist.
- `list_applications`: List applicants for a job you own (employer key), with skill badges and verification_level (Basic verified | ID verified).
- `list_bot_applicable_jobs`: The canonical index of jobs a bot can apply to end-to-end (no human form/captcha). Each job has an apply block {method, endpoint, required_fields, auth}.
- `list_cert_types`: Cert/licence types and how each is verified (register link, issuer confirmation, admin).
- `list_skill_tests`: List available skills tests.
- `list_task_taxonomy`: Task taxonomy (codes) for roles, with which certs/badges corroborate each task.
- `post_job`: Post a job (employer key, ABN-verified, 1 credit). Returns Fair Work/moderation warnings. Set id_verified_only=true to accept ID verified applicants only (default: Basic verified or higher).
- `request_issuer_confirmation`: Get a single-use 30-day link for the cert issuer to confirm yes/no. Share it yourself (no email is sent).
- `search_jobs`: Search live Australian jobs; every result has pay_type verified (ABN-verified employer on H1R3) | advertised (stated in source ad) | estimate (H1R3 estimate from ABS/JSA medians, not from the employer, with estimate_basis) | null; filter with pay=verified|advertised|estimate|any; sourced results carry direct_to {apply_url, go_url, method, login_required, anti_bot_seen, notes} to send the candidate straight to the employer page, plus apply_mode (candidate_bot_ok / candidate_bot_grey / human_only). source=verified (paid, verified H1R3 employers) | sourced (public ATS listings; apply at original) | all (default; verified ranked first). Seek-style filters: industry (ANZSIC division), category/occupation (ANZSCO), location (state/region/remote), q (keywords), page/per_page. Options: GET /api/v1/jobs/filters.
- `search_seekers`: Search searchable seekers (ABN-verified employer key). Each result has verification_level (Basic verified | ID verified). Filters: id_verified_only, min_level (basic|phone|id), verified_task (code), verified_cert (type), verified_skill (badge), min_score, min_identity, min_skills, min_references (0-100).
- `set_privacy`: Seeker privacy consent + visibility (private | applied | searchable). Consent is required before adding certs/roles.
- `share_passport`: Create a read-only passport link for any employer or bot (revokes previous).
- `start_test`: Start a timed skills test (seeker key). The human account owner must take it.
- `submit_test`: Submit answers (0-based option indexes, in order).
- `update_application`: Shortlist or reject an application (employer key).
- `update_profile`: Create/update seeker profile.
