MyNavi Tenshoku Job Scraper
Pricing
from $1.99 / 1,000 results
Go to Apify Store

Detail-page fields (populated only when
MyNavi Tenshoku Job Scraper
Scrape job listings from MyNavi Tenshoku (tenshoku.mynavi.jp), Japan's largest mid-career job board. No proxy needed.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
MyNavi Tenshoku Scraper

Scraper for tenshoku.mynavi.jp — Japan's largest mid-career job board with 50,000+ listings.
Technique
JSON-in-HTML (v0.2.0)
| Page type | Data source |
|---|---|
| List pages | SSR HTML parsed with Cheerio — no unauthenticated JSON API exists |
| Detail pages | schema.org/JobPosting JSON-LD extracted directly as structured JSON |
A mobile iPhone User-Agent bypasses the desktop WAF (HTTP 403), allowing zero-proxy scraping.
Input
| Field | Type | Default | Description |
|---|---|---|---|
keyword | string | "" | Search keyword in Japanese or English (e.g. エンジニア, IT, 営業). Leave empty for all listings. |
startUrls | array | [] | Custom MyNavi list page URLs. Overrides keyword and prefectureCode. |
maxResults | integer | 5 | Max listings to return. Set 0 for unlimited. |
fetchDetails | boolean | false | Fetch each job's detail page for full JSON-LD data: structured salary (JPY integers), city-level locations, full description, experience requirements, work hours, benefits. |
prefectureCode | integer | 0 | Filter by Japanese prefecture code (0 = all). See table below. |
remoteOnly | boolean | false | Only return listings tagged as remote/telework/WFH. |
employmentTypeFilter | string | "" | Filter by type: 正社員, 契約社員, パート・アルバイト, 業務委託. |
requestDelayMs | integer | 1000 | Min delay between requests (ms). Min 200. |
Prefecture codes (抜粋)
| Code | Prefecture |
|---|---|
| 1 | 北海道 (Hokkaido) |
| 13 | 東京都 (Tokyo) |
| 14 | 神奈川県 (Kanagawa) |
| 27 | 大阪府 (Osaka) |
| 28 | 兵庫県 (Hyogo) |
| 40 | 福岡県 (Fukuoka) |
| 47 | 沖縄県 (Okinawa) |
Full list: standard JIS X 0401 prefecture codes 1–47.
Output fields
List-page fields (always populated)
| Field | Type | Description |
|---|---|---|
url | string | Canonical job detail page URL |
jobId | string | MyNavi internal job identifier |
title | string | Job title / position name |
companyName | string | Hiring company name |
overview | string | One-line job overview |
employmentType | string | Employment type in Japanese (e.g. 正社員) |
conditions | string[] | Condition/feature tags (e.g. リモートワーク可, 完全週休2日制) |
isRemote | boolean | True if any remote-work tag is present |
isNew | boolean | True if 新着 (new) label is shown |
dateUpdated | string | Last updated date (ISO 8601) |
dateExpiry | string | Listing expiry date (ISO 8601) |
jobDescriptionSnippet | string|null | Truncated job description from card (仕事内容) |
requirementsSnippet | string|null | Truncated requirements from card (対象となる方) |
locationSnippet | string|null | Location text from card (勤務地) |
salarySnippet | string|null | Salary text from card (給与) e.g. 月給272,400円〜 |
firstYearIncomeSnippet | string|null | First-year income from card (初年度年収) e.g. 450万円~800万円 |
featuresSnippet | string|null | Feature highlights from card (特徴), present on some listings |
Detail-page fields (populated only when fetchDetails: true)
| Field | Type | Description |
|---|---|---|
title | string | Full job title from JSON-LD (may differ from card title) |
industry | string|null | Industry categories (slash-separated) |
datePosted | string|null | Original posting date (ISO 8601) |
dateExpiry | string|null | Valid-through date (ISO 8601) |
description | string|null | Full job description, HTML stripped |
experienceRequirements | string|null | Required and preferred experience, HTML stripped |
locations | array|null | Array of { region, city? } objects with prefecture and ward/city names |
salaryMin | integer|null | Minimum annual salary in JPY |
salaryMax | integer|null | Maximum annual salary in JPY |
salaryCurrency | string|null | Always "JPY" when present |
salaryUnit | string|null | Always "YEAR" when present |
workHours | string|null | Work hours description |
benefits | string|null | Benefits and perks, HTML stripped |
applicationUrl | string|null | Direct application URL |
companyWebsite | string|null | Company website URL |
Example output (fetchDetails: true)
{"url": "https://tenshoku.mynavi.jp/jobinfo-197220-1-169-1/","jobId": "197220-1-169-1","title": "IT部門スタッフ","companyName": "株式会社クレディセゾン","employmentType": "正社員","isRemote": true,"salarySnippet": "月給272,400円〜+各種手当","firstYearIncomeSnippet": "450万円~800万円","locations": [{ "region": "東京都", "city": "新宿区" },{ "region": "東京都", "city": "豊島区" }],"salaryMin": 4500000,"salaryMax": 8000000,"salaryCurrency": "JPY","salaryUnit": "YEAR","experienceRequirements": "【必須条件】\nシステムに関する何かしらの知見・経験を有していること...","industry": "クレジット・信販/サービス(その他)","datePosted": "2026-05-05"}
Notes
- Rate limiting: default 1000 ms delay. Reduce to 400–600 ms for faster runs if not hitting 429s.
- Pagination: the
<link rel="next">header drives pagination automatically. - Detail cost:
fetchDetails: truedoubles request count (1 list + 1 detail per job). Price accordingly. - Prefecture filter: uses
srPrefectureCdListquery parameter on the mobile search endpoint. The path-based/list/p{code}/URLs serve a different regional template and are not used. - Deduplication:
seenJobIdsset prevents double-counting across pages. - Circuit breaker: 5 consecutive 4xx errors trips the breaker and marks the run FAILED.