CharityJob Scraper avatar

CharityJob Scraper

Pricing

from $0.70 / 1,000 job-details

Go to Apify Store
CharityJob Scraper

CharityJob Scraper

Scrape UK charity and non-profit jobs from CharityJob. Search by keyword, location and radius, filter by cause, contract type, workplace and salary, and get the employer, salary range, cause categories, posting and closing dates and the full advert. Export to CSV, JSON or Excel.

Pricing

from $0.70 / 1,000 job-details

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

12 days ago

Last modified

Share

What is CharityJob Scraper?

CharityJob is where UK charities advertise, and CharityJob Scraper gets you those vacancies as data you can filter by cause. You pick from the site's 21 causes, from Animal and Environment to Mental Health and Youth and Children, add a keyword and a town or postcode, and each job arrives with its full advert, its salary as numbers and its closing date.

If you're building a sector job board, a salary benchmark for non-profit roles or a daily alert for candidates, this is the data underneath it.

Why this scraper:

  • The salary is parsed. You get a from figure, a to figure, the period and the currency, with the charity's own wording kept beside them. That was filled on all 40 rows of our administrator test run.
  • Closing dates are in the row, so a role can leave your board on the day it shuts.
  • It's fast for the size of the site. 1,000 jobs with full adverts took 54 to 68 seconds on 2 October 2026.
  • Overlapping searches don't double your bill. A job that several of your searches return is written and charged once.
  • $1.00 per 1,000 jobs with the advert on the Free plan, or $0.25 per 1,000 if the listing fields are enough.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 32 of 32 live checks on its inputs and filters passed on 6 October 2026
  • 6 searches run on 7 October 2026 across Manchester, Glasgow, Bristol, Cardiff and London: 72 jobs, none empty
  • 8 of 8 sampled adverts matched CharityJob's own pages, text and link
  • 87 charges checked, none mismatched

More that it does:

  • Search any job title or keyword in any UK town, city or postcode, with a radius up to 100 miles
  • Filter by contract type and by on-site, hybrid or remote working
  • Set a salary floor and ceiling in pounds a year
  • Keep only jobs whose title matches, or leave out employers you don't want
  • Return only the jobs you haven't seen before on a scheduled run
  • Run several searches together and tell them apart afterwards

What data can you extract from CharityJob?

FieldField
💼 Job title🏢 Charity or employer
📍 Location as advertisedCity, region and postcode
🏠 On-site, hybrid or remoteCountry code
💷 Salary from and salary toSalary period and currency
Salary as advertisedContract types
🎗 Cause categoriesFeatured listing flag
📅 Posted date⏳ Closing date
📄 Full advert textAdvert HTML, optional
🔗 Advert linkJob id
Employer's own referenceCharity logo
When the row was collected

How to scrape CharityJob

  1. Create a free Apify account and open CharityJob Scraper.
  2. Enter a job title or keyword and a location. One of the two is enough.
  3. Set the radius and tick the causes, contract types or workplace you care about.
  4. Choose how many jobs you want per search and for the run.
  5. Press Start, then download the jobs as Excel, CSV or JSON.

A search for administrator roles within 10 miles of London finished in about 2 seconds.

⬇️ Input

Give it a keyword, a location, or both. To run more than one search, fill in "Searches". If you've already filtered a search on charityjob.co.uk, paste its URL into Start URLs and the filters in the URL are kept.

Two limits apply. "Max jobs per search" (default 200) caps each search, and "Max jobs for the whole run" (default 0, no cap) sits above them all.

Administrator jobs within 10 miles of London

{
"keyword": "administrator",
"location": "London",
"distance": 10,
"maxItemsPerSearch": 200
}

Remote fundraising roles paying £40,000 or more

{
"keyword": "fundraising manager",
"workplaces": ["remote"],
"minSalary": 40000,
"contractTypes": ["permanent", "full-time"],
"maxItems": 500
}

Several searches, mental health and youth causes, posted in the last week

{
"searches": [
{ "keyword": "project manager", "location": "Manchester" },
{ "keyword": "support worker", "location": "Birmingham" }
],
"causes": ["mental-health", "youth-and-children"],
"maxDaysOld": 7,
"fetchDetails": true
}

