CareerCross Scraper - Japan Bilingual Job Listings
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
CareerCross Scraper — Bilingual Japan Job Listings
Scrape job listings from CareerCross, Japan's bilingual (English/Japanese) job board for English-speaking talent in Japan, global companies hiring locally, and inbound talent. Pull title, company, salary range, location, employment type, English/Japanese level, visa status, industry, and job categories — flat record per posting.
What it returns
| Field | Description |
|---|---|
job_id, url |
CareerCross numeric job ID and canonical detail URL |
title |
Listing title (Japanese, English, or bilingual) |
company_name, company_legal_name, company_description |
Hiring company display name, legal name, and description block |
location, nearest_station, prefecture |
Address line, advertised station, and parsed prefecture name |
employment_type |
Mapped label: Permanent Full-time, Part-time, Contract, Temp to Perm, Freelance, etc. |
experience_required_label, experience_required_months |
Original label plus a numeric months floor (0 / 12 / 36 / 72 / 120) |
education_requirement |
e.g. "Bachelor's Degree", "High School" |
salary_min, salary_max, salary_currency, salary_period, salary_label |
Numeric range from data-salary-* attrs (with label-fallback parsing), currency JPY, period inferred from the label |
english_level, japanese_level |
Required language proficiency strings |
visa_sponsorship, visa_status |
Boolean (when detectable from the visa-status text) plus the raw status string |
industry, job_categories |
Industry label + breadcrumb categories ("Top > Sub" strings) |
career_level, work_hours |
Career stage label and work-hours string |
description_html, description_text, required_skills |
Description in HTML and stripped text + bullet-array of required skills |
date_posted |
Last-updated timestamp (ISO-8601, JST +09:00) |
language, source_search_url, scraped_at |
Page locale (en / ja), originating search-result page (when applicable), and emit timestamp |
Three input modes
The actor accepts one of three input patterns. Pick the mode and supply the
matching field.
1. mode: "search" — keyword search (default)
Best for browsing or topic discovery. The actor submits a keyword search,
follows the redirect to a fresh search-result page, and walks pagination
collecting detail records up to maxItems.
{
"mode": "search",
"keyword": "engineer english",
"language": "en",
"maxItems": 50
}
language toggles between /en/ (English UI) and /jp/ (Japanese UI). Both
locales use the same selectors — pick whichever matches your downstream
processing.
2. mode: "urls" — direct URLs
Use when you already have CareerCross URLs to scrape. Accepts both detail pages and search-result pages.
{
"mode": "urls",
"startUrls": [
{ "url": "https://www.careercross.com/en/job/detail-1589338" },
"https://www.careercross.com/en/job-search/result/64776616?page=1"
],
"maxItems": 100
}
Detail URLs produce one record each. Search-result URLs walk pagination from
the supplied page forward, same as search mode.
3. mode: "ids" — numeric job IDs
Use when you have a list of CareerCross job IDs from another system.
{
"mode": "ids",
"jobIds": ["1589338", "1577447", "1526389"],
"language": "en",
"maxItems": 100
}
Each ID becomes https://www.careercross.com/<lang>/job/detail-<id>.
Facet filters (optional)
Available in every mode. Each filter is a multi-select array — narrows results to rows that verifiably match at least one selected value; leave empty for the previous unfiltered behaviour.
prefectures— keep only rows whose parsedprefectureis one of the selected Japan prefectures (e.g.["Tokyo", "Osaka"]).experienceLevels— keep only rows whose experience-requirement bucket (the site's own code) matches one of the selected levels ("0"=no experience required …"4"=10+ years).salaryBands— keep only rows whose annual-JPY salary range overlaps one of the selected bands (under_4m,4m_6m,6m_8m,8m_10m,10m_plus). Rows quoted per-month/per-hour are excluded when this filter is set.
A row with unrecognised/unverifiable data for an active filter is dropped, never passed through as if unfiltered.
Output sample
{
"job_id": "1589338",
"url": "https://www.careercross.com/en/job/detail-1589338",
"title": "Resort Operations Staff (Fukushima/Inawashiro) — English required",
"company_name": "DMCaizu Co., Ltd.",
"company_legal_name": "DMC aizu Co., Ltd.,",
"location": "Fukushima Prefecture, Yama-gun Inawashiro-machi",
"nearest_station": "Banetusai Line Station",
"prefecture": "Fukushima",
"employment_type": "Permanent Full-time",
"experience_required_label": "Over 1 year",
"experience_required_months": 12,
"education_requirement": "Bachelor's Degree",
"salary_min": 4000000,
"salary_max": 6000000,
"salary_currency": "JPY",
"salary_period": "year",
"salary_label": "4 million yen ~ 6 million yen",
"english_level": "Business Level (Amount Used: English usage about 25%)",
"japanese_level": "Fluent",
"visa_sponsorship": false,
"visa_status": "Permission to work in Japan required",
"industry": "Tourism",
"job_categories": [
"Education Jobs > Instructor, Teacher, Coach Jobs",
"Hotel, Travel and Hospitality Jobs > Reservation Agent, Guest Service Agent Jobs"
],
"career_level": "Mid Career",
"work_hours": "8:00-17:00 (1hr break)",
"date_posted": "2026-04-25T12:02:17+09:00",
"language": "en",
"source_search_url": "",
"scraped_at": "2026-04-25T14:51:00.000Z"
}
Pricing
Pay-per-event:
- $0.10 per actor start
- $0.003 per data record
Standard pay-per-event pricing on the data event,
reflecting the bilingual Japan-niche specialty data. Most search runs cost the
start fee plus a few cents in records — a maxItems: 100 run that returns 100
records is $0.40 total.
Notes
- Pagination on search-result pages is
?page=N; the actor stops at the page boundary or atmaxItems, whichever comes first. - Job postings update frequently — re-run with the same keyword/sid daily for
fresh listings, or pin to a specific
result/<sid>URL viamode='urls'to re-poll the same canonical search.
— BowTiedRaccoon
Further reading: Job Postings Data: How to Get Listings From 12 Boards Across 10 Markets