{
  "openapi": "3.0.1",
  "info": {
    "title": "eFinancialCareers [$1💰] Finance & Banking Jobs Scraper",
    "description": "Scrape 70,000+ finance and banking jobs from eFinancialCareers. Filter by sector, seniority, employer, salary and region, or paste any search URL. Each row has the employer's real ATS apply link, skills, and company data: industry, year founded, benefits and recruiters. No proxy cost.",
    "version": "0.0",
    "x-build-id": "pRicCBww2V5prwb1I"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~efinancialcareers-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-efinancialcareers-jobs-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/memo23~efinancialcareers-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-efinancialcareers-jobs-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/memo23~efinancialcareers-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-efinancialcareers-jobs-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": {
          "startUrls": {
            "title": "eFinancialCareers URLs",
            "type": "array",
            "description": "Full eFinancialCareers URLs to crawl. Mix listing and job URLs in the same array if useful. Leave empty to search with the keyword/location fields below. The filters further down are added to listing URLs unless the URL already sets that filter.",
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keywords",
            "type": "string",
            "description": "One keyword per line, e.g. `quant analyst`, `compliance`, `trader`. Each line is its own search. Leave empty to list every job that matches the filters. Ignored when Start URLs are set (add `?q=…` to a start URL instead)."
          },
          "location": {
            "title": "Locations",
            "type": "string",
            "description": "One location per line, free text, e.g. `London`, `New York, NY, USA`, `Singapore`, `United Kingdom`. Leave empty to search worldwide. Ignored when Start URLs are set."
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Only return jobs marked remote. Same as picking Remote under Work arrangement.",
            "default": false
          },
          "includeRemote": {
            "title": "Include remote jobs in location searches",
            "type": "boolean",
            "description": "When filtering by location, also include remote jobs available for that location.",
            "default": false
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "Whole regions of the site's location tree. For a single country or city, use Locations instead.",
            "items": {
              "type": "string",
              "enum": [
                "Africa",
                "Asia",
                "Australasia",
                "Europe",
                "Gulf",
                "North America"
              ],
              "enumTitles": [
                "Africa",
                "Asia",
                "Australasia",
                "Europe",
                "Gulf",
                "North America"
              ]
            }
          },
          "sectors": {
            "title": "Sectors",
            "type": "array",
            "description": "Finance sectors as the site classifies them, e.g. Risk Management, Trading, Hedge Funds.",
            "items": {
              "type": "string",
              "enum": [
                "INFORMATION_TECHNOLOGY",
                "ACCOUNTING_FINANCE",
                "INSURANCE",
                "COMPLIANCE_LEGAL",
                "ASSET_MANAGEMENT",
                "OPERATIONS",
                "PRIVATE_BANKING_WEALTH_MANAGEMENT",
                "SALES_MARKETING",
                "RISK_MANAGEMENT",
                "CONSULTANCY",
                "CORPORATE_BANKING",
                "HR_RECRUITMENT",
                "RETAIL_BANKING",
                "INVESTMENT_BANKING_M_A",
                "GRADUATES_INTERNSHIPS",
                "REAL_ESTATE",
                "TRADING",
                "QUANTITATIVE_ANALYTICS",
                "INFORMATION_SERVICES",
                "PRIVATE_EQUITY_VENTURE_CAPITAL",
                "FINTECH",
                "CREDIT",
                "HEDGE_FUNDS",
                "EQUITIES",
                "INVESTOR_RELATIONS_PR",
                "COMMODITIES",
                "CAPITAL_MARKETS",
                "DEBT_FIXED_INCOME",
                "FX_MONEY_MARKETS",
                "INVESTMENT_CONSULTING",
                "GLOBAL_CUSTODY",
                "RESEARCH",
                "DERIVATIVES",
                "INDUSTRY_COMMERCE",
                "PUBLIC_SECTOR",
                "ISLAMIC_FINANCE"
              ],
              "enumTitles": [
                "Technology",
                "Accounting & Finance",
                "Insurance",
                "Compliance/Legal",
                "Asset Management",
                "Operations",
                "Private Banking & Wealth Management",
                "Sales & Marketing",
                "Risk Management",
                "Consultancy",
                "Corporate Banking",
                "HR & Recruitment",
                "Retail Banking",
                "Investment Banking/M&A",
                "Graduates & Internships",
                "Real Estate",
                "Trading",
                "Quantitative Analytics",
                "Information Services",
                "Private Equity & Venture Capital",
                "Fintech",
                "Credit",
                "Hedge Funds",
                "Equities",
                "Investor Relations & PR",
                "Commodities",
                "Capital Markets",
                "Debt/Fixed Income",
                "FX & Money Markets",
                "Investment Consulting",
                "Global Custody",
                "Research",
                "Derivatives",
                "Industry & Commerce",
                "Public Sector",
                "Islamic Finance"
              ]
            }
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Seniority bands, from Intern/Graduate to C Suite.",
            "items": {
              "type": "string",
              "enum": [
                "INTERN_GRADUATE",
                "JUNIOR",
                "ANALYST",
                "ASSOCIATE_MID_LEVEL",
                "AVP_SENIOR",
                "VP_PRINCIPAL",
                "SVP_HEAD_OF",
                "DIRECTOR",
                "MANAGING_DIRECTOR",
                "C_SUITE"
              ],
              "enumTitles": [
                "Intern/Graduate",
                "Junior",
                "Analyst",
                "Associate/Mid Level",
                "AVP/Senior",
                "Vice President/Principal",
                "Senior Vice President/Head of",
                "Director",
                "Managing Director",
                "C Suite"
              ]
            }
          },
          "experienceLevel": {
            "title": "Experience level",
            "type": "array",
            "description": "Years of experience the ad asks for. Only a small share of ads state it, so this filter returns a narrow slice.",
            "items": {
              "type": "string",
              "enum": [
                "NO_EXPERIENCE",
                "ONE_THREE_YEARS_EXPERIENCE",
                "THREE_FIVE_YEARS_EXPERIENCE",
                "FIVE_SEVEN_YEARS_EXPERIENCE",
                "SEVEN_TEN_YEARS_EXPERIENCE",
                "TEN_FIFTEEN_YEARS_EXPERIENCE",
                "MORE_THAN_FIFTEEN_YEARS_EXPERIENCE"
              ],
              "enumTitles": [
                "No exp.",
                "1-3 yrs",
                "3-5 yrs",
                "5-7 yrs",
                "7-10 yrs",
                "10-15 yrs",
                "15+ yrs"
              ]
            }
          },
          "positionType": {
            "title": "Position type",
            "type": "array",
            "description": "Permanent, contract, temporary, self-employed, or internships and graduate schemes.",
            "items": {
              "type": "string",
              "enum": [
                "PERMANENT",
                "CONTRACT",
                "INTERNSHIPS_AND_GRADUATE_TRAINEE",
                "TEMPORARY",
                "SELF_EMPLOYED"
              ],
              "enumTitles": [
                "Permanent",
                "Contract",
                "Internships & Graduate Trainee",
                "Temporary",
                "Self Employed"
              ]
            }
          },
          "employmentType": {
            "title": "Employment type",
            "type": "array",
            "description": "Full time or part time.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME"
              ],
              "enumTitles": [
                "Full time",
                "Part time"
              ]
            }
          },
          "workArrangement": {
            "title": "Work arrangement",
            "type": "array",
            "description": "Remote, hybrid, in-office or flexible. Only about 5% of ads state an arrangement, so this filter returns a narrow slice.",
            "items": {
              "type": "string",
              "enum": [
                "HYBRID",
                "IN_OFFICE",
                "REMOTE",
                "FLEXIBLE",
                "TEMPORARILY_REMOTE"
              ],
              "enumTitles": [
                "Hybrid",
                "In-Office",
                "Remote",
                "Flexible",
                "Temporarily Remote"
              ]
            }
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Employer names as shown on the site, e.g. `Deloitte`, `Citi`, `JPMorgan`. Case doesn't matter; the name must otherwise match the employer's brand name.",
            "items": {
              "type": "string"
            }
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "enum": [
              "EUR",
              "USD",
              "GBP",
              "INR",
              "HKD",
              "SGD",
              "CHF",
              "AUD",
              "MYR",
              "AED",
              "JPY",
              "SAR",
              "CNY",
              "QAR",
              "BHD",
              "CAD",
              "KWD",
              "ZAR",
              "DKK",
              "SEK",
              "NZD"
            ],
            "type": "string",
            "description": "Currency the ad's salary is stated in. Needed for the salary bounds below to mean anything, since a bare number has no currency."
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs whose stated salary reaches this amount, in the salary currency above. Annual salaries and day rates share this field, so a low value also matches day-rate contracts."
          },
          "maxSalary": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs whose stated salary is at most this amount, in the salary currency above."
          },
          "includeJobsWithoutSalary": {
            "title": "Include jobs that don't state a salary",
            "type": "boolean",
            "description": "Leave empty for the sensible default: included normally, excluded as soon as a minimum or maximum salary is set (otherwise every job without a salary would slip through the bound). Set it explicitly to override."
          },
          "enrichJobDetails": {
            "title": "Fetch full job detail (HTML description, skills, coordinates, reference)",
            "type": "boolean",
            "description": "When enabled, each job also fetches eFinancialCareers' detail API for the formatted HTML description, the skills list, latitude/longitude, sub-sectors, the employer's job reference number, the work-arrangement type, the date the ad was first placed (`firstPostedDate`, with `isRefreshedAd` when it was re-dated later) and work-permit requirements. Adds one fast API call per job. When disabled, rows still carry the full plain-text description from the search API.",
            "default": true
          },
          "fetchApplyInfo": {
            "title": "Fetch the real external apply URL (ATS link)",
            "type": "boolean",
            "description": "When enabled, each job fetches the apply-information API to resolve the REAL external application URL — the employer's own ATS link (Workday, iCIMS, Greenhouse, …) — into `externalApplyUrl`. Adds one fast API call per job. Jobs using eFinancialCareers' internal apply flow get `applyType: \"internal\"` instead.",
            "default": true
          },
          "enrichCompany": {
            "title": "Fetch company profile (industry, founded, location, benefits, recruiters, website)",
            "type": "boolean",
            "description": "When enabled, each unique employer's profile is fetched once (cached across jobs) to add `companyDescription`, `companyIndustry`, `companyYearFounded`, `companyProfileCity`/`companyProfileCountry` (the location the employer lists on its profile, usually but not always the HQ), `companyBenefits`, the named recruiters on the profile (`companyRecruiters`: name, title, work email, profile link) and `companyWebsite`/`companyDomain`. When the profile has no website, `companyDomain` comes from the recruiters' work emails. Requires 'Fetch full job detail'.",
            "default": true
          },
          "enrichEmails": {
            "title": "Enrich with employer contact emails (experimental)",
            "type": "boolean",
            "description": "If enabled, tries to find a contact email for each employer by discovering the company's website and reading its contact/about pages. Adds contactEmail + contactWebsite columns plus a detailed emailEnrichment object. Best-effort.",
            "default": false
          },
          "qualifyByPayment": {
            "title": "💳 Qualify by payment (flag businesses that take money online)",
            "type": "boolean",
            "description": "Requires \"Enrich with contact emails\". Scans each business's website — reusing the pages already fetched for email discovery, so no extra cost or time — for payment processors and e-commerce platforms (Stripe, Shopify, PayPal, Paddle, Lemon Squeezy, WooCommerce, Square, Chargebee and more). Adds takesPayments (is this a real paying business?), paymentProcessors (which stack), stripeLiveKey (the public key if exposed) and paymentConfidence. Turn raw contacts into monetization-qualified leads. No extra charge — included with each enriched company.",
            "default": false
          },
          "postedWithinHours": {
            "title": "Only jobs posted in the last N hours",
            "minimum": 0,
            "type": "integer",
            "description": "Set 24 for the last day, 72 for the last 3 days, etc. Up to 144 hours the site pre-filters the search, so runs stay fast. Leave empty (or 0) to return everything regardless of age."
          },
          "onlyNewJobs": {
            "title": "Only new jobs (skip jobs earlier runs already delivered)",
            "type": "boolean",
            "description": "Remembers the jobs each run delivers and skips them on later runs of the same search, so a schedule only pays for jobs it hasn't seen. Skipped jobs cost nothing. The memory is kept for 90 days in a key-value store named `efinancialcareers-seen-jobs` in your account. Pair it with 'Only jobs posted in the last N hours' to keep scheduled runs fast.",
            "default": false
          },
          "stateKey": {
            "title": "State name (optional)",
            "type": "string",
            "description": "Leave empty and each distinct search keeps its own memory automatically. Set a name to share one memory between tasks, or change it to start fresh."
          },
          "descriptionFormat": {
            "title": "Job description",
            "enum": [
              "both",
              "text",
              "html",
              "none"
            ],
            "type": "string",
            "description": "Which description to keep: both the formatted HTML (`description`) and the plain text (`descriptionText`), only one of them, or none. 'None' suits wide CSV exports.",
            "default": "both"
          },
          "descriptionMaxLength": {
            "title": "Cut long text at (characters)",
            "minimum": 0,
            "type": "integer",
            "description": "Truncate the description, summary and company description to this many characters, with an ellipsis added. HTML is cut at a tag boundary. 0 = keep the full text.",
            "default": 0
          },
          "compact": {
            "title": "Compact output (core fields only)",
            "type": "boolean",
            "description": "Keep only the core columns: job id and URL, title, company and domain, location, remote and work arrangement, salary, sectors, skills, contract and employment type, dates, description, apply type and external apply URL, contact email. Smaller rows for AI agents, MCP tools and spreadsheets.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Drop empty fields",
            "type": "boolean",
            "description": "Remove fields that are null, empty text, empty lists or empty objects from each row. Rows then differ in their columns, which suits JSON consumers more than CSV.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum items to scrape",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the number of jobs collected and billed. eFinancialCareers lists ~70,000+ jobs globally. When this field is left out (for example in API calls) the cap is 1000.",
            "default": 1000
          },
          "maxItemsPerSearch": {
            "title": "Maximum items per search",
            "minimum": 0,
            "type": "integer",
            "description": "Cap for each single search (one keyword in one location, or one start URL), so a broad first search can't use up the whole run before the others start. 0 = no per-search cap.",
            "default": 0
          },
          "maxCostUsd": {
            "title": "Maximum cost per run (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Stop once the jobs delivered reach this amount, at your plan's per-job price. Email enrichment and the small start fee are billed on top. 0 = no limit. Apify's own 'Max cost per run' run option is honoured as well.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of job API calls processed in parallel.",
            "default": 10
          },
          "minConcurrency": {
            "title": "Min concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Minimum number of job API calls processed in parallel.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "type": "integer",
            "description": "Number of retries before a failed request is given up.",
            "default": 5
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "NOT needed for eFinancialCareers — the scraper reads the site's open JSON APIs, which work without any proxy. Only configure one if you see blocks in your region; it is honoured as an explicit override.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}