{
  "openapi": "3.0.1",
  "info": {
    "title": "Remote Jobs Scraper - 5 Job Boards, Salaries & Countries",
    "description": "Scrape remote jobs from Himalayas, We Work Remotely, Remote OK, Jobicy and Arbeitnow in one run: deduplicated, salary, seniority, which countries can apply, time zones and full description. Only-new-jobs mode for job alerts.",
    "version": "0.1",
    "x-build-id": "mPXcwo5rWHVRfiIof"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dataspace~remote-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dataspace-remote-jobs-scraper",
        "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/dataspace~remote-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dataspace-remote-jobs-scraper",
        "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/dataspace~remote-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dataspace-remote-jobs-scraper",
        "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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Job titles, skills or fields, one per line — e.g. <code>react developer</code>, <code>customer support</code>, <code>data analyst</code>. Each keyword is a separate search across all selected job boards. Leave empty to get the <b>latest remote jobs</b> from every board.",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "smart",
              "title",
              "anywhere"
            ],
            "type": "string",
            "description": "<b>Smart</b>: a one-word keyword (<code>python</code>) may appear anywhere, including the requirements; a phrase (<code>data engineer</code>) must be in the job title, tags or category — no unrelated jobs that merely mention both words. <b>Job title only</b> is the strictest.",
            "default": "smart"
          },
          "sources": {
            "title": "Job boards",
            "type": "array",
            "description": "Which remote job boards to search. Empty = all five. The same job posted on several boards is saved once.",
            "items": {
              "type": "string",
              "enum": [
                "himalayas",
                "weworkremotely",
                "remoteok",
                "jobicy",
                "arbeitnow"
              ],
              "enumTitles": [
                "Himalayas (100,000+ jobs, searchable)",
                "We Work Remotely (all current jobs)",
                "Remote OK (latest ~100 jobs)",
                "Jobicy (last 7 days, searchable)",
                "Arbeitnow (remote jobs, mostly Germany)"
              ]
            },
            "default": [
              "himalayas",
              "weworkremotely",
              "remoteok",
              "jobicy",
              "arbeitnow"
            ]
          },
          "maxItemsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many jobs to save for each keyword (newest first, after removing duplicates).",
            "default": 100
          },
          "candidateCountry": {
            "title": "I live in (country)",
            "type": "string",
            "description": "Only jobs that accept candidates from this country — e.g. <code>Germany</code>, <code>US</code>, <code>Brazil</code>, <code>Türkiye</code>. Regions are understood too: a job open to <i>EMEA</i> or <i>Europe</i> matches Germany. Jobs that don't say where candidates may live are skipped. Leave empty for all jobs."
          },
          "includeWorldwide": {
            "title": "Include jobs open worldwide",
            "type": "boolean",
            "description": "With a country set: also keep jobs that hire from anywhere in the world.",
            "default": true
          },
          "worldwideOnly": {
            "title": "Worldwide jobs only",
            "type": "boolean",
            "description": "Only jobs that hire from anywhere in the world.",
            "default": false
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Only jobs with these levels (from the board or the job title). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "entry",
                "mid",
                "senior",
                "manager",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Entry-level / junior",
                "Mid-level",
                "Senior / lead",
                "Manager",
                "Director / head of",
                "Executive / VP"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Only jobs with these employment types. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "partTime",
                "contract",
                "temporary",
                "internship",
                "volunteer"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract / freelance",
                "Temporary",
                "Internship",
                "Volunteer"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted in the last (days)",
            "minimum": 0,
            "type": "integer",
            "description": "E.g. <code>7</code>. Empty or 0 = no limit."
          },
          "onlyWithSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Skip jobs that don't show a salary range.",
            "default": false
          },
          "titleMustContain": {
            "title": "Job title must contain",
            "type": "array",
            "description": "Keep only jobs whose title contains at least one of these words or phrases (not case-sensitive), e.g. <code>engineer</code>, <code>python</code>.",
            "items": {
              "type": "string"
            }
          },
          "titleMustNotContain": {
            "title": "Job title must not contain",
            "type": "array",
            "description": "Skip jobs whose title contains any of these words, e.g. <code>sales</code>, <code>intern</code>.",
            "items": {
              "type": "string"
            }
          },
          "onlyNewJobs": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "For job alerts: remembers the jobs found by earlier runs with the same settings (in your own Apify storage) and saves only jobs you haven't seen yet. Schedule the Actor daily and get just the new remote jobs.",
            "default": false
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "Full job description as plain text. Same price; turn off for smaller exports.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The scraper connects directly first and switches to a new proxy IP only if a job board slows it down.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}