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

\[💰 $1.0 / 1K] Extract finance, banking, and fintech job listings from eFinancialCareers. Search by keyword and location, filter by sector, employment type, work arrangement, salary, and posting date, and get structured data including titles, companies, salaries, descriptions, and apply links.

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

## Pricing

from $1.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

Pull finance, banking, and fintech job listings from eFinancialCareers at scale — titles, hiring companies, multi-currency salaries, sectors, work arrangement, posting dates, full descriptions, and apply links across the US, UK, Europe, and Asia. Built for finance recruiters, talent teams, and compensation analysts who need fresh, structured eFinancialCareers data without copying listings off the site one search at a time.

### Why This Scraper?

- **Up to 50 keywords in a single run** — batch "quantitative developer", "risk manager", "compliance officer" and more into one execution with cross-query deduplication. The leading competitor runs a single keyword at a time.
- **Five regional editions, native currency** — US (USD), UK (GBP), Europe (EUR), Asia / Singapore & Hong Kong (SGD), or Global, so salaries come back in the local currency instead of a single home market.
- **Finance-sector targeting as a first-class filter** — narrow to any of 12 named sectors: Investment Banking / M&A, Asset Management, Trading, Private Equity, Hedge Funds, Risk Management, Compliance / Legal, Accounting & Finance, Technology, Operations, Wealth Management, or Insurance — a filter the competitor doesn't offer at all.
- **Five employment types, three work arrangements** — filter Permanent, Contract, Temporary, Internship / Graduate, or Self-Employed roles, and slice by Remote, Hybrid, or On-site.
- **Parsed multi-currency salary fields** — alongside the raw salary text you get `salaryMin`, `salaryMax`, `salaryCurrency`, and `salaryPeriod` (year / month / week / day / hour) extracted for you, with a minimum-salary filter that drops salary-hidden listings.
- **Full job descriptions out of the box** — every record carries the complete posting text (typically 3,000–7,600 characters), not just the search-card teaser. Toggle off for lighter, metadata-only records.
- **Posted-date freshness windows** — restrict to listings posted today, in the last 3 days, or the last 7 days for daily candidate-sourcing pipelines.
- **Direct URL passthrough** — already have a search dialed in on the eFinancialCareers website? Paste the search-result or job URL and the scraper honors it as-is.

### Use Cases

**Recruitment & Sourcing**
- Build candidate pipelines by tracking which banks and funds are hiring for specific desks
- Surface fresh roles daily with the "posted today" window for fast-moving mandates
- Target niche talent by sector (e.g. quant, structured credit, regulatory compliance)
- Identify contract and interim opportunities for staffing-firm placement

**Compensation & Market Research**
- Track salary bands across cities, sectors, and seniority using parsed `salaryMin` / `salaryMax`
- Compare pay for the same role across US, UK, EU, and Asia editions in native currency
- Map remote-vs-hybrid-vs-on-site mix within investment banking, asset management, or fintech
- Benchmark advertised compensation against your own offer ranges

**Competitive & Hiring Intelligence**
- Monitor which firms are scaling specific teams and how fast their postings turn over
- Track new-entrant fintechs vs. bulge-bracket banks competing for the same talent
- Watch sector hiring shifts (e.g. compliance ramp-ups, trading-desk build-outs)
- Build company-level views of open headcount by function and location

**Job-Market Analytics & Aggregation**
- Power a finance-only or region-specific job board with fresh eFinancialCareers listings
- Build longitudinal datasets of financial-services hiring activity by sector and region
- Study employer behavior around remote work, contract employment, and graduate intake
- Enrich existing job-board records with full descriptions and direct apply links

### Getting Started

#### Simple Keyword Search

The fastest way to start — one keyword, sensible defaults:

