Job postings API: live US jobs, verified on employers' own career sites
Looking for an Indeed API, a LinkedIn jobs API or a Glassdoor API to search job postings? LinkedIn's talent APIs are for posting jobs and taking applications through partner applicant-tracking systems, and Indeed's developer documentation is its partner program. VeritaHire reads employers' own career sites directly (Workday, Greenhouse, iCIMS, SmartRecruiters and more), so there is no board in between to close the door, and no stale copies: a job that leaves the employer's site is marked closed within about 36 hours, and every record says when it was last confirmed there.
- No key to start: search live jobs, read a whole posting, check whether any posting URL is still open.
- One key for the full feed: every live posting, cursor-paged, plus hiring velocity and employer profiles. Free trial key (2,000 records, 30 days): https://veritahire.com/developers/
- OpenAPI for every endpoint: https://veritahire.com/openapi.json
- MCP server for AI agents:
https://veritahire.com/mcp(registry:com.veritahire/jobs)
Quickstart (no key)
curl "https://veritahire.com/api/jobs-search.php?what=registered+nurse&where=Austin,+TX"
import requests
r = requests.get("https://veritahire.com/api/jobs-search.php",
params={"what": "registered nurse", "where": "Austin, TX", "radius_miles": 25})
for job in r.json()["jobs"]:
print(job["title"], "|", job["employer"], "|", job["pay_as_posted"], "|", job["apply_url"])
const r = await fetch("https://veritahire.com/api/jobs-search.php?" +
new URLSearchParams({ what: "cashier", where: "Phoenix, AZ" }));
const { jobs } = await r.json();
jobs.forEach(j => console.log(j.title, j.employer, j.last_confirmed_on_employer_site));
Each job carries posted pay (never estimated), what the posting asks for (education, licences, years), distance, the employer's own apply link, and when it was last confirmed on the employer's site.
Is a posting still open?
curl "https://veritahire.com/api/job-status.php?url=https://careers.example.com/job/12345"
# {"status": "open" | "closed" | "unknown", "last_confirmed_on_employer_site": "...", ...}
The full feed (key)
curl -H "X-API-Key: vh_..." "https://veritahire.com/api/v1/jobs.php?state=CA&category=healthcare_clinical&limit=100"
Cursor-paged with after / next_after; full row reference in the OpenAPI file. Paid tiers:
https://veritahire.com/verified-jobs-feed/
Examples in this repo
examples/python/search_jobs.py |
live jobs near a place (no key) |
examples/python/is_job_still_open.py |
open / closed / unknown for any posting URL (no key) |
examples/python/full_feed.py |
every live posting for a state and category, paged (key) |
examples/javascript/search_jobs.mjs |
live jobs near a place, Node 18+ (no key) |
examples/javascript/is_job_still_open.mjs |
still-open check, Node 18+ (no key) |
Limits
Free endpoints return one page of up to 25 jobs and are rate-limited per address; every response states the filters it
applied, and a search that runs out of time says so (HTTP 503 with retry_after_seconds) rather than returning zero.
Where the data comes from
Public job postings on employers' own career sites, read from the site or the applicant-tracking system it runs on. We do not copy other job boards. Questions: data@veritahire.com
This repository holds examples and documentation only (MIT licence). The API itself is a hosted service.
Metadata
Release files for veritahire 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| veritahire-0.1.0.tar.gz | 4.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| veritahire-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.4 kB
Release files / veritahire-0.1.0.tar.gz
| Download URL | veritahire-0.1.0.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55f1a5338e4e6bb3e644a8236763ef6c47a22e073262014b77c59299f1790036
|
|
BLAKE2b-256 checksum How to use checksums |
3da6358e6dd712210ef578c371cbb5ef7d0c6fb48cb482e5cee3fe1995a98aca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / veritahire-0.1.0-py3-none-any.whl
| Download URL | veritahire-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
374cee87aa6a3afc55ed90d6c1641c261134a550149756f315ddcc53b66c68b0
|
|
BLAKE2b-256 checksum How to use checksums |
f090ec6418aaf53d0dd58f7a1b82ca85bae758711197ab275e6eae3f66725d84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency log