Japan Job Market & Wage Stats — Hello Work Public Jobs
Pricing
from $20.00 / 1,000 job market analyzeds
Japan Job Market & Wage Stats — Hello Work Public Jobs
Japan's public job board (Hello Work, 1.13M live openings) in one call: exact opening count per keyword x prefecture, wage medians & quartiles split hourly/daily/monthly, how wide the advertised pay range is, employment-type mix, top cities. From $0.02 — no subscription. ハローワークの求人相場を1コールで。
What does a nurse in Kochi actually get paid? How many engineering jobs are open in Osaka right now? How much room is there between the advertised minimum and maximum salary? One call answers it, from Japan's national public job board.
This Actor queries Hello Work / ハローワークインターネットサービス (www.hellowork.mhlw.go.jp), the job board of Japan's public employment service, run by the Ministry of Health, Labour and Welfare — ~1,130,000 live openings, roughly 20x the largest private Japanese job board, covering every prefecture, every industry and every company size, including the small and rural employers that never appear on commercial sites.
There is no open API: the ministry's XML feed is restricted to local governments and licensed employment agencies. For everyone else this Actor is the access path — and it returns statistics, not a pile of listings.
Why this data is different: wages are a structured range
Japanese job ads are famous for free-text salaries ("月給29万1230円+皆勤手当1万円"). Hello Work is the exception: every posting carries a machine-readable 225,500円 〜 282,100円 pair. That means this Actor can report something no other Japanese job source can:
medianRangeWidth— how wide the advertised band is, i.e. how much negotiation headroom a role has in that marketfixedWageShare— the share of employers offering a single fixed number (no headroom at all)- clean hourly / daily / monthly medians and quartiles instead of one meaningless blended figure
What you get per keyword × prefecture (one record)
| Field | Meaning |
|---|---|
totalOpenings | Exact count of live openings for that keyword in that prefecture — a labour-demand indicator in its own right, not a sample estimate |
wages.hourly / wages.daily / wages.monthly | n, median, p25, p75, min, max of the advertised starting wage, plus medianUpper, medianRangeWidth and fixedWageShare |
wages.annualFromMonthly | Monthly median × 12, as a floor (bonuses are not published in the list view) |
employmentTypeBreakdown | 正社員 (permanent) vs 正社員以外 (non-regular) vs パート (part-time) vs dispatched, with shares |
topMunicipalities | Where inside the prefecture the jobs actually are (top 5 cities/wards) |
acceptedDateRange / deadlineDateRange | How fresh the postings are and how long they stay open |
confidence | high, or medium when the pay-period inference is not clean-cut |
Optionally, every sampled posting as its own record (job number, occupation, employer, location, wage range, dates).
Privacy: only employer (company) names are collected. Contact names and phone numbers are never parsed and never emitted.
Pricing — from $0.02, no subscription
| Event | Price | When |
|---|---|---|
| Market summary | $0.02 | Per keyword × prefecture analyzed |
| Individual job posting | $0.002 | Only if you enable Include individual job postings |
A default run (1 keyword, 1 prefecture) costs $0.02 and takes about 4 seconds. Combinations that return zero openings are never charged.
Input
| Field | Example | Notes |
|---|---|---|
keywords | ["看護師"], ["engineer","経理"] | Occupation, skill, qualification or employer. Japanese matches best. Required |
prefectures | ["13"], ["Tokyo","Kochi"], ["東京都"], ["all"] | JIS codes, English names or Japanese names — all accepted. "all" = 47 prefectures |
jobCategory | "1" | 1 = general openings (一般), 4 = seasonal migrant work (出稼ぎ) |
maxPagesPerSlice | 2 | 30 jobs per page, 1–5 pages = up to 150 sampled jobs. Does not affect totalOpenings |
includeIndividualJobs | false | Enable to also get each sampled posting as a record |
convertToUsd | false | Adds a USD copy of every wage statistic |
Cost and time scale with keywords × prefectures. Keep a run to a handful of combinations; the Actor keeps a soft 95-second budget and flags any record it had to truncate with truncatedForTimeLimit.
Exact vs sampled — which is which
| Field | Basis |
|---|---|
totalOpenings | Exact — the site's own result count for the query |
| everything else | Sampled from the newest maxPagesPerSlice × 30 postings |
Hello Work serves a fixed 30 results per page in newest-first order, and neither the page size nor the sort order can be changed over HTTP. So the sample is the most recently posted openings, not a random draw — which is exactly what you want for a "what is the market paying right now" read, and exactly what you must not treat as a stratified sample of the whole stock. Every record states this in sampleBasis: "newest-first" and estimatedFrom.method.
Output example (abridged; Kochi × 看護師, measured 2026-07-25)
{"type": "job_market_summary","keyword": "看護師","prefecture": "Kochi","prefectureNameJa": "高知県","prefectureCode": "39","jobCategory": "1","totalOpenings": 615,"sampledJobs": 60,"sampledPages": 2,"sampleBasis": "newest-first","wages": {"hourly": {"n": 12, "median": 1277, "p25": 1150, "p75": 1400, "min": 1030,"max": 1800, "medianUpper": 1377, "medianRangeWidth": 100,"fixedWageShare": 0.25},"daily": {"n": 0, "median": null, "medianRangeWidth": null},"monthly": {"n": 48, "median": 225500, "p25": 198000, "p75": 268000,"min": 170000, "max": 420000, "medianUpper": 282100,"medianRangeWidth": 56600, "fixedWageShare": 0.08},"annualFromMonthly": {"n": 48, "median": 2706000,"note": "Monthly lower bound x 12. Bonuses ..."}},"employmentTypeBreakdown": [{"employmentType": "正社員", "name": "Permanent employee (seishain)", "jobs": 38, "share": 0.6333},{"employmentType": "正社員以外", "name": "Non-regular full-time employee", "jobs": 14, "share": 0.2333},{"employmentType": "パート労働者", "name": "Part-time worker", "jobs": 8, "share": 0.1333}],"topMunicipalities": [{"municipality": "高知市", "jobs": 31}, {"municipality": "南国市", "jobs": 6}],"acceptedDateRange": {"newest": "2026-07-24", "oldest": "2026-07-11"},"deadlineDateRange": {"nearest": "2026-08-31", "farthest": "2026-10-31"},"currency": "JPY","confidence": "high","checkedAt": "2026-07-25T09:00:00+00:00","sourceUrl": "https://www.hellowork.mhlw.go.jp/kensaku/GECA110010.do?action=searchBtn&..."}
With includeIndividualJobs: true you additionally get, per posting:
{"type": "job","jobNumber": "38010-24578261","occupation": "看護職員(デイサービス)","employerName": "株式会社 ツクイ 中国・四国圏","workLocation": "高知県高知市","municipality": "高知市","employmentType": "正社員","wageLow": 225500, "wageHigh": 282100, "wageRangeWidth": 56600,"wageType": "monthly","acceptedDate": "2026-07-24", "deadlineDate": "2026-09-30"}
Use cases
- International recruiters & relocation firms — benchmark what a role really pays in a given prefecture before quoting a candidate, including the negotiation band
- HR & compensation teams — a live, free-of-survey-fees external salary benchmark for Japan, per occupation and per region
- HR-tech / job-board products — salary-range widgets and "jobs open near you" counts without licensing a private board
- Labour-market analysts, economists, policy & regional research — openings per keyword per prefecture is a demand series you can run weekly; the newest-first sample doubles as a flow (new postings) measure
- Site selection & expansion planning — is there a hiring pool for welders / caregivers / drivers in this prefecture, and at what price
- Staffing & franchise operators — compare your offer against the local Hello Work median before posting
Notes & limits
- The sample is newest-first, always. 30 results per page is fixed and the sort order cannot be changed over HTTP. Read the wage stats as "what is being advertised right now", not as a census of all live postings
- Pay periods are inferred from magnitude, because the list view prints wages without a period label:
< 10,000= hourly,10,000–99,999= daily,>= 100,000= monthly. Daily-paid postings are rare (0 of 30 in the measured sample) but when any appear,confidencedrops tomedium annualFromMonthlyexcludes bonuses (賞与), overtime and most allowances — Japanese packages often add 2–5 months of salary in bonuses, so treat it as a floor- Jobs are filtered by work location, not by employer head office
- Keyword matching is Hello Work's own free-word search; broad English keywords will match fewer postings than the Japanese equivalent
- Read-only, throttled to one request per 1.5 s out of respect for a government system. No login, no personal data, nothing stored between runs
- The postings are the employers' own text, published by a public agency; this Actor computes statistics from them on demand and keeps no database
日本語ガイド
ハローワークインターネットサービス(厚生労働省)の公開求人を、1コールで「キーワード × 都道府県」の求人市場統計にして返す Actor です。
- 概要: 指定したキーワード(職種名・資格名など)と都道府県について、有効求人件数(実数) と 賃金統計 を返します。ハローワークは求人約113万件と国内最大の母数を持ち、しかも賃金が「225,500円〜282,100円」という数値レンジで構造化されているため、民間求人サイトでは作れない統計が作れます。
- 一番の売り: 賃金レンジの幅(
medianRangeWidth)。「その職種・その地域では、下限と上限の差が中央値でいくらか」= 交渉余地の指標です。あわせて固定給(下限=上限)の割合fixedWageShareも返します。賃金は 時給 / 日給 / 月給 を桁で判別して別々に集計するので、混ぜた無意味な平均になりません。 - 使い方:
keywordsに職種などを指定(日本語が最も精度が高い)、prefecturesに都道府県を指定します(JISコード13/ 日本語東京都/ 英語Tokyoのいずれでも可。["all"]で47都道府県)。標本を増やしたい場合はmaxPagesPerSliceを上げてください(1ページ30件固定・最大5ページ=150件)。個別求人が必要なときだけincludeIndividualJobsを ON にします。 - 料金: 「キーワード×都道府県」1組の市場サマリーが $0.02、個別求人レコードは $0.002/件(既定 OFF なので既定実行は $0.02 固定)。0件の組み合わせには課金されません。サブスクリプション不要です。
- 実数とサンプルの区別:
totalOpenings(有効求人件数)はサイトが返す実数です。賃金・雇用形態・市区町村などは新着順の先頭 N ページからの標本です。ハローワークは表示件数30件固定・並び順の変更が HTTP からはできないため、標本は常に「直近に登録された求人」になります。この点は全レコードにsampleBasis: "newest-first"として明記しています。 - 注意点: 一覧に賃金形態(時給/日給/月給)のラベルは無く、下限額の桁数から判定しています(1万円未満=時給、1万〜9万円台=日給、10万円以上=月給)。日給帯が出現した場合は
confidenceをmediumに下げます。月給×12 の年収換算は賞与を含みません。 - 個人情報: 取得するのは事業所名(法人名)までです。担当者名・電話番号は取得しません。政府システムへの負荷に配慮し、リクエスト間隔は 1.5 秒以上あけています。