{
  "openapi": "3.0.1",
  "info": {
    "title": "Japan Jobs Feed 日本求人: Mynavi, Rikunabi, Wantedly, Green, Kyujin",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "yfwc6HB8s0TRIJdHg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~japan-jobs-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-japan-jobs-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~japan-jobs-feed/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-japan-jobs-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~japan-jobs-feed/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-japan-jobs-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "sources": {
            "title": "Job boards",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string",
              "enum": [
                "japan-dev",
                "tokyo-dev",
                "mynavi",
                "kyujinbox",
                "green-japan",
                "bizreach",
                "rikunabi-graduate",
                "rikunabi-next",
                "wantedly"
              ],
              "enumTitles": [
                "Japan Dev (English tech jobs, visa and Japanese-level tags)",
                "TokyoDev (English software jobs, visa and relocation facts)",
                "Mynavi Tenshoku マイナビ転職 (mid-career jobs, Japanese)",
                "Kyujin Box 求人ボックス (aggregator, all job types, Japanese)",
                "Green グリーン (IT and web jobs, Japanese, yen salaries)",
                "BizReach ビズリーチ (white-collar and executive jobs, Japanese)",
                "Rikunabi Graduate リクナビ就活 (new-graduate programs and internships, Japanese)",
                "Rikunabi NEXT リクナビNEXT (mid-career jobs, Japanese; opens a browser, needs 2048 MB run memory)",
                "Wantedly ウォンテッドリー (startup projects, internships and mid-career, Japanese; extra-charge board)"
              ]
            },
            "default": [
              "japan-dev",
              "tokyo-dev",
              "mynavi",
              "kyujinbox",
              "green-japan",
              "rikunabi-graduate"
            ]
          },
          "startUrls": {
            "title": "Board links",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "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.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "expandKeywords": {
            "title": "Add English and Japanese synonyms",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "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.",
            "default": [
              "Tokyo"
            ],
            "items": {
              "type": "string"
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep only these kinds of employment. Leave empty for all. Jobs whose type is not stated are dropped when a type is chosen.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "contract",
                "dispatch",
                "parttime",
                "freelance",
                "internship"
              ],
              "enumTitles": [
                "Full-time (正社員)",
                "Contract (契約社員)",
                "Dispatch (派遣)",
                "Part-time and arubaito (パート・アルバイト)",
                "Freelance (業務委託)",
                "Internship (インターン)"
              ]
            },
            "default": []
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the board describes as remote or partly remote. Jobs that do not say are dropped.",
            "default": false
          },
          "experience": {
            "title": "Experience band",
            "enum": [
              "any",
              "entry",
              "1-3",
              "3-5",
              "5-10",
              "10-plus"
            ],
            "type": "string",
            "description": "Keep jobs whose required experience overlaps this band. Jobs that do not state experience are dropped when a band is chosen.",
            "default": "any"
          },
          "education": {
            "title": "Minimum education",
            "enum": [
              "any",
              "highschool",
              "vocational",
              "bachelor",
              "master",
              "phd"
            ],
            "type": "string",
            "description": "Keep jobs that ask for at least this level. Jobs that do not state an education level are dropped when a level is chosen.",
            "default": "any"
          },
          "japaneseLevel": {
            "title": "Japanese needed (at most)",
            "enum": [
              "any",
              "not-required",
              "conversational-or-less",
              "business-or-less"
            ],
            "type": "string",
            "description": "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.",
            "default": "any"
          },
          "visaSponsorshipOnly": {
            "title": "Visa sponsorship offered",
            "type": "boolean",
            "description": "Keep only jobs where the board states that visa sponsorship is offered. Most boards do not state it, so expect few rows.",
            "default": false
          },
          "englishOk": {
            "title": "English-friendly",
            "type": "boolean",
            "description": "Keep only jobs where the board states that English is enough, for example an English working language or no Japanese required.",
            "default": false
          },
          "relocationSupport": {
            "title": "Relocation support offered",
            "type": "boolean",
            "description": "Keep only jobs where the board states that relocation support is offered.",
            "default": false
          },
          "minAnnualSalaryJpy": {
            "title": "Minimum annual salary (JPY)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "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": {
            "title": "Maximum annual salary (JPY)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Keep jobs whose published pay starts at or below this yearly amount."
          },
          "minHourlyWageJpy": {
            "title": "Minimum hourly wage (JPY)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "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": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Drop jobs that say pay is negotiable or show no pay at all.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "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": {
            "title": "Company names",
            "type": "array",
            "description": "Keep only jobs from companies whose name contains one of these words, in English or Japanese.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Drop jobs whose title, company, category or tags contain any of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "includeCompanyProfile": {
            "title": "Include company profile",
            "type": "boolean",
            "description": "Add company facts such as capital, head count, founding date and head office where the board publishes them (Mynavi Tenshoku).",
            "default": false
          },
          "includeSourceFields": {
            "title": "Include board source record",
            "type": "boolean",
            "description": "Attach the untouched record from the board under provenance, for audits and fields not mapped to the common format.",
            "default": false
          },
          "convertToUsd": {
            "title": "Add USD salary figures",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "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.",
            "default": ""
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "all",
              "changesOnly",
              "compact"
            ],
            "type": "string",
            "description": "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.",
            "default": "all"
          },
          "uniqueOnly": {
            "title": "One row per job across boards",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "includeClosed": {
            "title": "Report closed jobs",
            "type": "boolean",
            "description": "When monitoring, add a short CLOSED row for each job that disappeared on two complete scans. Closed rows count as delivered rows.",
            "default": true
          },
          "maxTotalRows": {
            "title": "Maximum rows in total",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "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.",
            "default": 25
          },
          "maxItemsPerSource": {
            "title": "Maximum rows per board",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Most jobs read from one board in this run (split across your keyword and location combinations).",
            "default": 25
          },
          "maxPagesPerSource": {
            "title": "Maximum result pages per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "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.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "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": {
            "title": "Board-specific options",
            "type": "object",
            "description": "Optional per-board settings as JSON, keyed by board id. No board needs one today. Unknown keys are ignored.",
            "default": {}
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}