# eFinancialCareers Jobs Scraper (`parsebird/efinancialcareers-jobs-scraper`) Actor

Scrape financial services job listings from eFinancialCareers — titles, salaries, companies, locations, sectors, and 30+ fields from 70,000+ postings in banking, trading, and fintech.

- **URL**: https://apify.com/parsebird/efinancialcareers-jobs-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** Jobs, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.89 / 1,000 job scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### eFinancialCareers Jobs Scraper

Scrape job listings from [eFinancialCareers](https://www.efinancialcareers.com), the leading job board for banking, trading, risk, compliance, and fintech careers, with a fast **eFinancialCareers API** based scraper — no browser, no login required.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Search 70,000+ finance and technology jobs by keyword and location, and get titles, salaries, companies, sectors, work arrangement, and 30+ other structured fields ready for analysis or integration.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Apify Actor: parsebird/efinancialcareers-jobs-scraper. Scrapes job listings from eFinancialCareers.com. Call via ApifyClient: client.actor("parsebird/efinancialcareers-jobs-scraper").call(run_input={"keyword": "financial analyst", "location": "New York", "results_wanted": 100, "max_pages": 10}). Returns 30+ fields per job: job_id, source_id, title, company, full_company_name, location, city, state, country, salary, min_salary, max_salary, salary_currency, job_type, work_arrangement_type, position_type, sectors, date_posted, expiration_date, description_html, description_text, url, client_brand_name, is_external_application, score, and more. Full API spec: https://apify.com/parsebird/efinancialcareers-jobs-scraper/api. Get your token: https://console.apify.com/settings/integrations.
```

### What does eFinancialCareers Jobs Scraper do?

This **eFinancialCareers scraper** queries the site's internal job search API directly, so results come back in seconds without a browser or CAPTCHA-solving. It works as an **eFinancialCareers API alternative** for anyone who needs structured job data without building their own integration against the site.

You can search by role keyword (e.g. "financial analyst", "risk manager", "quant developer"), filter by location (city, state, or country), and page through results up to your configured limit. Every run returns clean, structured JSON — no HTML parsing required on your end.

Key features:

- 🔍 Keyword and location search, or leave both empty to pull jobs across all sectors
- 💰 Parsed salary ranges (`min_salary` / `max_salary`) alongside the original salary text
- 🏢 Company, brand, and sector metadata for market and competitor research
- 🌎 Full location breakdown — city, state, country, and region
- 📄 Both HTML and plain-text description formats for easy downstream use
- ⏱️ Runs in seconds thanks to direct API access — no page rendering overhead
- 📅 Schedule recurring runs on Apify to monitor new eFinancialCareers postings daily or weekly
- 🔌 Full REST API access, webhooks, and integrations (Zapier, Make, Google Sheets) via the Apify platform
- 📊 Export results as JSON, CSV, Excel, or XML directly from the Console

### What data can you extract from eFinancialCareers?

| Field | Description |
|-------|-------------|
| `title` | Job title as posted |
| `company` / `full_company_name` | Employer or recruiting agency name |
| `location`, `city`, `state`, `country` | Full location breakdown |
| `salary`, `min_salary`, `max_salary`, `salary_currency` | Raw salary text plus parsed numeric range, when disclosed |
| `job_type` | Employment type (e.g. Full time, Contract) |
| `work_arrangement_type` | Work model — remote, hybrid, or on-site |
| `position_type` | Position category (e.g. Permanent) |
| `sectors` | Sector tags (e.g. Accounting & Finance, Technology) |
| `date_posted` / `expiration_date` | Listing lifecycle timestamps |
| `description_html` / `description_text` | Full job description in both formats |
| `is_external_application` | Whether the apply flow redirects off-site |
| `score` | eFinancialCareers relevance ranking score |
| `url` | Direct link to the live job listing |

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `keyword` | string | No | — | Search keyword, for example `financial analyst` or `risk manager`. Leave empty to return jobs across all roles |
| `location` | string | No | — | Location filter, for example `New York` or `London`. Leave empty to search worldwide |
| `results_wanted` | integer | No | `100` | Maximum number of job records to collect |
| `max_pages` | integer | No | `10` | Maximum number of result pages to process (100 jobs per page) |
| `proxyConfiguration` | object | No | `{"useApifyProxy": true}` | Optional proxy settings for improved reliability on large or scheduled runs |

### How to scrape eFinancialCareers jobs

1. Open the **eFinancialCareers Jobs Scraper** [Actor page](https://apify.com/parsebird/efinancialcareers-jobs-scraper) and click **Try for free**.
2. Enter a `keyword` (e.g. "investment banking analyst") and a `location` (e.g. "London"). Leave either blank to broaden the search.
3. Set `results_wanted` and `max_pages` to control run size and cost.
4. Click **Start** and wait for the run to finish — most runs complete in well under a minute.
5. Download results from the **Dataset** tab as JSON, CSV, Excel, or HTML, or pull them via the [Apify API](https://docs.apify.com/api/v2).

### Run eFinancialCareers Jobs Scraper via API

**Python** ([apify-client](https://docs.apify.com/api/client/python)):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("parsebird/efinancialcareers-jobs-scraper").call(run_input={
    "keyword": "financial analyst",
    "location": "New York",
    "results_wanted": 100,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["company"], item["salary"])
```

**JavaScript** ([apify-client](https://docs.apify.com/api/client/js)):

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('parsebird/efinancialcareers-jobs-scraper').call({
    keyword: 'financial analyst',
    location: 'New York',
    results_wanted: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Output example

```json
{
    "job_id": "23954835",
    "source_id": "atdWldnNfXAkbiT5",
    "title": "Application Support Engineer - New York",
    "company": "Marlin Selection",
    "location": "New York, New York, United States",
    "salary": "Competitive",
    "job_type": ["Full time"],
    "work_arrangement_type": "Hybrid",
    "date_posted": "2026-03-13T09:40:29.620Z",
    "description_text": "Our client a global fintech business is seeking to hire an Application Support Engineer in New York...",
    "url": "https://www.efinancialcareers.com/jobs-United_States-New_York-Application_Support_Engineer_-_New_York.id23954835",
    "salary_currency": "USD",
    "client_brand_name": "Marlin Selection",
    "is_external_application": false,
    "score": 0.9999
}
```

### Use cases

- **Job market research** — Track hiring demand for specific finance and fintech roles across cities and regions.
- **Recruiting and sourcing** — Build a feed of open roles at target companies for candidate outreach.
- **Salary benchmarking** — Aggregate `min_salary` / `max_salary` data across roles and locations for compensation analysis.
- **Competitive intelligence** — Monitor which banks, hedge funds, and fintechs are actively hiring, and for what.
- **Lead generation** — Identify companies scaling their finance or technology teams as potential sales targets.
- **Academic and labor research** — Build datasets on financial-sector employment trends over time.

### How it works

1. **Query construction** — The actor builds a request to eFinancialCareers' internal job search API using your `keyword` and `location` inputs.
2. **Pagination** — It walks result pages (100 jobs per page) until `results_wanted` is reached or `max_pages` is hit.
3. **Data transformation** — Raw API fields are mapped to a clean, consistent 30+ field schema, including parsed salary ranges and full location breakdowns.
4. **Output** — Each job is pushed to the Apify dataset as it's collected, ready for export as JSON, CSV, Excel, or via the API.

### How much does it cost to scrape eFinancialCareers jobs?

eFinancialCareers Jobs Scraper uses [pay-per-event pricing](https://docs.apify.com/platform/actors/publishing/monetize#pay-per-event-pricing) — you pay only for jobs actually extracted, not for platform compute time.

| Plan | Event | Price per event | Price per 1,000 |
|------|-------|----------------|-----------------|
| Free | `job-scraped` | $0.00099 | **$0.99** |
| Bronze / Silver / Gold | `job-scraped` | $0.00089 | **$0.89** |

A run collecting 1,000 job listings costs under $1. New Apify accounts include free platform credits, so you can test this actor before committing to a paid plan.

### FAQ

**How fresh is the data?**
Every run queries eFinancialCareers' live search API directly, so results reflect what's currently posted on the site at run time.

**Why are some `min_salary` / `max_salary` values missing?**
Many listings show "Competitive" instead of a disclosed salary range. When no numeric range is available, both fields are left empty.

**Can I search without a keyword or location?**
Yes. Leave `keyword` and/or `location` empty to collect jobs across all roles and locations, up to `results_wanted`.

**Do I need a proxy?**
Not for typical runs — the API is publicly accessible. Apify Proxy is available in the input for improved reliability on large or scheduled runs.

**Can I schedule recurring runs?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run this actor daily or weekly and monitor new postings automatically.

**Can I integrate this with other tools?**
Yes. Connect via the [Apify API](https://docs.apify.com/api/v2), or use built-in [integrations](https://apify.com/integrations) for Zapier, Make, Google Sheets, Slack, and webhooks.

**What does `is_external_application` mean?**
`true` means applying redirects to a third-party recruiter or ATS site; `false` means the apply flow stays on eFinancialCareers.

**I found a bug or the site layout changed — what do I do?**
Report it on the Actor's [Issues tab](https://console.apify.com/actors) in Apify Console. Since this actor uses eFinancialCareers' own API, most site changes have minimal impact on data quality.

### Is it legal to scrape eFinancialCareers?

Yes. This actor accesses only publicly available job listing data from eFinancialCareers — it does not bypass logins, CAPTCHAs, or access private accounts. The data collected consists of job postings that employers and recruiters have intentionally made public for recruitment purposes. See Apify's [blog post on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) for a general overview. You are responsible for ensuring your use of the collected data complies with applicable laws and eFinancialCareers' [Terms and Conditions](https://www.efinancialcareers.com/about/terms-and-conditions).

### Related Actors

- [Dice Jobs Scraper](https://apify.com/parsebird/dice-jobs-scraper) — Scrape tech job listings from Dice.com
- [Hiring.cafe Jobs Scraper](https://apify.com/parsebird/hiring-cafe-scraper) — Aggregated job listings from 46+ ATS platforms
- [Builtin Jobs Scraper](https://apify.com/parsebird/builtin-jobs-scraper) — Scrape startup and tech jobs from Built In

# Actor input Schema

## `keyword` (type: `string`):

Search keyword, for example "financial analyst" or "risk manager". Leave empty to return jobs across all roles.

## `location` (type: `string`):

Location filter, for example "New York" or "London". Leave empty to search worldwide.

## `results_wanted` (type: `integer`):

Maximum number of job records to collect.

## `max_pages` (type: `integer`):

Maximum number of result pages to process. Each page returns up to 100 jobs.

## `proxyConfiguration` (type: `object`):

Optional proxy settings for improved reliability. Apify Proxy is recommended for larger or scheduled runs.

## Actor input object example

```json
{
  "keyword": "financial analyst",
  "location": "New York",
  "results_wanted": 50,
  "max_pages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "financial analyst",
    "location": "New York",
    "results_wanted": 50,
    "max_pages": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/efinancialcareers-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keyword": "financial analyst",
    "location": "New York",
    "results_wanted": 50,
    "max_pages": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/efinancialcareers-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "financial analyst",
  "location": "New York",
  "results_wanted": 50,
  "max_pages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parsebird/efinancialcareers-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/efinancialcareers-jobs-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oG9EseWJ4arJSlTDG/builds/JLaiU9wSiBzLGiif4/openapi.json
