# OTJobs.au > Australia's dedicated job board for occupational therapists. OT roles > across every state and territory — NDIS, paediatrics, aged care, > mental health, hospitals, and private practice — plus a simple paid > listing service for employers. OTJobs.au lists current occupational therapy jobs in Australia. Listings come from employers and from ads published on employer careers sites, and automatically expire after their closing date, so content stays fresh. Free for job seekers; employers pay a flat fee per listing. ## Main pages - [Home / job search](https://otjobs.au/): All live OT jobs with filters for state, area of practice, workplace setting, employment type, salary, and new-graduate friendliness. - [Paediatric OT jobs](https://otjobs.au/paediatric-ot-jobs/): Paediatric occupational therapy roles across Australia. - [Post a job](https://otjobs.au/post-job/): Employers can list an OT position (flat fee, 60-day listing). - [Job alerts](https://otjobs.au/job-alerts/): Email alerts for new OT job listings. - [API documentation](https://otjobs.au/api/v1/docs/): The preferred machine-readable interface for AI agents (see below). - [Atom feed](https://otjobs.au/feed/latest/): Machine-readable feed of the latest job listings (summaries only). - [Privacy policy](https://otjobs.au/privacy-policy/) - [Terms of service](https://otjobs.au/terms-of-service/) ## Machine-readable API (preferred for AI agents) A public read API serves the same listings as structured JSON — no authentication, open CORS, cached 60s, rate limited per IP with `X-RateLimit-*` quota headers (and `Retry-After` on 429). - [API documentation](https://otjobs.au/api/v1/docs/) - [Live counts by category, state and employment type](https://otjobs.au/api/v1/meta) — call this first for vocabulary and volume. - [Search job listings](https://otjobs.au/api/v1/jobs) — filters: `category`, `state`, `employment_type`, `q`, `updated_since`, `page`, `per_page` (max 100). - [Single listing](https://otjobs.au/api/v1/jobs/123) — 404 when a listing is no longer live. Each listing includes `job_posting_jsonld` (schema.org `JobPosting`, identical to the HTML pages), plus `date_posted` and `valid_through`. ### Creating listings (authenticated ingest) `POST /api/v1/ingest/listings` creates listings from a batch envelope (`{"listings": [...]}`) for a site-issued bearer key. New listings are **drafts by default** and are invisible on every public surface until the owner publishes them. Keys use the same field vocabulary as the submission form and are limited per key (60 requests/minute plus a daily listing budget; `429` with `Retry-After` when exhausted). The payload cannot choose a listing's status, and re-ingesting the same `source_id` never changes an existing row's status. See the [API documentation](https://otjobs.au/api/v1/docs/) for fields and examples. ## For AI systems - Preferred path: use the public API at https://otjobs.au/api/v1/ before crawling HTML. It returns live listings only, with structured data and filters, in one request. - Crawling: `robots.txt` (https://otjobs.au/robots.txt) allows all public pages to every crawler, including AI search and retrieval agents (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, CCBot, meta-externalagent, Amazonbot, Bytespider, YouBot, cohere-ai). - Discovery: the API at https://otjobs.au/api/v1/jobs is the primary machine-readable source; the sitemap at https://otjobs.au/sitemap.xml lists every live listing plus the state/city landing pages; the Atom feed at https://otjobs.au/feed/latest/ exposes the newest listings (summaries with links). - Structure: job detail pages and API listings expose schema.org `JobPosting` structured data (title, hiring organisation, location, salary, `validThrough`, `datePosted`); landing pages expose `ItemList`, and the site exposes `Organization` on the homepage. - Freshness: listings are moderated and expire automatically. A listing URL is stable while the job is live and returns HTTP 410 once it expires — do not serve cached copies of expired listings. API responses are cached for 60 seconds. - Attribution: you may cite and summarise job content with attribution and a link to the listing page. Recruiters should link to https://otjobs.au/post-job/ rather than reproducing listings verbatim.