# eFinancialCareers Jobs Scraper — Finance, Banking & Fintech (`haketa/efinancialcareers-jobs-scraper`) Actor

Scrape finance, banking, fintech & investment jobs from eFinancialCareers — title, company, salary, location, sector & full description. Filter by keyword, country & sector; export to Excel, CSV or JSON. Independent tool, not affiliated with eFinancialCareers.

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

## Pricing

from $1.50 / 1,000 results

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

<h1 align="center">eFinancialCareers Jobs Scraper</h1>

<p align="center"><b>Export finance, banking, fintech and investment jobs from eFinancialCareers — job title, company, salary, location, sector and full description — as clean, structured data. No code required.</b></p>

<p align="center">
  <img src="https://img.shields.io/badge/Platform-Apify-1a1a1a?style=for-the-badge" alt="Apify">
  <img src="https://img.shields.io/badge/Niche-Finance%20%26%20Banking%20Jobs-0aa06e?style=for-the-badge" alt="Finance & Banking">
  <img src="https://img.shields.io/badge/No--code-friendly-2f6fed?style=for-the-badge" alt="No-code">
  <img src="https://img.shields.io/badge/Markets-US%20%C2%B7%20UK%20%C2%B7%20Asia%20%C2%B7%20EU%20%C2%B7%20Gulf-f59e0b?style=for-the-badge" alt="Markets">
  <img src="https://img.shields.io/badge/Export-JSON%20%C2%B7%20CSV%20%C2%B7%20Excel%20%C2%B7%20API-8b5cf6?style=for-the-badge" alt="Export">
</p>

***

### ⚡ At a glance

| | |
|---|---|
| 💼 **Coverage** | Tens of thousands of live finance & banking jobs — US, UK, Asia, Europe & the Middle East |
| 💷 **Salary data** | Disclosed **min / max salary + currency** parsed into clean numbers you can sort and filter |
| 🏦 **22 finance sectors** | Investment banking, asset management, hedge funds, private equity, trading, quant, risk, compliance, fintech… |
| 🔎 **Targeting** | By keyword, country, sector, employment type, work arrangement, salary or recency |
| 🧾 **Output** | Flat, spreadsheet-ready rows with the **full job description** — JSON, CSV, Excel or API |
| 🚫 **No-code** | Pick a market, add keywords, press Start — no URLs, IDs or scripts |
| ⚡ **Fast & cheap** | Powered by the site's own job feed, not a slow headless browser |

***

### What is the eFinancialCareers Jobs Scraper?

**eFinancialCareers Jobs Scraper** turns the listings on **eFinancialCareers** — the leading global job board for financial-services professionals — into a structured dataset you can actually work with.

Instead of paging through thousands of roles by hand, you run this Actor and get a **clean table of every finance job** that matches your criteria: the job title, the hiring company, the **salary range**, the location, the sector, the employment type and the full description — ready to sort in Excel, drop into your ATS/CRM, or feed to your own model.

Whether you're a **finance recruiter or headhunter** sourcing candidates and mapping who's hiring, a **job board or aggregator** enriching your listings, a **compensation analyst** benchmarking salaries, or a **job seeker** building a pipeline of banking, fintech and investment roles, this scraper gives you the raw material in seconds.

> 💡 **Why it stands out:** salary comes back as **sortable numbers** (`minSalary` / `maxSalary` + currency), every job ships with its **full description**, and you can slice the market by **22 finance sectors** — across the US, UK, Asia, Europe and the Middle East.

***

### ✨ Key features

- 🌍 **Every major market** — search the **US, UK, Hong Kong, Singapore, Germany, France, Switzerland, Luxembourg, UAE** and **Australia**.
- 🔤 **Keyword search** — find roles by title or skill: `analyst`, `investment banking`, `quant`, `portfolio manager`, `compliance`, `FP&A`, `derivatives`… add as many as you like.
- 🏦 **Sector filtering** — narrow to Investment Banking & M\&A, Asset Management, Hedge Funds, Private Equity, Trading, Quant, Risk, Compliance, Fintech and more.
- 💰 **Salary intelligence** — disclosed roles return `minSalary`, `maxSalary` and `salaryCurrency` as clean numbers, plus the original display text.
- 🧭 **Smart filters** — employment type, position type (permanent / contract / graduate), remote & hybrid, minimum salary and "posted within N days".
- 📄 **Full descriptions** — every record can include the complete job description text (toggle off for lean exports).
- 🏢 **Company & recruiter data** — hiring company, recruiter brand and company logo for lead generation.
- 📤 **Export anywhere** — JSON, CSV, Excel or HTML, or pull straight from the Apify API into Google Sheets, Airtable, a webhook or your data warehouse.