```json
{
    "searchQueries": ["financial analyst"],
    "region": "us",
    "maxResultsPerQuery": 100
}
````

#### Filtered Search — Fresh Remote London Roles

Narrow down to recent, remote, permanent roles in a specific market and sector:

```json
{
    "searchQueries": ["risk manager", "compliance officer"],
    "location": "London",
    "region": "uk",
    "sector": "compliance",
    "employmentType": "PERMANENT",
    "workArrangement": "REMOTE",
    "postedWithinDays": "7",
    "maxResultsPerQuery": 200
}
```

#### Compensation Sweep — High-Salary Quant Roles

Surface only roles whose advertised salary clears a floor in the region's currency:

```json
{
    "searchQueries": ["quantitative developer", "quantitative researcher"],
    "region": "us",
    "sector": "trading",
    "minSalary": 200000,
    "maxResultsPerQuery": 500
}
```

#### Direct URL + Keyword Combo

Already have a search tuned on the eFinancialCareers website? Paste the URL alongside your own keywords for a mixed batch:

```json
{
    "searchQueries": ["portfolio manager"],
    "startUrls": [
        "https://www.efinancialcareers.com/jobs?searchString=hedge+fund+analyst&location=Singapore"
    ],
    "region": "asia",
    "maxResultsPerQuery": 250
}
```

### Input Reference

#### Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | string\[] | `["financial analyst"]` | Job titles or keywords to search for, such as `"financial analyst"`, `"risk manager"`, or `"quantitative developer"`. Each keyword runs a separate search (up to 50). Leave empty to collect the broadest result set for your location and filters. |
| `location` | string | `""` | City, region, or country to search in. Examples: `"New York"`, `"London"`, `"Singapore"`, `"Hong Kong"`. Leave empty to search worldwide within the selected region. |
| `startUrls` | string\[] | `[]` | Paste full eFinancialCareers search-result URLs or individual job-listing URLs to scrape them directly. Useful when you already have a search dialed in on the website. Up to 50 URLs per run. |

#### Filters & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `region` | select | `United States` | Which regional edition to search, setting the site locale and default countries. Options: `United States`, `United Kingdom`, `Europe`, `Asia (Singapore / Hong Kong)`, `Global (all regions)`. |
| `sector` | select | `Any sector` | Limit results to one finance sector. Options include `Investment Banking / M&A`, `Asset Management`, `Trading / Sales & Trading`, `Private Equity`, `Hedge Funds`, `Risk Management`, `Compliance / Legal`, `Accounting & Finance`, `Technology`, `Operations`, `Wealth Management`, `Insurance`. |
| `employmentType` | select | `Any` | Filter by contract type. Options: `Any`, `Permanent / Full-time`, `Contract`, `Temporary`, `Internship / Graduate Trainee`, `Self-Employed`. |
| `workArrangement` | select | `Any` | Filter by where the role is performed. Options: `Any`, `Remote`, `Hybrid`, `On-site / Office`. |
| `postedWithinDays` | select | `Any time` | Only show jobs posted within this window. Options: `Any time`, `Today`, `Last 3 days`, `Last 7 days`. |
| `minSalary` | integer | `null` | Only show jobs whose advertised salary meets or exceeds this amount, in the region's local currency. Listings that hide their salary are excluded when a minimum is set. |
| `maxResultsPerQuery` | integer | `100` | Maximum job listings to collect per search keyword (or per start URL). Set to `0` to collect all available results. Results come in pages of 50, and the whole final page is always kept, so a small cap can return up to a full page more than requested. |

#### Output

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeDescription` | boolean | `true` | Include the full job description text for each listing. Leave on for the most complete data. Turn off for lighter records when you only need titles, companies, locations, and salaries. |

### Output

Each record is one job listing with the full set of structured fields:

