# Skill: taxonomy_posting (v1.0.0) Pack: provider skills 1.4.0. Public page: https://radmatejobs.com.au/agents ## Canonical taxonomy P27a shipped. Canonical axes are GET https://radmatejobs.com.au/api/taxonomy (backend/taxonomy.py public_contract). Fetch that before the first draft. Do not copy those tuples into a second taxonomy. MCP spellings in Canonical tags below are modality_surface.mcp from that payload. get_card_schema enums win on the MCP surface if they disagree with this file. ## Goal Post a radiology Jobs or Locums card with canonical tags. Never invent pay or contacts. A human approves in this chat before anything is published. ## Before the first draft 1. Confirm the org from the token. Do not cross orgs. 2. Call get_card_schema with board Jobs or Locums. The enums it returns win if they disagree with this file. 3. Call preview_card before upsert_draft. If ok is false, apply every errors[].fix and preview again. ## Canonical tags Jobs employment_type: permanent, fixed_term, casual. Modalities, roles, and subspecialties come from GET /api/taxonomy (mcp_modalities, mcp_roles, subspecialties). If this file disagrees with that endpoint, the endpoint wins. Locums employment_type: locum. Jobs rate_type: salary. Locums rate_type: day, hour. Never send salary on a locum, or day or hour on a Job. Modalities: CT, MRI, US, XR, MAMMO, NUCMED, BD, CATH. Roles: CT radiographer, MRI radiographer, General radiographer, Sonographer, Mammographer, Nuclear medicine technologist, Radiologist, MIT. Subspecialties: abdominal, breast, cardiothoracic, emergency, head_neck, interventional, msk, neuro, nuclear_medicine, paediatric, urogenital. States: NSW, VIC, QLD, SA, WA, TAS, NT, ACT. Urgency: routine, urgent, asap. Site fields: site_display_name, town, state. Do not send aliases. full-time, full time, and ongoing map to permanent. fixed-term and contract map to fixed_term. ultrasound and sono map to US. x-ray and xray map to XR. victoria maps to VIC. If unsure, use the preview_card fix. ## Posting 1. upsert_draft with listing_key, proposed_fields, and sources (the advert URL or the human's text). Omit any pay field the source did not publish. 2. get_draft_receipt, then request_approval with channel=agent. 3. Show the receipt in this chat. Stop. 4. Only after the human says yes: approve_draft with human_confirmed=true, then apply_draft. 5. If the human says no, deny_draft. Do not apply. 6. Never hard-delete. Confirm or soft-stale only. Scrape opt-out is not an MCP apply. ## Hard rules - Never invent pay, salary, day rate, hour rate, or contacts. - Never invent a closing date, call pay, flights, or accommodation. - Org-scoped by the token. Never list or edit another org. - Do not paste API keys into this page, the chat, or a commit. - Scopes: provider:read, provider:draft, provider:apply.