Oracle Recruiting Jobs API
Pricing
from $1.40 / 1,000 jobs
Oracle Recruiting Jobs API
Get open jobs from any Oracle Recruiting Cloud (Fusion HCM) career site by URL: title, location, job family, posted date, pay text and the full cleaned description. Filter by keyword and location. Contact names and emails are never returned. Independent tool, not affiliated with Oracle.
Pricing
from $1.40 / 1,000 jobs
Rating
0.0
(0)
Developer
Don Mangu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Use this Oracle Recruiting Cloud jobs API to get the open jobs of any Oracle Recruiting Cloud (Fusion HCM) career site for $2.00 per 1,000 jobs, with no login, no API key and no proxy.
Paste the address of a career site, such as https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs. Each result is one open job: title, location, job family, posted date, workplace type, pay text when the employer shows it, and the full job description as clean text and as HTML. Add a keyword or a location to narrow the list. The Actor reads the public job list that the career site loads in your browser, newest job first. Names and emails of recruiters and hiring managers are never returned. The Actor removes email addresses and phone numbers from the job text.
Independent tool, not affiliated with Oracle. An independent developer built this Actor. It is not endorsed by or operated by Oracle or by any employer.
Sample output
One row per job. This is a real row from a run on 7 October 2026 on the career site of jpmc.fa.oraclecloud.com, the first of 25 rows. The description is shortened here to keep this page short:
{"tenantHost": "jpmc.fa.oraclecloud.com","siteNumber": "CX_1001","jobId": "210707696","title": "Equity Derivatives Trade Support - Analyst/Associate","jobUrl": "https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/job/210707696","postedDate": "2026-10-07","postingEndDate": null,"primaryLocation": "Kwun Tong, Kowloon, Hong Kong","country": "HK","secondaryLocations": [],"latitude": 22.31537,"longitude": 114.2236,"workplaceType": null,"jobFamily": "Trading Services","jobFunction": "Operations","category": "Trading Services","organization": null,"businessUnit": "Commercial & Investment Bank","department": null,"legalEmployer": null,"workerType": null,"contractType": null,"jobSchedule": "Full time","jobShift": null,"jobType": null,"managerLevel": null,"studyLevel": null,"numberOfOpenings": null,"salaryText": null,"hotJob": false,"trendingJob": false,"shortDescription": "Support equity derivatives trading and drive operational excellence in a collaborative, fast-paced middle office team.","description": "Are you ready to make an impact in Equity Derivatives Operations? Join a team that puts users first and drives growth through technology and collaboration. You’ll work alongside talented colleagues, develop your expertise, and help deliver an unparalleled client experience. Experience career growth, skill development, and the op ...","descriptionHtml": "<p>Are you ready to make an impact in Equity Derivatives Operations? Join a team that puts users first and drives growth through technology and collaboration. You’ll work alongside talented colleagues, develop your exper ...","totalMatchingJobs": 7398,"retrievedAt": "2026-10-07T14:38:23.702Z","source": "jpmc.fa.oraclecloud.com: Public career site API (Oracle Recruiting Cloud candidate experience)","resultStatus": "ok","message": null}
The site held 7,398 open jobs when this row was read. totalMatchingJobs shows that number on every row.
How to get Oracle Recruiting Cloud jobs with this Actor
- Click Try for free. No API key is needed.
- Open the career site of a company in your browser and click one job. Copy the address from the browser into Career site URLs. The address ends with a path like /hcmUI/CandidateExperience/en/sites/CX_1001/job/210668641. The Actor reads the host and the site code from it.
- Add a Keyword or a Location if you want fewer jobs.
- Set Max items. The default is 100. The first run is prefilled with 25.
- Click Start, open the Jobs view, and export as JSON, CSV or Excel.
Typical uses:
- Build a database of the open jobs of one or many employers and refresh it every day.
- Watch a competitor for new roles in a job family or a country.
- Feed a job board, a salary study or an AI agent with clean rows instead of HTML pages.
- Check which employers show pay text and in which places.
- Count open jobs by family, country or posting date with the postedDate and jobFamily fields.
What you get
| Field | Meaning |
|---|---|
| tenantHost, siteNumber, jobId | Which career site and which job. The job number is the last part of the job link |
| title, jobUrl | Job title and a link to the job page on the career site |
| postedDate, postingEndDate | Dates in YYYY-MM-DD. The end date is set only when the employer set one |
| primaryLocation, country, secondaryLocations | Main location as the site writes it, a two letter country code, and the other locations of the same job |
| latitude, longitude | Map position of the primary location. Only with Include description on |
| workplaceType, jobSchedule, jobShift, jobType, workerType, contractType | On site, hybrid or remote, and the schedule fields. Many employers leave some of them empty, and then the value is null |
| jobFamily, jobFunction, category | How the employer groups the job. Category needs Include description on |
| organization, businessUnit, department, legalEmployer, managerLevel, studyLevel, numberOfOpenings | Further fields when the employer sets them |
| salaryText | Pay text from the job details, as the employer wrote it. Only with Include description on, and only when the employer shows pay |
| hotJob, trendingJob | Flags that the site sets |
| shortDescription | The one or two sentences that the site shows in its job list |
| description, descriptionHtml | The full job text without HTML, and as HTML with styles, scripts and contact links removed. Emails and phone numbers are replaced by a note. Only with Include description on |
| totalMatchingJobs | Jobs on the site that match your keyword, before the location filter |
| retrievedAt, source | When the Actor read the job and where it comes from |
| resultStatus, message | ok for a job. A status row explains a site that gave no jobs |
The Actor adds no data from other sources. Every value comes from the career site. A field that the employer left empty is null.
Pricing
Pay per event: $2.00 per 1,000 jobs on the Free plan, with lower prices on Bronze, Silver and Gold plans. The start of a run costs $0.00005. A row costs the same with and without the description. A career site that gives no jobs, a wrong address or a keyword with no match returns one status row and counts as one result, because the lookup was done. A run that cannot read the site is not charged.
Worked example: the prefill run read the 25 newest jobs of jpmc.fa.oraclecloud.com with their descriptions on 7 October 2026. It returned 25 rows and costs 25 x $0.002 = $0.05 on the Free plan. The same site with 7,398 open jobs costs about 7,398 x $0.002 = $14.80 for a full copy. With descriptions on, the speed of the 25 row run (about 0.4 seconds per row) gives about 49 minutes for that copy. This time is an estimate and was not measured on the full site. Use Max items to set a ceiling. The run also stops at the maximum charge that you set in the Apify Console.
Speed
The Actor starts at most one request every 0.3 seconds, about 3 per second, and never runs more than 2 at the same time. With descriptions on, a run reads one page per job: the real run with 25 rows took 10 seconds. With Include description off, the list comes in pages of 100 jobs: a real run with 300 rows took 6 seconds. Use the second way when you only need the list fields.
Input examples
The newest 25 jobs of one career site with descriptions (the prefill):
{"careerSiteUrls": ["https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs"],"maxItems": 25}
Data engineer jobs in London, with descriptions:
{"careerSiteUrls": ["https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs"],"keyword": "data engineer","location": "London","maxItems": 10}
The 300 newest jobs, list fields only, which is much faster:
{"careerSiteUrls": ["https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs"],"maxItems": 300,"includeDescription": false}
Two career sites in one run:
{"careerSiteUrls": ["https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs","https://eeho.fa.us2.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs"],"maxItems": 200}
The Actor reads the sites one after the other. Max items counts the rows of all sites together.
Output example with a keyword and a location
The keyword input above returned 10 rows on 7 October 2026. The site had 1,982 jobs for the keyword. The Actor read the list from the newest job and kept the rows with London in a location. This is the first row, shortened:
{"tenantHost": "jpmc.fa.oraclecloud.com","siteNumber": "CX_1001","jobId": "210797656","title": "Senior Manager of Software Engineering -FI Electronic Trading Real-Time Position & Risk TechLead","jobUrl": "https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/job/210797656","postedDate": "2026-10-07","postingEndDate": null,"primaryLocation": "LONDON, United Kingdom","country": "GB","secondaryLocations": [],"latitude": 51.50642,"longitude": -0.12721,"workplaceType": null,"jobFamily": "Software Engineering","jobFunction": "Technology","category": "Software Engineering","organization": null,"businessUnit": "Commercial & Investment Bank","department": null,"legalEmployer": null,"workerType": null,"contractType": null,"jobSchedule": "Full time","jobShift": "Day","jobType": null,"managerLevel": null,"studyLevel": null,"numberOfOpenings": null,"salaryText": null,"hotJob": false,"trendingJob": false,"shortDescription": "Build and lead real-time position and risk technology that updates as trades happen, powering electronic trading decisions","description": "Join a front-office engineering team that sits directly in the electronic trading execution path, where your work impacts decisions in real time. You will help shape a low-latency, event-driven platfo ...","descriptionHtml": "<p><br> Join a front-office engineering team that sits directly in the electronic trading execution path, where your wor ...","totalMatchingJobs": 1982,"retrievedAt": "2026-10-07T14:38:37.303Z","source": "jpmc.fa.oraclecloud.com: Public career site API (Oracle Recruiting Cloud candidate experience)","resultStatus": "ok","message": null}
Output example with pay text
Some employers show pay in the job details. 5 of the 25 jobs in the prefill run had pay text. This is one of them, shortened:
{"tenantHost": "jpmc.fa.oraclecloud.com","siteNumber": "CX_1001","jobId": "210755489","title": "Luxury Travel Designer, Chase Travel","jobUrl": "https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/job/210755489","postedDate": "2026-10-07","postingEndDate": "2026-11-13","primaryLocation": "United States","country": "US","secondaryLocations": ["MD, United States","NY, United States","NJ, United States","CT, United States","RI, United States","Washington, DC, United States","IL, United States","MN, United States","CO, United States","NV, United States","WA, United States","CA, United States","HI, United States"],"latitude": 39.82844,"longitude": -98.57939,"workplaceType": null,"jobFamily": "Travel Management","jobFunction": "Client Management","category": "Travel Management","organization": null,"businessUnit": "Consumer & Community Banking","department": null,"legalEmployer": null,"workerType": null,"contractType": null,"jobSchedule": "Full time","jobShift": null,"jobType": null,"managerLevel": null,"studyLevel": null,"numberOfOpenings": null,"salaryText": "MD $60,800.00-$105,000.00; NY $62,353.20-$105,000.00; NJ $54,200.00-$105,000.00; CT $60,800.00-$105,000.00; RI $60,800.00-$92,000.00; Washington,DC $68,400.00-$ ...","hotJob": false,"trendingJob": false,"shortDescription": "We are seeking a dynamic and experienced Travel Designer to join our elite team!","description": "We are seeking a dynamic and experienced Travel Designer to join our elite team! The ideal candidate will have a passion for luxury travel and a keen understanding of the needs and expectations of ult ...","descriptionHtml": "<p>We are seeking a dynamic and experienced Travel Designer to join our elite team! The ideal candidate will have a pass ...","totalMatchingJobs": 7398,"retrievedAt": "2026-10-07T14:38:23.702Z","source": "jpmc.fa.oraclecloud.com: Public career site API (Oracle Recruiting Cloud candidate experience)","resultStatus": "ok","message": null}
Output example without a match
A keyword that no job matches returns one status row. This is a real row from the keyword zzqqxxyy on 7 October 2026. It counts as one result:
{"tenantHost": "jpmc.fa.oraclecloud.com","siteNumber": "CX_1001","jobId": null,"title": null,"jobUrl": null,"postedDate": null,"postingEndDate": null,"primaryLocation": null,"country": null,"secondaryLocations": null,"latitude": null,"longitude": null,"workplaceType": null,"jobFamily": null,"jobFunction": null,"category": null,"organization": null,"businessUnit": null,"department": null,"legalEmployer": null,"workerType": null,"contractType": null,"jobSchedule": null,"jobShift": null,"jobType": null,"managerLevel": null,"studyLevel": null,"numberOfOpenings": null,"salaryText": null,"hotJob": null,"trendingJob": null,"shortDescription": null,"description": null,"descriptionHtml": null,"totalMatchingJobs": 0,"retrievedAt": "2026-10-07T14:39:03.800Z","source": "jpmc.fa.oraclecloud.com: Public career site API (Oracle Recruiting Cloud candidate experience)","resultStatus": "no_jobs_found","message": "Site CX_1001 on jpmc.fa.oraclecloud.com has no job that matches the keyword \"zzqqxxyy\"."}
Run it every day
Set Only new since the last run (onlyNew) to true and the Actor returns only jobs that it has not delivered before. Without it the Actor keeps no memory between runs: every run returns the newest jobs again, and you compare jobId with the rows of the day before yourself.
- Fill in the input, set Only new since the last run to true, and give the monitor a Monitor name, for example
jpmc-london. Click Save as a new task. - In Apify Console, open Schedules, click Create new, pick your task, and enter a cron expression for once a day, for example
0 6 * * *. - The first run returns the jobs it finds, up to Max items, and these become the baseline. Each later run returns only jobs that were not delivered before.
{"careerSiteUrls": ["https://jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/jobs"],"location": "London","onlyNew": true,"monitorName": "jpmc-london","maxItems": 500}
A job is identified by its career site and its job number (jobId). Max items counts delivered jobs only, so jobs that were delivered before do not use it up. Jobs that Max items cut off are not remembered and arrive on a later run, newest first. To take every open job as the baseline in one run, set Max items to at least the number that totalMatchingJobs shows. A job whose description cannot be read is skipped, not charged and not remembered, so the next run tries it again. A status row, such as a site that gives no jobs, is delivered once for each site and then remembered.
The memory lives in your own key-value store named oracle-jobs-monitor-<monitorName>. It holds only career site and job numbers, no job text. Use one monitor name per saved task. A task with another keyword or location keeps its own memory even if the name is the same. The list of career sites is not part of the memory key, so you can add a site to a saved task and only the jobs of the new site arrive as new. The Actor saves the memory after each batch of rows it delivers. Jobs that are skipped as already delivered are not charged and their descriptions are not read.
Cost example, from the prices above ($0.002 per job, $0.00005 per run start): if 40 new jobs appear on a day, that run costs 40 x $0.002 + $0.00005 = $0.08005, and 30 such days cost 30 x $0.08005 = $2.4015. A day with no new jobs costs only the $0.00005 start. The first run is charged for every job it returns: the 7,398 jobs of the site above cost 7,398 x $0.002 + $0.00005 = $14.79605. Every daily run reads the whole job list of the site to find the new jobs, 100 jobs per request, so a large site takes longer than the new jobs alone would suggest.
Bulk lists
For many career sites, give the Actor a Dataset or a file instead of typing every address. Use Dataset with the list to pick an Apify Dataset and Field in the dataset to name the field that holds each address (empty means the first text field). Or paste a web address into List file URL: a .txt file, a .csv file (the first column is read) or a .json array, up to 10 MB. A header row is skipped and duplicate entries are removed. The entries are added to Career site URLs if you typed any.
The limit of 20 career sites per run applies to the merged list, and the price per job is the same as for typed addresses.
FAQ
Where does the data come from? From the public job list of the career site itself. An Oracle Recruiting Cloud career site loads its jobs from a public address on its own host, without a login. The Actor calls the same addresses with a declared User-Agent. It uses no third-party site.
Is it legal to use? The job list is public and needs no login, no cookie and no key. The Actor reads /robots.txt of the host first. No file counts as no rules. A page that the host's web firewall returns instead of the file (jpmc.fa.oraclecloud.com answered HTTP 403 on 7 October 2026) also counts as no rules, because RFC 9309 says a crawler may go on when the file is unavailable. A Disallow rule for the job list stops the run and nothing is charged. We found no published terms of use for this job list address (checked on 7 October 2026). The terms of the employer's career site still apply to you. Check them and the law in your country before you reuse job text, especially for a public job board.
Does it return personal data? No contact data. The source can carry the name and email of a recruiter or hiring manager in some jobs. The Actor never reads those fields. It also replaces email addresses and phone numbers in the job text by a note. Free text written by the employer can still hold a name. The tests check the three contact fields and the removal of emails and phones.
What User-Agent does the Actor send? RecruitingJobsApiActor-bot/1.0 (Apify Actor; reads public career site job lists; no contact given). It names the tool and holds no email address.
How do I find the address of a career site? Open the careers page of the company. If its jobs open on a page of the form https://something.fa.something.oraclecloud.com/hcmUI/CandidateExperience/..., copy that address. If a careers page uses another address, open a job and look at the address of the job or apply page. The Actor accepts only hosts that end with oraclecloud.com. A host name alone, such as jpmc.fa.oraclecloud.com, works too and uses site CX_1001.
What is the site number? The part after /sites/ in the address, such as CX_1001. Some employers have several career sites on one host, for example one for campus jobs. Each site has its own code. Enter one address for each site. A wrong site code is not always an error: in a test on 7 October 2026 both jpmc.fa.oraclecloud.com and eeho.fa.us2.oraclecloud.com returned their normal job list for a site code that does not exist. Check that the jobUrl of a row opens the job you expect.
Does it find career sites for me? No. You give the addresses. The Actor has no company directory.
Why do I get fewer rows than the site shows? Max items, a keyword or a location can cut the list. The Actor also skips a job when its description cannot be read after 3 tries. Such a job is not charged.
How does the location filter work? The Actor filters locations itself. It reads the list from the newest job, 100 jobs per request, and keeps the jobs whose primary or other locations contain your text. For a rare place the Actor reads many pages before it has enough rows. It stops at 50,000 list rows per site.
Why is the keyword used exactly as I type it? The career site normally corrects spelling in its own search box. In a test it changed the word nurse to nyse. The Actor switches the correction off, so the keyword means what you typed.
What does a status row mean? site_not_found: the address gave no job list, or the host does not exist. site_not_public: the site asks for a login. no_jobs_found: the site has no open jobs, or none match your keyword or location. Each status row counts as one result.
How fast does it read, and what if the site is slow? At most about 3 requests per second, and 2 at the same time. On errors 429 and 5xx, and on network resets, the Actor tries up to 3 times, waits longer each time and follows a Retry-After header. On HTTP 403 it stops at once and does not try to get around the block. A site that cannot be read returns no rows and no charge.
What are the limits? Up to 20 career sites and 100,000 rows per run. Rows come newest first. The Actor shows only jobs that the public list shows. It does not show jobs that need a login or that the employer keeps internal.
What if the run fails? If the site does not answer, refuses the request or the answer has a new format, the run stops with a clear message and charges nothing for that site. If other sites worked, you keep their rows. Run it again later.
Related Actors
For companies on other applicant tracking systems, the same author has Greenhouse Jobs API, Workday Jobs API and ATS Jobs API, which reads the career pages of many other systems in one run.
If this saved you time, a rating helps others find it.
I built this Actor myself as an independent developer. Independent tool, not affiliated with Oracle. Data: the public career sites of the employers.