Idealist Scraper [$2.5/1K💰] | Nonprofit Jobs | Volunteer avatar

Idealist Scraper [$2.5/1K💰] | Nonprofit Jobs | Volunteer

Pricing

from $2.40 / 1,000 results

Go to Apify Store
Idealist Scraper [$2.5/1K💰] | Nonprofit Jobs | Volunteer

Idealist Scraper [$2.5/1K💰] | Nonprofit Jobs | Volunteer

Scrape Idealist nonprofit jobs, internships, volunteer opportunities, events and organization profiles — with structured salary ranges where published. Built for nonprofit recruiting and social-impact research. $2.50 per 1,000 listings.

Pricing

from $2.40 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

Idealist Scraper

Scrape Idealist's public listings — nonprofit jobs, internships, volunteer opportunities, events and organization profiles — with structured salary ranges where published, keyless and browser-free, at $2.50 per 1,000 listings.

Built for:

  • Nonprofit recruiters and talent teams monitoring the social-impact job market
  • Volunteer and event organizers benchmarking opportunities by cause, place and pay
  • Research on nonprofit hiring, compensation and organization landscapes
  • Building a mission-driven jobs database with location, salary and focus-area fields
  • Career platforms that curate NGO, advocacy and social-impact roles

Collect Nonprofit Jobs & Volunteer Opportunities With Salary Data

Pick the record types you want — JOB, INTERNSHIP, VOLOP (volunteer), EVENT, ORG — plus a free-text query (fundraising, climate, program manager), locale (en/es), sort (relevance/newest) and any combination of filters: US state or country, geo radius, organization type, areas of focus, functions, onsite/remote/hybrid, employment type and seniority. Every listing is one row: title, organization, city/state/country, coordinates, publishedAt, taxonomy fields (areasOfFocus, functions, keywords), and — when pay is published — a structured salary object (minimum, maximum, period, currency) plus the compdb compensation taxonomy (familyId, jobTitleId, level, synonymName). hasSalaryOnly: true collects just the pay-transparent listings.

How It Works

How the Idealist Scraper works: Algolia searches become job, internship, volunteer, event and organization rows.

Idealist's React app embeds its public Algolia configuration, including the search key. The Actor posts directly to the idealist7-production index, 100 records per page, with filters for type, location, cause, function, level, remote work and salary.

Each row covers one listing with organization, location, salary range, cause areas, functions, job type, professional level, description and source URL.

Idealist's site is a client-rendered React app whose search results never appear in the served HTML — but the page embeds the whole configuration of the Algolia search backend the front end itself queries, including its public search key. The actor issues plain HTTP POSTs to that Algolia index (idealist7-production, ~345k records; newest sort switches index) with the site's own embedded configuration — no cookies, no login, no browser:

POST https://NSV3AUESS7-dsn.algolia.net/1/indexes/idealist7-production/query
Headers:
x-algolia-application-id: <app id embedded in the page>
x-algolia-api-key: <public search key embedded in the page>
Body: { "query": "program manager", "hitsPerPage": 100, "page": 0,
"filters": "type:JOB AND locale:en AND state:\"NY\"" }

