npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

veritahire

v0.3.2

Published

Job postings API client: live US jobs verified on employers' own career sites, still-open checks, full feed, and a competitive hiring report for one healthcare, finance, IT, engineering, science, HR, legal or marketing role.

Readme

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, and get a Competitive Hiring Report for one healthcare, finance, IT, engineering, science, HR, legal or marketing role.
  • 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
  • In Claude: VeritaHire Jobs in the Connectors Directory
  • 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": "...", ...}

Competitive Hiring Report: why isn't this role filling? (no key)

Talent intelligence for one open US healthcare, finance, IT, engineering, science, HR, legal or marketing posting (nurses, therapists, pharmacists, accountants, financial analysts, bankers, software engineers, data and security roles, engineers, scientists, attorneys, recruiters and marketers): how fast the same role closes within 25 miles and how fast this employer usually closes it, the pay each competitor posts (salary benchmarking), who else is hiring it, the last roles like it to close, and whether more of these roles opened than closed nearby over the last 4 weeks.

curl "https://veritahire.com/api/benchmark.php?job_url=https://careers.example.org/job/12345"
# or ?job_id=... or ?employer=...&title=...&city=...&state=...

HTTP 202 with "status": "building" means the report is being built: ask again after retry_after_seconds. The full report (sample) goes to the hiring manager by email through POST /api/benchmark-claim.php with their address; their click opens it. Send it only when they ask.

Hiring market for an occupation (no key)

curl "https://veritahire.com/api/hiring-market.php?occupation=registered+nurse&state=CA"

Live postings, employers hiring, posted pay range, experience and education asked, employment type and shift mix, and how fast the role closes, nationally or for one state. For employers' AI assistants, all of this is also an MCP server: https://veritahire.com/mcp/employers (VeritaHire Hiring Intelligence).

Job Openings Index (no key)

A daily index of open US job postings measured from employers' own career sites, published the next morning (base 2026-09-04 = 100): https://veritahire.com/job-openings-index/. Full series as CSV: https://veritahire.com/job-openings-index/veritahire-job-openings-index.csv; latest figures as JSON: https://veritahire.com/job-openings-index/latest.json.

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: [email protected]

This repository holds examples and documentation only (MIT licence). The API itself is a hosted service.

Client libraries

Tiny clients with the same six calls (search_jobs / searchJobs, job_status / jobStatus, get_job / getJob, feed, competitive_hiring_report / competitiveHiringReport, hiring_market / hiringMarket), retrying when the API reports it is busy. Source in clients/python and clients/js.

pip install veritahire        # Python
npm install veritahire        # JavaScript (Node 18+, browsers, Deno, Bun)
from veritahire import search_jobs, job_status
for job in search_jobs("registered nurse", "Austin, TX"):
    print(job["title"], job["employer"], job["apply_url"])
print(job_status(url="https://careers.example.com/job/12345")["status"])

from veritahire import competitive_hiring_report
r = competitive_hiring_report(job_url="https://careers.example.org/job/12345")
print(r["market"], r["competitors"][:3])
import { searchJobs, jobStatus } from "veritahire";
const jobs = await searchJobs({ what: "electrician", where: "Las Vegas, NV" });
console.log((await jobStatus({ url: "https://careers.example.com/job/12345" })).status);