# Japan Jobs Feed 日本求人: Mynavi, Rikunabi, Wantedly, Green, Kyujin (`getascraper/japan-jobs-feed`) Actor

Search Japanese job boards in one run: Mynavi マイナビ転職, Rikunabi リクナビ, Wantedly, Green, Kyujin Box 求人ボックス, BizReach, Japan Dev and TokyoDev. One job format with JPY pay, prefecture labels, visa and Japanese-level facts, duplicate groups, and new, updated or closed jobs each run.

- **URL**: https://apify.com/getascraper/japan-jobs-feed.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.12 / 1,000 job postings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🇯🇵 Japan Jobs Feed 日本求人: Mynavi, Rikunabi, Wantedly, Green, Kyujin

<table width="100%" style="margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#EEF0FB;border:1px solid #C7CCF0;border-top:4px solid #3730A3;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Search Japanese job boards in one run and get every job in one clean format</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull jobs from Mynavi Tenshoku, Kyujin Box, Japan Dev, TokyoDev, Green, BizReach, Rikunabi Graduate, Rikunabi NEXT and Wantedly with yen pay kept as written, prefectures and cities in Japanese and English, and visa, Japanese level and relocation facts shown only when a board states them.</span>
</td>
</tr>
</table>
<table width="100%" style="margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7CCF0;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#272079">💴 Pay you can compare</span><br><span style="font-size:12px;color:#57534E">年収, 月給 and 時給 stay as written, with yearly and monthly figures added where they can be calculated.</span></td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7CCF0;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#272079">🗾 Japanese and English</span><br><span style="font-size:12px;color:#57534E">Every prefecture and city in both languages, next to the original text.</span></td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7CCF0;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#272079">🛂 Facts, never guesses</span><br><span style="font-size:12px;color:#57534E">Visa support, Japanese level and English OK appear only when the board says so.</span></td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7CCF0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#272079">🔔 What changed</span><br><span style="font-size:12px;color:#57534E">New, updated and closed jobs between scheduled runs.</span></td>
</tr>
</table>

Recruiters, relocation teams and job-market analysts who follow Japan hiring usually open one board at a time and then reconcile pay, places and titles by hand. This feed reads マイナビ転職 (Mynavi Tenshoku), 求人ボックス (Kyujin Box), Japan Dev, TokyoDev, グリーン (Green), ビズリーチ (BizReach), リクナビ就活 (Rikunabi Graduate), リクナビNEXT and ウォンテッドリー (Wantedly) in a single run, applies the same filters to all of them, and returns one table you can sort, export or schedule.

### 🔎 What does Japan Jobs Feed do?

You give it keywords, places and filters. It searches every board you select, converts what each one publishes into the same fields, and marks which rows are new since your last run. Japanese and English keywords both work. Nothing is guessed: if a board does not publish a value, the field is left out.

| Board | Strongest for | Good to know |
| --- | --- | --- |
| Mynavi Tenshoku マイナビ転職 | Mid-career and general roles across Japan, in Japanese | Every job page is read, so rows are rich but a run takes a little longer. Many postings list several prefectures, and those rows carry the full list instead of one prefecture. Company facts (capital, head count, head office) are available as an option. |
| Kyujin Box 求人ボックス | Very wide coverage, including part-time, contract and freelance roles | Collects listings from many sources, so some rows have no company name or only a maximum pay. Sponsored listings appear first on each page, and the place you choose is checked on every row. Full descriptions need one extra page per job. |
| Japan Dev | English-language tech jobs for people working in or moving to Japan | Often states visa support, Japanese level and relocation. Pay is shown on some postings only. Posting dates are the board's own and are frequently months old. |
| TokyoDev | English-language tech jobs at companies in Japan | Shows a pay range, remote policy, seniority and Japanese level on most postings. Search uses English words. |
| Green グリーン | IT and web jobs in Japanese, with company facts | Yearly pay is shown on most postings. Company facts (founding year, capital, head count, average age) are available as an option. There is no posting date, only the date the board last updated the job. |
| BizReach ビズリーチ | White-collar, management and executive roles in Japanese | Shows a pay range on most postings, but without saying whether it is yearly, so a pay filter drops those rows unless the posting states yearly pay. |
| Rikunabi Graduate リクナビ就活 | New-graduate programs, internships and events in Japanese | Rows are marked as campus jobs. Most programs pay nothing or only travel costs, so pay is empty on most rows. The graduation year, program type and online or on-site venue are included. |
| Rikunabi NEXT リクナビNEXT | Mid-career jobs in Japanese | Opens a browser first, so a run takes longer and needs the run memory set to 2048 MB. Not selected by default. |
| Wantedly ウォンテッドリー | Startup projects, internships, side jobs and mid-career roles in Japanese | Read through Japan-based connections, so it is the slowest and costliest board. Rows from this board carry one small extra "Premium board" charge on top of the job row, shown in the pricing panel. Not selected by default. |

Six boards are selected by default: Mynavi Tenshoku, Kyujin Box, Japan Dev, TokyoDev, Green and Rikunabi Graduate. BizReach is left out by default because it sometimes refuses job pages. Add BizReach, Rikunabi NEXT and Wantedly under Job boards when you need them.

Japan Dev, TokyoDev, Green and BizReach have no search pages. The Actor reads their job pages and keeps the ones that match your keywords, place and filters (keywords are matched against the title, company, tags and the posting text), so a filtered run reads more pages than an unfiltered one.

### 🎯 Who uses it

- **I am a recruiter** sourcing in Tokyo and Osaka and comparing what employers pay for the same title across several boards in one table.
- **I am a relocation consultant** finding roles that say English is enough, offer visa support or help with relocation, for clients who do not read Japanese.
- **I am a job-market analyst** benchmarking yen pay by prefecture and role, with yearly and monthly figures clearly marked as calculated or as published.
- **I am a job aggregator** feeding a site or app with fresh Japan listings and a group id that stops one posting from showing up twice.
- **I am a researcher** tracking hiring over time, using new and closed job flags from scheduled runs.

### 🚀 How it works

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#EEF0FB;border:1px solid #C7CCF0;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#3730A3;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Pick boards and a search</span><br><span style="font-size:12px;color:#57534E">Choose boards, keywords, places and filters, or paste a board link.</span></td>
<td style="padding:16px 14px;width:33%;background:#EEF0FB;border:1px solid #C7CCF0;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#3730A3;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Get one table</span><br><span style="font-size:12px;color:#57534E">Every row has the same fields, whichever board it came from.</span></td>
<td style="padding:16px 14px;width:33%;background:#EEF0FB;border:1px solid #C7CCF0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#3730A3;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Schedule it</span><br><span style="font-size:12px;color:#57534E">Name a monitor scope and each run flags new, updated and closed jobs.</span></td>
</tr>
</table>

Start small. The default search (six boards, Tokyo, 25 rows) finishes in well under a minute. Raise the limits once the rows look right.

#### Filters that work on every board

- **Pay:** minimum and maximum yearly yen, a minimum hourly wage for part-time work, or only jobs that show pay. Monthly pay is multiplied by 12 for the yearly check (bonus not included) and the row says so. Hourly, daily and weekly pay is never converted.
- **Job type and remote:** full time, contract, dispatch, part time, freelance or internship, and remote or partly remote jobs.
- **Experience and education:** experience matches any overlap with your band, and education means "at least" that level.
- **Foreign-friendly:** Japanese level (none, conversational or business at most), English is enough, visa sponsorship offered and relocation support offered. These use only what the board itself states.
- **Freshness and words:** posted within N days, words to exclude, and company names to keep.
- **Unknown values:** a job that does not state the value you filter on is dropped, so a filter never lets unchecked rows through. Mynavi Tenshoku and Kyujin Box rarely state visa or English facts, so those filters mostly return Japan Dev and TokyoDev rows. BizReach states pay without a period on many postings, and a pay filter drops those rows.

#### Same job on several boards

Rows that share a title, employer and prefecture get the same `clusterId`. Turn on `uniqueOnly` to keep one row per job, the one with the most information. Matching is strict on purpose: a Japanese company name and its English spelling are not treated as the same employer, so some repeats stay separate.

#### Monitoring over time

Give `monitorScope` a name and reuse it on a schedule. Each row is marked `NEW`, `UPDATED`, `UNCHANGED` or `REOPENED`. A job is marked `CLOSED` only after two complete scans in a row did not find it, and a scan that stopped at your row limit never counts as complete. Choose `changesOnly` to receive just the rows that changed. If a run reaches its time limit it returns the rows it already has, marks them `PARTIAL` and leaves your saved history untouched. Kyujin Box mixes sponsored listings into every page, so an unfiltered search there changes from run to run.

