For AI agents
ViewJobs is regional Australia's jobs platform. Every live ad has an indexable page with schema.org JobPosting markup, and assistants can search the whole catalogue through a free MCP server. Searching is read-only and needs no sign-in. A person can also connect their ViewJobs account: the assistant sends them to a consent screen on this site, and once they agree it can act for them — keep their profile up to date, set job alerts and apply to ads that take applications on ViewJobs, asking them before each application.
Search from an assistant
Endpoint: https://preview.viewjobs.com.au/api/mcp (MCP, Streamable HTTP). The search tools need no authentication; the signed-in tools use OAuth, and the assistant starts the sign-in the first time one is called.
Claude (claude.ai, desktop, mobile)
Settings → Connectors → Add custom connector → paste https://preview.viewjobs.com.au/api/mcp. Searching needs no ViewJobs sign-in; the first signed-in tool sends you to the ViewJobs consent screen. Custom connectors are available on the Claude plans that support them.
Claude Code
claude mcp add --transport http viewjobs https://preview.viewjobs.com.au/api/mcp
ChatGPT
Settings → Apps → Developer mode → Add → paste https://preview.viewjobs.com.au/api/mcp. The server also serves the search and fetch tools deep research expects.
Perplexity (Pro and above)
Settings → Connectors → Add custom connector → URL https://preview.viewjobs.com.au/api/mcp, transport Streamable HTTP. Searching needs no authentication; the signed-in tools need a client that supports MCP OAuth.
Copilot Studio and Cursor
Add an MCP server by URL (https://preview.viewjobs.com.au/api/mcp); transport Streamable HTTP. Searching needs no authentication; the signed-in tools need a client that supports MCP OAuth.
Tools
| Tool | What it does |
|---|---|
| search_jobs | Search live job ads across regional and metropolitan Australia by keywords, optionally near a place. Returns compact cards (title, employer, location, work type, pay, posted date, apply type, URL). Give the person the card's `url` — it is the page to read and apply from. Use `get_job` for the full description. |
| get_job | Fetch one job ad by its id (from `search_jobs`): the full description as plain text, plus three similar live ads. An expired ad is reported as expired with its URL, not dropped. |
| list_roles | The most-advertised roles right now, nationally or for a town or region, with live ad counts and the hub page for each (a browsable list of that role's ads). Use it to discover what is hiring somewhere before searching. |
| list_places | Resolve a place name to the towns and regions ViewJobs knows, with live ad counts and each place's hub page. Use it when a person names somewhere ambiguous (there are several Richmonds) or to see how much is hiring nearby. |
| salary_bands | Advertised pay bands (25th, median, 75th percentile, annual AUD) for a role, computed from published job ads. National only. Says how many ads the band rests on and when it was computed; do not present it as an offer. |
| search | ChatGPT deep-research alias of search_jobs: a plain query, up to 10 results with id, title and url. Prefer search_jobs for filters. |
| fetch | ChatGPT deep-research alias of get_job: one ad by id as { id, title, text, url, metadata }. |
Signed-in tools
Connect your ViewJobs account from the assistant (it will send you to a consent screen on this site). A connected assistant can read and update your profile, import a CV you paste (which replaces your work history, education, skills and licences), build a CV from your profile, set job alerts, list your applications, and apply to ads that take applications on ViewJobs. It never changes your phone number, contact email or WhatsApp settings, and it asks you before it applies, withdraws an application, or changes what employers can see or the email you get. Disconnect from the assistant's connector or app settings.
| Tool | Kind | What it does |
|---|---|---|
| get_my_profile | read | Read the signed-in person's ViewJobs profile: name, headline, summary, location, skills, experience, education and certifications. Call before recommending jobs or changing the profile. |
| get_my_applications | read | List the signed-in person's job applications on ViewJobs with their current stage, newest first. Use to answer "where are my applications at". |
| recommend_jobs | read | Jobs matched to the signed-in person's profile (headline, preferred role and town), with a match score. Prefer this over search_jobs when the person asks what suits them. |
| list_job_alerts | read | The signed-in person's job alerts (saved searches that email new matches). At most three per person. |
| upload_cv | read | Gives the link where the person uploads a CV file (PDF or DOCX) to their ViewJobs profile. Files cannot be sent through this connection; to fill the profile from a CV the assistant can already read, use import_cv_text instead. |
| update_profile | write | Update the signed-in person's ViewJobs profile facts: headline, about (the profile's summary paragraph), skills (replaces the list), display name, location (a town or suburb), relocation intent and right-to-work answer. Phone, contact email and WhatsApp settings change only on the profile page. |
| add_work_history | write | Append one role to the signed-in person's work history (role, company, start, end or current, summary). Use once per role; it never edits an existing entry. |
| add_education | write | Append one qualification (qualification, institution, year) to the signed-in person's education. Never edits an existing entry. |
| update_preferences | write | Change whether employers can discover the signed-in person's profile, whether it is revealed automatically on application, and whether they receive ViewJobs email. Phone, contact email and WhatsApp settings change only on the profile page. Ask the person first, in your own words, and set confirm only after they say yes. |
| set_job_alert | write | Save a search as a job alert for the signed-in person; new matching ads arrive with their daily digest email. Give the search as one line, e.g. "registered nurse Ballarat". At most 3 alerts per person. |
| remove_job_alert | write | Switch off one of the signed-in person's job alerts by id (from list_job_alerts). The saved search stays; only the alert stops. |
| import_cv_text | write | Fill the signed-in person's profile from the text of their CV (paste the CV's full text; PDF or DOCX content you can read). Work history, education, skills and licences are replaced from the CV; headline, summary and location are only filled when the profile has none. Up to 40,000 characters; 5 attempts a day, including ones where the CV could not be read. A CV file for applications is uploaded on the site (upload_cv). |
| create_cv | write | Build a PDF CV from the signed-in person's ViewJobs profile and save it to their CV list. It becomes the default attachment — what apply_to_job sends when no cv_file_id is given — only when it's their only CV or make_primary is true; an uploaded CV that is the default stays the default. If the profile is too thin it returns needs_details naming what to ask the person for; save the answers with update_profile, add_work_history or add_education, then call again. Running it again replaces the CV it built before; CVs the person uploaded are never replaced or deleted. 10 a day. |
| apply_to_job | write | Apply to a ViewJobs ad on behalf of the signed-in person, attaching their CV on ViewJobs. Works for ads that take applications on ViewJobs; external and ATS ads return the page to apply on. May return profile steps to complete (profile_incomplete), needs_cv when they have no CV on ViewJobs yet (offer upload_cv to upload a file, or create_cv to build one from their profile), or the employer's questions to answer first. Ask the person first, in your own words, and set confirm only after they say yes. |
| withdraw_application | write | Withdraw the signed-in person's application to one ad. Give the ad's id — the listing_id field of an application from get_my_applications, not that application's own id. The employer is told. Ask the person first, in your own words, and set confirm only after they say yes. |
Examples
“Find me registered nurse jobs near Ballarat paying over $90k”
search_jobs({ query: "registered nurse", place: "Ballarat", sort: "salary", page_size: 5 })Five cards with pay, employer and a link to each ad.
“What's on my ViewJobs profile?”
get_my_profile({})Your headline, summary, skills, experience and a link to the profile page.
“Here's my CV — put it on my profile”
import_cv_text({ text: "<the CV text>" })Work history, education, skills and licences from the CV; your own headline and summary are kept if you had them.
“Alert me to new nurse jobs in Ballarat”
set_job_alert({ query: "registered nurse Ballarat" })A job alert; new matches arrive with your daily digest email.
“Apply to that one”
apply_to_job({ id: "<ad id>" }) → apply_to_job({ id, confirm: true })The assistant shows what it will send, asks you, then applies. If you have no CV on ViewJobs yet, it helps you add one first. Ads that take applications elsewhere get a link instead.
“Where are my applications at?”
get_my_applications({})Each application with its current stage.
Limits and attribution
- Public tools are read-only and need no sign-in; signed-in tools act only on your own account, after consent. At most 20 results per page, pages 1–50; descriptions are capped at 4,000 characters.
- Abusive traffic may be blocked. If you need sustained high volume for a legitimate use, contact support@viewjobs.com.au.
- Every link the server returns carries
utm_medium=ai_agentand the client name, so we can see which assistants send people to jobs. For the public tools we log each call's tool, arguments (the query, place or ad id), a salted hash of the address and the latency for 90 days; those calls identify nobody. Signed-in calls are recorded against your account for 90 days: the tool, the time, the client name, the argument names and lengths, any ids, the outcome or error code, the latency and a salted hash of the address — never the text you or the assistant typed. - Featured ads appear in results as ordinary listings marked
featured: true. - Signed-in tools: up to 20 applications, 5 CV import attempts and 10 attempts to build a CV from your profile a day per account.
Crawlers
Search-index and user-fetch agents (OAI-SearchBot, Claude-SearchBot, Claude-User, ChatGPT-User, PerplexityBot, Perplexity-User, Googlebot, Bingbot, Applebot and the rest) may read every public page and cite it. Training crawlers may read hub and marketing pages but not individual job ads. The full policy is in robots.txt; the machine-readable index is llms.txt.