{
  "openapi": "3.0.1",
  "info": {
    "title": "Remote Jobs Aggregator",
    "description": "Aggregate public remote jobs from RemoteOK, Remotive, Himalayas, Jobicy, Arbeitnow, Working Nomads, and We Work Remotely. Use for recruiters sourcing remote roles. For LinkedIn or Indeed, use sibling scrapers. Returns title, company, salary, applyUrl, source. $0.005/job.",
    "version": "0.1",
    "x-build-id": "XSIhEXb9xPWd2ZG1e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~remote-jobs-aggregator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-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/khadinakbar~remote-jobs-aggregator/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-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/khadinakbar~remote-jobs-aggregator/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-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": {
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Optional keyword filter applied to title, company, tags, location, and snippet. Example: 'python developer'. Every word must match. Leave empty for the latest listings. This is not a LinkedIn Jobs URL."
          },
          "sources": {
            "title": "Job boards",
            "type": "array",
            "description": "Public remote-job boards to query. Default is all seven. Omit the field to use every board. An empty array is invalid. These are specialty remote boards, not LinkedIn or Indeed.",
            "items": {
              "type": "string",
              "enum": [
                "remoteok",
                "remotive",
                "himalayas",
                "jobicy",
                "arbeitnow",
                "workingnomads",
                "weworkremotely"
              ],
              "enumTitles": [
                "RemoteOK",
                "Remotive",
                "Himalayas",
                "Jobicy",
                "Arbeitnow (remote rows)",
                "Working Nomads",
                "We Work Remotely"
              ]
            },
            "default": [
              "remoteok",
              "remotive",
              "himalayas",
              "jobicy",
              "arbeitnow",
              "workingnomads",
              "weworkremotely"
            ]
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on unique dataset rows for this run. Default 25 keeps MCP calls cheap. Each saved job is one remote-job event. This is a cost ceiling, not pagination into a previous run.",
            "default": 25
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep jobs whose posted date is within this many days. 0 (default) disables the filter. Rows without a parseable date are dropped when this filter is on. This is not a board-native freshness SLA.",
            "default": 0
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Keep normalized employment types such as full-time or contract. Empty means every type. Jobs without a type are dropped when this filter is set. This is not visa or salary filtering.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "freelance",
                "internship"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Freelance",
                "Internship"
              ]
            },
            "default": []
          },
          "locationKeywords": {
            "title": "Location keywords",
            "type": "array",
            "description": "Keep jobs whose location mentions at least one term, such as Europe, USA, or Germany. Worldwide/remote locations always pass. Leave empty for no geo filter. This is eligibility text from the board, not a work-authorization check.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs containing any of these terms in title, company, tags, location, or snippet. Example: 'unpaid'. Excluded rows are never billed. This is a client-side filter, not a board search operator.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "When off (default), each row keeps a 500-character descriptionSnippet for agent token budgets. Turn on to add descriptionText up to 4,000 characters. Boards that omit descriptions still return the other fields.",
            "default": false
          },
          "dedupe": {
            "title": "Deduplicate across boards",
            "type": "boolean",
            "description": "When on (default), the same title+company on several boards becomes one row. The richer copy wins and the others appear in alsoFoundOn. Turn off to emit every board copy separately. Duplicate rows are never billed twice when this is on.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}