{
  "openapi": "3.0.1",
  "info": {
    "title": "Remote Jobs Scraper — 6 Boards, One Feed",
    "description": "Scrape and aggregate remote jobs from Arbeitnow, Jobicy, Himalayas, and RemoteOK in one normalized dataset. Search by role and export title, company, location, salary, skills, description, source, and application URL. No API key or proxy required.",
    "version": "1.0",
    "x-build-id": "W0QCa4eTxEjKnCfIy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/benthepythondev~remote-jobs-aggregator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-benthepythondev-remote-jobs-aggregator",
        "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/benthepythondev~remote-jobs-aggregator/runs": {
      "post": {
        "operationId": "runs-sync-benthepythondev-remote-jobs-aggregator",
        "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/benthepythondev~remote-jobs-aggregator/run-sync": {
      "post": {
        "operationId": "run-sync-benthepythondev-remote-jobs-aggregator",
        "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": {
          "searchKeywords": {
            "title": "Search keywords",
            "type": "string",
            "description": "All terms must appear somewhere in the job record. Examples: 'python developer', 'react', or 'marketing'. Leave empty for all available jobs.",
            "default": ""
          },
          "platforms": {
            "title": "Job boards",
            "uniqueItems": true,
            "type": "array",
            "description": "Choose the keyless sources to combine.",
            "items": {
              "type": "string",
              "enum": [
                "arbeitnow",
                "jobicy",
                "himalayas",
                "remoteok",
                "remotive",
                "workingnomads"
              ]
            },
            "default": [
              "arbeitnow",
              "jobicy",
              "himalayas",
              "remoteok",
              "remotive",
              "workingnomads"
            ]
          },
          "maxJobsPerPlatform": {
            "title": "Maximum jobs per board",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum records collected from each selected source before cross-board deduplication.",
            "default": 10
          },
          "maxTotalJobs": {
            "title": "Maximum output jobs",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum dataset rows across all boards. Use 0 for no total limit.",
            "default": 10
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs containing any of these terms in the title, company, location, description, or tags.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "companyKeywords": {
            "title": "Company keywords",
            "type": "array",
            "description": "Keep jobs whose company contains at least one supplied term.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locationKeywords": {
            "title": "Location keywords",
            "type": "array",
            "description": "Keep jobs whose location contains at least one term, such as Europe, Germany, or Worldwide.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobTypes": {
            "title": "Job types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep selected normalized employment types. Jobs without a matching type are excluded when this filter is active.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "freelance",
                "internship"
              ]
            },
            "default": []
          },
          "seniorityLevels": {
            "title": "Seniority levels",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep inferred levels based on title and tags. Unspecified roles are excluded when this filter is active.",
            "items": {
              "type": "string",
              "enum": [
                "entry",
                "senior",
                "lead",
                "manager",
                "executive",
                "unspecified"
              ]
            },
            "default": []
          },
          "salaryOnly": {
            "title": "Salary present only",
            "type": "boolean",
            "description": "Return only jobs where the source provides salary data.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep jobs posted within this many days. Use 0 to disable. Records without a parseable date are excluded when enabled.",
            "default": 0
          },
          "onlyNew": {
            "title": "Only new jobs",
            "type": "boolean",
            "description": "Persist a monitor baseline and return only unseen matching jobs on later runs. Designed for scheduled alerts.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "maxLength": 80,
            "type": "string",
            "description": "Optional stable name such as 'daily-python-europe'. Leave empty to derive one from the search and filters.",
            "default": ""
          },
          "firstRunMode": {
            "title": "First monitor run",
            "enum": [
              "emitAll",
              "seedOnly"
            ],
            "type": "string",
            "description": "Emit the bounded current baseline, or seed it silently so only later arrivals are returned.",
            "default": "emitAll"
          },
          "resetState": {
            "title": "Reset this monitor",
            "type": "boolean",
            "description": "Clear only the selected monitor scope before this run. Turn it off again after resetting.",
            "default": false
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Enable verbose source and row logging for troubleshooting.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}