OnlineJobs.ph Scraper
Under maintenancePricing
from $0.002 / actor start
OnlineJobs.ph Scraper
Under maintenanceExtract job postings from OnlineJobs.ph — the largest marketplace for hiring Filipino virtual assistants and remote workers. Search by keyword, set how many pages to crawl, and get back a structured dataset ready for export.
Pricing
from $0.002 / actor start
Rating
0.0
(0)
Developer
jom dev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
OnlineJobs.ph Job Scraper (Apify Actor)
Scrapes public job listings from OnlineJobs.ph and saves them to an Apify dataset (JSON, CSV, Excel, or straight into n8n).
Input
| Field | Description | Default |
|---|---|---|
keyword | Search keyword, e.g. Dynamics 365. Ignored if startUrls is set. | |
employmentType | any, Full Time, Part Time or Gig. Jobs marked "Any" are always kept. | any |
startUrls | Search result URLs pasted from your browser (with your filters applied). | |
maxJobs | Maximum jobs to return (30 jobs per search page). | 100 |
includeDetails | Open each job page for the full description, hours per week and date updated. | true |
postedWithinDays | Only keep jobs posted in the last N days. 0 = off. Good for daily schedules. | 0 |
startDate | Only keep jobs posted on or after this date (YYYY-MM-DD, inclusive). Overrides postedWithinDays. | |
endDate | Only keep jobs posted on or before this date (YYYY-MM-DD, inclusive). | |
requestDelaySecs | Seconds between requests. The site's robots.txt asks for 5. | 5 |
redactContactInfo | Replace emails, phone numbers, messenger IDs, @handles and personal profile links in descriptions with [redacted]. | true |
proxyConfiguration | Apify Proxy settings. | Apify Proxy on |
Output
One record per job:
{"jobUrl": "https://www.onlinejobs.ph/jobseekers/job/microsoft-dynamics-and-power-apps-developer-1725257","jobId": "1725257","jobTitle": "Microsoft Dynamics and Power Apps Developer","employerName": null,"employmentType": "Full Time","salary": "$5/hour","hoursPerWeek": 40,"datePosted": "2026-10-14 08:12:03","dateUpdated": "2026-10-13","descriptionSnippet": "Microsoft Dynamics 365 & Power Platform Developer ...","fullDescription": "Microsoft Dynamics 365 & Power Platform Developer\n\n...","skills": ["Microsoft Dynamics 365", "Power Automate", "AI Automation"],"scrapedAt": "2026-10-16T01:00:00.000Z"}
Notes:
employerNameis only filled when the search page shows an employer label (some cards do). Otherwise it isnull; the site hides employer details from logged-out visitors.salaryis the free text the employer typed (5,$5/hour,TBD,PHP 80,000 – 130,000 / month), so it is not normalised.- With
redactContactInfoon, contact details employers type into descriptions become[redacted]. Salaries, dates and company websites are kept. datePostedis the timestamp shown on the site, in the site's own time zone.- Fields such as
isRemoteandbenefitsdo not exist on this site. Every job is remote, and benefits are part of the free-text description.
Rate limiting
The site's robots.txt asks for a 5 second crawl delay, so the actor runs one request at a time with a 5 second gap. Roughly: 100 jobs with details is about 9 minutes; 100 jobs without details is about 20 seconds. Please keep it that way.
Deploy
npm install -g apify-cliapify logincd onlinejobs-ph-scrapernpm installapify run # optional local run: put input in storage/key_value_stores/default/INPUT.jsonapify push # deploys to your Apify account
Run npm test to check the parsing logic. The tests use synthetic HTML, so do one real run after deploying and look at the dataset.
Using it in n8n
Use the Apify node's "Run an Actor" then "Get dataset items" (as in your workflow). Map the fields like this:
{{ $json.jobTitle }},{{ $json.salary }},{{ $json.employmentType }}{{ $json.fullDescription }}instead ofdescriptionText{{ $json.skills.join(', ') }}
Terms
Only scrape public pages, keep the request rate low, and check OnlineJobs.ph's Terms of Use for your use case. Don't use the data to contact or profile people.