### ⚙️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `sources` | array of boards | No | Boards to search: Mynavi Tenshoku, Kyujin Box, Japan Dev, TokyoDev, Green, BizReach, Rikunabi Graduate, Rikunabi NEXT and Wantedly. Defaults to the first six, except BizReach; BizReach, Rikunabi NEXT and Wantedly are added by hand. |
| `startUrls` | array of URLs | No | Links copied from a supported board: a search page on Mynavi Tenshoku, Kyujin Box, Rikunabi Graduate, Rikunabi NEXT or Wantedly, or a single job page on Japan Dev, TokyoDev, Mynavi Tenshoku, Green, BizReach, Rikunabi Graduate, Rikunabi NEXT or Wantedly. A Green or Wantedly company link reads that company's postings. With the board list emptied, only the pasted links are read. Links from other sites are reported as unsupported. |
| `keywords` | array of text | No | Job titles or skills, in English or Japanese. Each keyword is searched in each place. Japan Dev and TokyoDev skip Japanese keywords and say so. |
| `expandKeywords` | boolean | No | Also search common synonyms of a job title. Finds more jobs and reads more pages. |
| `locations` | array of text | No | Prefectures or cities in English or Japanese. Enter Remote for remote jobs, or leave empty to search all of Japan. An unknown place is reported and never turned into a nationwide search. Defaults to Tokyo. |
| `employmentTypes` | array of enums | No | Full time, contract, dispatch, part time, freelance or internship. |
| `remoteOnly` | boolean | No | Keep only jobs the board describes as remote or partly remote. |
| `experience` | enum | No | Entry level, 1 to 3, 3 to 5, 5 to 10 or 10 plus years. |
| `education` | enum | No | Minimum education: high school, vocational, bachelor, master or PhD. |
| `japaneseLevel` | enum | No | Keep jobs that ask for no more than none, conversational or business Japanese, as the board states it. |
| `visaSponsorshipOnly` | boolean | No | Keep only jobs where the board states visa sponsorship is offered. |
| `englishOk` | boolean | No | Keep only jobs where the board states English is enough. |
| `relocationSupport` | boolean | No | Keep only jobs where the board states relocation support is offered. |
| `minAnnualSalaryJpy` | integer | No | Keep jobs whose pay range reaches at least this yearly amount in yen. |
| `maxAnnualSalaryJpy` | integer | No | Keep jobs whose pay range starts at or below this yearly amount in yen. |
| `minHourlyWageJpy` | integer | No | For hourly jobs: keep jobs paying at least this per hour. |
| `onlyDisclosedSalary` | boolean | No | Drop jobs with negotiable or missing pay. |
| `postedWithinDays` | integer | No | Keep jobs posted or updated within this many days. Jobs without a date are dropped. |
| `companyNames` | array of text | No | Keep only companies whose name contains one of these words. |
| `excludeKeywords` | array of text | No | Drop jobs containing any of these words in title, company, category or tags. |
| `includeDescription` | boolean | No | Add the job description and requirements where the board shows them. On Kyujin Box this reads one extra page per job. |
| `includeCompanyProfile` | boolean | No | Add company facts such as capital, head count, founding date and head office where the board publishes them (Mynavi Tenshoku, Green, BizReach, Rikunabi NEXT, Wantedly). |
| `includeSourceFields` | boolean | No | Attach the untouched board record for audits. |
| `convertToUsd` | boolean | No | Add pay in US dollars at the current exchange rate. |
| `monitorScope` | text | No | Name that links scheduled runs so each one can mark new, updated and closed jobs. |
| `outputMode` | enum | No | `all` rows, `changesOnly`, or `compact` short rows for spreadsheets and AI agents. |
| `uniqueOnly` | boolean | No | Keep one row per job when it appears on several boards. |
| `includeClosed` | boolean | No | When monitoring, add a short row for each job that disappeared. Defaults to on. |
| `maxTotalRows` | integer | No | Limit on rows for the whole run, shared fairly between boards. Defaults to 25. |
| `maxItemsPerSource` | integer | No | Limit on jobs from one board, split across your keyword and place combinations. Defaults to 25. |
| `maxPagesPerSource` | integer | No | Result pages read per keyword and place on a board. On Japan Dev, TokyoDev, Green and BizReach one page stands for 100 job pages read while looking for matches. Defaults to 5. |
| `proxyConfiguration` | connection settings | No | Optional. Each board is tried with the standard connection first and moves to another only if it is refused. |
| `boardOptions` | settings object | No | Optional extra settings per board, keyed by board id. Unknown keys are ignored. |

#### Free plan

