Doing Good Leeds Scraper
Pricing
from $1.99 / 1,000 result scrapeds
Doing Good Leeds Scraper
Scrape paid jobs, volunteering, events, and training courses from doinggoodleeds.org.uk via WP-JSON. Four entity types, ~178 items total. Title, employer, location, salary, apply email/URL, full description HTML. Export as JSON, CSV, Excel.
Pricing
from $1.99 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Doing Good Leeds Scraper — Charity Jobs, Volunteering, Events & Training Data
Scrape Doing Good Leeds — Leeds' voluntary-sector hub run by Voluntary Action Leeds. Extract paid jobs, volunteering opportunities, community events, and training courses via the public WP-JSON REST API. Export as JSON, CSV, or Excel.
| Four entity types in one actor — paid jobs, volunteering, events, and training courses (~178 items total). Get title, employer, specific location, salary, apply email, taxonomy tags, and full description per row, ready for analysis or integration. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/doinggoodleeds-scraper — scrapes doinggoodleeds.org.uk for charity jobs, volunteering, events, and training courses via WP-JSON. $1.99/1000 results. Call via ApifyClient: client.actor("parsebird/doinggoodleeds-scraper").call(run_input={"entityTypes": ["job-listings"], "maxItems": 100}). Inputs: startUrls (array, optional — WP-JSON endpoints or detail URLs), entityTypes (array, default ["job-listings"], values: job-listings/volunteers/event/training-course), enrichTaxonomies (boolean, default true), postedWithinHours (integer, optional — freshness filter), maxItems (integer, default 1000). Output fields: type, cpt, jobId, slug, jobUrl, title, description, descriptionText, companyName, companyWebsite, location, salary, categories[], employmentTypes[], contractType, filled, status, postedDate, modifiedDate, applyEmail, scrapedAt. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
What does Doing Good Leeds Scraper do?
Doing Good Leeds Scraper is an Apify Actor that extracts structured data from doinggoodleeds.org.uk — the central hub for voluntary, community, and social enterprise sector listings in Leeds, operated by Voluntary Action Leeds (VAL).
The site uses WordPress with WP Job Manager and exposes four custom post type (CPT) collections through its WP-JSON REST API:
- 🏢 Paid Jobs (
job-listings) — charity and nonprofit job vacancies in Leeds (~31 active) - 🤝 Volunteering (
volunteers) — volunteer opportunity profiles (~23 active) - 📅 Events (
event) — community events, workshops, and networking sessions (~34 active) - 📚 Training Courses (
training-course) — professional development and training (~90 active)
Think of it as a Doing Good Leeds API alternative — no official API exists for structured data export, but this scraper delivers clean, normalized data at scale.
Key features:
- 🎯 Four entity types in one run — pick any combination via the
entityTypesselector - ⚡ WP-JSON REST API — fast, lightweight HTTP requests with no browser overhead
- 🏷️ Taxonomy enrichment — embed category and employment type term names via
_embed - 📄 Detail page scraping — fetches each listing's detail page for accurate company name, description, location, and salary
- 📧 Apply flow captured — application email extracted from each listing
- ⏰ Freshness filter —
postedWithinHoursfor daily monitoring runs that only want recent postings - 🌐 Flexible input — accept WP-JSON endpoints, browser listing URLs, or single detail page URLs
- 📤 Clean exports — JSON, CSV, or Excel via Apify integrations
What data can you extract from Doing Good Leeds?
| Field | Description |
|---|---|
type | Entity type: job, volunteer, event, or training |
cpt | WordPress custom post type slug |
jobId | Unique WordPress post ID |
title | Listing title |
description | Full description in HTML |
descriptionText | Plain-text version of the description |
companyName | Employer or organisation name |
companyWebsite | Company website URL (when listed) |
location | Specific location (e.g., "Woodhouse Community Centre", "Leeds") |
salary | Salary text (e.g., "£28,266 FTE", "£13.00 Per hour") |
categories | Category and tag taxonomy terms |
employmentTypes | Employment type terms (e.g., "Full Time", "Part Time") |
contractType | Primary employment type |
postedDate | ISO publication date |
modifiedDate | ISO last-modified date |
applyEmail | Application email address |
jobUrl | Direct link to the listing on doinggoodleeds.org.uk |
wpJsonUrl | WP-JSON API endpoint for this item |
How to scrape Doing Good Leeds
- Go to Doing Good Leeds Scraper on Apify Store and click Try for free
- Choose entity types — select one or more from Paid Jobs, Volunteering, Events, and Training Courses
- Set a result limit — start with 100 for a quick test (the site has ~178 total items)
- Configure freshness (optional) — set
postedWithinHoursto 24 for only the last day's listings - Run the scraper — click Start and wait for results
- Export your data — download as JSON, CSV, or Excel, or access via the Apify API
Using the API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/doinggoodleeds-scraper").call(run_input={"entityTypes": ["job-listings", "volunteers"],"maxItems": 100,"enrichTaxonomies": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['type']}: {item['title']} — {item['location']}")
Using the API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('parsebird/doinggoodleeds-scraper').call({entityTypes: ['job-listings', 'event'],maxItems: 50,enrichTaxonomies: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(`${item.type}: ${item.title} — ${item.location}`));
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | No | — | WP-JSON endpoints, browser listing URLs, or single detail URLs from doinggoodleeds.org.uk |
entityTypes | array | No | ["job-listings"] | Entity types to scrape: job-listings, volunteers, event, training-course |
enrichTaxonomies | boolean | No | true | Embed taxonomy names (categories, employment types) via WP-JSON _embed |
postedWithinHours | integer | No | — | Only return items posted in the last N hours (24 = last day) |
maxItems | integer | No | 1000 | Maximum items to return |
maxConcurrency | integer | No | 5 | Parallel WP-JSON page-fetch limit |
minConcurrency | integer | No | 1 | Minimum parallel requests |
maxRequestRetries | integer | No | 5 | Retries before a failed request is abandoned |
proxy | object | No | — | Proxy settings (not required — Cloudflare is passive) |
Output example
[{"type": "job","cpt": "job-listings","source": "doinggoodleeds.org.uk","jobId": "109955","slug": "community-activities-co-ordinator","jobUrl": "https://doinggoodleeds.org.uk/job/community-activities-co-ordinator/","wpJsonUrl": "https://doinggoodleeds.org.uk/wp-json/wp/v2/job-listings/109955","title": "Community Activities Co-Ordinator","description": "<p>Neighbourhood Action is a Neighbourhood Network Scheme providing support…</p>","descriptionText": "Neighbourhood Action is a Neighbourhood Network Scheme providing support…","companyName": "Neighbourhood Action","companyWebsite": null,"location": "Neighbourhood Action in Farnley","remote": false,"salary": "£13.00 Per hour","categories": [],"employmentTypes": ["Part Time"],"contractType": "Part Time","filled": false,"status": "publish","postedDate": "2026-02-23T11:46:28Z","modifiedDate": "2026-06-08T11:46:51Z","applyType": "email","applyUrl": "https://doinggoodleeds.org.uk/job/community-activities-co-ordinator/","applyEmail": "neighbourhoodaction@hotmail.com","authorId": 2452,"authorName": "Karen Buckland","scrapedAt": "2026-06-14T12:00:00.000Z"},{"type": "job","cpt": "job-listings","source": "doinggoodleeds.org.uk","jobId": "111249","slug": "volunteer-coordinator","jobUrl": "https://doinggoodleeds.org.uk/job/volunteer-coordinator/","wpJsonUrl": "https://doinggoodleeds.org.uk/wp-json/wp/v2/job-listings/111249","title": "Volunteer Coordinator","description": "<p>Oblong is a lively and social organisation with a passion for making life better…</p>","descriptionText": "Oblong is a lively and social organisation with a passion for making life better…","companyName": "Oblong Ltd","companyWebsite": null,"location": "Woodhouse Community Centre","remote": false,"salary": "18,180.65","categories": ["Support"],"employmentTypes": ["Part Time"],"contractType": "Part Time","filled": false,"status": "publish","postedDate": "2026-05-07T09:48:22Z","modifiedDate": "2026-05-07T09:48:22Z","applyType": "email","applyUrl": "https://doinggoodleeds.org.uk/job/volunteer-coordinator/","applyEmail": "jobs@oblong.org.uk","authorId": 8770,"authorName": "Human Resources","scrapedAt": "2026-06-14T12:00:00.000Z"}]
Download results in JSON, CSV, Excel, or access programmatically via the Apify API. Connect to Google Sheets, Slack, Zapier, Make, and more integrations.
Use cases
- 🏢 Voluntary-sector recruitment — monitor charity and nonprofit job postings in Leeds for daily hiring feeds
- 🤝 Volunteer coordination — map volunteering opportunities for student placement programmes or corporate volunteering
- 📅 Community event aggregation — pull events into a unified Leeds community calendar
- 📚 Training intelligence — track what courses charities are running and funding in the Leeds third sector
- 📊 Workforce research — Leeds third-sector pay benchmarks and employment type analysis
- 🔬 Academic research — build civil-society datasets combining jobs, volunteers, events, and training data
How much does it cost to scrape Doing Good Leeds?
| Event | Price per event | Price per 1,000 |
|---|---|---|
result-scraped | $0.00199 | $1.99 |
Each item pushed to the dataset counts as one event. The site has approximately 178 total items across all four entity types, so a full scrape of everything costs about $0.35.
Apify platform usage (compute and bandwidth) is billed separately at standard Apify pricing. This actor uses minimal resources — typically under $0.01 per full run.
Can I try it for free? Yes — Apify's free plan includes $5 of monthly usage, enough for hundreds of runs of this actor.
You can also set a spending limit on each run to cap costs. Use Apify scheduling to automate daily or weekly monitoring.
Is it legal to scrape Doing Good Leeds?
This actor accesses only publicly available data from the WP-JSON REST API on doinggoodleeds.org.uk. No authentication, login, or private endpoints are used. The data extracted is the same information visible to any visitor browsing the website.
Web scraping of publicly available data is generally permitted under applicable law. For detailed guidance, see Apify's blog post on web scraping legality. Users are responsible for ensuring their use complies with doinggoodleeds.org.uk's Terms of Service and applicable data-protection regulations (GDPR, CCPA, etc.).
This actor is not affiliated with, endorsed by, or sponsored by Doing Good Leeds, Voluntary Action Leeds (VAL), or any of their subsidiaries.
Related scrapers
Explore more job and data scrapers from ParseBird:
- Reed.co.uk Jobs Scraper — scrape UK job listings from Reed.co.uk
- Hiring.cafe Jobs Scraper — search across 20+ filters for global tech jobs
- BuiltIn Jobs Scraper — US tech job listings from BuiltIn.com
- Bayt Jobs Scraper — Middle East job listings from Bayt.com
- HelloWork Jobs Scraper — French job listings from HelloWork.com
- Data Deduplicator — deduplicate any Apify dataset
- HTTP Request Actor — make HTTP requests from the Apify platform
FAQ
Can I scrape all four entity types in one run?
Yes. Set entityTypes to ["job-listings", "volunteers", "event", "training-course"] and leave startUrls empty. Each result row has a cpt field indicating which collection it came from.
How fresh is the data?
Data is scraped live from the WP-JSON API on each run. Use the postedWithinHours parameter to filter for only recently posted items — set to 24 for the last day, 72 for the last three days.
Why are some fields null for non-job entities?
Fields like companyName, salary, and applyEmail are specific to job listings. Volunteering profiles, events, and training courses use different page structures and may not have these fields populated.
Where does the company name come from? The company name is extracted from the detail page subtitle on doinggoodleeds.org.uk. Most job listings include the employer name there.
Do I need a proxy? No. The WP-JSON API passes through Cloudflare with only a passive cookie — standard HTTP requests work without a proxy.
Can I schedule recurring runs?
Yes. Use Apify scheduling to run daily, weekly, or at any interval. Combine with postedWithinHours for efficient monitoring that only fetches new listings.
Can I access the data via API? Yes. Use the Apify API to trigger runs and retrieve results programmatically. See the Python and JavaScript examples above.
How do I limit costs?
Set maxItems to control how many results are returned. Set a spending limit on your run to cap total charges. The entire site has only ~178 items, so costs are minimal.
Can I scrape a single job or event by URL?
Yes. Paste a detail URL like https://doinggoodleeds.org.uk/job/young-adults-worker-3/ into the startUrls field. The actor will resolve the slug and fetch that single item.
What output formats are available? JSON, CSV, Excel, HTML, XML, and RSS. Download from the Apify Console or access via the API. Connect to Google Sheets, Slack, Zapier, Make, and more.