s1jobs Scraper – Scotland & UK Jobs, Salaries & Details
Pricing
from $1.40 / 1,000 job results
s1jobs Scraper – Scotland & UK Jobs, Salaries & Details
Scrape jobs from s1jobs.com across Scotland and the UK. Search by keyword, location, or URLs. Returns title, parsed salary band, company, logo, GPS location, skills, contract type, and 90+ fields per job, with optional full description, postcode, and apply links.
Pricing
from $1.40 / 1,000 job results
Rating
0.0
(0)
Developer
AbotAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
s1jobs.com Jobs Scraper
Extract job listings from s1jobs.com, Scotland's largest job site. Get the job title, parsed salary band, company, company logo, location with GPS coordinates, contract type, skills, posting dates and 90+ fields per job. Turn on full details and each record also carries the complete job description, postcode, structured location, matched and unmatched skills, accreditations and the apply links. Search by keyword and location, or paste search URLs you already refined in your browser.
Why This Scraper?
- 90+ fields per job, 110+ with details on. Title, parsed salary (raw text plus numeric min/max/period and hourly/annual aliases), company, company logo, city, county, district, country, GPS coordinates, contract type, full or part time, working pattern, skills, job types, posted and expiry dates, sponsored and featured flags, public sector flag, video flag and more.
- Every field name, every alias. Each value is exposed under camelCase, snake_case and nested shapes (for example
salary.min,salaryLow,salaryRangeLow,location.postalCode,employer.name) so the output is a drop-in replacement no matter which schema your pipeline already expects. - Two input modes. Pick a keyword and one or more locations from the form, or paste any s1jobs.com search URL. Multiple URLs are supported and results across pages are collected for you.
- Rich client-side filters. Contract type, full or part time, direct employer or recruitment agency, minimum salary (per year, day or hour), public sector only, jobs with video only, and sort by relevance or most recent.
- Full detail enrichment. Optionally fetch each job's full record to add the complete description, postcode, structured location, salary band, matched and unmatched skill counts, accreditations and the direct apply method, URL and email.
- One clean limit. Set the total number of jobs you want and the run collects up to that number for you.
- Cost efficient. Runs on the cheap, free-tier-friendly default connection, and works on any Apify plan including the free tier.
Data You Get
Sample shape - values are illustrative placeholders, not from a live listing.
| Field | Example |
|---|---|
| jobId | 000000000 |
| title | Registered Nurse |
| company | Example Care Group |
| companyLogo | https://www.s1jobs.com/img/company/0000.png |
| city | Glasgow |
| county | Lanarkshire |
| country | Scotland |
| coordinates | { "lat": 55.8642, "lng": -4.2518 } |
| salary | { "rawText": "£30,000 - £35,000", "min": 30000, "max": 35000, "currency": "GBP", "period": "annual" } |
| contractType | Permanent |
| fullOrPartTime | Full |
| workingHourPattern | Regular working hours |
| employmentType | ["PERMANENT", "FULL_TIME"] |
| skills | ["Healthcare / Pharmaceuticals"] |
| jobTypes | ["Nursing"] |
| datePosted | Sat, 06 Jun 2026 07:30:24 GMT |
| expiryDate | Mon, 06 Jul 2026 07:30:24 GMT |
| isSponsored | false |
| isFeatured | false |
| isPublicSector | false |
| jobUrl | https://www.s1jobs.com/job/registered-nurse-000000000 |
| postcode | G1 1AA (when fetchDetails=true) |
| description_text | As Registered Nurse you will play a central role... (when fetchDetails=true) |
| applicationUrl | https://www.example.com/apply/0000 (when fetchDetails=true) |
| skillsUnmatchedCount | 16 (when fetchDetails=true) |
| scrapedAt | 2026-06-15T00:00:00+00:00 |
How to Use
Search by keyword and location
{"mode": "search","locations": ["Glasgow", "Edinburgh"],"keywords": "nurse","maxListings": 50,"fetchDetails": true,"proxy": { "useApifyProxy": true }}
Filtered search (permanent, full time, public sector)
{"mode": "search","locations": ["Aberdeen"],"keywords": "project manager","contractType": "permanent","workingHours": "full","publicSectorOnly": true,"minSalary": 35000,"salaryType": "annual","sortBy": "date","maxListings": 100}
Paste search URLs
{"mode": "url","urls": ["https://www.s1jobs.com/jobs/?Keywords=warehouse&Location=glasgow","https://www.s1jobs.com/jobs/?Location=edinburgh"],"maxListings": 200,"fetchDetails": false}
Input Parameters
| Parameter | Type | Description |
|---|---|---|
| mode | string | search builds searches from the filters below; url paginates the URLs you paste. |
| locations | array | Towns, cities or counties (Search mode). One search runs per location. Empty lists jobs from everywhere. |
| keywords | string | Role, skill or company to search for (Search mode). |
| contractType | string | any, permanent, contract or temporary. |
| workingHours | string | any, full or part. |
| advertiserType | string | any, employer (direct) or agency. |
| minSalary | integer | Lowest salary to include; combined with the period below. Jobs with no numeric salary are always kept. |
| salaryType | string | Unit for the minimum salary filter: annual, daily or hourly. |
| publicSectorOnly | boolean | Keep only public sector roles. |
| hasVideoOnly | boolean | Keep only jobs that include a recruiter video. |
| sortBy | string | relevance or date. |
| urls | array | s1jobs.com search URLs to scrape (URL mode). Filter fields are ignored. |
| fetchDetails | boolean | Fetch each job's full record (description, postcode, skills, apply links). Default on. |
| maxListings | integer | Total jobs to collect across all searches. This is the only run limit. Default 20. 0 = unlimited. |
| maxPages | integer | Optional per-search safety stop on pages walked. Does not cap the run; defaults to 0 (unlimited) and defers to Max jobs. |
| proxy | object | Connection settings. A free-tier-friendly connection is the default. |
Output Example
Sample shape - values are illustrative placeholders, not from a live listing.
{"jobId": "000000000","title": "Registered Nurse","company": "Example Care Group","companyName": "Example Care Group","companyLogo": "https://www.s1jobs.com/img/company/0000.png","employer": {"name": "Example Care Group","logoUrl": "https://www.s1jobs.com/img/company/0000.png","url": "https://www.s1jobs.com/jobs/?CompanyId=0000"},"city": "Glasgow","county": "Lanarkshire","country": "Scotland","postcode": "G1 1AA","coordinates": { "lat": 55.8642, "lng": -4.2518 },"location": {"text": "Glasgow, Lanarkshire","locality": "Glasgow","region": "Lanarkshire","country": "Scotland","postalCode": "G1 1AA","lat": 55.8642,"lng": -4.2518},"salary": {"rawText": "£30,000 - £35,000","min": 30000,"max": 35000,"currency": "GBP","period": "annual"},"salaryLow": 30000,"salaryHigh": 35000,"contractType": "Permanent","fullOrPartTime": "Full","employmentType": ["PERMANENT", "FULL_TIME"],"workingHourPattern": "Regular working hours","skills": ["Healthcare / Pharmaceuticals"],"primaryCoreSkill": "Healthcare / Pharmaceuticals","skillsUnmatchedCount": 16,"jobTypes": ["Nursing"],"datePosted": "Sat, 06 Jun 2026 07:30:24 GMT","expiryDate": "Mon, 06 Jul 2026 07:30:24 GMT","closingDate": null,"isSponsored": false,"isFeatured": false,"isPublicSector": false,"hasVideo": false,"applicationMethod": "url","applicationUrl": "https://www.example.com/apply/0000","applicationEmail": "jobs@example.com","description_text": "As Registered Nurse you will play a central role in delivering high quality care...","jobUrl": "https://www.s1jobs.com/job/registered-nurse-000000000","canonicalUrl": "https://www.s1jobs.com/job/registered-nurse-000000000","status": "live","detailFetched": true,"scrapedAt": "2026-06-15T00:00:00+00:00"}
Send results into your apps (MCP connectors)
You can push every scraped job straight into the apps you already use, via Model Context Protocol (MCP) connectors, with no extra glue code:
- Authorize a connector once under Apify → Settings → Integrations.
- Select it in the MCP connectors input.
- Run the scraper. Results are delivered to the connector as they are collected.
For the Notion connector, also set Notion parent page URL to the page under which a sub-page is created per job. Leave the MCP inputs empty to keep results in the Apify dataset only (the default).
Plan Requirement
This scraper runs on Apify's free-tier-friendly default connection, so it works on any Apify plan including the free tier. For the highest reliability on very large runs you can pick a different connection in the proxy input; some connection options require a paid Apify plan.