***

### 🎯 Use cases

<details open>
<summary><b>Finance recruiters & headhunters</b></summary>

- Build a live **map of who's hiring** for a given desk, sector or city.
- Track **new roles** daily to reach out to hiring managers first.
- Enrich your ATS/CRM with structured job records and company names.

</details>

<details>
<summary><b>Compensation & market analysts</b></summary>

- Benchmark **salary ranges** by sector, seniority and geography from disclosed pay.
- Measure **hiring demand** — how many quant / risk / IB roles are open, and where.
- Track trends over time by running on a schedule.

</details>

<details>
<summary><b>Job boards & aggregators</b></summary>

- Aggregate finance listings into your own board with full descriptions.
- Keep feeds fresh with scheduled runs and de-duplicated results.

</details>

<details>
<summary><b>Job seekers & career coaches</b></summary>

- Build a personal **pipeline** of banking, fintech and investment roles.
- Filter to **remote / hybrid** roles or a **minimum salary** and export to a spreadsheet.

</details>

<details>
<summary><b>Competitive & talent intelligence</b></summary>

- See which **firms are expanding** and into which functions.
- Feed listings into a **dashboard, newsletter or model**.

</details>

***

### 🚀 How it works

1. **Choose a market** — US, UK, Singapore, Hong Kong, etc.
2. **Say what you want** — add search keywords and/or pick sectors. Leave blank to collect everything in that market.
3. *(Optional)* **Add filters** — employment type, remote/hybrid, minimum salary, posted-within-days.
4. **Run it** — the Actor pages through the results, de-duplicates them and returns a clean dataset.
5. **Export** — JSON, CSV, Excel or API.

No accounts, cookies or scripts to manage — just fill in the form and press **Start**.

***

### 📥 Input

| Field | Type | Description |
|---|---|---|
| `searchTerms` | list | Keywords to search, e.g. `["investment banking", "quant"]`. Each is searched separately. Empty = all jobs. |
| `country` | select | Market to search: US, UK, Hong Kong, Singapore, Germany, France, Switzerland, Luxembourg, UAE or Australia. |
| `sectors` | multi-select | Keep only these finance sectors (optional). |
| `employmentType` | select | Full time / Part time / any. |
| `positionType` | select | Permanent / Contract / Internship & Graduate / Self Employed / any. |
| `workArrangement` | select | Remote / Hybrid / any. |
| `minSalary` | number | Only jobs whose disclosed salary reaches this amount. |
| `postedWithinDays` | number | Only jobs posted in the last N days. |
| `includeDescription` | boolean | Include the full job description (default: on). |
| `maxItems` | number | Stop after this many jobs (0 = no limit). |
| `proxyConfiguration` | proxy | Datacenter proxies are enough. |

#### Example inputs

**1. Investment-banking analysts in New York**

```json
{
  "country": "us",
  "searchTerms": ["investment banking analyst"],
  "maxItems": 100
}
```

**2. Quant & trading roles in London, £100k+**

```json
{
  "country": "gb",
  "sectors": ["QUANTITATIVE_ANALYTICS", "TRADING"],
  "minSalary": 100000,
  "maxItems": 200
}
```

**3. Remote fintech jobs, posted this week**

```json
{
  "country": "us",
  "sectors": ["FINTECH"],
  "workArrangement": "remote",
  "postedWithinDays": 7,
  "maxItems": 150
}
```

**4. Everything in Singapore (market sweep)**

```json
{
  "country": "sg",
  "searchTerms": [],
  "includeDescription": false,
  "maxItems": 500
}
```

***

### 📤 Output

Each job is one row. Example:

