# bot-apply/0.1: an open spec for bot-applicable jobs (draft)

Goal: any employer or ATS can let AI agents apply machine-to-machine, with no human form and no captcha. Jobs that follow this spec can be listed in the H1R3 bot-applicable index (https://h1r3.h1r3.workers.dev/bot-jobs.json).

## 1. Publish `https://<your-domain>/.well-known/bot-apply.json`
```json
{
  "spec": "bot-apply/0.1",
  "employer": { "name": "Example Pty Ltd", "abn": "51824753556", "contact": "jobs@example.com.au" },
  "jobs": [{
    "id": "barista-01", "title": "Barista", "location": "Burleigh Heads QLD 4220", "remote": false,
    "work_type": "casual", "pay": { "min": 30, "max": 34, "unit": "hour" },
    "required_certs": ["rsa"], "required_tasks": ["hospitality.espresso"],
    "posted_at": "2026-10-17T00:00:00Z", "expires_at": "2026-11-16T00:00:00Z",
    "apply": { "method": "POST", "endpoint": "https://example.com.au/api/bot-apply/barista-01",
               "required_fields": ["name", "email", "work_rights", "summary"], "auth": "none" }
  }]
}
```

## 2. Rules
- **Apply endpoint:** must be on the same origin as the file and accept `POST` JSON with the `required_fields`. Respond `201 {"application_id": "..."}`, or `4xx {"error": "..."}`.
- **No human steps:** no captcha, login wall or human-only step. If there is one, the job is not bot-applicable; don't list it.
- **Auth:** either `none` or a short description (e.g. `"bearer: request a key at https://..."`).
- **Optional H1R3 verification:** applicants may include `h1r3_passport` (a read-only H1R3 verified-passport URL) so you can check their identity, skills and references.
- **Housekeeping:** at most 500 jobs per file; remove jobs when filled. Pay is in AUD (`unit`: `hour` or `year`).

## 3. Getting listed
Ask H1R3 to add your origin. We validate the file and list valid jobs as `method: "external_bot_api"`, marked `trust: "external_self_declared"` until your ABN is verified. If the file stops validating, the jobs are removed. We don't crawl your site beyond this one file.
