doda Jobs Scraper (Japan)
Pricing
from $1.40 / 1,000 job scrapeds
doda Jobs Scraper (Japan)
Scrape job listings from doda.jp, one of Japan's largest mid-career job boards: job id and URL, title, company, location, salary text with yen band where stated, employment type and feature tags - from the whole feed or any doda search URL.
Pricing
from $1.40 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Superslow Sloth
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
21 days ago
Last modified
Categories
Share
Scrape job listings from doda - PERSOL CAREER's job board, one of Japan's largest for mid-career hiring - and get one flat row per job: id and URL, title, company, location, salary as printed (plus a yen band when the card states one), employment type and feature tags. Japanese text is kept exactly as doda prints it.
Run it on doda's whole job feed, or paste any search you built on doda.jp.
Input
| field | meaning |
|---|---|
searchUrls | Optional. doda search result URLs on https://doda.jp/DodaFront/View/JobSearchList.action, copied from your browser after setting conditions on the site. Every condition is kept; the actor manages the page number. Empty means doda's whole job feed |
maxItems | Stop after this many jobs in total, shared across all search URLs. doda shows 50 jobs per page |
proxyConfiguration | Apify datacenter proxy by default - see Proxy below |
Output
| field | meaning |
|---|---|
job_id | doda's numeric job id, from the j_jid__<id> part of the job URL (a string) |
url | The job's detail page on doda.jp |
title | The job headline printed under the company name |
company | Company name as printed |
job_summary | The card's 仕事 (work) row |
requirements | The card's 対象 (who it is for) row |
location | The card's 勤務地 (work location) row |
nearest_stations | The card's 最寄駅 (nearest stations) row |
business | The card's 事業 (company business) row |
salary_text | The card's 給与 (salary) row as printed, lines joined with a newline |
salary_min_jpy, salary_max_jpy | Yen, only when salary_text states exactly one band or floor - see below |
salary_period | year for a 年収 band, month for a 月給 band, null when there is no band |
employment_types | doda's employment-type badges, e.g. ["正社員"]; a card can carry two (["正社員", "契約社員"]) |
tags | Feature badges: 転勤なし, 上場企業, 職種未経験歓迎, 5名以上採用 ... |
is_new | doda's "New" badge |
closing_soon | doda's 締切間近 (closing soon) badge |
appeal | The free-text pitch beside the card's photo |
image_url | The card's photo |
search_url | Which search produced this row (page number stripped) |
doda truncates long rows on the search page with "..."; this actor returns them as printed and does not open each job's detail page.
Which fields can be null, and why null is not zero
salary_min_jpy/salary_max_jpy/salary_periodarenullon most rows. On the 2026-10-01 feed most cards print example incomes ("年収570万円/入社5年目・主任", "モデル年収:503万円(30歳)") rather than a band, and an example is not a range. A value is filled only when the text states exactly one band or floor, such as "年収345万円~492万円" or "月給28万円以上". A floor has no maximum, sosalary_max_jpystaysnull. A card that gives two bands for two candidate profiles also getsnull, because neither band belongs to the job as a whole. A0would read as "unpaid", and an invented band would read as a measurement.job_summary,requirements,location,nearest_stations,business,salary_textarenullwhen the card has no row with that label. Most cards carry all six, but not every card does.image_urlisnullon doda's video cards. They show a video that a script loads, and the page links no image.appealisnullwhen the card has no pitch text.
There is no posting-date column. doda's search card shows no date of any
kind, and the "New" badge (is_new) is the only recency signal it gives.
Scheduled maintenance: runs return no jobs during it
doda takes the whole site down for scheduled system maintenance. One window was observed early on Sunday morning JST: on 2026-10-04 (a Sunday) every doda URL, over every proxy exit tried, returned HTTP 503 with the notice 「現在システムメンテナンス中につき、dodaサイトはご利用いただけません」 and an outage window of 01:00-06:00 JST.
If you run the actor during maintenance, it retries from fresh exits. It then stops cleanly with no jobs, logs an error naming the scheduled maintenance and the window doda states, and sets the run's status message to match. It does not fail with a bare "HTTP 503". The actor-start event is still charged. No job events are charged. Schedule recurring runs outside early Sunday JST.
Proxy
The default is Apify's datacenter proxy. On 2026-10-01 doda answered a datacenter exit with a full results page (HTTP 200). Residential exits are not needed for this site and cost more.
Billing
Pay per event: $0.0014 per job (job-scraped), plus a small
actor-start fee per run. Each job is charged once, after it has been
written to the dataset. The same job id is never charged twice in one run,
even when two of your searches both return it.