Kariyer.net Search Scraper avatar

Kariyer.net Search Scraper

Pricing

from $2.99 / 1,000 kariyer.net job records

Go to Apify Store
Kariyer.net Search Scraper

Kariyer.net Search Scraper

Scrape job listings from Kariyer.net, Turkey's leading job platform. Extract job titles, companies, locations, salary ranges, contract types, and descriptions for Turkish job market analysis.

Pricing

from $2.99 / 1,000 kariyer.net job records

Rating

0.0

(0)

Developer

Jobs API

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

11 days ago

Last modified

Share

Kariyer.net public jobs scraper

This Apify Actor extracts complete public Kariyer.net job postings locally or in Apify Cloud. It uses bounded ordinary HTTPS requests and Cheerio parsing of official search and detail pages. A row is written only after the posting ID, canonical URL, title, employer, location, and rich description are verified.

Modes

  • search: search one query and enrich current detail pages.
  • searchMultiple: run several queries with cross-query deduplication.
  • single: enrich one official /is-ilani/<slug>-<id> URL.
  • multiple: enrich several official detail URLs.
  • startUrls: accept official search or detail URLs.

All modes have bounded pages, items, concurrency, and request timeouts. Diagnostics and rejected candidates are kept in KVS state, never emitted as job rows. Application URLs are included only when an explicit source link exists; the canonical detail URL is never used as an application URL.

Input example

{
"mode": "search",
"query": "yazilim",
"location": "Istanbul",
"maxItems": 3,
"maxPages": 2,
"concurrency": 4,
"requestTimeoutSecs": 25
}

The complete input contract is in .actor/input_schema.json. Reproducible mode inputs are included as INPUT-single.json, INPUT-multiple.json, INPUT-search-multiple.json, INPUT-start-urls.json, and INPUT-negative.json.

Output

Dataset rows include stable IDs, canonical URLs, title/employer/location, work model, employment and experience signals, candidate criteria, company statistics, salary-expectation data when published, readable and sanitized HTML descriptions, sections, responsibilities, qualifications, benefits, dates, search provenance, source JSON-LD, request receipts, verification flags, and quality counts.

RUN_SUMMARY, RUN_DIAGNOSTICS, RUN_SKIPS, REQUEST_RECEIPTS, RUN_HEALTH, and RUN_METADATA are stored in the default key-value store. Platform status is only SUCCEEDED or FAILED; resultStatus separately describes the data outcome:

  • COMPLETE: complete job rows were stored with no run limitations.
  • LIMITED: at least one real row was stored, but a later non-block failure or rejected candidate limited the result.
  • SKIPPED: a confirmed access barrier ended the run and buffered rows were discarded.
  • DEFERRED: a zero-row result is unresolved, unrecognized, or limited by an ordinary parse/transport/candidate issue; this is not proof of a source block or a genuinely empty search.
  • NO_DATA: every requested search query returned a successful official search page with an explicit zero-result count and no job listings; the count and matching request receipts are retained in KVS.
  • FAILED: a fatal non-block failure left no stored rows; the Actor exits as failed.

Only complete job records enter the dataset. Diagnostics and request receipts remain in KVS. The validator checks status/count consistency and rejects nulls, blank strings, empty arrays/objects, unknown output fields, duplicate IDs/URLs, and unverifiable records.

The current source comparison remains DEFERRED: the previously recorded Chrome detail navigation ended in browser-side ERR_BLOCKED_BY_CLIENT, without a source denial. This lifecycle update made no site request and does not qualify the dataset.

Local commands

npm install --ignore-scripts --no-audit --no-fund
npm test
npm run lint
npm run check
npm run validate
npx --yes apify-cli run --purge --input-file INPUT.json

The Actor does not use proxies, fingerprint spoofing, CAPTCHA handling, or challenge bypasses. If Kariyer.net returns a confirmed human-verification or access-denied response, the run is terminal SUCCEEDED/SKIPPED, stores structured evidence outside the dataset, and writes zero buffered job rows. Generic non-block failures with no stored rows are FAILED/FAILED.

Responsible use

Collect only public job information, respect Kariyer.net policies and robots directives, keep request budgets bounded, and do not use this Actor for authenticated pages or candidate personal-data harvesting.