Oracle Fusion Recruiting and Taleo Jobs API

Read Oracle job postings from any Oracle careers board as structured JSON. One run covers both Oracle recruiting products: Oracle Fusion Recruiting, sold today as Oracle Recruiting Cloud, and legacy Taleo. Give it a company name rather than an opaque tenant code and it resolves that name to the boards the company actually runs, filters out the backup and reference-only sites, then returns full job records with pay ranges, employer-published skills and coordinates, and descriptions in HTML, plain text and Markdown.

MEDIAN LAGon demand
PARAMETERS16
TOTAL USERS3
MONTHLY ACTIVE2
TOTAL RUNS21
RATINGno ratings yet
LAST MODIFIED2026-08-25
PUBLISHED2026-08

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
companies string[] no Company names or website domains to resolve, for example 'Oracle', 'JPMorgan Chase' or 'alleghenycollege.edu'. Each is resolved to the Oracle boards that company runs, so you never have to find a tenant code first, and one company can produce several rows.
startUrls string[] no Oracle Fusion Recruiting or Taleo careers URLs to read directly, skipping resolution. All three Fusion host shapes work, regional, regionless and named, as do taleo.net career sections.
discoverAll boolean no false Enumerate Oracle careers boards in bulk from a public web index instead of resolving a named list. This is the mode that builds an install-base map.
discoverOnly boolean no false Return one row per career site and skip job scraping entirely. Run it first to see which boards are alive before spending anything reading them.
product enum no both both · fusion · taleo. Narrows the run to one Oracle recruiting product. Both land in the same schema, so you only need this when you want one of them.
searchText string no Keyword filter, run through the board's own search exactly as the search box on the careers page does. Empty returns every job.
locationFilter string no Location filter, run through the board's own location search, for example 'United States', 'London' or 'Bengaluru'.
postedAfter string no ISO date cutoff (YYYY-MM-DD). Only jobs posted on or after this date are returned. Most accurate with includeDetails on.
maxJobsPerSite integer no 0 Soft cap on jobs returned per career site. 0 means every job. — drives your bill
maxSites integer no 25 Cap on career sites processed in one run, 1 to 2000. The main cost control in bulk discovery. — drives your bill
includeDetails boolean no true Opens each job's detail record for the full description, skills, coordinates, exact dates and apply URL. Off gives a fast list-only pass at up to 200 jobs per request.
descriptionFormat enum no both both · html · text · markdown. Markdown keeps the employer's headings and bullet lists intact and is the format to pick when the output feeds an AI agent.
detailConcurrency integer no 5 Job-detail requests running in parallel, 1 to 10. List pages are always paced and rate limits are backed off politely.
verifyLive boolean no true Check each site's live job count before returning it. This is what filters out the backup and reference-only boards Oracle tenants publish alongside the real ones.
includeInactive boolean no false Also return the backup and reference-only sites. Useful for auditing coverage, off by default so you are billed only for confirmed live boards.
crawlDepth integer no 1 How many public index snapshots to combine when resolving companies or discovering boards, 1 to 4. Most runs need 1.

Worked examples

Basic — a company name, no tenant code needed
{
  "companies": ["Oracle"],
  "maxJobsPerSite": 25
}
Taleo only — the older boards, restricted to one product
{
  "companies": ["alleghenycollege.edu"],
  "product": "taleo"
}
Markdown for an AI agent — descriptions the model can read cheaply
{
  "companies": ["JPMorgan Chase"],
  "descriptionFormat": "markdown",
  "maxJobsPerSite": 50
}
Map the Oracle ATS market — career sites only, no job scraping
{
  "discoverAll": true,
  "discoverOnly": true,
  "maxSites": 500
}
New postings only — a board you already have, with a date cutoff
{
  "startUrls": [{ "url": "https://eeho.fa.us2.oraclecloud.com/hcmUI/CandidateExperience/en/sites/jobsearch" }],
  "postedAfter": "2026-08-01",
  "includeDetails": true
}
POWER-USER TIP
Run discovery before you scrape — Oracle tenants publish backup and reference-only boards next to the real ones. Oracle's own tenant has six career sites, five of them placeholders with names like 'FOR REFERENCE ONLY' and 'Baseline DO NOT UPDATE'; JPMorgan Chase publishes seven. Turn on discoverOnly first, keep the boards with a live job count, then scrape only those in a second run.
POWER-USER TIP
Taleo boards go quiet without warning — Roughly one in five taleo.net hostnames still serves a public job board; the rest have migrated to Oracle Recruiting Cloud, moved behind a candidate login, or stopped resolving. A retired board comes back as a labelled error row rather than a failed run, and error rows are never charged, so a dead board costs nothing.
POWER-USER TIP
Skills and coordinates are the employer's own values — Oracle Fusion publishes the requisition's skill list and the primary location's latitude and longitude on the posting itself, and both pass through unchanged. Nothing is inferred, so an empty skills array means the employer left it blank rather than that a model failed to guess.

Coverage

2
Oracle products — Oracle Fusion Recruiting (Recruiting Cloud) · Taleo
55
fields per job — ids locations dates salary skills coordinates description +
3
description formats — html · plain text · markdown
3
Fusion host shapes — regional · regionless · named

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~oracle-taleo-jobs-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companies":["Oracle"],"maxJobsPerSite":25,"descriptionFormat":"markdown"}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/oracle-taleo-jobs-api").call(
    run_input={
        "companies": ["Oracle"],
        "maxJobsPerSite": 25,
        "descriptionFormat": "markdown",
    }
)
for job in client.dataset(run.default_dataset_id).iterate_items():
    print(job.get("title"), "-", job.get("primaryLocation"), job.get("skills"))

What people use it for

Alternatives