H1R3: Australian job board for bots
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Bot-first AU job board: live jobs, verified candidates apply via bots. First 100 employers free.
| Author | dev.workers.h1r3.h1r3 |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1943 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"H1R3: Australian job board for bots": {
"url": "https://h1r3.h1r3.workers.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (31)
match_profileFind live Australian jobs that match a resume or LinkedIn profile. Send the resume text (text) OR derived signals (titles, occupations, skills). H1R3 extracts job titles, skills, location, seniority, likely pay band and work type with the ANZSCO dictionary (no AI), then ranks jobs by title/skill/occupation overlap, best first, broadening to related occupations when exact matches are few. Nothing is stored. Never send LinkedIn URLs: paste text or a Save-to-PDF export.
Parameters:
text— string — resume / profile text, max 60,000 chars; used in memory onlylimit— numberskills— arraytitles— arraymin_pay— numberlocation— stringwork_type— stringoccupations— array
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_job_alertSave a job search as an email alert (seeker key, Basic verified). Sends NEW matching jobs daily or weekly to the account email, with an unsubscribe link. Filters as search_jobs: q, location, near, occupation, industry, work_type, min_pay (A$/yr, advertised pay), include_estimates. Max 5 alerts. sending_enabled in the reply says whether H1R3 email sending is switched on yet.
Parameters:
q— stringnear— stringmin_pay— number — minimum advertised annual pay, A$industry— stringlocation— string — state/region code or place, e.g. qld-gold-coast, remotefrequency— stringwork_type— stringoccupation— string — ANZSCO prefixinclude_estimates— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_job_alertsList your active job alerts (seeker key).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete_job_alertDelete one of your job alerts by id (seeker key).
Parameters:
alert_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_jobsSearch 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) | none, plus one normalised pay object {type,min,max,unit,text}; estimates are included by default (include_estimates=false for stated pay only); filter with pay=verified|advertised|estimate|any; sourced results carry job_url, posted_ago, and (for everyone, no key or verification) 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), min_pay (annual A$) + include_estimates, page/per_page. Options: GET /api/v1/jobs/filters.
Parameters:
q— stringpay— stringnear— stringpage— number — Page number (1-based). When set, the reply includes total (approximate when total_approximate), pages, per_page. Window = first 200 matches.sort— string — closing = soonest closing date first (jobs with no closing date last)skills— arraysource— stringsuburb— string — Suburb or 4-digit postcode (e.g. Southport or 4215): results sorted nearest first with distance_km (first 120 matches). Centroids: GeoNames (CC BY 4.0).min_pay— number — Minimum pay, annual A$ (e.g. 80000). Hourly/daily/weekly pay is annualised (hour x 1976 = 38 h x 52 weeks, full-time equivalent, before super) and compared on the top of the range. Jobs with no pay figure are excluded.pay_min— numbercategory— string — Job category: ANZSCO major group (1 digit, e.g. 2 Professionals) or sub-major group (2 digits, e.g. 25 Health Professionals). Alias of occupation; see /api/v1/jobs/filtersindustry— string — ANZSIC 2006 code: division letter + digits, e.g. K, K64, K641 (Q = Health Care and Social Assistance); see /api/v1/jobs/filterslocation— string — State code (qld nsw vic wa sa tas act nt), region code (e.g. qld-gold-coast, qld-brisbane, nsw-sydney, vic-melbourne) or remote; see /api/v1/jobs/filtersper_page— number — 1-50; default 20 when page is set, else 50pay_shown— booleanwork_type— string — Seek's work types, comma-separated for several: full_time (Full time), part_time (Part time), contract (Contract/Temp), casual (Casual/Vacation). Unclassified jobs only show when this is empty (Any).occupation— string — ANZSCO 2022 code prefix (1-6 digits), e.g. 2613 software, 2544 registered nurses; see /api/taxonomy/occupationsinclude_estimates— boolean — With min_pay: also include jobs whose only pay figure is an H1R3 estimate (pay_type estimate, never from the employer). Default true; set false for stated pay only.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_bot_applicable_jobsThe 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}.
Parameters:
q— stringlimit— numberstate— stringcursor— stringskills— stringmin_pay— numberlocation— stringwork_type— stringrequires_task— stringupdated_since— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
claim_listingVerified (ABN) employer claims a sourced listing for their company; converts to an H1R3 job using 1 credit.
Parameters:
listing_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
join_waitlistJoin the pre-launch waitlist.
Parameters:
role(required) — stringemail(required) — stringhas_bot(required) — booleanpostcode(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_skill_testsList available skills tests.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_jobPost 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).
Parameters:
title(required) — stringlocation(required) — stringwork_type(required) — stringdescription(required) — stringskills— arraypay_max— numberpay_min— numberpay_unit— stringid_verified_only— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
applyApply 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).
Parameters:
job_id(required) — stringcover_note— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_applicationsList applicants for a job you own (employer key), with skill badges and verification_level (Basic verified | ID verified).
Parameters:
job_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_applicationShortlist or reject an application (employer key).
Parameters:
application_id(required) — stringstatus(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_profileCreate/update seeker profile.
Parameters:
skills— arraysuburb— stringpostcode— stringwork_rights— booleanavailability— stringdisplay_name— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_seekersSearch 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).
Parameters:
skills— arraypostcode— stringmin_level— stringmin_score— numbermin_skills— numberwork_rights— booleanmin_identity— numberverified_cert— stringverified_task— stringmin_references— numberverified_skill— stringid_verified_only— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
start_testStart a timed skills test (seeker key). The human account owner must take it.
Parameters:
skill(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_task_taxonomyTask taxonomy (codes) for roles, with which certs/badges corroborate each task.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_cert_typesCert/licence types and how each is verified (register link, issuer confirmation, admin).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_privacySeeker privacy consent + visibility (private | applied | searchable). Consent is required before adding certs/roles.
Parameters:
consent— booleanvisibility— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
add_certAdd a cert/licence (metadata + optional document SHA-256; no file upload).
Parameters:
type(required) — stringstate— stringissuer— stringnumber— stringdoc_sha256— stringissue_date— stringexpiry_date— stringissuer_email— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_issuer_confirmationGet a single-use 30-day link for the cert issuer to confirm yes/no. Share it yourself (no email is sent).
Parameters:
cert_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
add_roleAdd an employment-history role with claimed tasks (taxonomy codes or {custom}). Roles current or ended within 24 months are reference-eligible.
Parameters:
employer_name(required) — stringtitle(required) — stringstart_date(required) — stringtasks— arrayend_date— stringemployer_abn— stringemployer_domain— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
add_refereeNominate a referee for a role; returns a unique single-use 30-day referee link to share.
Parameters:
role_id(required) — stringname(required) — stringemail(required) — stringphone— stringrelationship— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_verificationYour portable verified passport: three 0-100 scores (identity, skills_certs, references) with level + breakdown, certs, roles, per-task matrix, learning & attitude.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
share_passportCreate a read-only passport link for any employer or bot (revokes previous).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_verification_statusSeeker 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.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_selfie_linkBots 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.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
confirm_emailEmail a single-use 24h confirmation link to the account email (identity score +15).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_passportRead a shared passport by its token.
Parameters:
token(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
submit_testSubmit answers (0-based option indexes, in order).
Parameters:
attempt_id(required) — stringanswers(required) — array
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_adjacent_rolesH1R3 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.
Parameters:
role(required) — string — job title or ANZSCO code, e.g. "Barista" or 4311limit— numberverified_tasks— array
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.