Company Careers Job Scraper avatar

Company Careers Job Scraper

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Company Careers Job Scraper

Company Careers Job Scraper

Extract open roles from company career pages with job title, location, department, seniority clues, source URL, and hiring-intent lead signals.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Jobs Scraper

Jobs Scraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Security

Limited permissions

Share

What does Company Careers Job Scraper do?

Extract real published company vacancies from public Greenhouse and Lever GET APIs, or individual JobPosting JSON-LD on a supplied public company career page. It returns full published job-description text, not navigation anchors, generic page descriptions, or search-engine snippets. No paid vendor key, login, application submission or private applicant data is used.

Why use company career data?

Monitor actual hiring activity, compare role requirements, discover source-declared departments and locations, and maintain links to current individual postings. Apify can schedule runs, expose the dataset through its API, and connect exports to existing workflows. A published vacancy is a hiring signal, not proof of company growth or a guarantee that applications remain open indefinitely.

The default input reads Discord's currently published Greenhouse board and saves up to ten jobs. That company is used only for an empty input. Explicit company URLs never fall back to Discord or an unrelated data provider.

What data can it extract?

FieldTypeMeaning
jobId, title, jobUrlstringActual source identity, job title and individual posting URL
descriptionstringFull published description text, including native description sections
companyNamestringExplicit source employer name; omitted when unavailable
location, locations, countrystring/arraySource-declared locations, not inferred geography
departments, officesarrayPublished teams, departments and offices
jobType, workplaceTypestringExplicit source employment/workplace labels
salary, salaryRangestring/objectOriginal pay disclosure, currency and pay period when supplied
postedAt, updatedAt, validThroughstringSeparate native timestamps; never replaced by scrape time
skills, qualifications, responsibilitiesarray/stringExplicit JobPosting properties
seniorityCluesarrayClearly derived exact title tokens, not verified seniority
hiringSignalstringDerived published_vacancy label based on an actual source posting
sourcePortal, sourceUrl, boardKeystringProvenance and exact extraction route

Unavailable values, empty arrays/objects and blank strings are omitted recursively; genuine source zero and false are preserved. Native pay periods and currencies are never guessed, converted or annualized. Public Greenhouse custom metadata may be included, but application forms, consent questions, applicant accounts and private user metadata are not collected.

How to scrape company career pages

  1. Leave the input empty for the verified default or supply startUrl/startUrls.
  2. Set maxItems, optionally searchQuery, location, department or publishedAfter.
  3. Start the Actor and inspect the dataset and separate source evidence.
  4. Download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Recognized native URLs include Greenhouse board/posting URLs and Lever US/EU board/posting URLs, including their exact public API equivalents. Other public HTTPS pages are inspected for genuine JobPosting JSON-LD. Up to maxPages related same-host career links or recognized native board links may be followed, with discovery depth limited to one. Arbitrary script execution, hidden browser state, account logins, anti-bot bypasses and unrelated-source substitutions are not supported. A European Greenhouse board currently fails explicitly rather than silently querying the US API.

Input

See the input tab for full configuration options. startUrl overrides startUrls. searchQuery overrides legacy keyword only when nonempty. All query/location/department/date filtering is local to real source records; this is not a web-wide company discovery engine.

Example native board input:

{"startUrl":"https://job-boards.greenhouse.io/discord","maxItems":10}

Example custom-page input (replace with a real authorized company URL):

{"startUrls":[{"url":"https://example.org/careers"}],"searchQuery":"engineer","maxItems":10,"maxPages":5}

publishedAfter uses an actual YYYY-MM-DD calendar date and requires a source posting date; jobs without one cannot satisfy it. maxItems is a global cap across all companies. Independent company sources run in bounded groups controlled by maxConcurrency, then merge in caller order. Requests on each origin are serialized and obey its robots crawl delay. Greenhouse full descriptions arrive in one batched native API response. Lever uses bounded native pagination. maxRequests includes robots and redirects, and each request has a timeout.

Output

The following two abbreviated objects are anonymized documentation examples, not live test output:

[
{
"jobId":"1234567890",
"title":"Senior Software Engineer",
"companyName":"Example Company",
"description":"Example full role responsibilities and qualifications.",
"jobUrl":"https://job-boards.greenhouse.io/example/jobs/1234567890",
"sourcePortal":"greenhouse",
"dataMode":"live_public_api",
"seniorityClues":["senior"],
"hiringSignal":"published_vacancy"
},
{
"jobId":"00000000-0000-4000-8000-000000000001",
"title":"Research Engineer",
"description":"Example published introduction, requirements and benefits.",
"jobUrl":"https://jobs.lever.co/example/00000000-0000-4000-8000-000000000001",
"sourcePortal":"lever",
"dataMode":"live_public_api",
"hiringSignal":"published_vacancy"
}
]

SOURCE_METADATA contains bounded HTTP outcomes, native page counts and missing-detail skips. RUN_SUMMARY records result counts and timestamps; ERROR_DIAGNOSTIC contains a sanitized failure. Diagnostics never become job rows. A zero-match or access-denied run fails explicitly; it does not invent records or claim success. Some sources genuinely contain fewer than ten matching vacancies.

How much will it cost?

Check the Actor's current pricing tab for any Store charges and Apify platform usage. This source code neither sets marketplace prices nor promises a fixed cost or response time. There is no paid source API subscription in this implementation, and proxy configuration does not silently enable paid proxy traffic.

FAQ, responsible use and support

Use public source data only where you have a legitimate purpose and necessary permission. Source content is untrusted, parsed without execution, and cleaned as text. Robots exclusions, access denials and rate limits stop retrieval without rotating identities, cookies, hosts or proxies. HTTPS domains are validated and private/IP-literal destinations rejected; no credentials are forwarded to company websites.

Why fewer records? Filters, source inventory, missing full descriptions, request budgets and already-expired JSON-LD postings can reduce results. Broaden the actual query or provide the correct native board URL rather than substituting unrelated data. Arbitrary career systems without JobPosting JSON-LD or a supported native public API are not guaranteed to work. Open an issue with a public URL and sanitized error—never API keys or applicant data. Use the API tab for programmatic access.