s1jobs.com Jobs Scraper
Pricing
from $1.50 / 1,000 results
s1jobs.com Jobs Scraper
Scrape job listings from s1jobs.com – Scotland's largest job board. Collect titles, salaries, locations, company info, and contract types at scale. Input search URLs and export structured data in JSON, CSV, and more.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
S1jobs Scraper: UK and Scotland job listings with salary, skills and application details
S1jobs Scraper turns any filtered search on s1jobs.com into a spreadsheet of job listings. It is for recruiters, labour market researchers, job aggregators and anyone who tracks vacancies in Scotland and the wider UK. You get title, employer, location with coordinates, contract type, salary, publication and expiry dates, core skills and more. Optionally, it adds the application URL or email, postcode and closing date for each job.
- Use the filters you already know. Set keywords, city, distance, full or part time and the other filters on s1jobs.com, copy the URL and paste it in. The Actor reads every page of that search.
- Several searches in one run. Add as many search URLs as you like. Jobs that appear in more than one search are saved once, by
jobId. - Structured salary and location.
salaryTextplus numericsalaryLowandsalaryHigh, andcity,county,countryandcoordinates. - Optional detail lookup. Turn on
fetchDetailsto addapplicationUrl,applicationEmail,postcode,closingDateandjobSkills. - No login or browser. It reads the site's JSON responses directly. Export to JSON, CSV, Excel or Google Sheets. See the Pricing tab for the current price.
Scope: This Actor covers s1jobs.com only. For other job boards see Indeed Scraper or SEEK Job Scraper for Australia.
What can you do with S1jobs Scraper?
| Goal | How |
|---|---|
| Build a Scottish job feed | Schedule a search URL and collect new jobIds each day. |
| Salary benchmarking | Compare salaryLow, salaryHigh and salaryRate by jobTypes or city. |
| Find who is hiring | Group by company, companyType (agency or employer) and isFeatured. |
| Skills demand | Count coreSkills across a search. |
| Lead lists for recruiters | Turn on fetchDetails and use applicationEmail or applicationUrl. |
| Map vacancies | Plot coordinates and filter by geoDistance from your search location. |
| Spot public sector and graduate roles | Filter on isPublicSector, graduate, apprenticeship and immediateStart. |
How it compares
| What you need | S1jobs Scraper | Manual copy-paste | Page-by-page HTML scrapers |
|---|---|---|---|
| Whole filtered search | Every page, up to maxPages | A page at a time | Yes |
| Salary as numbers | salaryLow, salaryHigh, hourly values | Text only | Often text only |
| Application URL and email | Optional detail lookup | Open every job | Varies |
| Maintenance | Uses the site's JSON, not page layout | None | Breaks when layout changes |
Input
{"searchUrls": ["https://www.s1jobs.com/jobs/?Keywords=Nurse&FullOrPartTime=Full&JobLocation.City=Glasgow&Distance=10"],"maxPages": 10,"maxResults": 0,"fetchDetails": false}
| Field | Type | Default | Effect |
|---|---|---|---|
searchUrls | Array of strings | Required | s1jobs.com search URLs (they must start with https://www.s1jobs.com/jobs/?). |
maxPages | Integer | 50 | Maximum result pages per search URL. Each page has 20 jobs. Range 1 to 500. |
maxResults | Integer | 0 | Maximum jobs across all URLs. 0 means no limit. |
fetchDetails | Boolean | false | One extra request per job for application, postcode, closing date and skills fields. |
Output
Each job is one dataset item. Fields from the example below come from the search results. Fields marked with details are added only when fetchDetails is on.
{"jobId": "example-id","vacancyId": 123456,"url": "https://www.s1jobs.com/job/...","title": "Staff Nurse","description": "Plain text without HTML...","company": "Example Health Board","companyType": "Employer","location": "Glasgow","city": "Glasgow","county": "Lanarkshire","country": "Scotland","coordinates": null,"contractType": "Permanent","fullOrPartTime": "Full","salaryText": "£30,000 - £35,000","salaryLow": 30000,"salaryHigh": 35000,"publicationDate": "2026-09-30","expiryDate": "2026-10-30","coreSkills": [],"isFeatured": false,"isPublicSector": true,"requiresCv": false,"applicationMethod": null}
The example is illustrative: values depend on the job. Details-only fields: canonicalUrl, closingDate, applicationEmail, applicationUrl, jobReference, postcode, jobSkills, salaryType, primaryCoreSkill, companyConfidential, status and more.
Notes:
- Missing values are
null. List fields are empty arrays and flags arefalse. descriptionis stripped of HTML and whitespace.- Salary fields are annual figures where the site provides them. Hourly figures are in
salaryHourlyLowandsalaryHourlyHigh.
Track s1jobs.com over time with scheduled runs
Most of the value comes from running the same search again and comparing. Apify can run the Actor for you on a schedule and send the results wherever you need them.
1. Save your input as a task
Open the Actor, set your search and options, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.
2. Schedule the task
In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.
Watch how to schedule an Actor:
Or schedule a saved task:
Common schedules:
| Use case | Frequency | Cron expression |
|---|---|---|
| New job alerts | Daily | 0 6 * * * |
| Hiring trend monitoring | Weekly (Monday) | 0 6 * * 1 |
| Fast-moving job markets | Twice a day | 0 6,18 * * * |
3. Send the results to a spreadsheet
Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:
4. Compare runs
- New jobs:
jobIds that were not in the previous run. - Closed jobs:
jobIds that disappeared, or whoseexpiryDatehas passed. - Salary changes:
salaryLowandsalaryHighperjobId. - Hiring by employer: count of jobs per
companyover time.
FAQ
How many jobs can I get?
All jobs in your search, up to maxPages x 20 per URL and maxResults overall.
Why did I get few or no results?
Open your search URL in a browser first. If it shows no jobs there, the Actor finds none. The URL must start with https://www.s1jobs.com/jobs/?.
Is it fast?
The Actor waits half a second between pages and 0.3 seconds between detail requests, so large detail runs take a while. Leave fetchDetails off for speed.
Do I need a proxy or login?
No. There is no proxy or account setting.
Does s1jobs.com have an official API?
Not a public one that this Actor relies on. It reads the same JSON the site's own search uses.
Is scraping job listings legal?
Job ads are public. You are responsible for following the site's terms and data protection law, especially for any contact details.
Other job boards?
See Indeed Scraper, Naukri Scraper, Naukrigulf Jobs Scraper and We Work Remotely Jobs Scraper.
Cost
Pricing is shown on the Actor's Pricing tab. Platform usage is small because the Actor makes plain HTTP requests.
Related Actors
- SEEK Job Scraper: jobs from SEEK Australia.
- Indeed Scraper: Indeed job search.
- Naukri Scraper: jobs in India.
- Naukrigulf Jobs Scraper: jobs in the Gulf region.
- We Work Remotely Jobs Scraper: remote jobs.
Support
Found a problem or need a field added? Open an issue in the Issues tab and include the run ID and your input.
This Actor is not affiliated with or endorsed by s1jobs.com. All trademarks belong to their owners.