Jora Jobs & Salary Scraper: Australia, NZ, Asia
Pricing
from $6.15 / 1,000 results
Jora Jobs & Salary Scraper: Australia, NZ, Asia
Scrape Jora job listings across Australia, New Zealand, Singapore, Malaysia, Indonesia and Hong Kong. Extract job title, company, salary, job type, work arrangement and full description. Export to JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Jora Jobs & Salary Scraper: Australia, NZ, Asia
Here is one real result, with every field the actor returns:
{"title": "Registered Nurse - Christchurch - Part Time","company": "New Zealand Blood Service","location": "Christchurch, South Island","salary": "$77,667 - $109,407 a year","jobType": "Part time","workArrangement": null,"companyRating": null,"postedAt": "Posted 20h ago","source": "Jora","snippet": "Work in unique health sector, caring for people. Utilize health assessment, critical thinking, and reflective practice skills. Great customer service, communication skills, no phlebotomy experience needed","jobId": "2692d85af893d2b962812ee8b13a4652","url": "https://nz.jora.com/job/Registered-Nurse-2692d85af893d2b962812ee8b13a4652","description": "- Permanent, Part Time. - Central Christchurch location. - Current NZ practising certificate required. About New Zealand Blood Service ... (full text returned; trimmed here for readability)","observedAt": "2026-08-14T08:08:45.580Z","error": null,"remote": null,"salaryMin": 77667,"salaryMax": 109407,"salaryCurrency": "$","salaryPeriod": "YEAR","aiJdSummary": "The New Zealand Blood Service is seeking a part-time Registered Nurse in Christchurch to provide care and support to blood donors and patients ... (AI add-on output, trimmed)","aiSkills": {"skills": ["health assessment", "critical thinking", "reflective practice", "customer service", "communication skills"],"seniority": "unknown","yearsExperience": null,"education": "Current NZ practising certificate"}}
The most complete Jora jobs scraper available. It returns every field Jora exposes for each listing across its Australia, New Zealand and Asia sites, plus parsed salary bounds and a derived remote flag, and gives you keyword, location, remote, job-type and salary filters plus optional AI and contact add-ons to target exactly the jobs you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches a Jora country site for your keyword and location, paginates the results, and writes one normalized record per listing to the run's dataset. When withDetails is on (default), each job page is opened to collect the full description and structured job type and salary. Salary text is parsed into salaryMin, salaryMax, salaryCurrency and salaryPeriod, and a boolean remote flag is derived from work arrangement, title and location. Missing source values are returned as null, never invented.
Optional add-ons enrich each record: AI job summary, AI skills and requirements extraction, and a business-contact email and name lookup. All add-ons are off by default and require a paid Apify plan.
Quickstart
Open the actor, paste this into the input, and press Run. It searches for nurse jobs in Sydney, Australia with full details.
{"keyword": "nurse","location": "Sydney","country": "au","maxJobs": 10,"withDetails": true}
keyword is required. Leave location empty to search the whole country.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | yes | nurse | Job title, skill or company to search for (for example nurse, developer, marketing manager). |
location | string | no | Sydney | City, region or suburb to search in. Leave empty to search the whole country. |
country | enum | no | au | Jora country site: au, nz, sg, my, id, hk. Each country has its own job inventory. |
maxJobs | integer | no | 10 | Maximum number of jobs to collect. |
withDetails | boolean | no | true | Open each job page for the full description and structured job type and salary. Disable for listing-level fields only. |
remoteOnly | boolean | no | false | Keep only jobs detected as remote (from work arrangement, title or location). |
jobType | string | no | (empty) | Keep only jobs whose job type or work arrangement contains this text (for example full time, part time, contract, casual). |
minSalary | integer | no | (none) | Keep only jobs whose parsed maximum salary is at least this amount. Jobs without a salary are excluded when set. |
enrichContacts | boolean | no | false | Paid add-on. For results without an email, attempt to find a public business contact email and name. Billed per attempt, plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the contact add-on tries to enrich. Free Apify accounts are capped at 3. |
withAiJdSummary | boolean | no | false | Paid add-on. Write a concise English summary of each posting. Requires a paid Apify plan. Billed only when a summary is produced. |
withAiSkills | boolean | no | false | Paid add-on. Extract structured skills, seniority, required experience and education. Requires a paid Apify plan. Billed only when data is produced. |
Output reference
One dataset item per job listing. Types: string, integer, boolean, object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
title | string | Job title. |
company | string | Hiring company name. |
location | string | Location label as shown on the listing. |
salary | string | Original salary text as displayed, or null. |
jobType | string | Job type, for example Full time, Part time, Contract, Casual. |
workArrangement | string | Work arrangement text when stated, else null. |
companyRating | string | Company rating shown on the listing, or null. |
postedAt | string | Human-readable posted-time label (for example Posted 20h ago). |
source | string | Always Jora. |
snippet | string | Short listing snippet. |
jobId | string | Jora job id, unique per listing. |
url | string | Public URL of the job page. |
description | string | Full job description text (when withDetails is on). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
remote | boolean | Derived remote flag from arrangement, title and location. null when undeterminable. |
salaryMin | integer | Parsed lower salary bound, or null. |
salaryMax | integer | Parsed upper salary bound, or null. |
salaryCurrency | string | Parsed salary currency symbol or code, or null. |
salaryPeriod | string | Parsed salary period, for example YEAR, HOUR, or null. |
aiJdSummary | string | AI summary of the posting (paid add-on), else null. |
aiSkills | object | AI-extracted skills, seniority, yearsExperience, education (paid add-on), else null. |
enrichedEmail | string | Contact email found by the contact add-on, else absent or null. |
enrichedContactName | string | Contact person name found by the contact add-on, else absent or null. |
enrichedEmailStatus | string | Status of the contact lookup (for example not_found), when the add-on runs. |
Example output record
Real record from a live run (input {"keyword":"registered nurse","country":"nz"} with AI add-ons enabled). The description, snippet, url and aiJdSummary values are trimmed here for readability; the dataset returns them in full.
{"title": "Registered Nurse - Christchurch - Part Time","company": "New Zealand Blood Service","location": "Christchurch, South Island","salary": "$77,667 - $109,407 a year","jobType": "Part time","workArrangement": null,"companyRating": null,"postedAt": "Posted 20h ago","source": "Jora","snippet": "Work in unique health sector, caring for people. Utilize health assessment, critical thinking, and reflective practice skills ... (trimmed)","jobId": "2692d85af893d2b962812ee8b13a4652","url": "https://nz.jora.com/job/Registered-Nurse-2692d85af893d2b962812ee8b13a4652","description": "- Permanent, Part Time. - Central Christchurch location. - Current NZ practising certificate required. About New Zealand Blood Service ... (trimmed; full text in dataset)","observedAt": "2026-08-14T08:08:45.580Z","error": null,"remote": null,"salaryMin": 77667,"salaryMax": 109407,"salaryCurrency": "$","salaryPeriod": "YEAR","aiJdSummary": "The New Zealand Blood Service is seeking a part-time Registered Nurse in Christchurch ... (trimmed; full text in dataset)","aiSkills": {"skills": ["health assessment", "critical thinking", "reflective practice", "customer service", "communication skills"],"seniority": "unknown","yearsExperience": null,"education": "Current NZ practising certificate"}}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~jora-jobs-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword":"nurse","location":"Sydney","country":"au","maxJobs":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~jora-jobs-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword":"developer","country":"sg","remoteOnly":true,"maxJobs":100}'
Apify CLI:
apify call scrapers_lat/jora-jobs-scraper \--input '{"keyword":"nurse","country":"nz"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per job record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run, and the contact add-on is capped at 3 attempts. The AI and contact add-ons require a paid Apify plan. Upgrade for higher
maxJobsand enrichment.
FAQ and troubleshooting
Which countries are covered?
Australia (au), New Zealand (nz), Singapore (sg), Malaysia (my), Indonesia (id) and Hong Kong (hk). Each site has its own job inventory; choose one per run with country.
Does it include salary?
When the employer publishes it. The original text is kept in salary, and parsed bounds appear in salaryMin, salaryMax, salaryCurrency and salaryPeriod. Use minSalary to keep only jobs paying at least a threshold.
How do I get only remote jobs?
Set remoteOnly to true. The actor derives a remote flag from the work arrangement, title and location.
Why is description empty?
It is only fetched when withDetails is enabled (on by default). Disable it for faster listing-only runs.
A run returned 0 records. Why?
The keyword or location matched nothing on the selected country site, or your minSalary/jobType filters excluded everything. Zero-result runs are not charged.
Are the add-ons free? No. The AI add-ons and the contact-enrichment add-on require a paid Apify plan. They are off by default; on free plans the contact add-on is capped at 3 attempts.
Is this an official Jora tool? No. This actor is independent and has no affiliation with Jora. It only accesses publicly available job listings. Use the results in accordance with the source's terms.
Related scrapers
- JobStreet SEA Jobs Scraper: jobs across Southeast Asia from JobStreet.
- JobScore Jobs Scraper: open roles from public JobScore company boards.
- Jobvite Jobs Scraper: open roles from public Jobvite career sites.
- Indeed Jobs Scraper: job listings from Indeed.
- Greenhouse Jobs Scraper: open roles from Greenhouse boards.
- Lever Jobs Scraper: open roles from Lever boards.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Jora. Accesses only publicly available job listings. Use the results in accordance with the source's terms.