```json
{
  "jobId": 24631899,
  "title": "Equity Research Analyst",
  "url": "https://www.efinancialcareers.com/jobs-United_States-New_York-Equity_Research_Analyst.id24631899",
  "companyName": "Caxton Associates",
  "recruiterBrand": "Caxton Associates",
  "city": "New York",
  "state": "New York",
  "country": "United States",
  "region": "North America",
  "locationDisplay": "New York, United States",
  "postedDate": "2026-08-05T08:21:03.457Z",
  "salary": "$115k - $165k",
  "minSalary": 115000,
  "maxSalary": 165000,
  "salaryCurrency": "USD",
  "employmentType": "Full time",
  "positionType": "Permanent",
  "workArrangementType": "Hybrid",
  "sectors": ["Asset Management"],
  "sectorCodes": ["ASSET_MANAGEMENT/PORTFOLIO_MANAGER"],
  "summary": "About the team: our systematic equities desk is hiring…",
  "description": "About Caxton Associates: founded in 1983, a global trading and investment firm…",
  "companyLogoUrl": "https://www.efinancialcareers.com/logo/…png",
  "isExternalApplication": true,
  "searchTerm": "analyst",
  "searchCountry": "US"
}
```

#### Output fields

**Coverage key:** 🟢 almost every record · 🟡 present when the employer discloses it · ⚪ occasional

##### 🏷️ Job

| Field | Coverage | Description |
|---|---|---|
| `jobId` | 🟢 | Stable numeric job ID |
| `title` | 🟢 | Job title |
| `url` | 🟢 | Direct link to the listing |
| `summary` | 🟢 | Short summary |
| `description` | 🟢 | Full job description (when enabled) |
| `postedDate` | 🟢 | When the job was posted (ISO 8601) |
| `expirationDate` | ⚪ | Closing date, when set |

##### 💰 Compensation

| Field | Coverage | Description |
|---|---|---|
| `salary` | 🟢 | Salary as displayed (often "Competitive") |
| `minSalary` | 🟡 | Lower bound as a **number** |
| `maxSalary` | 🟡 | Upper bound as a **number** |
| `salaryCurrency` | 🟢 | ISO currency (USD, GBP, EUR, SGD…) |

##### 🏢 Company & role

| Field | Coverage | Description |
|---|---|---|
| `companyName` | 🟢 | Hiring company |
| `recruiterBrand` | 🟡 | Recruiter / brand posting the role |
| `companyLogoUrl` | 🟡 | Company logo image |
| `employmentType` | 🟢 | Full time / Part time |
| `positionType` | 🟢 | Permanent, contract, graduate… |
| `workArrangementType` | 🟡 | Remote / Hybrid / In-Office |
| `sectors` | 🟢 | Finance sectors (readable) |
| `sectorCodes` | 🟢 | Raw sector codes |
| `isExternalApplication` | 🟢 | Whether applying leaves the site |

##### 📍 Location

| Field | Coverage | Description |
|---|---|---|
| `city` | 🟢 | City |
| `state` | 🟡 | State / county |
| `country` | 🟢 | Country |
| `region` | 🟢 | Macro region (e.g. North America) |
| `locationDisplay` | 🟢 | Location as shown on the site |

***

### 🔎 Sample searches

| Goal | How |
|---|---|
| 🏦 Investment banking jobs in the US | `country: us`, `sectors: [INVESTMENT_BANKING_M_A]` |
| 📈 Hedge fund & PE roles in London | `country: gb`, `sectors: [HEDGE_FUNDS, PRIVATE_EQUITY_VENTURE_CAPITAL]` |
| 🧮 Quant roles paying $150k+ | `sectors: [QUANTITATIVE_ANALYTICS]`, `minSalary: 150000` |
| 🌏 Compliance jobs in Singapore | `country: sg`, `sectors: [COMPLIANCE_LEGAL]` |
| 🏠 Remote fintech jobs this month | `sectors: [FINTECH]`, `workArrangement: remote`, `postedWithinDays: 30` |
| 🏙️ All banking jobs in Dubai | `country: ae`, `searchTerms: []` |

***

### 🔌 Integrations & automation

- **Google Sheets / Excel** — one-click export or scheduled sync.
- **Airtable, Notion, Greenhouse, Lever, HubSpot** — via Apify integrations or webhooks.
- **Zapier / Make** — trigger flows when new jobs appear.
- **Slack / email** — get notified on each run.
- **API & webhooks** — pull the dataset straight into your app, ATS or warehouse.
- **Schedules** — run daily or weekly to track new postings and salary changes automatically.

***

### ▶️ Step-by-step

1. Click **Try for free / Start**.
2. Pick a **country** (e.g. United States).
3. Add **keywords** (e.g. `analyst`) and/or pick **sectors**, or leave blank for everything.
4. *(Optional)* Set **salary**, **remote/hybrid** or **posted-within** filters.
5. Set **Max results** (start with 100).
6. Press **Start** and watch the live log.
7. Open **Storage → Dataset** and **Export** to JSON, CSV or Excel.

