Jora Scraper
Pricing
$0.89 / 1,000 result scrapeds
Jora Scraper
Scrapes job listings from Jora (AU, NZ, SG, HK, MY). No proxy required. No browser.
Pricing
$0.89 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Jora Jobs Scraper
Scrapes job listings from Jora across five Asia-Pacific markets: Australia, New Zealand, Singapore, Hong Kong, and Malaysia.
Architecture: JSON-HTML hybrid — job card metadata extracted from server-side embedded JSON attributes (data-jd-payload, data-impression-*), full descriptions fetched from the lightweight /job/description/{id} panel endpoint (6–16 KB vs 90 KB full page). No proxy required. No browser.
Pricing: $0.89 / 1,000 results
Input
| Field | Type | Default | Description |
|---|---|---|---|
country | string | au | Country site: au, nz, sg, hk, my |
keyword | string | — | Job title or skill to search. Leave empty for all jobs. |
location | string | — | City or region filter, e.g. Sydney, Auckland. |
jobType | string | — | full_time, part_time, casual_temporary, contract, permanent |
postedWithin | string | — | 24h, 7d, 14d, or 30d |
sortBy | string | relevance | relevance or date |
fetchPanel | boolean | true | Fetch full description panel per job. Disable for faster/cheaper SERP-only runs. |
maxPages | integer | 10 | Max SERP pages. Each page yields ~10–15 jobs. |
maxJobs | integer | — | Hard stop after N jobs. |
Example input
{"country": "au","keyword": "data analyst","location": "Melbourne","jobType": "full_time","postedWithin": "7d","sortBy": "date","maxPages": 20,"fetchPanel": true}
Output
Each result is a flat JSON object stored in the default dataset.
| Field | Type | Source | Description |
|---|---|---|---|
jobId | string | SERP | Hex unique ID from the job URL |
title | string | SERP | Job title |
company | string | SERP | Hiring company |
location | string | SERP | City/region |
salary | string|null | SERP | Salary badge, e.g. $80,000 – $100,000 a year |
jobType | string|null | SERP+Panel | Full time, Part time, Contract, Casual/Temporary, Permanent |
workArrangement | string|null | Panel | Hybrid, Remote, or Office |
descriptionBullets | string[] | SERP | Key selling points shown on search results card |
fullDescription | string|null | Panel | Full plain-text job description |
datePosted | string|null | SERP+Panel | Human-readable age, e.g. Posted 2d ago |
isSponsored | boolean | SERP | True if promoted/sponsored listing |
abstractType | string|null | SERP | original or extended_llm (AI-rewritten description) |
applyType | string|null | Panel | quick_apply, company_site, or unknown |
verifiedEmployer | boolean|null | Panel | True if employer has Verified Employer badge |
companyRating | number|null | Panel | Company rating score, e.g. 4.3 |
companyReviewCount | integer|null | Panel | Number of reviews behind the rating |
companyReviewSource | string|null | Panel | Review source, e.g. SEEK |
country | string | SERP | Country code: au, nz, sg, hk, my |
url | string | SERP | Clean canonical URL of the job listing |
scrapedAt | string | — | ISO 8601 timestamp |
Example output record
{"jobId": "abe57823441443462a26c9dc4bc7bded","title": "Customer Service Officer","company": "Australian Financial Complaints Authority","location": "Melbourne VIC","salary": null,"jobType": "Full time","workArrangement": "Hybrid","descriptionBullets": [],"fullDescription": "Fairness feels good\nMake a real impact at AFCA...","datePosted": "1h ago","isSponsored": false,"abstractType": "original","applyType": "company_site","verifiedEmployer": false,"companyRating": 4.3,"companyReviewCount": 36,"companyReviewSource": "SEEK","country": "au","url": "https://au.jora.com/job/Customer-Service-Officer-abe57823441443462a26c9dc4bc7bded","scrapedAt": "2026-05-16T05:00:00.000Z"}
Technical notes
- Custom proxy used — Jora blocks Apify's shared datacenter IPs. The actor uses the
BUYPROXIES94952custom US proxy pool (27 IPs) to reliably bypass this. - No browser — pure
got+cheerio. No Playwright. - JSON-HTML hybrid — SERP card data comes from embedded
data-jd-payloadJSON attributes (stable, no CSS dependency). Full descriptions fetched from/job/description/{id}panel endpoint. - Domain change (May 2026) — Jora migrated from
www.jora.com.autoau.jora.comsubdomain pattern across all markets. - Panel endpoint —
GET /job/description/{jobId}?sp=serp&sponsored=false&cp=1&sr=1— no authentication, no tk token required, returns 6–16 KB HTML fragment with full description, work arrangement, company rating, and apply type. abstractTypefield — Jora uses AI (extended_llm) to rewrite some job descriptions. TheabstractTypefield lets you distinguish original employer copy from AI-rewritten content.- Deduplication — Job IDs tracked in-memory via
Set; each listing pushed once per run. - Rate limiting — 600 ms between SERP pages, 300 ms between panel fetches. 3-retry backoff on 429/5xx.
Supported countries
| Code | Domain |
|---|---|
au | au.jora.com |
nz | nz.jora.com |
sg | sg.jora.com |
hk | hk.jora.com |
my | my.jora.com |