Climatebase Climate Jobs Scraper
Pricing
Pay per event
Climatebase Climate Jobs Scraper
Search public Climatebase climate jobs and export structured employer, salary, location, remote-work, job-type, and climate-sector data.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Collect public climate-tech and sustainability job listings from Climatebase as structured records. Search by keyword, sector, workplace preference, and job type, or reuse a public Climatebase jobs URL. Each result includes job and employer IDs, title, employer details, locations, salary fields, remote preference, job type, climate sectors, posting time, and source metadata.
What does Climatebase Climate Jobs Scraper do?
Climatebase Climate Jobs Scraper turns Climatebase's public jobs search into an integration-ready dataset. It uses the structured search data loaded by the anonymous Climatebase jobs page rather than opening every job detail page. This keeps runs lightweight while preserving the fields needed for recruiting, aggregation, lead generation, and market analysis.
You can:
- search one or more phrases;
- run a saved public
/jobsURL; - filter by exact Climatebase sector names;
- select Remote, Hybrid, or In-person roles;
- select job engagement types;
- cap the combined output;
- schedule the same input for vacancy monitoring;
- export results to JSON, CSV, Excel, or another Apify integration.
Who is it for?
Recruiters and sourcers can build shortlists of employers hiring for climate-related skills.
Climate-tech talent teams can monitor adjacent employers, job titles, workplace patterns, and disclosed salaries.
Job aggregators can add source URLs and stable IDs to a climate-jobs feed.
Employer lead-generation teams can identify organizations with active hiring demand and useful public context.
Labor-market analysts can compare role, location, sector, remote-work, and salary signals over time.
Developers and data teams can deliver the records to databases, dashboards, spreadsheets, or automation workflows.
Why use this Actor?
- Climate-specific labels: results retain Climatebase climate sectors.
- Listing-first extraction: v1 does not depend on detail pages that may be protected.
- Stable deduplication: records are deduplicated by Climatebase search object ID.
- Bounded pagination: the Actor stops after
maxItemsinstead of crawling indefinitely. - Lightweight runtime: the Actor uses HTTP and 256 MB memory, without a browser or automatic paid proxy.
- Multiple searches: combine several URLs and keyword searches in one run.
- Integration ready: the default dataset is available through Apify API and integrations.
What climate job data is extracted?
| Field | Meaning |
|---|---|
jobId | Climatebase job ID |
objectId | Stable search object ID used for deduplication |
title | Public job title |
featured | Whether Climatebase marks the listing as featured |
postedAt | Listing activation timestamp |
employerId | Climatebase employer ID |
employerName | Employer name |
employerLogoUrl | Public employer logo URL, when present |
employerMembershipStatus | Public employer membership status |
employerSummary | Short public employer description |
locations | Location labels attached to the job |
salaryFrom | Lower disclosed salary bound, or null |
salaryTo | Upper disclosed salary bound, or null |
salaryPeriod | Salary period, or null |
remotePreferences | Remote, Hybrid, or In-person labels |
jobTypes | Full-time, part-time, contract, internship, or other labels |
climateSectors | Climatebase sector labels |
url | Canonical Climatebase job URL |
sourceSearchUrl | Search URL that produced the record |
scrapedAt | Collection timestamp |
Upstream fields can be absent.
Nullable salary and employer fields remain null; list fields are emitted as arrays.
How to scrape Climatebase jobs
- Open the Actor in Apify Console.
- Enter one or more phrases in Search queries, or add Climatebase
/jobsURLs. - Optionally add exact sector, workplace, or job-type values.
- Choose a reasonable Maximum jobs value.
- Click Start.
- Inspect the Climate jobs dataset view.
- Export the dataset or connect an integration.
- Save or schedule the task if you need recurring monitoring.
A small first run such as maxItems: 20 is useful for checking whether a query matches your workflow.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | empty | Public https://climatebase.org/jobs URLs with supported query parameters |
queries | string array | empty | One or more keyword searches |
sectors | string array | empty | Exact Climatebase sector names applied to every source |
remotePreferences | string array | empty | Exact workplace labels applied to every source |
jobTypes | string array | empty | Exact job-type labels applied to every source |
maxItems | integer | 100 | Combined unique-result limit from 1 to 10,000 |
If both startUrls and queries are omitted, the Actor collects current jobs using the optional filters.
Filters supplied as Actor fields are combined with filters already present in each URL.
Unknown URL parameters fail clearly instead of being silently ignored.
Example: software engineering search
{"queries": ["software engineer"],"remotePreferences": ["Remote"],"maxItems": 50}
Example: exact Climatebase source URL
{"startUrls": [{ "url": "https://climatebase.org/jobs?q=policy" }],"sectors": ["Energy"],"maxItems": 100}
Example: recurring remote policy monitor
{"queries": ["policy"],"remotePreferences": ["Remote"],"jobTypes": ["Full time role"],"maxItems": 200}
Output example
A current run returns records shaped like this:
{"jobId": "74100186","objectId": "74100186","title": "Staff Software Engineer Data - DC Tech Lead","featured": false,"postedAt": "2026-07-26T04:06:40.991Z","employerId": "911994","employerName": "Afresh Technologies","employerLogoUrl": "https://climatebaseuserstorage.s3-us-west-1.amazonaws.com/photos/0ba1ecbb-451c-4a3b-841b-419d47f0dfed-employer_logo_153.webp","employerMembershipStatus": "inactive","employerSummary": "AI-driven platform reducing food waste in the fresh food supply chain.","locations": ["Toronto, ON, CA"],"salaryFrom": null,"salaryTo": null,"salaryPeriod": null,"remotePreferences": ["Hybrid", "Remote"],"jobTypes": ["Full time role"],"climateSectors": ["Carbon Removal Tech", "Food, Agriculture, & Land Use", "Climate Adaptation"],"url": "https://climatebase.org/job/74100186/staff-software-engineer-data-dc-tech-lead","sourceSearchUrl": "https://climatebase.org/jobs?q=software+engineer","scrapedAt": "2026-07-26T06:17:35.779Z"}
This is public listing metadata, not a copy of the full job-detail description.
How much does it cost to scrape Climatebase jobs?
The Actor uses pay-per-event pricing. A run has a small $0.005 start fee plus a per-job event. The current FREE tier is $0.000041071 per saved job, with lower unit prices in higher usage tiers.
Examples at the base tier:
| Saved jobs | Approximate price |
|---|---|
| 20 | $0.0058 |
| 100 | $0.0091 |
| 1,000 | $0.0461 |
These examples combine the start fee and FREE-tier per-result price. Actual platform pricing shown in Console is authoritative, and higher usage tiers may cost less per item. No automatic residential proxy or browser mode is enabled.
Scheduling and deduplication workflows
For daily or weekly monitoring:
- Save the input as an Apify task.
- Add a schedule in Apify Console.
- Export each run to your destination.
- Upsert records by
objectId. - Compare
postedAt, employer, salary, or workplace fields between snapshots.
Deduplication happens within a run across all supplied searches.
For deduplication across runs, use objectId as the stable source key in your destination.
Integration ideas
- Send new remote climate roles to Slack or email.
- Append current listings to Google Sheets.
- Load employer IDs and names into a recruiting CRM.
- Build a climate hiring-demand dashboard in BigQuery or Snowflake.
- Monitor disclosed salary ranges by title or location.
- Track which climate sectors are hiring for a particular skill.
- Enrich job-aggregator records with Climatebase sectors and source URLs.
Apify integrations can connect datasets to webhooks, Zapier, Make, Google Drive, GitHub, and cloud data warehouses.
Use the Actor through the Apify API
Replace YOUR_TOKEN with an Apify API token.
The examples start a run and wait for it to finish.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~climatebase-climate-jobs-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["carbon accounting"],"maxItems":50}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/climatebase-climate-jobs-scraper').call({queries: ['carbon accounting'],maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/climatebase-climate-jobs-scraper').call(run_input={'queries': ['carbon accounting'], 'maxItems': 50})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use Climatebase jobs through MCP
Claude Code setup
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/climatebase-climate-jobs-scraper"
Claude Desktop, Cursor, and VS Code setup
Claude Desktop, Cursor, and VS Code clients can use this HTTP MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/climatebase-climate-jobs-scraper"}}}
Example prompts:
- “Find 50 remote Climatebase jobs matching software engineer.”
- “Export current Energy sector jobs from Climatebase.”
- “Collect full-time remote climate policy listings for my weekly monitor.”
Limits and expected behavior
- The Actor covers the public Climatebase listing/search surface.
- Full detail-page descriptions and application-page enrichment are outside v1.
- Climatebase controls record availability, ranking, labels, and freshness.
- Salary fields are frequently absent and remain
null. - Filter values must match current Climatebase labels.
- Very broad requests can take longer because results are paginated in batches of 100.
- The Actor retries temporary network, HTTP 429, and server failures with bounded backoff.
- Permanent input and response-shape errors fail the run instead of returning misleading empty data.
- A valid search with no matches succeeds with an empty dataset.
- No login, user cookie, browser, or automatic proxy is required for the current route.
Responsible use and legality
The Actor extracts publicly available job-listing metadata. You are responsible for ensuring that your collection and use comply with Climatebase terms, applicable law, and your contractual obligations. Respect privacy, database rights, and reasonable request rates. Do not use the data for unlawful discrimination, spam, harassment, or decisions that require consent or regulated safeguards. Avoid republishing copyrighted descriptions or logos without an appropriate basis. When handling personal data, apply purpose limitation, retention controls, security, and deletion procedures required in your jurisdiction.
Troubleshooting
The run returned no records. Check the spelling of the query and exact filter labels. Try the same input without optional filters to distinguish a valid no-match result from an overly narrow search.
The run says a URL parameter is unsupported.
Use a public Climatebase /jobs URL containing only q, sectors, remote_preferences, job_types, or attribution parameters.
Remove UI state parameters that do not map to supported public search filters.
A sector or workplace filter returns fewer jobs than expected. Use the exact label shown by Climatebase, including capitalization and punctuation. Several values within one Actor filter are treated as alternatives; different filter groups are combined.
The upstream response shape changed. Inspect the Actor log and retry later once. If the error persists, report the run ID so the extraction route can be updated without guessing.
Related Automation Lab actors
- LinkedIn Jobs Scraper for broader professional-network job coverage.
- Glassdoor Jobs Scraper for Glassdoor vacancy research.
- Google Jobs Scraper for aggregated job-search results.
- Greenhouse Jobs Scraper for public Greenhouse career boards.
Use Climatebase Climate Jobs Scraper when climate-sector classification and the Climatebase source are central to the workflow. Combine sources only when your downstream pipeline can reconcile different IDs and field semantics.
FAQ
Does the Actor require a Climatebase account?
No. It uses the anonymous public jobs search surface.
Does it visit every job detail page?
No. v1 intentionally uses listing/search records, which already contain the documented fields.
Can I scrape multiple keywords in one run?
Yes. Add them to queries; duplicate jobs are saved once per run.
Can I use a Climatebase URL copied from my browser?
Yes, when it is a public /jobs URL with supported query parameters.
How do I monitor newly posted roles?
Schedule a task and upsert each dataset by objectId; use postedAt for temporal analysis.
Why are salary values null?
Many employers do not disclose salary data on the listing surface.
Can the Actor automatically bypass a challenge with residential proxies?
No automatic proxy or browser fallback is enabled. This avoids hidden transfer cost and keeps failure behavior explicit.
What is the maximum result count?
maxItems accepts values from 1 to 10,000.
The number returned can be smaller when the matching public result set is exhausted.