***

### ❓ FAQ

**Which markets can I scrape?**
United States, United Kingdom, Hong Kong, Singapore, Germany, France, Switzerland, Luxembourg, UAE and Australia.

**Can I search by finance sector?**
Yes — pick from 22 sectors (investment banking, asset management, hedge funds, private equity, trading, quant, risk, compliance, fintech and more). You can also search by keyword.

**Do I get salaries?**
When the employer discloses pay, you get `minSalary`, `maxSalary` and `salaryCurrency` as clean numbers, plus the original text. Many finance roles show "Competitive" — those keep the text and leave the numbers empty. Use **Minimum salary** to keep only disclosed roles.

**Do I get the full job description?**
Yes — every record can include the complete description. Turn off **Include full job description** for a lighter, faster export.

**How many jobs can I collect?**
As many as the search returns — set `maxItems` to `0` for no limit. A single market can hold tens of thousands of live roles.

**Do I get applicant or contact emails?**
No. The Actor collects the public job posting — title, company, salary, location, sector and description. Applications go through the site's own apply flow.

**Do I need proxies?**
Datacenter proxies (the default) are enough and keep runs fast and cheap.

**In what formats can I export?**
JSON, CSV, Excel, HTML table, plus the Apify API and integrations.

***

### 💡 Tips

- Start with `maxItems: 100` to preview the data, then scale up.
- Combine a **country** + **sectors** + **minSalary** for a tight, high-signal list.
- Use **`postedWithinDays: 1`** on a daily schedule to capture brand-new roles.
- Turn off **Include full job description** when you only need titles, companies and salaries.
- For very broad sweeps, leave `searchTerms` empty and let the market fill your dataset.

***

### ⚠️ Limitations & responsible use

- Salary is only populated when the employer discloses it; many roles show "Competitive".
- Remote/hybrid and some company fields depend on what each employer publishes.
- Sector, salary, employment-type and recency filters are applied to the collected results within a bounded scan, so very narrow filter combinations may return a partial list.
- Use the data responsibly and in line with applicable laws, the target website's terms and any privacy regulations that apply to you. This tool is intended for recruitment, market research and job aggregation of publicly listed roles.

***

<p align="center"><i>This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by eFinancialCareers or DHI Group. All trademarks are the property of their respective owners.</i></p>

<p align="center"><b>Turn the finance job market into a spreadsheet in minutes. Pick a market, press Start. 🚀</b></p>

# Actor input Schema

## `searchTerms` (type: `array`):

Job keywords to search, e.g. "analyst", "investment banking", "quant", "risk" or "compliance". Each keyword is searched separately. Leave empty to collect all jobs in the selected country.

## `country` (type: `string`):

Which eFinancialCareers market to search. Salary and currency follow the market.

## `sectors` (type: `array`):

Keep only jobs in these finance sectors. Leave empty for all sectors.

## `employmentType` (type: `string`):

Filter by full- or part-time.

## `positionType` (type: `string`):

Filter by contract type.

## `workArrangement` (type: `string`):

Keep only remote or hybrid roles (when disclosed by the employer).

## `minSalary` (type: `integer`):

Only jobs whose disclosed salary reaches at least this amount (in the market's currency). Jobs without a disclosed salary are skipped when set.

## `postedWithinDays` (type: `integer`):

Only jobs posted in the last N days. Leave empty for all.

## `includeDescription` (type: `boolean`):

Add the full job description text to every record. Turn off for a lighter, faster export.

## `maxItems` (type: `integer`):

Stop after collecting this many jobs in total. Set 0 for no limit.

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

Recommended for reliable collection. Datacenter proxies are enough for this Actor.

## Actor input object example

```json
{
  "searchTerms": [
    "investment banking",
    "quantitative analyst",
    "risk"
  ],
  "country": "us",
  "employmentType": "any",
  "positionType": "any",
  "workArrangement": "any",
  "includeDescription": true,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Open to view, filter and export every collected job — title, company, salary, location, sector and description (JSON, CSV, Excel).

# 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 = {
    "searchTerms": [
        "analyst"
    ],
    "country": "us",
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/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 = {
    "searchTerms": ["analyst"],
    "country": "us",
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/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 '{
  "searchTerms": [
    "analyst"
  ],
  "country": "us",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/efinancialcareers-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/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/emITtKDNHWf30VsL1/builds/5cMxGEPExmGNrqESg/openapi.json
