en-japan Jobs Scraper (Japan) avatar

en-japan Jobs Scraper (Japan)

Pricing

from $2.10 / 1,000 job scrapeds

Go to Apify Store
en-japan Jobs Scraper (Japan)

en-japan Jobs Scraper (Japan)

Scrape job listings from employment.en-japan.com (エン転職), a major Japanese mid-career job board: job id and URL, title, company, location, salary text with yen band where stated, employment type, tags - by area, occupation, keyword or new arrivals.

Pricing

from $2.10 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape job listings from en-japan (エン転職), one of Japan's major mid-career job boards, and get one flat row per job: id and URL, title, company, location, salary as printed (plus a yen band when the text states one), employment type, badges and the job text on the card. Japanese text is kept exactly as en-japan prints it.

Run it for an area (Tokyo is 23), an occupation, a keyword, the day's new arrivals, or paste any search you built on the site.

Example input

{
"areaIds": ["23"],
"newOnly": true,
"maxItems": 500
}

That is the daily feed: the Tokyo jobs en-japan flags as new arrivals (526 of Tokyo's 6,266 on 2026-10-23). To read a whole area past the ceiling below, list occupations too:

{
"areaIds": ["23"],
"occupationIds": ["100000", "150000"],
"maxItems": 4000
}

Input

fieldmeaning
searchUrlsOptional. en-japan search result URLs on https://employment.en-japan.com/search/search_list/, copied from your browser after setting conditions on the site. Every condition is kept; the actor manages the page number. When given, the four filter fields below are ignored
areaIdsOptional. en-japan area ids (Tokyo is 23). Each area is its own search
occupationIdsOptional. en-japan occupation ids: 100000 is the whole sales group (営業系), 101000 corporate sales (法人営業), 150000 planning, clerical, marketing and admin. Each occupation is its own search, combined with each area
keywordOptional. A keyword searched across the job text
newOnlyOnly jobs en-japan flags as new arrivals (its 新着のみ filter)
fetchDetailsOpen every job's detail page to fill posted_from, posted_until and last_updated. One extra request per job; off by default
maxItemsStop after this many jobs in total, shared across all searches. en-japan shows 50 jobs per page
proxyConfigurationApify datacenter proxy by default - see Proxy below

At least one of searchUrls, areaIds, occupationIds, keyword or newOnly is required: en-japan answers a search with no condition with an empty page, so the actor refuses it rather than report "zero jobs". An id the site does not know is ignored by the site, not rejected; check the first rows.

Output

fieldmeaning
job_iden-japan's numeric job id, from the /desc_<id>/ part of the job URL (a string)
urlThe job's detail page on employment.en-japan.com
titleThe job headline
companyCompany name as printed
employment_typesThe employment-type badges, e.g. ["正社員"]; a card can carry two or three
tagsThe other badges: 職種未経験OK, 転勤なし, 完全週休2日, エン エージェント求人 ...
catch_copyThe headline sentence above the card's photo
teaserThe opening of the job text beside the photo (en-japan cuts it with "……")
job_summaryThe card's 仕事内容 (work) row
requirementsThe card's 応募資格 (who it is for) row
salary_textThe card's 給与 (salary) row as printed
salary_min_jpy, salary_max_jpyYen, only when salary_text states exactly one band or floor - see below
salary_periodyear for a 年収 / 年俸 band, month for a 月給 band, null when there is no band
locationThe card's 勤務地 (work location) row
company_featureThe card's 会社の特徴 row, printed only on エン エージェント cards
editor_commentThe reporter's comment in the card's 取材 box
image_urlThe card's first photo
posted_from, posted_until, last_updatedISO dates from the detail page; only with fetchDetails
search_urlWhich search produced this row (page number stripped)

Long rows are cut by en-japan on the search page with "…" or "……"; this actor returns them as printed. Turn on fetchDetails only for the three date columns - it does not add the full job text.

Which fields can be null, and why null is not zero

Counts are from the 2,005 cards on the 40 pages of Tokyo results read on 2026-10-23.

  • salary_min_jpy / salary_max_jpy / salary_period are null on 907 of 2,005 cards. A value is filled only when the salary text states exactly one band or floor next to a period word, such as "月給28万円~40万円" or "年収500万円以上". Two bands ("東京:月給21万円~/大阪:月給19.7万円~"), example incomes ("月収例25.6万円") and a bare "350万円~550万円" with no period word are not one band for one period, so they stay null. A floor has no maximum, so salary_max_jpy is also null on those. A 0 would read as "unpaid" and an invented band as a measurement.
  • posted_from / posted_until / last_updated are null unless you set fetchDetails, because the search results print no date of any kind. They are also null for a job whose detail page could not be read (the row is still returned, and the run log says which job).
  • catch_copy (367 null) and teaser (436 null): cards that print none. company_feature is null on every card that is not an エン エージェント one. image_url is null on 518 cards with no photo.
  • job_summary, requirements, salary_text, location are null when the card has no row with that label; every measured card had them except one without a salary row.

The 2,000-job ceiling

en-japan serves at most 40 pages of 50 (2,000 jobs) for any single search, however many it reports. Tokyo says 6,266 jobs; the pages after the 40th come back empty. The actor reads each search until it ends and, when a search stops at the ceiling, says so in the run log and the run's status message. To read past it, split the search: give several occupationIds (each is its own search of up to 2,000), several areaIds, or use newOnly for a daily feed that stays well under it. A job found by two of your searches is returned and charged once.

The first page of a search also shows about five sponsored cards whose jobs reappear later in the results; they are returned once, not twice.

Proxy

The default is Apify's datacenter proxy: on 2026-10-23 a probe from the platform got a full results page from 10 of 10 datacenter exits (residential 9 of 10, Japanese residential 9 of 10). Residential exits are not needed and cost more.

Billing

Pay per event: $0.0021 per job (job-scraped), plus a small actor-start fee ($0.002) 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. fetchDetails does not change the price per job.