HiJobs.net Scraper - Jobs, Salaries, Employers & Locations
Pricing
from $1.20 / 1,000 listing results
HiJobs.net Scraper - Jobs, Salaries, Employers & Locations
Scrape hijobs.net job listings via the official mobile API: title, employer, salary range, location, hours, sector, contract, closing date, apply email and full description, plus employer record, industries and geo. Search by keywords, location and filters, or paste hijobs.net URLs. Includes.
Pricing
from $1.20 / 1,000 listing results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
HIJOBS Scraper - Scotland Highlands & Islands Jobs
Scrape job listings from hijobs.net, the jobs board for the Scottish Highlands and Islands (Inverness, Oban, Skye, the Outer Hebrides, Argyll and Moray). The scraper talks to the same structured mobile data source the HIJOBS app uses, so every field comes back clean without scraping rendered pages.
Returned fields include the title, employer, salary range, location, hours, sector, contract type, posting and closing dates, apply contact (name and email where published), external application link, full description, employer record, industries, specialisms and geo coordinates. Choose a search built from keywords and filters, or paste hijobs.net URLs directly. A recency filter keeps daily monitoring runs cheap by stopping as soon as a page is older than your cutoff.
Why This Scraper?
- Richer output than the rendered site. Every listing carries the structured fields the app itself loads, including a real salary range, structured hours, sector and specialism, and the closing date. Detail enrichment adds the full description, apply contact and the employer's profile and website.
- Superset of competitor fields. Every field the market leader exposes plus the nested employer record, industries, specialisms and geo coordinates from the detail source.
- Search and URL modes. Build a search from keywords, location, employer type, hours, contract type, sort order and salary range, or paste any hijobs.net search, location facet or single-job URL and walk it forward.
- Recency filter.
postedWithinHoursreturns only the jobs you care about and stops early, ideal for daily monitoring of fresh postings. - Incremental change monitoring. Run the same search daily and get only what changed: NEW, UPDATED, REAPPEARED and EXPIRED jobs, each marked with its change type and the fields that changed. State is kept per search automatically.
- Resume support. Continue a large interrupted pull from a pasted run or dataset ID without returning or charging for jobs already collected.
- MCP connector export. Optionally pipe results into Notion, Linear, Airtable or another MCP server.
- Structured JSON out, one row per vacancy, ready for CSV, Excel, JSON or API export.
Data You Get
Each scraped vacancy is one dataset row of type: "job". Listing fields are always present; the full description, apply contact and employer record come from detail enrichment when fetchDetails is on (the default).
| Field | Example |
|---|---|
jobId | 00000001 |
jobUrl | https://hijobs.net/job/00000001/sample-role |
title | Sample Job Title |
companyName | Sample Employer |
salary | { "currency": "GBP", "min": 25000, "max": 32000, "unit": "year", "raw": "£25,000 to £32,000 per annum" } |
location | Inverness |
sector / specialism | Retail / Store Management |
hours | 40 per week |
contractType | Permanent |
postedDate | 2026-01-01T00:00:00 |
closingDate | 2026-01-31T00:00:00 |
remote | false |
applyType | external / email / internal |
applyEmail | recruiter@example.com |
externalApplyUrl | https://example.com/apply |
contactName | Recruitment Team |
recruiterType | direct-employer |
companyWebsite | https://www.example.com |
descriptionText | Full description of the role appears here. |
reference | Job Number: 000000 |
requiresCv | false |
numberVacancies | 1 |
changeType | NEW / UPDATED / REAPPEARED / EXPIRED (incremental mode) |
Sample shape: values above are illustrative placeholders, not from a live listing.
How to Use
Search mode, newest jobs:
{"mode": "search","maxItems": 20}
Search mode with keywords, location and filters:
{"mode": "search","keywords": "support worker","where": "Inverness","hours": "full-time","contractType": "permanent","sort": "relevance","fetchDetails": true,"maxItems": 50}
Daily monitoring, fresh postings only:
{"mode": "search","postedWithinHours": 24,"incrementalMode": true,"maxItems": 0}
URL mode with a filtered search link and a location facet:
{"mode": "url","urls": ["https://hijobs.net/search/results?employers=charity-cic&where=Scotland&sort=relevance","https://hijobs.net/jobs/oban"],"fetchDetails": true,"maxItems": 30}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search builds a query from the filter fields; url walks pasted hijobs.net URLs. |
keywords | string | (none) | Keyword search (search mode). |
where | string | (none) | Location / area, e.g. Inverness, Scotland, Oban (search mode). |
employerType | string | Any | Charity / CIC, Direct Employer, Agency, Recruitment Consultant, Local Government. |
hours | string | Any | Full Time or Part Time. |
contractType | string | Any | Permanent, Contract, Interim, Graduate, Temporary, Casual, Student Placement, Volunteer. |
sort | string | added | Newest first, Date, Highest salary, Relevance. |
salaryFrom / salaryTo | integer | (none) | Salary range bounds (search mode). |
postedWithinHours | integer | 0 | Only jobs posted in the last N hours; also early-stops pagination. 0 = all. |
urls | array | (none) | hijobs.net search, location facet or single-job URLs (URL mode). |
fetchDetails | boolean | true | Fetch each job's detail source for the full description, apply contact, employer record and geo. Adds one request per job, billed as a detail-enrichment surcharge. |
maxItems | integer | 20 | Soft cap on jobs returned (0 = unlimited). The one cap on the run. |
maxPages | integer | 0 | Page cap per search (0 = unlimited; stops naturally or at Max jobs). |
resumeFromRunId | string | (none) | Continue one specific interrupted run from a run or dataset ID. |
incrementalMode | boolean | false | Recurring change monitoring for scheduled runs of the same search. |
stateKey | string | (none) | Optional name for the incremental state key. |
emitUnchanged | boolean | false | Also return unchanged jobs in incremental mode (returns and bills extra rows). |
emitExpired | boolean | false | Also return jobs that disappeared in incremental mode (returns and bills synthetic rows). |
proxy | object | Apify proxy | Optional proxy override. The data source is open, so a proxy is not required; use Apify Residential for the highest reliability on large pulls. |
mcpConnectors | array | (none) | Optional: pipe results into Notion, Linear, Airtable or another MCP server. |
notionParentPageUrl | string | (none) | Notion parent page for the Notion connector. |
maxNotifyListings | integer | 50 | Max items written to each connector per run. |
Output Example
{"type": "job","source": "hijobs.net","sourceProvider": "hijobs","jobId": "00000001","slug": "sample-role","jobUrl": "https://hijobs.net/job/00000001/sample-role","apiUrl": "https://api.hijobs.co.uk/job/00000001","title": "Sample Job Title","companyName": "Sample Employer","location": "Inverness","salary": {"currency": "GBP","min": 25000,"max": 32000,"unit": "year","raw": "£25,000 to £32,000 per annum"},"categories": ["Retail", "Store Management"],"contractType": "Permanent","hours": "40 per week","postedDate": "2026-01-01T00:00:00","closingDate": "2026-01-31T00:00:00","remote": false,"applyType": "email","applyEmail": "recruiter@example.com","externalApplyUrl": null,"contactName": "Recruitment Team","recruiterType": "direct-employer","companyWebsite": "https://www.example.com","description": "<p>Full description of the role appears here.</p>","descriptionText": "Full description of the role appears here.","descriptionTeaser": "A short teaser of the role.","reference": "Job Number: 000000","requiresCv": false,"numberVacancies": 1,"flags": ["Promoted"],"scrapedAt": "2026-01-01T00:00:00.000Z"}
Sample shape: values above are illustrative placeholders, not from a live listing.
Send results into your apps (MCP connectors)
This actor can optionally pipe results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify Settings and Integrations, then select it in the input. For Notion, also provide the parent page URL where item pages will be created.
Each connector receives a condensed, human-readable summary per item (a title and the key fields flattened to plain text), not the full JSON. The complete record always stays in the Apify dataset. Leave the field empty to skip the export entirely.
Plan Requirement
Runs on any Apify account. The data source is open and a proxy is optional; for very large pulls an Apify Residential proxy provides the most reliable, rotated exit IPs.