Free-plan accounts get a small sample: up to 25 rows, 3 runs a day and a 30 minute pause between runs. The run ends normally with a message that explains the limit.

### 🧾 Data table

Each row is one job. Fields a board does not publish are left out. Text fields keep the board's original wording, and English labels sit next to them.

| Field | Type | Description |
| --- | --- | --- |
| `listingKey` | string | Stable key made of the board and the board's job id. |
| `sourcePlatform` | string | Board the row came from: `mynavi`, `kyujinbox`, `japan-dev`, `tokyo-dev`, `green-japan`, `bizreach`, `rikunabi-graduate`, `rikunabi-next` or `wantedly`. |
| `sourceRecordId` | string | The board's own job id. |
| `clusterId` | string | Shared by rows that look like the same job on different boards. |
| `clusterSize`, `isCanonical` | number, boolean | Rows in the group, and whether this is the most complete one. Only with `uniqueOnly`. |
| `inventoryType` | string | `job`, `internship` or `campus`. |
| `searchKeyword`, `searchLocation` | string | The keyword and place that found the row. |
| `title`, `titleLanguage` | string | Job title as published, and `ja` or `en`. |
| `company` | string | Employer name as published. |
| `companyUrl`, `companyLogo` | string | Employer website or board page, and logo. |
| `companyNameHidden` | boolean | True when the board masks the employer name. |
| `companyIndustry`, `companySize`, `companyStage` | string | Industry, employee range and funding stage when published. |
| `companyProfile` | object | Capital, head count, founding date, head office and similar facts. Only with the company profile option. |
| `postedByType` | string | `company` or `headhunter`, when the board says. |
| `locationRaw` | string | Location text exactly as shown. |
| `prefecture`, `prefectureEn`, `prefectureCode` | string | Prefecture in Japanese and English, and its two-digit code. |
| `region`, `regionJp` | string | Region of Japan, for example Kanto, in English and Japanese. |
| `city`, `cityEn`, `address`, `access` | string | City or ward, street address and station access text when published. |
| `latitude`, `longitude` | number | Coordinates when the board publishes them. |
| `isNationwide` | boolean | True when the job is open in many prefectures or all of Japan. |
| `isRemote`, `remoteType`, `remoteRaw` | boolean, string | Remote flag, `full`, `partial` or `none`, and the board's wording. |
| `salaryRaw` | string | Pay text exactly as shown, in its Japanese notation. |
| `salaryDisclosed`, `salaryNegotiable`, `salaryBonusMentioned` | boolean | Whether pay is shown, negotiable, or mentions a bonus. |
| `salaryCurrency`, `salaryPeriod` | string | Currency, and `year`, `month`, `week`, `day` or `hour` as published. |
| `salaryMin`, `salaryMax` | number | Range in the period the board states. |
| `salaryMonthlyMinJpy`, `salaryMonthlyMaxJpy` | number | Monthly range. Calculated from yearly pay when the board states yearly pay. |
| `salaryAnnualMinJpy`, `salaryAnnualMaxJpy` | number | Yearly range. Calculated from monthly pay when the board states monthly pay, bonus excluded. |
| `salaryHourlyMinJpy`, `salaryHourlyMaxJpy` | number | Hourly range. Never converted. |
| `salaryDerived` | boolean | True when the monthly or yearly figures were calculated. |
| `salaryMonthlyMinUsd`, `salaryMonthlyMaxUsd`, `salaryAnnualMinUsd`, `salaryAnnualMaxUsd` | number | Only with USD conversion on. |
| `experienceRaw`, `experienceMinYears`, `experienceMaxYears` | string, number | Experience text and years. |
| `seniorityRaw`, `seniority` | string, array | Seniority wording and the levels read from it. |
| `educationRaw`, `educationEn`, `educationRank` | string, number | Education text, English label and rank. |
| `employmentType`, `employmentTypeEn`, `employmentCategories` | string, array | Type in Japanese and English, and a common category. |
| `jobCategory`, `openings` | string, number | Category and number of positions. |
| `skills`, `tags`, `benefits`, `benefitsText` | array, string | Skills, listing tags and benefits as published. |
| `description`, `requirementsText` | string | Only with descriptions on. |
| `workHours`, `holidays` | string | Working hours and holiday rules as published. |
| `postedAt`, `updatedAt`, `expiresAt` | string | Dates in ISO 8601. Dates without a time are read as Japan time (UTC+9). |
| `listingUrl`, `applicationUrl` | string | Links to the job and to applying, when the board gives them. |
| `visaSponsorship`, `visaEvidence` | boolean, string | True or false only when the board states it, with the wording it rests on. |
| `japaneseLevelRaw`, `japaneseLevelRequired`, `japaneseLevelRank` | string, number | Japanese requirement as published, and the level read from it (none, N5 to N1, basic, conversational, business, fluent, native). |
| `englishOk`, `englishRaw` | boolean, string | True when the board states English is enough, with its wording. |
| `relocationSupport`, `applyFromAbroad` | boolean | True or false only when the board states it. |
| `signals` | object | Counts such as applicants, where the board shows them. |
| `lifecycleStatus`, `isActive` | string, boolean | `NEW`, `UPDATED`, `UNCHANGED`, `REOPENED`, `CLOSED` or `PARTIAL`. |
| `firstSeenAt`, `lastSeenAt`, `closedAt`, `changedFields` | string, array | Monitoring history and what changed. |
| `sourceComplete`, `sourceCapped`, `closureEligible` | boolean | Whether the board scan reached its end or was cut by a limit. |
| `platformData` | object | Everything else the board publishes that has no common field. |