A scheduled run that skips what you've already had

{
"keyword": "communications",
"location": "London",
"onlyNew": true,
"dedupStoreName": "charityjob-seen",
"sortBy": "newest"
}

The optional settings, by group:

  • Filters. "Minimum salary" and "Maximum salary" are in GBP per year, and 0 means no limit. "Quick apply only" keeps jobs that take CharityJob's quick-apply form. Then there's the radius, contract types, workplace, causes, sort order (newest or closing soonest) and "Posted within (days)".
  • Title and employer filters. "Title must contain" keeps a job when its title has at least one of your words. "Title must not contain" drops it when the title has any of them. "Exclude employers" does the same on the employer name. None of them is case-sensitive.
  • What each row includes. "Fetch full job details" is on by default and opens each advert. "Include description" adds the advert as plain text. "Include description HTML" also adds the original HTML, which makes rows considerably larger.

For developers

  • Keys: keyword, location, searches, startUrls, maxItemsPerSearch, maxItems, distance, contractTypes, workplaces, causes, quickApplyOnly, minSalary, maxSalary, sortBy, maxDaysOld, titleIncludes, titleExcludes, companyExcludes, fetchDetails, includeDescription, includeDescriptionHtml, onlyNew, dedupStoreName, maxConcurrency, delayMs.
  • Each searches entry is a keyword string or an object with keyword and location. An entry without a location uses location.
  • CharityJob returns 15 jobs a page. A search pages until its limit is reached or the results run out.
  • onlyNew skips jobs returned by an earlier run that used the same dedupStoreName.
  • maxDaysOld and the description need fetchDetails on, because the posting date and advert text live on the advert page. An advert opened and then dropped by maxDaysOld is still billed job-detail.
  • maxConcurrency (default 16, from 1 to 32) and delayMs (default 0, up to 2,000) control pacing.
  • If Apify moves a run to another server part-way through, it carries on where it stopped. No job is returned or charged twice.

⬆️ Output

One row per job. The Overview view shows title, charity, location, salary range, contract, causes and dates. The full record adds the advert text and the structured address.

{
"id": "1084171",
"title": "Foundations Manager",
"company": "The UK Committee for UNICEF (UNICEF UK)",
"url": "https://www.charityjob.co.uk/jobs/…/foundations-manager/1084171",
"location": "E20, London (Hybrid)",
"city": "London",
"region": "England",
"postcode": "E20",
"countryCode": "GB",
"workplaceType": "Hybrid",
"isRemote": false,
"salaryMin": 46000,
"salaryMax": 46000,
"salaryCurrency": "GBP",
"salaryPeriod": "YEAR",
"salaryText": "Circa £46,000 per annum",
"employmentTypes": ["CONTRACTOR", "FULL_TIME"],
"categories": ["Campaigns", "Communications", "Fundraising"],
"postedAt": "2026-09-17",
"closingAt": "2026-10-04",
"description": "About the role…",
"scrapedAt": "2026-09-17T11:58:02.114Z"
}

Each row also has search (the query that found it, which keeps a multi-search run separable), postedText and isTopJob in CharityJob's wording, isQuickApply (true when the job takes CharityJob's quick-apply form), employerRef where the employer publishes a reference of its own, and companyLogo.

How much does it cost to scrape CharityJob?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
search-run, per search (recorded, not charged)$0$0$0$0
job-scanned, per search result read$0.00005$0.00005$0.00005$0.00005
job-detail, per advert opened (charged even if Posted within (days) then drops the job)$0.001$0.0009$0.0008$0.0007
job-listed, per job returned without an advert$0.0002$0.00018$0.00016$0.00014

Enterprise plans pay the Business price.

$1.00 per 1,000 jobs on the Free plan and $0.70 on Business, adverts included. CharityJob needs no proxy, so there are no proxy charges, and platform usage is in the price too.

  • 200 jobs with full adverts: $0.002 + 200 × ($0.00005 + $0.001) = $0.212 ($0.152 on Business).
  • The same 200 as a listing-only run, with "Fetch full job details" off: $0.002 + 200 × $0.00025 = $0.052 ($0.040 on Business).

