VAS Sheffield Jobs Scraper avatar

VAS Sheffield Jobs Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
VAS Sheffield Jobs Scraper

VAS Sheffield Jobs Scraper

Scrape voluntary-sector vacancies from jobs.vas.org.uk (Voluntary Action Sheffield) via WP-JSON. Title, sector taxonomy, posted date, external apply URL extracted from listing body, full description. ~25 live vacancies in one request. JSON or CSV out, billed per result

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5.6 hours

Issues response

8 days ago

Last modified

Share

Scrape voluntary-sector vacancies from jobs.vas.org.uk — Voluntary Action Sheffield's dedicated jobs board. Pulls every live vacancy via the public WP-JSON REST API: title, sector taxonomy, posted date, full description HTML, featured image, and the external apply URL extracted from the listing body. JSON or CSV out, no compute charge per run, just per result.

How it works

How VAS Sheffield Jobs Scraper works

✨ Why use this scraper?

Building a Sheffield / South Yorkshire voluntary-sector dashboard? Tracking nonprofit hiring across charities, faith-based orgs, and community groups in the city? Need a clean dataset without manual scrolling?

  • 🎯 Three starting points. The /current-vacancies/ page, a direct /vacancies/<slug>/ URL, or the WP-JSON endpoint — all auto-classified.
  • WP-JSON REST API as the data source. One fetch returns every active vacancy (~25 live at any time).
  • 🏷️ Sector taxonomy inline. Administration, Community Development, Fundraising, Project Work, etc. embedded via WP-JSON _embed — no extra HTTP calls.
  • 📧 External apply URL captured. VAS posts often link out to the org's own ATS / vacancy page — the body's first outbound link is extracted as externalApplyUrl.
  • 🇬🇧 Sheffield-specific. Voluntary Action Sheffield is the city's CVS — every vacancy is local to Sheffield / South Yorkshire.
  • 📤 Clean exports. One row per vacancy, all fields inline. JSON + CSV exported automatically.

🎯 Use cases

TeamWhat they build
Sheffield CVS / regional CVS networkCross-region nonprofit recruitment comparisons
Voluntary sector recruitersDaily new-vacancy feeds across the city
Workforce strategy / fundersSector-by-sector hiring trends in Sheffield voluntary orgs
ResearchersSheffield third-sector labour-market datasets
Job aggregatorsExternal apply URLs (typically charity websites, JotForm, charity ATS) for redirect-and-track

📥 Supported inputs

URL patternBehaviour
https://jobs.vas.org.uk/current-vacancies/Full listing — scrapes every live vacancy
https://jobs.vas.org.uk/vacancies/<slug>/Single vacancy — translates to slug-filtered WP-JSON query
https://jobs.vas.org.uk/wp-json/wp/v2/vacanciesWP-JSON endpoint — pass-through
https://jobs.vas.org.uk/wp-json/wp/v2/vacancies/<id>WP-JSON single record — translates to ?include=<id>

Leave startUrls empty to scrape every live vacancy.

Not supported: filtering by sector via URL query string; hosts outside jobs.vas.org.uk.

🔄 How it works

  1. Classify each startUrl and translate it to the canonical /wp-json/wp/v2/vacancies shape.
  2. Fetch the WP-JSON endpoint — typically just 1 request, since VAS has ~25 vacancies (fits in one page of 100).
  3. Parse each vacancy item — title, content HTML, sector taxonomy, featured-media URL, author, dates.
  4. Extract the apply target — first outbound mailto:applyEmail, else first outbound URL → externalApplyUrl.
  5. Push one normalised row per vacancy to the dataset.

⚙️ Input parameters

ParameterTypeDefaultDescription
startUrlsarray["https://jobs.vas.org.uk/current-vacancies/"]Browser URLs, single-vacancy URLs, or WP-JSON endpoints. Empty = scrape everything.
enrichTaxonomiesbooleantrueWhen true, embeds sector term names + featured image via WP-JSON _embed. Zero extra HTTP cost.
followExternalPagesbooleanfalseWhen true, follows a job's external apply page (charity microsites etc.) to fill any salary / closingDate / contractType / hours the VAS listing didn't state. Best-effort and slower (one extra request per applicable job); skips PDFs and JavaScript-only boards like Workday.
postedWithinHoursinteger(none)Only return rows posted in the last N hours (24 = last day, 72 = last 3 days). Empty/0 = all. Ideal for daily monitoring runs that only want fresh postings.
maxItemsinteger1000Hard cap on rows pushed (~25 live).
maxConcurrency / minConcurrencyinteger5 / 1Parallel WP-JSON page-fetch limits.
maxRequestRetriesinteger5Retries before a failed request is given up.
proxyobjectNo proxySite does not anti-bot — proxy optional.

📊 Output overview

Each scraped vacancy is one single dataset row of type: "job". Row count equals vacancy count exactly.

📦 Output sample

Structured fields (companyName, salary, closingDate, location, contractType, hours, employmentTypes) are mined from the listing body and the employer's logo file — populated when the listing states them, and null when it genuinely doesn't.

