S1jobs.com Scraper
Pricing
from $2.50 / 1,000 results
S1jobs.com Scraper
[๐ฐ $2.5 / 1K] Extract every job on s1jobs.com, Scotland's largest job board. Search by keyword, town, sector, contract and salary, or paste ready-made links. Get title, salary, location, coordinates, employer, skills, full description and recruiter apply emails.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract every live vacancy from s1jobs.com, Scotland's largest job board โ job title, full advert text, salary band, contract type, employer, skills, map coordinates, and the advert's own apply route โ a recruiter email or the employer's application link. Search by keyword, town, sector, employer or salary from plain form fields, or paste s1jobs.com links and let the run do the rest. Built for Scottish recruitment agencies, UK labour-market analysts, job-aggregator and ATS teams, and lead-generation teams targeting actively hiring employers who need a clean, structured feed of Scottish vacancies without hand-crafting search URLs or paying an enrichment vendor to guess contact details.
Why This Scraper?
- Latitude and longitude on every job collected from a search, plus a UK postcode on every enriched one โ 600 out of 600 on both counts in a live test run. Plot Scottish vacancies on a map, run travel-time or radius analysis, roll up by postcode district, and join to census geographies immediately. No separate geocoding pass, no per-address geocoding bill.
- A working apply route on 599 of 600 jobs in a live test run โ either
applyEmail, the address the advertiser actually put on the listing (427 of 600), orapplyUrl, the employer's own application page on their careers site or ATS (172 of 600). Neither is a pattern guessed by a third-party enrichment service. - All 40 s1jobs sectors, each verified live โ Accountancy, Agriculture / Fishing / Forestry, Energy / Renewables, Tech / Digital / IT, Social Care / Social Services / Housing and 35 more. 74 filter values were tested against real result counts in total, with zero dead options.
- Up to 60 fields per job, including the complete advert text โ the whole job description, not a truncated preview: salary band, specialisms, skill tags, employer accreditations, the employer's own profile blurb, and the employer's internal job reference on roughly five adverts in six.
- Six role highlights the board itself flags โ apprenticeships, graduate-suitable roles, immediate start, public-sector roles, accredited employers, and listings that include a video.
- Five sort orders and eleven search radii โ order by newest, best match, highest salary, lowest salary, or closest first; search a single town exactly, or fan out in steps from 5 up to 50 miles around it.
- Verified duplicate-free output โ s1jobs republishes roughly 109 promoted listings on every page of results, and its own result pages overlap between pages. Duplicates are removed run-wide, so you never pay twice for the same vacancy. A 155-row test run returned 155 unique job IDs.
- Whole-board coverage of ~3,100+ live Scottish vacancies โ leave every field blank for a full sweep, or narrow by employer name, annual salary band, permanent/contract/temporary, full or part time, direct employer vs recruitment agency, and four working arrangements including home working.
- No URL-crafting needed, but pasted links still work โ mix s1jobs search pages and individual job pages in one list; pasted job links are always processed first so a broad search can never crowd them out of your result limit.
Use Cases
Recruitment & Staffing
- Track competitor agency postings across Glasgow, Edinburgh and Aberdeen day by day
- Build candidate-matching pipelines from full job descriptions and skill tags
- Spot which employers are hiring directly and which are going through agencies
- Monitor apprenticeship and graduate openings for early-careers placement desks
Labour-Market Research
- Measure hiring volume across all 40 sectors in Scotland over time
- Map vacancy density by council area, town, and coordinates
- Compare public-sector vs private-sector hiring using the public-sector flag
- Quantify the real spread of hybrid, remote, home-working and on-site roles
Salary Benchmarking
- Build sector-by-sector pay bands from advertised annual minimums and maximums
- Compare permanent vs contract vs temporary compensation for the same role titles
- Track how advertised pay for a given job title moves month over month
- Identify which sectors publish salary openly and which withhold it
Lead Generation
- Reach hiring managers using the apply email or application link published on the advert
- Build prospect lists of employers hiring in a target sector and radius
- Prioritise accredited employers and public-sector bodies as higher-value accounts
- Enrich CRM records with employer profile URLs, logos and descriptions
Job Aggregators & ATS Platforms
- Populate a Scotland-focused job board with structured, ready-to-index listings
- Feed vacancy data into an applicant tracking system with stable job IDs
- Run scheduled newest-first pulls to keep an aggregator index fresh
- Deduplicate reliably using the job ID that stays constant across pages
Getting Started
Simple: nursing jobs in Glasgow
{"searchKeyword": "nurse","location": "Glasgow","maxResults": 100}
Filtered: well-paid permanent tech and engineering roles near Edinburgh
{"location": "Edinburgh","distanceMiles": "20","sectors": ["Tech / Digital / IT", "Engineering / Technical"],"contractTypes": ["Permanent"],"jobTypes": ["Full"],"minSalary": 35000,"sortBy": "newest","maxResults": 500}
Advanced: hybrid public-sector energy roles around Aberdeen, highest paid first
{"searchKeyword": "project manager","location": "Aberdeen","distanceMiles": "30","sectors": ["Energy / Renewables"],"workingLocations": ["Hybrid working", "Home working"],"advertiserType": "Employer","roleFlags": ["is_public_sector"],"minSalary": 40000,"maxSalary": 80000,"sortBy": "salary","includeJobDetails": true,"maxResults": 1000}
Paste your own links: a browse page plus one specific vacancy
{"startUrls": ["https://www.s1jobs.com/jobs/glasgow/","https://www.s1jobs.com/job/field-officer-127131934"],"maxResults": 0}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchKeyword | string | "" | Word or phrase matched against job titles, employer names and descriptions, e.g. "HGV driver". Blank collects everything matching your filters. |
location | string | "" | Scottish town or city, e.g. "Glasgow", "Inverness". Blank searches all of Scotland. |
distanceMiles | string | "" | Search radius around the town: "0" (that town only) or "5" through "50" in 5-mile steps. Only applies when a town is set. |
startUrls | array | [] | Paste s1jobs.com links โ search/browse pages, individual job pages, or both mixed together. When set, the keyword, place and filters are ignored because each link carries its own. Search links return the full field set; single job pages carry a slightly smaller one, because s1jobs publishes expiryDate, county, workingLocation, durationMessage and the video flags only on its search pages. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
sectors | array | [] | Restrict to any of 40 sectors, e.g. "Healthcare / Pharmaceuticals". Picking several returns jobs from any of them. |
jobTypes | array | [] | "Full" or "Part". Empty includes both. |
contractTypes | array | [] | "Permanent", "Temporary", "Contract". Empty includes all. |
workingLocations | array | [] | "Onsite working", "Hybrid working", "Remote working", "Home working". Jobs that state no arrangement are excluded when you pick a value. |
advertiserType | string | "" | "Employer" for direct employers only, "Agency" for recruitment agencies only. |
companyName | string | "" | Restrict to one employer, spelled exactly as it appears on s1jobs. |
minSalary | integer | none | Minimum advertised annual salary in GBP, e.g. 30000. Jobs without a published salary are excluded. |
maxSalary | integer | none | Maximum advertised annual salary in GBP, e.g. 50000. Jobs without a published salary are excluded. |
roleFlags | array | [] | Any of apprenticeship, graduate, immediate_start, is_public_sector, has_accreditation, has_video. Picking several means a job must match all of them. |
Results
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | string | "newest" | "newest", "best", "salary" (highest first), "_salary" (lowest first), or "closest" (needs a town). |
includeJobDetails | boolean | true | Opens each vacancy's own page to add the UK postcode, the apply route (applyEmail or applyUrl), the employer's job reference, the employer description and accreditations. Costs no extra per job. If s1jobs is unusually slow, a job that has not answered within two and a half minutes simply keeps its standard information โ the job itself is never dropped. |
maxResults | integer | 100 | Total jobs to collect. Set to 0 to collect everything that matches (capped at 20,000 per run as a safety limit). |
Output
Every job is one flat row. Fields with no value are omitted from that row, so results stay compact. The example below shows the full shape; a real row carries either applyEmail or applyUrl depending on how that employer takes applications, never both.
{"jobId": "127131934","vacancyId": "1042288","jobUrl": "https://www.s1jobs.com/job/field-officer-127131934","jobTitle": "Field Officer","description": "We are looking for an experienced Field Officer to join our Glasgow team...","postedDate": "2026-07-24T09:41:03Z","closingDate": "2026-08-21T00:00:00Z","salaryText": "ยฃ32,000 - ยฃ36,000 per annum","salaryRate": "annual","salaryMin": 32000,"salaryMax": 36000,"salaryAnnualMin": 32000,"salaryAnnualMax": 36000,"contractType": "Permanent","jobType": "Full","workingHourPattern": "Regular working hours","workingLocation": "Hybrid working","location": "Glasgow, Glasgow City","city": "Glasgow","county": "Glasgow City","country": "Scotland","postcode": "G2 4JR","latitude": 55.8609,"longitude": -4.2514,"companyName": "Aberdeen City Council","companyUrl": "https://www.s1jobs.com/company/aberdeen-city-council","companyDescription": "One of Scotland's largest local authorities...","advertiserType": "Employer","coreSkills": ["Social Care / Social Services / Housing"],"primaryCoreSkill": "Social Care / Social Services / Housing","specialisms": ["Housing Support"],"skills": ["Case Management", "Safeguarding"],"applicationMethod": "email","applyEmail": "recruitment@example-employer.co.uk","applyUrl": "https://careers.example-employer.co.uk/vacancies/1188","jobReference": "ACC-2026-1188","isPublicSector": true,"requiresCv": true,"hasVideo": false,"scrapedAt": "2026-07-31T09:12:44Z"}
Core Job Fields
| Field | Type | Description |
|---|---|---|
jobId | string | Stable s1jobs identifier โ use this to deduplicate across runs |
vacancyId | string | Secondary vacancy identifier used by the board |
jobUrl | string | Direct link to the vacancy page |
jobTitle | string | Advertised job title |
description | string | Full advert text, not a truncated snippet |
postedDate | string | Publication date (ISO) |
firstLiveDate | string | Date the advert first went live (ISO) |
closingDate | string | Application closing date (ISO) |
expiryDate | string | Date the advert is removed from the board (ISO) |
durationMessage | string | Free-text duration note, e.g. a fixed-term length |
searchUrl | string | The s1jobs page this job was collected from |
scrapedAt | string | Timestamp the row was collected (ISO) |
Location & Coordinates
| Field | Type | Description |
|---|---|---|
location | string | Human-readable location label as shown on the listing |
city | string | Town or city name |
county | string | Council area |
district | string | District within the council area |
country | string | Always Scotland for board listings |
postcode | string | UK postcode (with full job details on) |
latitude | number | Decimal latitude, ready for mapping |
longitude | number | Decimal longitude, ready for mapping |
Salary
| Field | Type | Description |
|---|---|---|
salaryText | string | Salary exactly as advertised, e.g. ยฃ32,000 - ยฃ36,000 per annum |
salaryRate | string | Pay period, e.g. annual, hourly |
salaryMin | number | Lower bound at the advertised rate |
salaryMax | number | Upper bound at the advertised rate |
salaryAnnualMin | number | Lower bound normalised to an annual figure |
salaryAnnualMax | number | Upper bound normalised to an annual figure |
Contract & Hours
| Field | Type | Description |
|---|---|---|
contractType | string | Permanent, Temporary or Contract |
jobType | string | Full or Part time |
workingHourPattern | string | Working-hours pattern, e.g. Regular working hours, Shift work. Only a minority of employers publish it, and the share varies a lot by sector and sort order |
workingLocation | string | Onsite working, Hybrid working, Remote working or Home working |
Employer & Apply Contacts
| Field | Type | Description |
|---|---|---|
companyName | string | Employer or advertising agency name |
companyId | string | Employer identifier on s1jobs |
companyUrn | string | Employer reference used on the employer profile |
companyUrl | string | Link to the employer's s1jobs profile |
companyLogoUrl | string | Employer logo image URL |
companyDescription | string | Employer's own "about us" text |
companyAccreditations | array | Employer accreditations, e.g. Living Wage, Disability Confident |
advertiserType | string | Employer (direct) or Agency |
advertType | string | Advert product type used for the listing |
applicationMethod | string | How this advert takes applications: email or url |
applyEmail | string | Recruiter apply email as published on the advert, when applicationMethod is email |
applyUrl | string | The employer's own application page on their careers site or ATS, when applicationMethod is url |
jobReference | string | The employer's own internal job reference, published on roughly seven adverts in eight |
externalReference | string | Reference used by the source ATS or feed |
Classification & Skills
| Field | Type | Description |
|---|---|---|
coreSkills | array | Sectors the job belongs to, from the 40 s1jobs sectors |
primaryCoreSkill | string | The single main sector for the role |
specialisms | array | Sub-specialisms within the sector |
skills | array | Individual skill tags attached to the advert |
jobAccreditations | array | Accreditations attached to this specific vacancy |
publicSectorType | string | Kind of public body, when the role is public sector |
Role Flags & Media
| Field | Type | Description |
|---|---|---|
isApprenticeship | boolean | Advertised as an apprenticeship |
isGraduateSuitable | boolean | Marked suitable for graduates |
isImmediateStart | boolean | Immediate-start marker as published by s1jobs. The board does not currently populate this marker, so filter with the immediate_start role highlight instead of reading this field |
isPublicSector | boolean | Public-sector role |
requiresCv | boolean | A CV is required to apply |
hasAccreditation | boolean | Employer holds at least one accreditation |
hasVideo | boolean | Listing includes a video |
videoUrl | string | Link to the listing's video, when present |
isFeatured | boolean | Featured listing on the board |
isSponsored | boolean | Promoted listing |
Tips for Best Results
- Role highlights combine with AND, not OR. Ticking apprenticeship and graduate together returned just 3 jobs across the whole board. Pick one highlight at a time unless you deliberately want a razor-thin set.
immediate_startfilters correctly even though the matching output flag stays false. The board narrows the result set server-side but never sets the field, so use the role highlight to filter and ignoreisImmediateStartwhen analysing rows.- "Closest first" needs a town or city to measure from. Choose it without one and the run quietly switches to newest first and says so in the log โ set
locationto get the ordering you actually wanted. - For scheduled runs, pair
"sortBy": "newest"with a smallmaxResults. s1jobs has no "posted in the last X hours" filter, so newest-first with a cap of 50โ100 is the cheapest way to pick up only fresh vacancies on a daily schedule. maxResultsis a floor, never a ceiling. Results arrive 20 at a time and the final page is kept whole, so a cap of 30 gives you 40 rows. You will never receive fewer than you asked for because of trimming.- Salary filters silently drop every job without a published salary. A large share of Scottish adverts withhold pay, so run once without
minSalary/maxSalaryto see how much of your target market advertises it before you filter. - Keep
includeJobDetailson unless you are in a hurry. It is what adds the apply route, the UK postcode and the employer job reference โ and it does not change what you are charged, because billing is per job either way. - Build lead lists from
applyEmailandapplyUrltogether. About seven adverts in ten publish a recruiter email and the other three send applicants to the employer's own site, so reading onlyapplyEmailquietly drops a third of your reachable list. The split shifts with the sector you filter on.
Pricing
From $2.50 per 1,000 results โ cheaper than the alternatives on the store, with real search fields instead of hand-built URLs. Bronze, Silver and Gold subscribers pay progressively less; the table shows the total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.30 | $0.28 | $0.27 | $0.25 |
| 1,000 | $3.00 | $2.80 | $2.65 | $2.50 |
| 10,000 | $30.00 | $28.00 | $26.50 | $25.00 |
| 100,000 | $300.00 | $280.00 | $265.00 | $250.00 |
A "result" is one unique job row in your dataset โ duplicates the board repeats across pages are removed before you are billed. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger your own APIs when a run finishes
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor is built for legitimate recruitment research, labour-market analysis, salary benchmarking and job aggregation. You are responsible for complying with applicable laws, including UK GDPR, and with s1jobs.com's Terms of Service. Contact details published on job adverts are provided by employers for applications and recruitment enquiries โ do not use them for spam, harassment, or unsolicited bulk marketing, and honour any opt-out request you receive.