Oracle Taleo Career Section Jobs Scraper
Pricing
from $0.75 / 1,000 results
Oracle Taleo Career Section Jobs Scraper
Collects postings from an Oracle Taleo career section on taleo.net through the same JSON job-board endpoint the search page uses. Returns the requisition ID, title, department, employmentType, postedAt, a jobdetail.ftl apply link, and the location split into city, state and country.
Pricing
from $0.75 / 1,000 results
Rating
0.0
(0)
Developer
String
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
What does Taleo Job Board Scraper do?
Oracle Taleo career sections are old, and they render nothing useful into their HTML. jobsearch.ftl
is a shell whose results table is filled in afterwards by a JSON job-board endpoint. This Actor reads
that endpoint, which is both the only complete source and the exact one the page itself uses.
Give it a career-section URL such as
https://drhorton.taleo.net/careersection/2/jobsearch.ftl and it returns the section's postings with
requisition id, title, department, employment type, posted date, apply link, and the location split
into city, state and country.
Opening a section costs two things at once. The shell fetch supplies the portal id the endpoint
refuses to answer without, and it also supplies the results table's column headers, which is the part
that matters more than it sounds:
- Taleo returns a posting as a bare
columnarray. What each position means is per-section configuration, not a schema. One tenant publishes five columns, another two, and they share no ordering. - The headers read from the shell are what make that array legible.
department,employmentTypeandpostedAtare claimed only when the header list lines up one-to-one with the payload. Where it does not, those fields staynullrather than being filled from the wrong column.
After that, results come one page at a time at the section's own page size, 25 by default. Pages are flattened across every section in the input, so one slow career section cannot hold up the run.
No Taleo account, login or cookie is used.
What data does it extract?
| Field | Type | Description |
|---|---|---|
jobId | string | Taleo's requisition id. Stable, so use it to de-duplicate and diff |
title | string | The posting title, taken from the column the payload marks as the linked one |
company | string | Always null. Taleo career sections publish no company display name |
tenant | string | The Taleo tenant, read from the host, for example drhorton |
location | string | The section's own location node, verbatim, for example US-TX-Arlington. Several locations join with ; |
city | string | Resolved from the location node. null when the posting lists more than one location |
state | string | US state or Canadian province, matched against a closed vocabulary |
country | string | ISO code, matched against a closed vocabulary of names and codes |
isRemote | boolean | true when the location or the title names remote, virtual, telecommute or work from home |
department | string | The section's category column: Job Field, Job Category, Department, Function and similar |
employmentType | string | The section's employment column: Employment Type, Job Schedule, Appointment Type, Position Type and similar |
postedAt | string | Calendar date, YYYY-MM-DD, from the section's posting-date column |
jobUrl | string | Direct link to the posting's jobdetail.ftl page |
boardUrl | string | The canonical career section |
sourceUrl | string | The job-board endpoint the row came from |
collectedAt | string | ISO 8601 timestamp of the run |
Reading a Taleo location
A location node is a path through the section's own location tree, and the tree's depth is
configuration rather than a standard. The same two-segment shape means state and city at one employer
(TX-Arlington), city and building at another (Dallas-W T White High School), and country and state
at a third (United States-Texas).
Segments are therefore resolved against a fixed vocabulary rather than by position, and a segment that
matches nothing is dropped instead of being allowed to displace a real value. A bare CA reads as
California rather than Canada, because it is far more often California, and a spelled-out country name
is never ambiguous. location always carries the node verbatim, which is the one field this cannot get
wrong.
Why scrape Oracle Taleo career sections?
Taleo is legacy software with an enormous installed base. Hospital systems, universities, school districts, homebuilders, hotel groups and government agencies still run their hiring on it, and those employers are systematically under-covered by scrapers built for modern boards.
- Follow public-sector and education hiring, where Taleo remains common and aggregator coverage is thin.
- Track construction and hospitality requisitions by site, using the location tree the employer built.
- Supply labour-market research with employers that technology-focused datasets miss entirely.
- Keep a staffing desk stocked with fresh requisitions from a defined list of career sections.
- Detect openings and expansions from where new requisitions cluster geographically.
How to use it
- On the employer's site, follow "search jobs" or "view all openings" until you reach a URL containing
taleo.net/careersection/. Copy the whole URL. - Paste it into Job boards. Up to 100 sections per run. A
joblist.ftllink, ajobsearch.ftllink and a bare section path all rebuild to the same canonical section and are fetched once. - Set Maximum results, which matters here because results are paginated 25 at a time.
- Start the run and export the dataset, or read it over the API.
Unlike the boards addressed by a company slug, Taleo needs the full URL. The section number in the
path (/careersection/2/) is part of the address, and a single employer often runs several sections
for different job families.
Input
| Field | Type | Default | Description |
|---|---|---|---|
boards | array of strings | required | Taleo career-section URLs on taleo.net. Between 1 and 100 entries |
maxItems | integer | 1000 | Cap on dataset rows, up to 50,000 |
concurrency | integer | 2 | Sections and result pages fetched in parallel, up to 5 |
{"boards": ["https://drhorton.taleo.net/careersection/2/jobsearch.ftl","https://hyatt.taleo.net/careersection/us_professional/jobsearch.ftl"],"maxItems": 1500,"concurrency": 2}
A host outside taleo.net, or a URL with no /careersection/<section> in its path, is rejected with a
reason rather than fetched.
Output
One row per requisition. Illustrative shape:
{"jobId": "2600123","title": "Construction Superintendent","company": null,"tenant": "drhorton","location": "US-TX-Arlington","city": "Arlington","state": "TX","country": "US","isRemote": false,"department": "Construction","employmentType": "Full-time","postedAt": "2026-06-18","jobUrl": "https://drhorton.taleo.net/careersection/2/jobdetail.ftl?job=2600123&lang=en","boardUrl": "https://drhorton.taleo.net/careersection/2/jobsearch.ftl?lang=en","sourceUrl": "https://drhorton.taleo.net/careersection/rest/jobboard/searchjobs?lang=en&portal=101430233","collectedAt": "2026-08-20T09:14:02.118Z"}
A posting open in several locations reads "location": "US-TX-Arlington; US-TX-Frisco" with city,
state and country all null, since none of them can describe two places at once.
The run also writes a SUMMARY record listing the item count, the failure count and every section or
page that failed with its error.
How much does it cost?
Pay per event, charged once per result row written to the dataset. The rate is on this Actor's pricing tab. A section that will not open produces no rows and costs nothing.
Two requests open a section and each further page returns 25 rows, so requests here scale with rows
rather than with employers. maxItems is the lever that controls the bill.
Runs from an Apify free plan stop at 250 requests and 250 results and report the limit in the run status. Any paid plan runs the full input. The cap binds on requests as well as rows because the fetches run on our own infrastructure, which Apify does not reimburse for free-plan runs.
Using it with the Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("usestring/taleo-jobs").call(run_input={"boards": ["https://drhorton.taleo.net/careersection/2/jobsearch.ftl"],"maxItems": 1500,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["postedAt"], job["state"], job["title"])summary = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("SUMMARY")print(summary["value"]["failureCount"], "target(s) failed")
The JavaScript client and the REST API take the same input.
Is it legal to scrape Oracle Taleo career sections?
A Taleo career section is a public job search that employers run so candidates can find and apply to open roles. This Actor reads the same unauthenticated job-board endpoint the section's own page reads, with no account, no cookie and no API key.
The rows describe requisitions. There is no candidate data, no application record and no recruiter
contact information in the output, and company is always null because Taleo publishes no display
name to collect.
Whether a particular use is permitted depends on your jurisdiction and on the terms you agreed to. This is background rather than legal advice.
Related actors
- Workday Job Board Scraper is where most Taleo employers eventually migrate, so a watchlist usually needs both.
- iCIMS Job Board Scraper covers the same kind of high-volume, site-based hiring.
- Greenhouse Job Board Scraper handles the technology end of an employer list.
- Indeed Job Listings Scraper searches the aggregate market when you do not have a list of employers yet.
- Glassdoor Jobs Scraper adds the employer reputation context around a requisition.
FAQ
How do I find a company's Taleo career section? Follow "search jobs" or "view all openings" from
the employer's careers page and copy the URL once it contains taleo.net/careersection/. There is no
shorter handle to pass, and one employer may run several sections.
How many postings come back per request? The section's own page size, 25 by default, plus one opening request for the shell that carries the portal id and the column labels.
Does it work for every company on Taleo? For every career section that exposes the job-board endpoint, which is the one the section's own search page calls. A section whose shell publishes no portal id is reported as a failure naming that reason, rather than returning an empty result.
Why are department, employmentType and postedAt sometimes empty? Each career section picks
its own result columns and its own names for them. Those three fields are filled only when the section
publishes a column this Actor recognises. Organization, Division and Business Unit are
deliberately excluded from the department match: at least one large tenant files a posting's hotel
under Organization, which is a place rather than a department, and a column that means something
different per employer is worse than an empty one.
Why is postedAt sometimes null when the section clearly shows a date? Only unambiguous written
forms are read. A numeric date such as 03/04/2026 means March in one section's locale and April in
another's, and Taleo never states which, so it is left null rather than guessed.
Why is company always null? Taleo career sections do not publish a company display name anywhere
in the payload. tenant is the identity the section is addressed by, and it is the field to join on.
What happens if one section fails? It is recorded in SUMMARY under failures with its error, and
the other sections still produce rows. The run only exits with an error when every section failed.
Feedback
If a career section will not open, or a column lands in the wrong field, open an issue from this Actor's Store page and include the section URL. Column-label coverage is the part that most often needs extending, and one URL is enough to extend it.