OLX Jobs Search Scraper avatar

OLX Jobs Search Scraper

Deprecated

Pricing

from $2.99 / 1,000 olx jobs job records

Go to Apify Store
OLX Jobs Search Scraper

OLX Jobs Search Scraper

Deprecated

Extract rich OLX India job listings with exact salaries, job types, descriptions, location hierarchy and coordinates, images, lifecycle dates, status flags, and verified seller metadata.

Pricing

from $2.99 / 1,000 olx jobs job records

Rating

0.0

(0)

Developer

Jobs API

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

11 days ago

Last modified

Share

OLX India Jobs Search Scraper

This Apify Actor extracts complete, source-backed job records from the public OLX India jobs listing and detail routes.

What it does

  • Uses bounded native HTTPS requests to official www.olx.in pages.
  • Parses the server-rendered window.__APP.states.items hydration data and official JobPosting JSON-LD.
  • Follows only bounded same-site redirects, including the public numeric /item/{id} alias to its canonical -iid-{id} detail URL.
  • Emits only detail-verified rows with rich descriptions and sections, salary, employment, location hierarchy and coordinates, images, public seller name and profile details, source dates, lifecycle flags, and request receipts.
  • Redacts email addresses and phone numbers in descriptions and retained source snapshots. Public seller names and non-contact profile facts are kept when the job detail exposes them. OLX contact controls are represented as applicationMethod: "olx-contact"; no application destination is invented or followed.
  • Writes RUN_SUMMARY, RUN_DIAGNOSTICS, RUN_METADATA, and RUN_HEALTH to the default key-value store. Diagnostics are not pushed as dataset rows.

The Actor does not use a browser, proxy, CAPTCHA/WAF bypass, stealth or fingerprinting, or invoke apify call or apify push from its runtime.

Input modes

search is the default mode and uses query. searchMultiple accepts queries or searchQueries. single accepts jobUrl or jobId; multiple accepts jobUrls or jobIds; startUrls accepts official listing/detail URL objects. keywords, locations, and employmentType provide optional client-side filters.

Each run is sequential, uses ordinary direct HTTPS requests, and makes no retries or custom-header, cookie, proxy, or browser changes. A visible access challenge or HTTP 401, 403, 429, or 451 stops requests to OLX, clears buffered rows, and records platform status: SUCCEEDED with resultStatus: SKIPPED, the diagnostic, and request receipts. A full extraction is SUCCEEDED/COMPLETE; a clean empty crawl is SUCCEEDED/NO_DATA; usable rows followed by a non-block failure are retained as SUCCEEDED/LIMITED; a fatal non-block failure before any usable row is FAILED/FAILED and uses the Actor failure lifecycle. Non-block request failures retain sourceAccessStatus: DEFERRED in the run summary. Runs support bounded maxItems, maxPages, maxCandidates, maxRequests, requestTimeoutSecs, and maxResponseBytes values, with a three-minute deadline.

Example:

{
"mode": "search",
"query": "software engineer",
"maxItems": 3,
"maxPages": 1,
"maxRequests": 6
}

A single public detail can be supplied directly:

{
"mode": "single",
"jobUrl": "https://www.olx.in/item/sales-marketing-c62-full-time-in-ashokapuram-kozhikode-iid-1850022701",
"maxItems": 1,
"maxRequests": 1
}

Representative fields from the locally emitted record for that detail:

{
"recordType": "job",
"id": "olx-in:1850022701",
"jobId": "1850022701",
"title": "Female real estate consultant",
"companyName": "Happy Clients Realtors",
"category": "Sales & Marketing",
"employmentType": "Full-time",
"salaryMin": 15000,
"salaryMax": 60000,
"salaryCurrency": "INR",
"salaryPeriod": "Monthly",
"location": "Ashokapuram, Kozhikode, Kerala",
"sourceDisplayDate": "2026-09-25T08:31:32+05:30",
"seller": {
"name": "Happy Clients Realtors",
"memberSince": "2023-07-24T21:53:12Z",
"itemsListed": 427
},
"descriptionSections": [
{
"heading": "What We Offer",
"text": "• Flexible working hours • Work-from-home opportunity • Attractive salary + performance incentives • Training and career growth • Supportive and professional work environment",
"items": [
"Flexible working hours",
"Work-from-home opportunity",
"Attractive salary + performance incentives",
"Training and career growth",
"Supportive and professional work environment"
]
}
],
"quality": {
"sourceFieldCount": 38,
"descriptionCharacters": 812,
"itemCount": 10
}
}

quality.sourceFieldCount counts distinct OLX fact groups and individual description bullets. It excludes IDs, URLs, aliases, duplicate description renderings, and run metadata. Records are emitted only when the count exceeds 20.

Local development

npm ci --ignore-scripts --no-audit --no-fund
npm run check
npm test
apify validate-schema

For a local run, first choose a new actor-relative storage directory that does not exist and confirm there is no legacy apify_storage directory in the actor or its parent. Then use that new path with --resurrect; do not use --purge or reuse a dataset directory.

$env:APIFY_LOCAL_STORAGE_DIR = 'storage-olx-check'
apify run --resurrect --input-file .\INPUT.json
npm run validate -- storage-olx-check

The local validator checks actual Actor dataset files against the dataset schema, reconciles RUN_SUMMARY and RUN_DIAGNOSTICS, checks unique IDs and canonical URLs, counts distinct source facts, rejects recursive null/blank/empty values, verifies source flags and readable descriptions, and checks for email/phone leakage. Pass the selected fresh storage path as its argument, as in npm run validate -- storage-olx-check.

Data boundary

Only public OLX India listing/detail pages are in scope. Optional fields such as salary, expiry, seller metadata, and coordinates are omitted when the official response does not publish them. No authenticated pages or candidate/recruiter contact values are collected.