{
  "openapi": "3.0.1",
  "info": {
    "title": "AI & ML Engineer Jobs Scraper: 10 Boards + Only New",
    "description": "$0.2/1K jobs | AI and ML engineer jobs from 10 boards in one run, including LinkedIn, Foorilla, Hacker News, Y Combinator, Built In and Remote OK, each with the full description. Default search on stored boards only looks at AI and ML titles. No login or API key required.",
    "version": "0.1",
    "x-build-id": "DwA8vsELjpCmz7U4o"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nomad-agent~ml-ai-dev-bundle/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nomad-agent-ml-ai-dev-bundle",
        "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/nomad-agent~ml-ai-dev-bundle/runs": {
      "post": {
        "operationId": "runs-sync-nomad-agent-ml-ai-dev-bundle",
        "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/nomad-agent~ml-ai-dev-bundle/run-sync": {
      "post": {
        "operationId": "run-sync-nomad-agent-ml-ai-dev-bundle",
        "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",
        "required": [
          "schemaVersion"
        ],
        "properties": {
          "queries": {
            "title": "Search queries",
            "maxItems": 20,
            "type": "array",
            "description": "Match postings whose title or description contains every word of a query, as whole words, ignoring case. A posting matches when any query matches. Empty: no filter. Default: queries that find AI and ML engineer roles; replace them with your own, or clear the list to search every posting. With the defaults, a stored posting also needs one of those terms in its job title. Your custom queries match against both title and description.",
            "default": [
              "machine learning",
              "deep learning",
              "artificial intelligence",
              "generative ai",
              "computer vision",
              "natural language processing",
              "reinforcement learning",
              "ml engineer",
              "data scientist",
              "data science",
              "applied scientist",
              "research scientist",
              "mlops",
              "llm",
              "nlp",
              "genai",
              "ai",
              "ml",
              "ia"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "maxItems": 20,
            "type": "array",
            "description": "City, region, country name or two-letter ISO country code. Countries match by name, code or native name; EU and Europe expand to their countries. Empty: no filter.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locationTypes": {
            "title": "Work arrangement",
            "type": "array",
            "description": "remote, hybrid or onsite. Postings whose arrangement the source does not state are left out. Empty: no filter.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            },
            "default": []
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Full-time, Part-time, Contract or Internship. Postings whose type the source does not state are left out. Empty: no filter.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship"
              ]
            },
            "default": []
          },
          "postedWithin": {
            "title": "Posted within",
            "pattern": "^(?:any|(?:[1-9][0-9]{0,4}|[1-7][0-9]{5}|8[0-6][0-9]{4}|87[0-5][0-9]{3}|876000)h|(?:[1-9][0-9]{0,3}|[12][0-9]{4}|3[0-5][0-9]{3}|36[0-4][0-9]{2}|36500)d|(?:[1-9][0-9]{0,2}|[1-4][0-9]{3}|5[01][0-9]{2}|520[0-9]|521[0-4])w|(?:[1-9][0-9]{0,2}|1[01][0-9]{2}|120[0-9]|121[0-6])m)(?![\\s\\S])",
            "type": "string",
            "description": "Positive duration in hours, days, weeks, or 30-day months, at most 36500 days; any disables the filter. Uses the first inventory admission date when the source has no posting date.",
            "default": "any"
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum returned jobs. Zero, or anything above 200, means 200.",
            "default": 200
          },
          "maxItemsPerSource": {
            "title": "Maximum jobs per source",
            "minimum": 0,
            "type": "integer",
            "description": "Most postings any one source contributes, at most 200. maxItems then keeps the newest postings across sources.",
            "default": 50
          },
          "dedupe": {
            "title": "Repeat-delivery suppression",
            "required": [
              "enabled",
              "key"
            ],
            "type": "object",
            "description": "Suppress confirmed repeat deliveries for the same Apify user and search.",
            "properties": {
              "enabled": {
                "type": "boolean",
                "title": "Enabled",
                "description": "Use the tenant-isolated delivery ledger."
              },
              "key": {
                "type": "string",
                "maxLength": 256,
                "title": "Scope key",
                "description": "Optional stable alert or profile key. Empty derives the scope from this search."
              }
            },
            "default": {
              "enabled": true,
              "key": ""
            },
            "additionalProperties": false
          },
          "schemaVersion": {
            "title": "Input format",
            "enum": [
              "nomad-agent-simple-inventory-search-v2",
              "nomad-agent-simple-inventory-search-v1"
            ],
            "type": "string",
            "description": "Version marker for database-only simple job search. Version 1 inputs remain valid.",
            "default": "nomad-agent-simple-inventory-search-v2"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}