```json
{
    "jobId": "FE-20269871",
    "title": "Senior Quantitative Developer",
    "company": "Meridian Capital Partners",
    "companyLogoUrl": "https://www.efinancialcareers.com/logos/meridian-capital.png",
    "location": "New York, NY, USA",
    "city": "New York",
    "state": "NY",
    "country": "USA",
    "salary": "USD 180,000 - 220,000 per annum",
    "salaryMin": 180000,
    "salaryMax": 220000,
    "salaryCurrency": "USD",
    "salaryPeriod": "year",
    "employmentType": "Permanent",
    "workArrangement": "Hybrid",
    "sectors": ["Trading - Equities", "Technology - Development"],
    "postedDate": "2026-05-24T09:12:00Z",
    "expirationDate": "2026-06-23T00:00:00Z",
    "summary": "Join a systematic trading desk building low-latency pricing models...",
    "description": "We are seeking a Senior Quantitative Developer to design and implement...",
    "isExternalApplication": false,
    "applyUrl": "https://www.efinancialcareers.com/jobs-USA-NY-New_York-Senior_Quantitative_Developer.id20269871",
    "jobUrl": "https://www.efinancialcareers.com/jobs-USA-NY-New_York-Senior_Quantitative_Developer.id20269871",
    "searchQuery": "quantitative developer",
    "searchLocation": "New York",
    "scrapedAt": "2026-05-29T13:45:12Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `jobId` | string | eFinancialCareers job identifier. |
| `title` | string | Job title. |
| `company` | string | Hiring company or recruiter brand name. |
| `companyLogoUrl` | string | null | Company / brand logo URL. |
| `summary` | string | null | Short summary as shown on the search-results card. |
| `description` | string | null | Full job description text (when `includeDescription` is on). |
| `jobUrl` | string | Canonical eFinancialCareers listing URL. |
| `scrapedAt` | string | ISO 8601 timestamp of when the record was captured. |

#### Location

| Field | Type | Description |
|-------|------|-------------|
| `location` | string | null | Full location string as displayed. |
| `city` | string | null | City. |
| `state` | string | null | State or region. |
| `country` | string | null | Country. |

#### Salary

| Field | Type | Description |
|-------|------|-------------|
| `salary` | string | null | Raw advertised salary text (null when the listing hides it). |
| `salaryMin` | number | null | Parsed minimum compensation, when the format is clean enough to extract. |
| `salaryMax` | number | null | Parsed maximum compensation. |
| `salaryCurrency` | string | null | Currency code (e.g. `USD`, `GBP`, `EUR`, `SGD`). |
| `salaryPeriod` | string | null | `year`, `month`, `week`, `day`, or `hour` when stated. |

#### Classification

| Field | Type | Description |
|-------|------|-------------|
| `employmentType` | string | null | Permanent, Contract, Temporary, Internship, or Self-Employed. |
| `workArrangement` | string | null | Remote, Hybrid, or On-site (often unstated by the employer). |
| `sectors` | string\[] | Human-readable finance sectors / job functions tagged on the listing (e.g. `Trading - Equities`, `Compliance/Legal`). |
| `postedDate` | string | null | ISO date the listing was posted. |
| `expirationDate` | string | null | ISO expiry date when the employer sets a real one. |

#### Application & Provenance

| Field | Type | Description |
|-------|------|-------------|
| `isExternalApplication` | boolean | null | Whether applying happens on an external site. |
| `applyUrl` | string | null | Apply / application URL. |
| `searchQuery` | string | null | The keyword that surfaced this row. |
| `searchLocation` | string | null | The location used for the search. |

### Tips for Best Results

- **Use specific keywords** — `"fixed income trader"` returns far cleaner results than `"trader"`. Broad terms dilute relevance across thousands of postings.
- **Match the region to the market** — set `region` to where you want jobs so salaries come back in the right currency. `Global` returns worldwide results in USD; pick `United Kingdom` or `Asia` for native GBP / SGD figures.
- **Run a salary-band sweep for compensation studies** — set `minSalary` and run the same role across `us`, `uk`, and `eu` editions to compare pay floors. Listings that hide salary are dropped automatically when a minimum is set, leaving a clean comparable dataset.
- **Set `postedWithinDays` to "Today" for fresh listings** — ideal for daily candidate-sourcing pipelines and new-role alerting.
- **Batch related titles in one run** — populate `searchQueries` with several variants (e.g. `["compliance officer", "compliance analyst", "regulatory compliance"]`) to deduplicate across queries automatically and save spinning up multiple runs.
- **Turn off `includeDescription` for lighter pulls** — when you only need titles, companies, locations, and salaries, skipping the full description text produces leaner records for high-volume analytics.

### Pricing

**$1.00 per 1,000 results** — pay only for the job listings you actually receive. **No compute charges — you only pay per result returned.**

| Results | Estimated Cost |
|---------|----------------|
| 100 | $0.10 |
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |

A "result" is one job listing in the output dataset. We match the headline rate of comparable eFinancialCareers scrapers but ship far more: 50-keyword batches, five regional editions, 12 sector filters, and parsed multi-currency salaries. Platform fees depend on your Apify plan.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate recruiting, market research, compensation benchmarking, and labor-market analysis. Only public job listings are collected — no private employer dashboards, applicant data, or candidate contact details. Users are responsible for complying with applicable laws and eFinancialCareers' Terms of Service. Do not redistribute collected listings as a substitute for eFinancialCareers' own product, and do not use the data for spam, harassment, candidate impersonation, or any unlawful purpose.

# Actor input Schema

## `searchQueries` (type: `array`):

Job titles or keywords to search for, such as 'financial analyst', 'risk manager', or 'quantitative developer'. Each keyword runs a separate search. Leave empty to collect the broadest result set for your location and filters.

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

City, region, or country to search in. Examples: 'New York', 'London', 'Singapore', 'Hong Kong'. Leave empty to search worldwide within the selected region.

## `startUrls` (type: `array`):

Paste full eFinancialCareers search-result URLs (e.g. https://www.efinancialcareers.com/jobs?searchString=...) or individual job-listing URLs to scrape them directly. Useful when you already have a search dialed in on the website. Up to 50 URLs per run.

## `region` (type: `string`):

Which regional edition of eFinancialCareers to search. This sets the site locale and the default countries shown. Pick the edition closest to where you want jobs.

## `sector` (type: `string`):

Limit results to one finance sector. Leave on 'Any' to include all sectors.

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

Filter by contract type. Pick one or leave on 'Any' for all types.

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

Filter by where the role is performed.

## `postedWithinDays` (type: `string`):

Only show jobs posted within this time period.

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

Only show jobs whose advertised salary meets or exceeds this amount, in the region's local currency (USD / GBP / EUR). Many finance listings hide salary — those are excluded when a minimum is set. Leave empty (or 0) for no minimum.

## `maxResultsPerQuery` (type: `integer`):

Maximum number of job listings to collect per search keyword (or per start URL). Set to 0 to collect all available results across pagination. Results are fetched in pages of 50: the actor stops once your cap is reached but always keeps the whole final page, so a small cap (e.g. 10) can return up to a full page more than you asked for. Listings repeated across pages are deduplicated, so the final count can also run slightly below your cap.

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

Include the full job description text for each listing. Leave on for the most complete data. Turn off for lighter records when you only need titles, companies, locations, and salaries.

## Actor input object example

```json
{
  "searchQueries": [
    "financial analyst"
  ],
  "startUrls": [],
  "region": "us",
  "sector": "",
  "employmentType": "",
  "workArrangement": "",
  "postedWithinDays": "",
  "maxResultsPerQuery": 100,
  "includeDescription": true
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped job listings with key fields.

## `detail` (type: `string`):

Complete job data including descriptions, parsed salary fields, sectors, and metadata.

# 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 = {
    "searchQueries": [
        "financial analyst"
    ],
    "location": "",
    "startUrls": [],
    "region": "us",
    "sector": "",
    "employmentType": "",
    "workArrangement": "",
    "postedWithinDays": "",
    "maxResultsPerQuery": 100,
    "includeDescription": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/efinancialcareers-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 = {
    "searchQueries": ["financial analyst"],
    "location": "",
    "startUrls": [],
    "region": "us",
    "sector": "",
    "employmentType": "",
    "workArrangement": "",
    "postedWithinDays": "",
    "maxResultsPerQuery": 100,
    "includeDescription": True,
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "financial analyst"
  ],
  "location": "",
  "startUrls": [],
  "region": "us",
  "sector": "",
  "employmentType": "",
  "workArrangement": "",
  "postedWithinDays": "",
  "maxResultsPerQuery": 100,
  "includeDescription": true
}' |
apify call solidcode/efinancialcareers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/efinancialcareers-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "eFinancialCareers Jobs Scraper",
        "description": "[💰 $1.0 / 1K] Extract finance, banking, and fintech job listings from eFinancialCareers. Search by keyword and location, filter by sector, employment type, work arrangement, salary, and posting date, and get structured data including titles, companies, salaries, descriptions, and apply links.",
        "version": "1.0",
        "x-build-id": "LGhBjmsKvvlDRsv1v"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~efinancialcareers-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-efinancialcareers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~efinancialcareers-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-efinancialcareers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~efinancialcareers-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-efinancialcareers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQueries": {
                        "title": "Search Keywords",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Job titles or keywords to search for, such as 'financial analyst', 'risk manager', or 'quantitative developer'. Each keyword runs a separate search. Leave empty to collect the broadest result set for your location and filters.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, region, or country to search in. Examples: 'New York', 'London', 'Singapore', 'Hong Kong'. Leave empty to search worldwide within the selected region."
                    },
                    "startUrls": {
                        "title": "Direct eFinancialCareers URLs",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Paste full eFinancialCareers search-result URLs (e.g. https://www.efinancialcareers.com/jobs?searchString=...) or individual job-listing URLs to scrape them directly. Useful when you already have a search dialed in on the website. Up to 50 URLs per run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "region": {
                        "title": "Region / Site Edition",
                        "enum": [
                            "us",
                            "uk",
                            "eu",
                            "asia",
                            "global"
                        ],
                        "type": "string",
                        "description": "Which regional edition of eFinancialCareers to search. This sets the site locale and the default countries shown. Pick the edition closest to where you want jobs.",
                        "default": "us"
                    },
                    "sector": {
                        "title": "Sector",
                        "enum": [
                            "",
                            "investment-banking",
                            "asset-management",
                            "trading",
                            "private-equity",
                            "hedge-funds",
                            "risk-management",
                            "compliance",
                            "accounting-finance",
                            "technology",
                            "operations",
                            "wealth-management",
                            "insurance"
                        ],
                        "type": "string",
                        "description": "Limit results to one finance sector. Leave on 'Any' to include all sectors.",
                        "default": ""
                    },
                    "employmentType": {
                        "title": "Employment Type",
                        "enum": [
                            "",
                            "PERMANENT",
                            "CONTRACT",
                            "TEMPORARY",
                            "INTERNSHIP",
                            "SELF_EMPLOYED"
                        ],
                        "type": "string",
                        "description": "Filter by contract type. Pick one or leave on 'Any' for all types.",
                        "default": ""
                    },
                    "workArrangement": {
                        "title": "Work Arrangement",
                        "enum": [
                            "",
                            "REMOTE",
                            "HYBRID",
                            "ONSITE"
                        ],
                        "type": "string",
                        "description": "Filter by where the role is performed.",
                        "default": ""
                    },
                    "postedWithinDays": {
                        "title": "Posted Within",
                        "enum": [
                            "",
                            "1",
                            "3",
                            "7"
                        ],
                        "type": "string",
                        "description": "Only show jobs posted within this time period.",
                        "default": ""
                    },
                    "minSalary": {
                        "title": "Minimum Salary",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only show jobs whose advertised salary meets or exceeds this amount, in the region's local currency (USD / GBP / EUR). Many finance listings hide salary — those are excluded when a minimum is set. Leave empty (or 0) for no minimum."
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results per Query",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of job listings to collect per search keyword (or per start URL). Set to 0 to collect all available results across pagination. Results are fetched in pages of 50: the actor stops once your cap is reached but always keeps the whole final page, so a small cap (e.g. 10) can return up to a full page more than you asked for. Listings repeated across pages are deduplicated, so the final count can also run slightly below your cap.",
                        "default": 100
                    },
                    "includeDescription": {
                        "title": "Fetch Full Job Descriptions",
                        "type": "boolean",
                        "description": "Include the full job description text for each listing. Leave on for the most complete data. Turn off for lighter records when you only need titles, companies, locations, and salaries.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
