Green Japan Job Scraper avatar

Green Japan Job Scraper

Pricing

from $0.28 / 1,000 job listings

Go to Apify Store
Green Japan Job Scraper

Green Japan Job Scraper

Scrape Japanese tech job listings from Green, one of Japan's largest IT job boards. Returns job title, company, salary range parsed into yen, prefecture, required skills, company size and founding year. Japanese text is returned exactly as published, never transliterated.

Pricing

from $0.28 / 1,000 job listings

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Green Japan Job Board Scraper

Returns job offers from Green, one of Japan's largest tech-focused job boards: the job title, the hiring company, the printed salary band, the work location, the required skills and the canonical URL of the listing.

Search in English or Japanese. python, React, 機械学習 and 営業 all work.

Japanese text is returned exactly as Green prints it

Nothing is translated, transliterated or romanised, and nothing is re-encoded. 株式会社 DEGINA comes back as 株式会社 DEGINA, and 430万円〜550万円 comes back as 430万円〜550万円. The salary band is also parsed into plain yen integers so it can be sorted and filtered, but the original string is always kept beside it.

Output fields

FieldNotes
idGreen's numeric job-offer id.
urlCanonical listing URL, e.g. https://www.green-japan.com/company/11242/job/324553.
nameThe job title, e.g. Webディレクター(制作部リーダー候補).
titleThe longer headline Green shows above the job. A different field from name.
company_id, company_nameThe hiring company.
company_titleThe company's one-line pitch. null when it has none.
salaryThe band exactly as printed, e.g. 430万円〜550万円.
salary_min_jpy, salary_max_jpyYen integers read out of salary.
area_nameLocation string as printed, e.g. 東京都, フルリモート.
area_namesThe same string split on its separators, for filtering.
skill_namesSkills tagged on the offer, e.g. ["Python", "AWS", "React"]. Often empty.
tag_namesGreen's own labels, e.g. ["副業可"].
business_name, business_introduction, business_photo_urlThe business unit the role sits in, and its blurb.
photo_urlsListing photos.
employees_numberCompany headcount.
established_yearAs printed, e.g. 2015年.
established_year_intThe four-digit year, e.g. 2015.
updated_at_timestamp, updated_atWhen the offer was last updated, as Unix seconds and as ISO-8601 UTC.
is_newGreen's own "new" flag.
other_job_offer_countHow many other openings the same company had alongside this one.
keywordWhich of your search terms produced this row.

What this source does not give

These are stated rather than guessed. A missing value is always null, never 0 and never an empty string, because a zero reads as a measurement that was never taken.

  • No posting date. Green publishes only a last-updated timestamp, which is what updated_at is. It is not the date the job was first listed.
  • No job description, requirements or benefits. The search payload carries the summary card only. The full text lives on the individual listing page at url.
  • No application deadline, employment type or contract length.
  • skill_names is frequently empty - measured on 360 offers across six keywords, 201 of them carried no skill tags at all. That is Green's data, not a parsing gap.
  • established_year is occasionally absent (7 of those same 360).
  • The other openings at the same company are counted, not copied. One company's catalogue reached 31 KB inside a single search row, which would have tripled the size of every dataset item to repeat data that a second search returns properly. other_job_offer_count records how many there were.

Two measured limits worth knowing before you run this

Green paginates only three pages deep. page=2 and page=3 return offers that do not overlap page 1 at all, but page=10, page=280 and page=999 all redirect back to page 3 and re-serve it. So a keyword yields at most 60 jobs, no matter that the site reports 5,586 results for python. To collect more, give the actor more keywords - results are merged and de-duplicated by job id, so a job matching several of your keywords is delivered once and charged once.

The /search_key URL does not search. It answers 200 and it looks right, but it redirects to /search and drops the keyword on the way, so it serves the generic unfiltered board - the identical twenty offers whether you ask it for python or for gibberish. This actor uses /search?keyword=, which honours the term. A contract test pins that behaviour so we notice if Green ever fixes it.

Input

FieldNotes
keywordsRequired. One or more search terms, English or Japanese.
maxItemsBudget for the whole run across all keywords, not per keyword. Default 60.
proxyConfigurationOptional. Green answered without a proxy when this was built; a proxy just gives the scraper a fresh address to retry on.

Billing

One job-scraped event per job, charged after the job has been written to the dataset, and only for jobs that are actually delivered. A duplicate is never charged. A keyword that matches nothing costs nothing beyond the actor start.