Doing Good Leeds Jobs Scraper - Charity Vacancies avatar

Doing Good Leeds Jobs Scraper - Charity Vacancies

Pricing

from $1.60 / 1,000 results

Go to Apify Store
Doing Good Leeds Jobs Scraper - Charity Vacancies

Doing Good Leeds Jobs Scraper - Charity Vacancies

Leeds and West Yorkshire charity and third-sector jobs from the Doing Good Leeds board, now run by Voluntary Action Leeds (val.org.uk): title, organization, location, job type, salary, ISO posting date, closing date, logo and vacancy URL. Keyword and postcode filters. No login.

Pricing

from $1.60 / 1,000 results

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Doing Good Leeds Jobs Scraper - Charity and Third-Sector Vacancies

Collect public charity, nonprofit, community and third-sector vacancies in Leeds and West Yorkshire as a structured dataset: job title, organization, location, employment type, salary, posting date, closing date, vacancy URL and logo. No login, no API key. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

Where the data comes from

The Doing Good Leeds jobs board is now run by Voluntary Action Leeds (VAL). https://doinggoodleeds.org.uk/search-jobs/ redirects to val.org.uk/jobs/, and the Actor reads that board:

  • The vacancy list comes from the board's own job-listing endpoint (a WP Job Manager site), 20 jobs per request, page after page until your limit is reached or the list ends.
  • Salary and closing date come from each vacancy's own page, which the Actor opens for every job it returns. They are not on the list itself.

Old Doing Good Leeds search links still work as input, and so do VAL links.

What a run costs

Pay per event: a small start event per run (about $0.00005) and one result event per vacancy saved. A search that finds nothing ends successfully with zero rows and charges no results. Apify platform usage is shown separately; a default run of three jobs uses a few seconds of 512 MB.

Output

One row per vacancy. Real row from a run on 24 October 2026:

{
"title": "Economic Inclusion Services Manager",
"organization": "Leeds Mind",
"location": "Leeds LS18 4LB",
"employment_type": "Full Time",
"salary_text": "£44023",
"added_text": "2026-10-22",
"closing_text": "6th November 2026",
"url": "https://val.org.uk/job/leeds-mind-leeds-economic-inclusion-services-manager/",
"organization_logo": "https://val.org.uk/wp-content/uploads/job-manager-uploads/company_logo/2026/09/Leeds_Mind_Logo_stacked_RGB-150x150.jpg",
"search_url": "https://doinggoodleeds.org.uk/search-jobs/",
"source": "Doing Good Leeds",
"scraped_at": "2026-10-24T16:34:39.501657+00:00"
}
FieldWhat it holds
titleJob title as listed
organizationHiring charity, community group or organization
locationLocation as the employer wrote it (a town, a postcode or a description)
employment_typeFull Time, Part Time, Temporary and so on
salary_textSalary as written on the vacancy page, for example £32,136-36,000 FTE
added_textPosting date in ISO format (YYYY-MM-DD)
closing_textClosing date as written on the vacancy page, for example 1st November 2026
urlThe vacancy page on val.org.uk
organization_logoLogo image, when the employer uploaded one
search_urlThe input URL that produced the row
sourceAlways Doing Good Leeds
scraped_atUTC time of collection

Changed in build 1.0.4: added_text used to hold display text from the old Doing Good Leeds cards (such as 11 June, without a year). It now holds the ISO posting date, so you can sort and compare it directly. url now points to val.org.uk. Field names did not change.

salary_text and closing_text stay as the employer wrote them; the Actor does not turn them into numbers or dates, because many vacancies give ranges, hourly rates or "FTE" notes. They are empty when the vacancy page does not state them or could not be read.

Input

{
"searchUrls": ["https://doinggoodleeds.org.uk/search-jobs/"],
"maxResults": 3
}
  • searchUrls: one or more search links, up to 20 per run. The default link returns the newest vacancies. To filter, add the board's own search fields to the link, for example https://val.org.uk/jobs/?search_keywords=youth or https://val.org.uk/jobs/?search_keywords=manager&search_location=LS11. The Actor sends the link's query string to the board's search as it is.
  • maxResults: vacancies saved per link, 1 to 100 (default 3). A vacancy found by two links in one run is saved once.

For AI agents

Copy this input, change the keyword, and read the rows from the default dataset:

{"searchUrls": ["https://val.org.uk/jobs/?search_keywords=support%20worker"], "maxResults": 20}

No credentials are needed. An empty dataset means the board has no matching vacancy right now.

Use cases

  • 📬 Daily job alerts: schedule a run each morning, keep the URLs you have seen, and send only new vacancies to email, Slack or Telegram.
  • 🗂️ Charity job aggregation: add Leeds third-sector vacancies to a wider jobs feed, with the vacancy URL as the key.
  • 📊 Hiring signals: track which local organizations recruit, for which roles, and at what salary, for sector research or funding reports.
  • 🧾 Recruitment operations: pull current vacancies into a sheet and filter by closing date before a person reviews them.

Run through the API

curl -X POST \
"https://api.apify.com/v2/acts/benthepythondev~doinggoodleeds-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "content-type: application/json" \
-d '{"searchUrls":["https://val.org.uk/jobs/?search_keywords=youth"],"maxResults":10}'

Reliability

Some Apify addresses get HTTP 403 from val.org.uk. The Actor asks directly first and moves to a fresh Apify datacenter proxy address after a refusal, up to four tries per request. A vacancy whose page cannot be read is still saved, with an empty salary and closing date.

Limitations

  • Only vacancies currently listed on the VAL board; closed jobs are gone from it.
  • At most 100 vacancies per search link per run (the board usually lists a few hundred or fewer in total).
  • Salary and closing date are free text from the vacancy page.
  • A vacancy missing from a later run may have closed, been removed, or fallen outside your filter; the Actor cannot tell which.

FAQ

Does it need a Doing Good Leeds or VAL account? No. It reads public pages.

Why do the URLs point to val.org.uk? Doing Good Leeds' jobs board moved to Voluntary Action Leeds in 2026; the old search page redirects there.

Is added_text still free text? No. Since build 1.0.4 it is the ISO posting date (2026-10-22).

Does it include the full job description? No, it returns the fields above. Open url for the description and how to apply.

Can I filter by keyword or postcode? Yes, with search_keywords and search_location in the search link, as in the input example.

Can I run it every day? Yes. Save the input as a task, schedule it, and deduplicate by url.

Is it legal? It collects public job adverts that employers published to attract applicants. Use the data for job discovery, aggregation or research, keep the source link, check details on the vacancy page before acting, and follow UK GDPR and the site's terms. Do not use it for unsolicited bulk messaging.

What should a support issue include? The run ID, the search link, and the vacancy that looks wrong. Never post your API token.

You might also like

If the data is useful to you, a short honest review in the Store helps others find it.

Keywords: Doing Good Leeds jobs, Voluntary Action Leeds jobs, VAL jobs scraper, Leeds charity jobs, Leeds third sector jobs, Yorkshire nonprofit vacancies, charity jobs API, UK charity jobs scraper, voluntary sector jobs Leeds, community jobs Leeds, nonprofit job feed, charity vacancies CSV, Leeds jobs dataset, third sector hiring data.