Compact mode returns only `title`, `company`, `location`, `salary`, `url`, `source`, `lifecycle` and `clusterId`.

Example row:

```json
{
  "listingKey": "mynavi:169996-1-9-1",
  "sourcePlatform": "mynavi",
  "inventoryType": "job",
  "title": "IT事務・管理／一般事務・庶務",
  "titleLanguage": "ja",
  "company": "株式会社マイクロフィッシュ",
  "locationRaw": "東京都 千代田区",
  "prefecture": "東京都",
  "prefectureEn": "Tokyo",
  "prefectureCode": "13",
  "region": "Kanto",
  "city": "千代田区",
  "cityEn": "Chiyoda",
  "salaryRaw": "320万円～450万円",
  "salaryDisclosed": true,
  "salaryCurrency": "JPY",
  "salaryPeriod": "year",
  "salaryMin": 3200000,
  "salaryMax": 4500000,
  "salaryAnnualMinJpy": 3200000,
  "salaryAnnualMaxJpy": 4500000,
  "salaryMonthlyMinJpy": 266667,
  "salaryMonthlyMaxJpy": 375000,
  "salaryDerived": true,
  "employmentType": "正社員",
  "employmentTypeEn": "Full-time employee",
  "jobCategory": "一般事務・庶務",
  "postedAt": "2026-10-22T15:00:00.000Z",
  "listingUrl": "https://tenshoku.mynavi.jp/jobinfo-169996-1-9-1/",
  "clusterId": "title-company-city/v1:de14c74f87b587cc86b26880",
  "lifecycleStatus": "NEW"
}
```

Also saved with every run: `RUN_SUMMARY` (rows per board, limits reached, what was skipped and why) and `RUN_HEALTH` (the status of each board).

### 💰 Pricing

Pricing is pay per result: you pay for each job row delivered, shown as "Job posting" in the pricing panel. A run that finds nothing costs nothing, and there is no subscription. Wantedly rows carry one small extra "Premium board" charge on top of the job row, also shown in the pricing panel, because that board takes much more effort to read. Rows from every other board carry no extra charge.

### ⭐ Enjoying Japan Jobs Feed?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#EEF0FB;border:1px solid #C7CCF0;border-left:5px solid #3730A3;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One search across nine Japanese job boards instead of nine separate exports to merge.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other recruiters, relocation teams and analysts find it. Your feedback also tells us which boards and filters to add next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#3730A3;border:1px solid #C7CCF0;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/japan-jobs-feed/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### How do I search several Japanese job boards at once?

Leave the default boards on, enter your keywords and places, and run. Every board is searched with the same filters and returns rows in the same format. 日本の求人サイトをまとめて検索するには？Select the boards, type a job title in Japanese or English, and one run returns them all.

##### 年収・月給・時給を比べるにはどうすればいいですか？

The feed keeps the pay text exactly as the board shows it and adds numbers in the period the board states. Yearly pay also gets a monthly figure, and monthly pay gets a yearly figure (multiplied by 12, bonus not included), with `salaryDerived` set to true so you can tell them apart. Hourly pay is kept as an hourly figure and never converted.

##### Does it tell me which jobs sponsor visas or accept English?

Only when the board says so. Japan Dev and TokyoDev often state visa support, Japanese level, English as a working language and relocation help, and the feed copies those statements with the wording they rest on. Mynavi Tenshoku and Kyujin Box rarely state them, so those fields stay empty there instead of being guessed.