{
"type": "job",
"source": "jobs.vas.org.uk",
"jobId": "2994",
"slug": "office-manager",
"jobUrl": "https://jobs.vas.org.uk/vacancies/office-manager/",
"wpJsonUrl": "https://jobs.vas.org.uk/wp-json/wp/v2/vacancies/2994",
"title": "Office Manager",
"descriptionText": "RAW People is recruiting an Office Manager. Salary: £26,277.50 – £30,000 per annum …",
"companyName": "Raw People",
"companyWebsite": null,
"companyDomain": null,
"location": "Rotherham Town Centre",
"remote": false,
"salary": {
"currency": "GBP",
"min": 26277.5,
"max": 30000,
"raw": "£26,277.50 – £30,000 per annum (depending on experience)",
"unit": "year"
},
"salaryRaw": "£26,277.50 – £30,000 per annum (depending on experience)",
"sectors": ["Mental Health", "Administration"],
"categories": ["Mental Health", "Administration"],
"employmentTypes": ["Full-time"],
"contractType": null,
"hours": "37.5 hours per week",
"postedDate": "2026-06-05T09:00:00Z",
"closingDate": "2026-06-30",
"closingDateText": "Closing Date: Tuesday 30th June 2026 at 12pm",
"modifiedDate": "2026-06-05T09:00:00Z",
"applyType": "external",
"applyUrl": "https://jobs.vas.org.uk/vacancies/office-manager/",
"applyEmail": null,
"externalApplyUrl": null,
"featuredImageUrl": "https://jobs.vas.org.uk/wp-content/uploads/2026/06/raw-people-logo.jpg",
"authorId": 1,
"authorName": null,
"scrapedAt": "2026-06-11T09:34:00.000Z"
}

🗂 Key output fields

GroupFields
Identifierstype, source, jobId, slug, jobUrl, wpJsonUrl, scrapedAt
Roletitle, description (HTML), descriptionText (plain)
DatespostedDate (ISO), closingDate (ISO, when stated), closingDateText (raw phrase), modifiedDate (ISO)
EmployercompanyName (mined from the employer's logo file — ~3 in 4 jobs), companyWebsite / companyDomain (from an outbound apply link, when present)
Compensationsalary ({ currency, min, max, raw, unit }), salaryRaw
Locationlocation (street/area when the listing states it, else Sheffield, South Yorkshire), remote
Classificationsectors[], categories[] (mirror of sectors), employmentTypes[], contractType, hours
Apply flowapplyType (email / external / internal), applyUrl, applyEmail, externalApplyUrl
WordPress metaauthorId, authorName, featuredImageUrl

❓ FAQ

Where do companyName, salary, closingDate, etc. come from? VAS Sheffield's WP custom post type is plain — it carries no structured job meta (acf is empty on every record). So the actor mines them from what each listing actually publishes: the org name from the employer's logo filename, and salary / closing date / contract / hours / location from the labelled text employers paste into the description body. These are best-effort and high-precision — populated when the listing states them, null otherwise (no noisy guesses).

Why are some of these fields still null on certain jobs? Because that listing genuinely doesn't state them. Smaller charities often post a few paragraphs of prose with no salary or closing date, and a generic image instead of a logo. The actor never fabricates a value — a null means the source didn't provide it.

Can I get the full job spec? The full description / descriptionText is always included. For anything beyond what the listing states, the externalApplyUrl typically links to a charity's vacancy page or a downloadable PDF with the complete spec — and enabling followExternalPages will automatically pull a missing salary / closing date / contract / hours from that page when it's a readable web page.

Can I scrape private pages or applicant data? No. Only the public WP-JSON endpoint.

How do I limit results? Set maxItems. VAS rarely has more than 25 live vacancies, so maxItems: 100 covers everything safely.

💬 Support

🛠 Additional services

  • Custom output shape, additional fields, or one-off datasets: muhamed.didovic@gmail.com
  • Similar scrapers for other CVS / volunteer hubs (Doing Good Leeds, VA Rotherham, York CVS, Barnsley CVS, BCVS): drop an email.
  • For API access (no Apify fee, just usage): muhamed.didovic@gmail.com

🔎 Explore more scrapers

See other scrapers at memo23's Apify profile — covering job boards, real estate, social media, and more.


⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Voluntary Action Sheffield (VAS), jobs.vas.org.uk, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only the publicly available WP-JSON REST endpoint and public vacancy pages on jobs.vas.org.uk — no authenticated endpoints, recruiter-only features, or content behind a login. Users are responsible for ensuring their use complies with jobs.vas.org.uk's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.


SEO Keywords

vas sheffield scraper, scrape jobs.vas.org.uk, voluntary action sheffield jobs api, sheffield voluntary sector jobs scraper, sheffield charity jobs scraper, south yorkshire charity recruitment data, sheffield third sector jobs api, Apify vas sheffield, sheffield nonprofit jobs scraper, sheffield community sector jobs, wp-json scraper, voluntary sector hiring trends, sheffield volunteer hub api, charityjob alternative scraper, doing good leeds alternative scraper, barnsleycvs alternative scraper, va rotherham alternative scraper, uk cvs jobs scraper, voluntary sector recruitment data uk