Climatebase Climate Jobs Scraper avatar

Climatebase Climate Jobs Scraper

Pricing

Pay per event

Go to Apify Store
Climatebase Climate Jobs Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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 /jobs URL;
  • 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 maxItems instead 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?

FieldMeaning
jobIdClimatebase job ID
objectIdStable search object ID used for deduplication
titlePublic job title
featuredWhether Climatebase marks the listing as featured
postedAtListing activation timestamp
employerIdClimatebase employer ID
employerNameEmployer name
employerLogoUrlPublic employer logo URL, when present
employerMembershipStatusPublic employer membership status
employerSummaryShort public employer description
locationsLocation labels attached to the job
salaryFromLower disclosed salary bound, or null
salaryToUpper disclosed salary bound, or null
salaryPeriodSalary period, or null
remotePreferencesRemote, Hybrid, or In-person labels
jobTypesFull-time, part-time, contract, internship, or other labels
climateSectorsClimatebase sector labels
urlCanonical Climatebase job URL
sourceSearchUrlSearch URL that produced the record
scrapedAtCollection timestamp

Upstream fields can be absent. Nullable salary and employer fields remain null; list fields are emitted as arrays.

How to scrape Climatebase jobs

  1. Open the Actor in Apify Console.
  2. Enter one or more phrases in Search queries, or add Climatebase /jobs URLs.
  3. Optionally add exact sector, workplace, or job-type values.
  4. Choose a reasonable Maximum jobs value.
  5. Click Start.
  6. Inspect the Climate jobs dataset view.
  7. Export the dataset or connect an integration.
  8. 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

ParameterTypeDefaultDescription
startUrlsarrayemptyPublic https://climatebase.org/jobs URLs with supported query parameters
queriesstring arrayemptyOne or more keyword searches
sectorsstring arrayemptyExact Climatebase sector names applied to every source
remotePreferencesstring arrayemptyExact workplace labels applied to every source
jobTypesstring arrayemptyExact job-type labels applied to every source
maxItemsinteger100Combined 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.

{
"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 jobsApproximate 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:

  1. Save the input as an Apify task.
  2. Add a schedule in Apify Console.
  3. Export each run to your destination.
  4. Upsert records by objectId.
  5. 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 os
from apify_client import ApifyClient
client = 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().items
print(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.

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.