##### Does it need a login or an account on the job boards?

No. It reads public job listings only. You never enter a password, key or cookie. If a board refuses a request, the run reports that board with a plain message and keeps going with the others.

##### How fresh is the data?

Each run reads the boards at the time you start it, so rows are as current as the boards. Japan Dev posting dates are the board's own and are often months old, so a short freshness window can leave that board empty. Schedule the Actor with a `monitorScope` to see what is new, updated or closed since the last run.

##### Which boards and places are covered?

Mynavi Tenshoku, Kyujin Box, Japan Dev, TokyoDev, Green, BizReach, Rikunabi Graduate, Rikunabi NEXT and Wantedly. All 47 prefectures and about 100 major cities are recognised by name in English or Japanese. Mynavi Tenshoku rows that list several prefectures carry the full list and no single prefecture.

### 🔗 Other actors

- [MyNavi Tenshoku Scraper: Japan Jobs With Full Company Profiles](https://apify.com/getascraper/mynavi-scraper) ↗ - Mynavi Tenshoku jobs on their own, with company profiles.
- [Kyujin Box Scraper 求人ボックス: Japan Jobs, Salaries & Stations Data](https://apify.com/getascraper/kyujinbox-scraper) ↗ - Kyujin Box listings with pay and station data.
- [Japan Dev Scraper: Japan Tech Jobs, Salaries, and Visa Evidence](https://apify.com/getascraper/japan-dev-scraper) ↗ - Japan Dev tech jobs with visa wording.
- [TokyoDev Scraper: Japan Tech Jobs & Companies](https://apify.com/getascraper/tokyo-dev-scraper) ↗ - TokyoDev jobs and company pages.
- [Green Japan Tech Jobs Scraper: IT Postings, Salaries, Companies](https://apify.com/getascraper/green-japan-tech-jobs-scraper) ↗ - IT job postings from Green Japan.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/japan-jobs-feed/changelog.md

# Actor input Schema

## `sources` (type: `array`):

Which Japanese job boards to read. Each board is searched with the same keywords, locations and filters, and every row says which board it came from. Japan Dev and TokyoDev publish English-language tech jobs for people moving to or working in Japan. Mynavi Tenshoku, Kyujin Box, Green, BizReach and Rikunabi NEXT are Japanese-language boards for mid-career and general roles. Rikunabi Graduate lists new-graduate programs and internships, and Wantedly lists startup projects, internships and mid-career roles. The default selection is Mynavi Tenshoku, Kyujin Box, Japan Dev, TokyoDev, Green and Rikunabi Graduate. BizReach sometimes refuses job pages, so it is opt-in and can return fewer rows than asked. Rikunabi NEXT opens a browser first and needs the run memory set to 2048 MB (below that it reports a clear message instead of running). Wantedly is read through Japanese residential connections and carries an extra per-row charge when the Actor declares one. Add them when you need them.

## `startUrls` (type: `array`):

Optional links copied from a supported board: a search page on Mynavi Tenshoku, Kyujin Box, Rikunabi Graduate, Rikunabi NEXT or Wantedly, or a single job page Japan Dev, TokyoDev, Mynavi Tenshoku, Green, BizReach, Rikunabi Graduate, Rikunabi NEXT or Wantedly. Company links on Green and Wantedly read that company's postings. The board is detected from each link. Empty the Job boards list to read only the pasted links. A link that belongs to no supported board is reported and skipped.

## `keywords` (type: `array`):

Job titles or skills to search, in English or Japanese, for example Python or エンジニア. Every keyword is searched in every location. The English-only boards (Japan Dev, TokyoDev) skip Japanese keywords and say so. Boards without a search page (Japan Dev, TokyoDev, Green, BizReach) read job pages and keep the ones whose title, company, tags or posting text contain every word of the keyword. Leave empty to browse the newest jobs without a keyword.

## `expandKeywords` (type: `boolean`):

Also search a short built-in list of synonyms for common titles (for example engineer also searches エンジニア and SE). Finds more jobs and uses more requests.

## `locations` (type: `array`):

Prefectures or cities in English or Japanese, for example Tokyo, 大阪府 or Yokohama. Enter Remote for remote jobs, or Nationwide (or leave the list empty) to search all of Japan. An unknown place is reported with suggestions and never turned into a nationwide search. Boards without their own place search read jobs first and keep the ones in your places.

## `employmentTypes` (type: `array`):

Keep only these kinds of employment. Leave empty for all. Jobs whose type is not stated are dropped when a type is chosen.

## `remoteOnly` (type: `boolean`):

Keep only jobs the board describes as remote or partly remote. Jobs that do not say are dropped.

## `experience` (type: `string`):

Keep jobs whose required experience overlaps this band. Jobs that do not state experience are dropped when a band is chosen.

## `education` (type: `string`):

Keep jobs that ask for at least this level. Jobs that do not state an education level are dropped when a level is chosen.

## `japaneseLevel` (type: `string`):

Keep jobs that ask for no more than this level of Japanese, as the board itself states it. Jobs that say nothing about Japanese are dropped when a level is chosen, so nothing is guessed.

## `visaSponsorshipOnly` (type: `boolean`):

Keep only jobs where the board states that visa sponsorship is offered. Most boards do not state it, so expect few rows.

## `englishOk` (type: `boolean`):

Keep only jobs where the board states that English is enough, for example an English working language or no Japanese required.

## `relocationSupport` (type: `boolean`):

Keep only jobs where the board states that relocation support is offered.

## `minAnnualSalaryJpy` (type: `integer`):

Keep jobs whose published pay reaches at least this yearly amount. Monthly pay is multiplied by 12 (bonus not included) and a note on each row says so. Hourly, daily and weekly pay is never converted, so those jobs are dropped when a yearly limit is set. Jobs with no published pay are dropped too.

## `maxAnnualSalaryJpy` (type: `integer`):

Keep jobs whose published pay starts at or below this yearly amount.

## `minHourlyWageJpy` (type: `integer`):

For hourly jobs (part-time, arubaito): keep jobs paying at least this per hour. Jobs without an hourly wage are dropped when this is set.

## `onlyDisclosedSalary` (type: `boolean`):

Drop jobs that say pay is negotiable or show no pay at all.

## `postedWithinDays` (type: `integer`):

Keep jobs posted or updated within this many days. Jobs that carry no date cannot be checked and are dropped when this is set.

## `companyNames` (type: `array`):

Keep only jobs from companies whose name contains one of these words, in English or Japanese.

## `excludeKeywords` (type: `array`):

Drop jobs whose title, company, category or tags contain any of these words.

## `includeDescription` (type: `boolean`):

Add the job description and requirement text where the board provides it. On Kyujin Box this reads one extra page per job, so runs are slower and rows are larger. Keyword matching on boards without a search page already reads the posting text, whether or not this is on.

## `includeCompanyProfile` (type: `boolean`):

Add company facts such as capital, head count, founding date and head office where the board publishes them (Mynavi Tenshoku).

## `includeSourceFields` (type: `boolean`):

Attach the untouched record from the board under provenance, for audits and fields not mapped to the common format.

## `convertToUsd` (type: `boolean`):

Add monthly and annual pay in US dollars using the current exchange rate. If the rate cannot be loaded the USD fields are left out.

## `monitorScope` (type: `string`):

Give a name to track this search over time. Each run marks every row NEW, UPDATED, UNCHANGED or REOPENED, and a job that stays gone on two complete scans is reported CLOSED. Use the same name and settings on every scheduled run. Leave empty for a one-off run.

## `outputMode` (type: `string`):

All rows with every field, only rows that are new or changed since the last run, or a short compact row for feeds. Compact rows keep one row per job.

## `uniqueOnly` (type: `boolean`):

When the same job is listed on several boards, keep only the richest copy. Every row carries a cluster id either way, so you can also group them yourself.

## `includeClosed` (type: `boolean`):

When monitoring, add a short CLOSED row for each job that disappeared on two complete scans. Closed rows count as delivered rows.

## `maxTotalRows` (type: `integer`):

Hard limit on rows delivered by the whole run. It is shared fairly between the boards, and a board that finds less hands its share to the others.

## `maxItemsPerSource` (type: `integer`):

Most jobs read from one board in this run (split across your keyword and location combinations).

## `maxPagesPerSource` (type: `integer`):

Most result pages read for each keyword and location on a board. On Japan Dev, TokyoDev, Green and BizReach, which have no search pages, one page stands for 100 job pages read while looking for matches. A search that stops here is not treated as complete, so it can not report closed jobs.

## `proxyConfiguration` (type: `object`):

Optional. By default each board is tried without a proxy first and moves to a proxy only if it is refused. A proxy chosen here is used for every board instead.

## `boardOptions` (type: `object`):

Optional per-board settings as JSON, keyed by board id. No board needs one today. Unknown keys are ignored.

## Actor input object example

```json
{
  "sources": [
    "japan-dev",
    "tokyo-dev",
    "mynavi",
    "kyujinbox",
    "green-japan",
    "rikunabi-graduate"
  ],
  "keywords": [],
  "expandKeywords": false,
  "locations": [
    "Tokyo"
  ],
  "employmentTypes": [],
  "remoteOnly": false,
  "experience": "any",
  "education": "any",
  "japaneseLevel": "any",
  "visaSponsorshipOnly": false,
  "englishOk": false,
  "relocationSupport": false,
  "onlyDisclosedSalary": false,
  "companyNames": [],
  "excludeKeywords": [],
  "includeDescription": false,
  "includeCompanyProfile": false,
  "includeSourceFields": false,
  "convertToUsd": false,
  "monitorScope": "",
  "outputMode": "all",
  "uniqueOnly": false,
  "includeClosed": true,
  "maxTotalRows": 25,
  "maxItemsPerSource": 25,
  "maxPagesPerSource": 5,
  "boardOptions": {}
}
```

# Actor output Schema

## `jobs` (type: `string`):

No description

## `summary` (type: `string`):

No description

## `health` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sources": [
        "japan-dev",
        "tokyo-dev",
        "mynavi",
        "kyujinbox",
        "green-japan",
        "rikunabi-graduate"
    ],
    "keywords": [],
    "expandKeywords": false,
    "locations": [
        "Tokyo"
    ],
    "employmentTypes": [],
    "remoteOnly": false,
    "experience": "any",
    "education": "any",
    "japaneseLevel": "any",
    "visaSponsorshipOnly": false,
    "englishOk": false,
    "relocationSupport": false,
    "onlyDisclosedSalary": false,
    "companyNames": [],
    "excludeKeywords": [],
    "includeDescription": false,
    "includeCompanyProfile": false,
    "includeSourceFields": false,
    "convertToUsd": false,
    "monitorScope": "",
    "outputMode": "all",
    "uniqueOnly": false,
    "includeClosed": true,
    "maxTotalRows": 25,
    "maxItemsPerSource": 25,
    "maxPagesPerSource": 5,
    "boardOptions": {}
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/japan-jobs-feed").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sources": [
        "japan-dev",
        "tokyo-dev",
        "mynavi",
        "kyujinbox",
        "green-japan",
        "rikunabi-graduate",
    ],
    "keywords": [],
    "expandKeywords": False,
    "locations": ["Tokyo"],
    "employmentTypes": [],
    "remoteOnly": False,
    "experience": "any",
    "education": "any",
    "japaneseLevel": "any",
    "visaSponsorshipOnly": False,
    "englishOk": False,
    "relocationSupport": False,
    "onlyDisclosedSalary": False,
    "companyNames": [],
    "excludeKeywords": [],
    "includeDescription": False,
    "includeCompanyProfile": False,
    "includeSourceFields": False,
    "convertToUsd": False,
    "monitorScope": "",
    "outputMode": "all",
    "uniqueOnly": False,
    "includeClosed": True,
    "maxTotalRows": 25,
    "maxItemsPerSource": 25,
    "maxPagesPerSource": 5,
    "boardOptions": {},
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/japan-jobs-feed").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sources": [
    "japan-dev",
    "tokyo-dev",
    "mynavi",
    "kyujinbox",
    "green-japan",
    "rikunabi-graduate"
  ],
  "keywords": [],
  "expandKeywords": false,
  "locations": [
    "Tokyo"
  ],
  "employmentTypes": [],
  "remoteOnly": false,
  "experience": "any",
  "education": "any",
  "japaneseLevel": "any",
  "visaSponsorshipOnly": false,
  "englishOk": false,
  "relocationSupport": false,
  "onlyDisclosedSalary": false,
  "companyNames": [],
  "excludeKeywords": [],
  "includeDescription": false,
  "includeCompanyProfile": false,
  "includeSourceFields": false,
  "convertToUsd": false,
  "monitorScope": "",
  "outputMode": "all",
  "uniqueOnly": false,
  "includeClosed": true,
  "maxTotalRows": 25,
  "maxItemsPerSource": 25,
  "maxPagesPerSource": 5,
  "boardOptions": {}
}' |
apify call getascraper/japan-jobs-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/japan-jobs-feed"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/47QHICtYGCd0xGlDx/builds/yfwc6HB8s0TRIJdHg/openapi.json
