{
  "openapi": "3.0.1",
  "info": {
    "title": "Oracle Fusion Recruiting and Taleo Jobs API",
    "description": "Pull Oracle job postings from any Oracle Fusion Recruiting (Cloud CX) or legacy Taleo careers board as structured JSON. Company names or careers URLs in, full job records out: salary, skills, coordinates, and descriptions in HTML, plain text, and Markdown.",
    "version": "0.0",
    "x-build-id": "3d8uadkf22O5mh67c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/johnvc~oracle-taleo-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-johnvc-oracle-taleo-jobs-api",
        "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/johnvc~oracle-taleo-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-johnvc-oracle-taleo-jobs-api",
        "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/johnvc~oracle-taleo-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-johnvc-oracle-taleo-jobs-api",
        "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": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Provide company names or website domains, for example 'Oracle', 'JPMorgan Chase', or 'alleghenycollege.edu'. Each one is resolved to the Oracle careers boards that company runs, including boards hosted on opaque tenant codes, and every live career site it operates is returned. Leave empty if you are supplying careers URLs instead.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Oracle careers URLs",
            "type": "array",
            "description": "Provide one or more Oracle careers URLs to scrape directly, skipping company resolution. All three Oracle Fusion Recruiting host shapes work (https://eeho.fa.us2.oraclecloud.com/..., https://jpmc.fa.oraclecloud.com/..., https://somecollege-abc123.fa.ocs.oraclecloud.com/...), as do Oracle Taleo boards (https://company.taleo.net/careersection/ex/jobsearch.ftl). A career site slug in the URL is honoured when the board confirms it.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "discoverAll": {
            "title": "Discover all Oracle careers boards",
            "type": "boolean",
            "description": "Enumerate Oracle careers boards in bulk from a public web index instead of resolving a named list. Use 'Maximum career sites' to control how many are returned and how long the run takes.",
            "default": false
          },
          "discoverOnly": {
            "title": "Return career sites only, no jobs",
            "type": "boolean",
            "description": "Return one row per career site (tenant, site number, employer name, careers URL, direct jobs API URL, open-job count) and skip job scraping entirely. Use this to build a directory of Oracle careers boards, then scrape the ones you care about in a later run.",
            "default": false
          },
          "product": {
            "title": "Oracle product",
            "enum": [
              "both",
              "fusion",
              "taleo"
            ],
            "type": "string",
            "description": "Limit the run to one Oracle recruiting product. 'fusion' covers Oracle Fusion Recruiting (Cloud CX) boards, 'taleo' covers legacy Oracle Taleo boards, and 'both' (default) covers either. Taleo boards are older and many have been retired by their owners, so restrict to 'fusion' if you want only high-yield targets.",
            "default": "both"
          },
          "searchText": {
            "title": "Search keywords",
            "type": "string",
            "description": "Filter jobs by keyword using the careers board's own search, the same way the search box on the careers page does. Leave empty to return every job on each site."
          },
          "locationFilter": {
            "title": "Location filter",
            "type": "string",
            "description": "Filter jobs by location using the careers board's own location search, for example 'United States', 'London', or 'Bengaluru'. Leave empty to return jobs in every location."
          },
          "postedAfter": {
            "title": "Posted after (YYYY-MM-DD)",
            "type": "string",
            "description": "Return only jobs posted on or after this ISO date, for example 2026-07-01. Most accurate with job details enabled, because the exact posting timestamp lives on the detail record. Leave empty for no date filter."
          },
          "maxJobsPerSite": {
            "title": "Max jobs per career site",
            "minimum": 0,
            "type": "integer",
            "description": "Set a soft cap on the jobs returned from each career site. Use 0 for every job on the site. Keep this small on test runs: some Oracle boards carry thousands of open roles.",
            "default": 0
          },
          "maxSites": {
            "title": "Maximum career sites",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Set an upper bound on how many career sites a single run processes. This is the main cost and runtime control in bulk discovery mode, where one run can otherwise reach thousands of boards.",
            "default": 25
          },
          "includeDetails": {
            "title": "Fetch full job details",
            "type": "boolean",
            "description": "When true (default), open each job's detail record to add the full description, exact posting dates, category, employer skills, and geographic coordinates. When false, return only the fast list fields (title, location, dates, requisition ID) at up to 200 jobs per request, which is much faster and cheaper.",
            "default": true
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "both",
              "html",
              "text",
              "markdown"
            ],
            "type": "string",
            "description": "Choose the format for the job description fields. 'html' keeps the original rich text, 'text' returns clean plain text, 'markdown' returns LLM-ready Markdown with headings and lists preserved, and 'both' (default) returns all three. Markdown is the format to pick when the output feeds an AI agent.",
            "default": "both"
          },
          "detailConcurrency": {
            "title": "Detail request concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Set how many job-detail requests run in parallel, from 1 to 10. The actor always paces its requests and backs off politely on rate limits, so raise this only for very large boards.",
            "default": 5
          },
          "verifyLive": {
            "title": "Verify career sites are live",
            "type": "boolean",
            "description": "Check each career site against its jobs endpoint and record the current open-job count before returning it. Leave this on for clean data: it is what filters out the backup and reference-only sites that Oracle tenants publish alongside their real ones.",
            "default": true
          },
          "includeInactive": {
            "title": "Include inactive and backup sites",
            "type": "boolean",
            "description": "Also return career sites that are marked inactive or that look like backups, copies, or reference-only placeholders. Off by default because these are decoys rather than real job boards. Turn it on only when auditing a tenant's full site directory.",
            "default": false
          },
          "crawlDepth": {
            "title": "Index depth",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Set how many historical snapshots of the public web index to combine when resolving companies or discovering boards in bulk. Higher values find more boards, including ones that have since gone quiet, at the cost of a longer run. Most runs need 1.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}