{
  "openapi": "3.0.1",
  "info": {
    "title": "Remote Jobs Aggregator - Himalayas, RemoteOK, WWR & more",
    "description": "Aggregate remote jobs from Himalayas, Remotive, RemoteOK, Arbeitnow and We Work Remotely into one clean, deduplicated dataset. Filter by keyword, category, region, USD salary and date. Pay only per job saved.",
    "version": "0.0",
    "x-build-id": "aH1fi7UTdPC9eljUM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed-data-tools~remote-jobs-aggregator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed-data-tools-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/ahmed-data-tools~remote-jobs-aggregator/runs": {
      "post": {
        "operationId": "runs-sync-ahmed-data-tools-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/ahmed-data-tools~remote-jobs-aggregator/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed-data-tools-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": {
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Job boards to collect from. Leave all selected to aggregate every source.",
            "items": {
              "type": "string",
              "enum": [
                "himalayas",
                "remotive",
                "remoteok",
                "arbeitnow",
                "weworkremotely"
              ],
              "enumTitles": [
                "Himalayas",
                "Remotive",
                "RemoteOK",
                "Arbeitnow",
                "We Work Remotely"
              ]
            },
            "default": [
              "himalayas",
              "remotive",
              "remoteok",
              "arbeitnow",
              "weworkremotely"
            ]
          },
          "keywords": {
            "title": "Keywords (match any)",
            "type": "array",
            "description": "Keep jobs whose title, company, category or tags contain ANY of these words (case-insensitive substring). Leave empty to keep all jobs.",
            "default": [
              "engineer",
              "developer",
              "marketing"
            ],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title, company, category or tags contain any of these words (e.g. \"senior\", \"intern\", \"crypto\").",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Keep only jobs whose category or tags contain any of these values, e.g. \"Software Development\", \"Design\", \"Marketing\", \"DevOps\", \"Customer Support\". Leave empty for all categories.",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "title": "Allowed regions / countries",
            "type": "array",
            "description": "Keep only jobs whose location restriction matches any of these, e.g. \"Worldwide\", \"USA\", \"Europe\", \"UK\", \"Canada\", \"LATAM\", \"APAC\", \"Germany\" or any country/city name. \"Worldwide\" also keeps jobs with no stated location restriction. Leave empty for no region filter.",
            "items": {
              "type": "string"
            }
          },
          "minSalaryUsd": {
            "title": "Minimum annual salary (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs with a known annual USD salary whose maximum (or minimum, if no maximum) is at least this amount. Jobs without a parsable USD salary are excluded when this is set."
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only jobs posted in the last N days. Leave empty for no date limit.",
            "default": 30
          },
          "dedupe": {
            "title": "Remove cross-posted duplicates",
            "type": "boolean",
            "description": "Remove duplicates of the same job posted on several boards (matched by normalized company + title). The first occurrence is kept.",
            "default": true
          },
          "arbeitnowRemoteOnly": {
            "title": "Arbeitnow: remote jobs only",
            "type": "boolean",
            "description": "Arbeitnow also lists on-site jobs (mostly in Germany). When enabled, only jobs Arbeitnow flags as remote are returned.",
            "default": true
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of jobs to save (each saved job is one billable result). Leave empty for no limit.",
            "default": 150
          },
          "maxPagesPerSource": {
            "title": "Max pages per paginated source",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Upper bound on API pages requested from paginated sources (Himalayas: 20 jobs/page, Arbeitnow: ~100-300 jobs/page). Pagination also stops automatically once jobs get older than \"Posted within\".",
            "default": 15
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}