Algolia sits outside Idealist's CDN/anti-bot layer and answers with clean JSON, so a CheerioCrawler is used purely as the HTTP + pagination + retry + proxy engine. Result types come from the index's own type facet. The authenticated /data/* endpoints are not used, and the org/compdb indexes that require a session key are not readable with the public key (documented limitation below).

Input Parameters

FieldTypeRequiredDefaultNotes
listingTypesarrayYes["JOB","VOLOP"]Any of JOB, INTERNSHIP, VOLOP, EVENT, ORG.
querystringNo""Free-text search: program manager, fundraising, climate…
localestringNoenen or es (content language).
sortstringNorelevancerelevance or newest.
state / countrystringNo""US state code (NY, CA) or ISO country code (US, GB, CA).
latitude / longitude / radiusKmnumberNo—Geo search around a point (radiusKm default 0 = disabled).
orgTypearrayNo[]NONPROFIT, CORPORATION, GOVERNMENT, CONSULTANT, COMMUNITY, RECRUITER, GROUP.
areasOfFocusarrayNo[]e.g. EDUCATION, HOUSING_HOMELESSNESS, HUMAN_RIGHTS_CIVIL_LIBERTIES, HEALTH, ENVIRONMENT, ARTS_CULTURE.
functionsarrayNo[]e.g. DEVELOPMENT_FUNDRAISING, ADVOCACY, EDUCATION, LEGAL, MARKETING_COMMUNICATIONS.
locationTypearrayNo[]ONSITE, REMOTE, HYBRID.
jobTypearrayNo[]FULL_TIME, PART_TIME, CONTRACT, TEMPORARY (JOB only).
professionalLevelarrayNo[]ENTRY_LEVEL, PROFESSIONAL, MANAGERIAL, DIRECTOR, EXECUTIVE, NONE.
hasSalaryOnlybooleanNofalseOnly listings that publish a pay range.
upcomingOnlybooleanNofalseOnly events/volunteer opportunities ending in the future.
includeDescriptionbooleanNotrueFull description text; false keeps output compact.
maxItemsPerTypeintegerNo100Records per selected listing type.
maxItemsintegerNo300Global cap across types.
maxPagesPerTypeintegerNo10Pagination safety cap (100 records per page).
proxyobjectNodisabledOptional; Algolia does not block datacenter IPs.

Output Fields

  • Common: id, type, title, url, organization, organizationId, organizationType, city, state, country, latitude, longitude, locationType, publishedAt, areasOfFocus, keywords, functions, jobType, professionalLevel, hasSalary, description (unless disabled)
  • Pay: salary (minimum, maximum, period, currency) and compdb (synonymName, familyId, jobTitleId, level)
  • JOB extras: duties/skills in description; VOLOP: schedule (start/end), remote/onsite, skills, perks (training, stipend, housing, academic credit); EVENT: start/end date & time, timezone, venue; ORG: mission, geo coordinates, org type, focus areas, hiring/seeking-volunteers flags

Example Input

{
"listingTypes": ["JOB"],
"query": "program manager",
"state": "NY",
"hasSalaryOnly": true,
"maxItems": 100
}

Example Output

{
"id": "6a8ba154c1264176976dae7aef51c51b",
"type": "JOB",
"title": "Assistant Executive Director of Annual Giving",
"url": "https://www.idealist.org/en/nonprofit-job/6a8ba154...-assistant-executive-director-of-annual-giving",
"organization": "St. Mary's University of San Antonio",
"organizationId": "cb4e55210509419baed1a166757b1de7",
"organizationType": "NONPROFIT",
"city": "San Antonio",
"state": "TX",
"country": "US",
"latitude": 29.449561,
"longitude": -98.560832,
"locationType": "ONSITE",
"publishedAt": "2026-10-19T16:19:09.000Z",
"areasOfFocus": ["EDUCATION"],
"keywords": ["Development/Fundraising"],
"functions": ["DEVELOPMENT_FUNDRAISING"],
"jobType": ["FULL_TIME"],
"professionalLevel": "NONE",
"hasSalary": false,
"salary": null,
"compdb": {
"synonymName": "Assistant Director, Annual Giving",
"familyId": "2ad95559ae3f459d8c1fe5938d6312b5",
"level": 5
}
}

Automate Mission-Driven Job Monitoring With Schedules & Webhooks

  • Weekly new-roles run: schedule listingTypes: ["JOB"] with sort: "newest" and diff rows by id for postings since the previous run.
  • Volunteer & event pipelines: schedule VOLOP/EVENT with upcomingOnly: true so expired opportunities drop out of every run automatically.
  • Compensation tracking: run hasSalaryOnly: true monthly to follow how many social-impact roles publish pay and at what ranges.
  • Recurring, re-run-heavy usage also improves this actor's Store recommendation signals.

Frequently Asked Questions

Why use this actor instead of the official API?

Idealist does have an official Listings API (api-sandbox.idealist.org/listings-api), and it's a good one — but access is granted manually: you request a key by emailing support@idealist.org, must display Idealist's attribution/branding in your product, should space sequential requests at ≥250 ms, and fetch incrementally with since. This actor reads the same public listings through the site's own search backend with no key request, no attribution obligation and no pacing rule — and covers all five record types (jobs, internships, volunteer opportunities, events, organization profiles) including the filters and salary fields listed above.

Is there an Idealist API?

Yes — official, as described above (sandbox URL, key issued by email, attribution required, JSON REST with an Accept: application/json header mandatory). If you're building a public product that displays Idealist data with attribution, the official API is a legitimate path; if you want keyless, immediately usable access in a data pipeline, use this actor.

Can I get salary data from Idealist?

Yes, within what Idealist publishes: every listing that shows a pay range carries a structured salary object, and all job records carry compdb compensation-taxonomy fields (family, level, synonym name). Set hasSalaryOnly: true to collect only pay-transparent listings. One honest limitation: Idealist's dedicated compensation-database indexes are not readable with the site's public search key, so full salary-explorer data (which needs an authenticated session) is out of scope.

How do I find remote nonprofit jobs?

Set locationType: ["REMOTE"] (or ["HYBRID"]), optionally combined with country/state or the geo filters for roles tied to a place. Remote flags come from the listings themselves.

What record types can I collect in one run?

Any combination of JOB, INTERNSHIP, VOLOP (volunteer), EVENT and ORG (organization profiles) — each type paginates to maxItemsPerType, with maxItems as the global stop. Free accounts get a capped preview (20 items); paid accounts get the full caps.

For AI Agents & LLM Apps

Purpose: returns Idealist listings — nonprofit jobs, internships, volunteer opportunities, events and org profiles — with salary and taxonomy fields, keyless, no browser.

Minimal input:

{ "listingTypes": ["JOB"], "query": "fundraising", "maxItems": 25 }

Pay-transparent jobs variant:

{ "listingTypes": ["JOB"], "hasSalaryOnly": true, "sort": "newest", "maxItems": 50 }

Output fields: id, type, title, url, organization, organizationId, organizationType, city, state, country, latitude, longitude, locationType, publishedAt, areasOfFocus, keywords, functions, jobType, professionalLevel, hasSalary, salary (minimum, maximum, period, currency), compdb (synonymName, familyId, jobTitleId, level), description.

Behaviors an agent should know:

  • listingTypes is required (defaults to ["JOB","VOLOP"]) — pass the types you want explicitly.
  • Caps stack: maxItemsPerType (100) per type, maxItems (300) global, maxPagesPerType (10 × 100 records) safety stop.
  • includeDescription defaults to true; set false for compact rows.
  • sort: "newest" switches the underlying index; locale affects both content and index.
  • Free accounts are capped at a 20-item preview per run regardless of input.
  • salary is null unless the listing publishes pay — check hasSalary first; org/compdb indexes beyond the search key are not readable.

Billing: pay-per-event — result at $0.0025 per saved record, plus a run-start event.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Idealist.org. It reads only the public listings Idealist's own front end queries (through the search configuration embedded in its public pages) — no login, no authenticated /data/* endpoints, no session cookies. Listings can reference named individuals and organizations; users are responsible for their own compliance with Idealist's Terms of Service and applicable data-protection law (e.g. GDPR for EU data subjects) when storing, redistributing or automating access to the collected data.

SEO Keywords

idealist scraper, idealist api, nonprofit jobs api, scrape idealist, idealist job listings, nonprofit job data, volunteer opportunities data, idealist alternative api, ngo jobs data, remote nonprofit jobs, charity jobs data, social impact jobs, nonprofit organization database, idealist listings api, nonprofit internships data, event listings data, salary transparency jobs, us nonprofit jobs data, advocacy jobs data, idealist data export