Howth Technology Factory
All tools

Bank of America Jobs API: every open role as structured data

Bank of America's public careers listings, delivered as one clean table you can filter, diff and hand to a model.

Unofficial. Not affiliated with, endorsed by, or sponsored by Bank of America Corporation, or by Workday, Inc. Structured facts only by default; no personal data is collected.

apify.com/apifmcpfactory/bankofamerica-jobs-api
Bank of America Jobs API — sample run
Illustrative preview
Success
Deterministic
Fast
Typed output
What it does

In plain language.

Bank of America publishes its vacancies on a careers site the public can read but not query. This turns that site into an ordinary data source: one row per open requisition, with the fields you would expect a hiring database to have.

A run with no configuration at all returned 100 requisitions when it was last exercised on 2 August 2026 — that is the default ceiling, not the size of the bank's hiring plan. Raise it if you want the long tail; leave it alone if you are sampling.

The role mix in that run was recognisably a retail bank's. Relationship Banker appeared repeatedly, in general and market-specific forms — a Tampa South posting, a Naples posting, one flagged as preferring bilingual Spanish. Wealth Management Client Associate and its registered variant came up alongside them.

Geography followed the branch network rather than a head office. New York led the sample, then Charlotte, then Chandler and Jacksonville, with Los Angeles and Naples behind them. Every row in that run carried a United States country code and a full-time employment type.

One detail is worth knowing before you interpret dates: posting dates in the sample stretched from early May to the first of August. Financial-services requisitions stay open far longer than retail ones, so a role appearing in today's pull is not evidence that it opened this week.

Each requisition carries the identifier the bank's own system assigned it, so a role is followed across runs even when its title is edited. That identifier is what makes the difference report trustworthy rather than a naive comparison of titles.

Run it twice and the second run tells you what changed: which requisitions are new since the identifiers you already hold, and which have gone. That is the output most people actually want — not another full list, but the delta.

The apply link points at the bank's own posting. Nothing is mirrored, rehosted or rewritten, so a candidate or a downstream system always lands on the authoritative page.

A white-label hiring report can be produced from the same run in HTML, which is the fastest route from raw rows to something a client or an internal stakeholder will actually read.

Output arrives as JSON or CSV. The JSON is stable enough to feed a model directly; the CSV opens in a spreadsheet without a cleaning step.

Who it's for

  • For talent teams at competing banks. Watch where a national branch network is adding relationship bankers and client associates, city by city, without anyone manually reading a careers site each week.
  • For analysts and data engineers. Take a typed table with stable requisition ids straight into a warehouse. Schedule it, diff it, and build a hiring time-series without writing a parser for one bank's careers page.
  • For AI agents. Call it as a tool and get back structured rows rather than a page to interpret. A weekly agent can hold the previous id list, ask for the difference, and summarise only what moved.
  • For commercial real estate and local economic research. Branch-level hiring is a leading signal for physical presence. The location field is granular enough to see which metros are being staffed up.

Pricing

Pay per event

$1.50 per 1,000 jobs returned.

Charged on what comes back, once, from the final result set. A run that returns nothing costs only the start event.

Honest limits

What it does not do.

It is not the bank’s internal requisition system. Only what has been published publicly is visible. Roles filled internally, held privately or not yet advertised do not appear, and no run can reveal them.

Job descriptions are off unless you ask. The advert body is the employer’s copyrighted text. The structured fields are not, so the default returns facts only. Turn descriptions on when your use genuinely needs the prose.

No people, ever. Recruiter names, hiring-manager contacts and applicant information are never collected. The output describes vacancies, not individuals.

Salary is usually absent. The field exists and is populated when the employer publishes a figure. Across this employer’s sample it was empty throughout, and an empty salary means unpublished, not zero.

A default run is a sample, not a census. The cap is there so an exploratory run cannot cost more than you expected. Treat the returned count as a sample size until you deliberately raise it.

Unofficial. Not affiliated with, endorsed by, or sponsored by Bank of America Corporation, or by Workday, Inc. Bank of America is a trademark of Bank of America Corporation, used here only to identify whose public careers listings this tool reads. Data comes from the employer’s own public careers site.

Why it's built this way

Fewer knobs. Better defaults.

Zero required input

The board is already configured. Press Start and the first run works.

Stable requisition ids

Roles are tracked across runs by the id the source assigned, not by title text.

Cost capped by default

An exploratory run cannot quietly bill for thousands of rows.

For AI agents

Same tool, callable as an MCP server.

Bank of America Jobs API runs on Apify, which means it's exposed as a remote MCP tool with no extra setup. Point any MCP-compatible agent (Claude, Cursor, and others) at the endpoint below.

View full API reference on Apify
# MCP endpoint
https://mcp.apify.com?tools=apifmcpfactory/bankofamerica-jobs-api
# Example call
{ "maxJobs": 100, "includeDescription": false }