Doing Good Leeds Scraper avatar

Doing Good Leeds Scraper

Pricing

from $1.99 / 1,000 result scrapeds

Go to Apify Store
Doing Good Leeds Scraper

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

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

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 entityTypes selector
  • 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 filterpostedWithinHours for 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?

FieldDescription
typeEntity type: job, volunteer, event, or training
cptWordPress custom post type slug
jobIdUnique WordPress post ID
titleListing title
descriptionFull description in HTML
descriptionTextPlain-text version of the description
companyNameEmployer or organisation name
companyWebsiteCompany website URL (when listed)
locationSpecific location (e.g., "Woodhouse Community Centre", "Leeds")
salarySalary text (e.g., "£28,266 FTE", "£13.00 Per hour")
categoriesCategory and tag taxonomy terms
employmentTypesEmployment type terms (e.g., "Full Time", "Part Time")
contractTypePrimary employment type
postedDateISO publication date
modifiedDateISO last-modified date
applyEmailApplication email address
jobUrlDirect link to the listing on doinggoodleeds.org.uk
wpJsonUrlWP-JSON API endpoint for this item

How to scrape Doing Good Leeds

  1. Go to Doing Good Leeds Scraper on Apify Store and click Try for free
  2. Choose entity types — select one or more from Paid Jobs, Volunteering, Events, and Training Courses
  3. Set a result limit — start with 100 for a quick test (the site has ~178 total items)
  4. Configure freshness (optional) — set postedWithinHours to 24 for only the last day's listings
  5. Run the scraper — click Start and wait for results
  6. Export your data — download as JSON, CSV, or Excel, or access via the Apify API

Using the API (Python)

from apify_client import ApifyClient
client = 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

ParameterTypeRequiredDefaultDescription
startUrlsarrayNoWP-JSON endpoints, browser listing URLs, or single detail URLs from doinggoodleeds.org.uk
entityTypesarrayNo["job-listings"]Entity types to scrape: job-listings, volunteers, event, training-course
enrichTaxonomiesbooleanNotrueEmbed taxonomy names (categories, employment types) via WP-JSON _embed
postedWithinHoursintegerNoOnly return items posted in the last N hours (24 = last day)
maxItemsintegerNo1000Maximum items to return
maxConcurrencyintegerNo5Parallel WP-JSON page-fetch limit
minConcurrencyintegerNo1Minimum parallel requests
maxRequestRetriesintegerNo5Retries before a failed request is abandoned
proxyobjectNoProxy 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?

EventPrice per eventPrice 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.

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.

Explore more job and data scrapers from ParseBird:

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.