A job is charged one of job-detail or job-listed, never both, and once per run however many of your searches found it.

The first example is a typical run. Apify's Free plan gives you $5 of credits a month, which covers about 23 of them, or about 4,700 jobs with adverts.

How many jobs, and how fast?

Whole runs with full adverts fetched, measured on Apify on 2 October 2026:

RunJobs returnedTime
Administrator roles within 10 miles of London15about 2 seconds
Manager roles in London200about 5 seconds
Three searches (London, Manchester, Bristol), 60 each180about 8-9 seconds
Three searches in London ("administrator", "fundraising", "finance"), 100 each3007-10 seconds
Three searches in London ("fundraising", "finance", "communications"), 200 each60015-29 seconds
Five searches in London, 200 each1,00054-68 seconds

That's about 1,000 jobs a minute, which is more than CharityJob lists for most searches. Searches that share many jobs take longer per row, because a shared job is returned once and the search reads further to fill its quota.

On the 40-row administrator run, salary, contract types, causes, posting date, closing date and the advert text were filled on every row. City, region and postcode come from the advert's own address block and are present on roughly two rows in three, because not all charities fill them in. Rows averaged 4.7 KB, with 3,660 characters of advert text.

FAQ

How do I get only the jobs posted since my last run?

Turn on "Only jobs not seen before", give "Store name for seen jobs" a name, and schedule the run in Apify Console. Each run then returns what has appeared since the one before.

My keyword ignored the location and filters. What happened?

CharityJob treats some keywords (fundraising, finance, marketing) as sector categories and opens a sector page in place of a search. Those pages ignore location and filters, and the run says so in its log when it happens. Use a more specific keyword, or filter the search on the site and paste the link into Start URLs.

Why is the salary a single number on some jobs?

The charity advertised one figure. The from and to values are then both that figure, and the advertised wording stays in the salary text field. Where an advert gives no salary, both are empty.

Which causes can I filter by?

All 21 that CharityJob uses: Animal, Arts, Culture and Heritage, Charity Support, Community Development, Disability, Diversity and Inclusion, Education, Elderly, Environment, Faith-based, Health, Housing and Homelessness, Human Rights, International Development, Justice, Membership Organisations, Mental Health, Research, Social Welfare, Sport, and Youth and Children. Leave the field empty for all of them.

How do I find remote charity jobs?

Set "Workplace" to Remote. Each row also says whether the role is on-site, hybrid or remote, so you can leave the filter off and sort afterwards.

Do I need a proxy or a CharityJob account?

There's nothing to configure. The adverts are public, and no account or login is used.

What are the limits?

  • CharityJob only lists UK charity and non-profit roles.
  • City, region and postcode are missing where the charity left them blank. The advertised location text is always present.
  • Some charities attach the real advert as a PDF and write one line in the body. You get that one line.
  • If an advert can't be opened, the job is still returned with its listing fields and billed as job-listed. If a whole search fails, the run writes a row with the search and an error message, uncharged, and carries on.
  • You can't submit applications through this actor.

The actor reads job adverts CharityJob publishes openly. Collecting public data is generally lawful in the UK and EU. What you do with it is your responsibility, including under UK GDPR where a record identifies a person.

Feeding a board, a CRM or a newsletter

For a job board or a weekly sector newsletter, schedule a daily only-new run and let a webhook push the new roles into your system. The Zapier, Make, Slack, Google Sheets and Airbyte integrations do the same without code.

Developers can run the actor and get the rows in one call with Apify's run-sync-get-dataset-items endpoint. There are apify-client libraries for Python and JavaScript, and the actor's API tab shows the reference with your token filled in.

AI agents can use it as a tool through the Apify MCP server at https://mcp.apify.com: ask for hybrid fundraising roles in Leeds above £35,000 and the agent reads the answer as structured data.

More from BonCross

Your feedback

If a salary was parsed wrongly or a cause is missing from a job, we want to know. Raise it on the Issues tab in Apify Console with the advert link. We read every report and fix what we can reproduce.