v2.5.0 — September 2026
Metering consolidation, quota hardening, and a salary benchmark endpoint.📊 Metering & plans
- One jobs meter. Everything that returns jobs — lexical search, vector search, neural search, company jobs, exports, expired-job exports — now bills
m_jobs_api_calls. The separate vector, semantic, and export meters are retired; company routes billm_company_api_calls. See What each endpoint costs. GET /v2/jobs/expired-jobsnow costs 0 (it returns identifiers only).POST /v2/jobs/expired-jobs/exportis also free: expired data is not billed, only live job data is.POST /v2/jobs/estimateis documented: free, and still available once you hit a cap.- Export on every plan, including Free (bounded by the 500-job allowance).
- Pro API keys get 10,000 jobs (metered overage) and 2,000 companies (hard cap) per month.
- Plan allowances and overage rates are now listed in one place: What each plan includes.
🛡️ Caps
- Hard caps are enforced before a request runs, using its worst-case cost (the requested
limit). A request that cannot fit in the remaining allowance is refused with429/X-Billing-Code: limit_exceededand a message stating how many units remain; parallel requests can no longer overshoot a cap. - Cap and feature errors now say where to upgrade (
/v2/billing/portal).
🔧 Fixes
Hirebase-Usage-*headers are back on every metered response for paid plans (they were missing for accounts whose billing period was stored in an older format), andPeriod-Start/Period-Endnow agree with Usage Summary.- Usage counters no longer reset during the nightly billing sync.
💰 Salary Benchmark
- New endpoint:
POST /v2/jobs/salary-benchmark— market percentiles, sample size, confidence grade, and the percentile of a proposed range. Onem_salary_benchmarksunit per request; 3/month on Free, 25/month on API plans, 500/month on Pro.
🐍 Python SDK 0.2.x
- New methods:
jobs.estimate,jobs.expired,jobs.export_expired,jobs.vsearch,jobs.salary_benchmark,companies.jobs,usage.get,resumes.upload/get/parse/upload_and_parse,tasks.get. client.last_usageexposes the usage headers after every call;QuotaExceededErrordistinguishes plan-cap 429s from rate limits;RateLimitError.retry_after.
v2.4.0 — August 2026
Billing, metering, and export release: usage visibility, per-plan quotas, and a new expired-jobs export pipeline.🔓 Authentication (breaking)
- All data endpoints now require an API key on every request, including page 1 of search results. Anonymous requests return
401. (Supersedes the v2.3.0 free-first-page behavior; only the reference-data endpoints remain keyless.) See Authentication.
📤 Exports
- New endpoint:
POST /v2/jobs/expired-jobs/export— async JSONL export of the expired-jobs feed since a date. Flat cost of 1 unit per export; the recommended path for historical backfills (no page-depth limits). notify: trueon export requests sends a completion email with the download link.- New task pages: List Tasks and Cancel Task are documented; task objects now include
notify, andtypemay beexport_expired_jobs.
📊 Billing & Usage
- New endpoints:
GET /v2/billing/usage/summary(current-period per-meter usage, plan, and allowances) andGET /v2/billing/usage/daily(daily timeseries, up to 90 days). Hirebase-Usage-*response headers on metered API responses — meter, included/used/remaining, and overage for the request you just made, CORS-exposed for browser clients. See Usage Headers & Metering.- Per-endpoint metering across six meters (jobs, vector, semantic, company, exports, insights). Search calls bill per result returned; job exports bill
min(limit, matches)at task creation. - At a plan cap:
429withX-Billing-Code: limit_exceededon hard-capped plans; metered-overage plans continue past included usage. Feature not in plan:403withX-Billing-Code: feature_missing.
⚙️ Limits & Behavior
- Rate limits: 100 requests / 60 s per API key (25/60 s unauthenticated);
429responses includeRetry-AfterandX-RateLimit-*headers. - Search
limitmaximum raised to 100 results per page. - Salary filter fixes: results respect the requested salary range.
- Guest (unauthenticated) export checkout is discontinued;
POST /v2/jobs/public/exportnow requires authentication.
v2.3.0 — April 2026
Quality-of-life release focused on richer job metadata, better filter ergonomics, and a free-tier developer experience.🔓 Authentication
- Free first page. All search endpoints now return the first page of results without an API key. Page 2+ (and always-authed endpoints like Expired Jobs, Export Jobs, Resume Embed, Task Status) still require a key in the
x-api-keyheader.
🧠 Richer Job Metadata
- New scoring fields on job objects (0–10 scale):
coolness_score,flexibility_score,compensation_value_score,benefits_score,impact_autonomy_score,prestige_score,growth_score. meta_completenessboolean flag on job objects (not a score).- New parsed fields:
experience_level,skills,technologies,benefits,education_level,team,language,contact_email,contact_phone,recruiter_agency. return_raw_description: "true"now returns adescription_rawfield with the full original HTML from the ATS source.
🔍 Search API Enhancements
company_countadded to the response alongsidetotal_count/total_pagesfor unique-company rollups.- New filter parameters:
location_group,company_types,date_posted,month,currency,include_expired,include_no_salary,include_yoe,hide_seen_jobs,filter_incomplete_jobs,job_category. sort_bynow acceptscompanyandyoein addition torelevance/date_posted/salary.- Request-side
experiencefilter standardized toEntry,Junior,Mid,Senior,Executive. Responseexperience_levelvalues remain longer-form (Entry-Level,Mid-Level,Principal / Staff / Lead, etc.). job_typesreplaces the previousjob_typeparameter (plural, array-valued).
🧩 Reference Data Endpoints
GET /v2/jobs/data/categories— canonical list of job category tags.GET /v2/jobs/data/industries— canonical list of industries.GET /v2/jobs/data/subindustries— canonical list of subindustries.
📚 Docs
- Migrated configuration from
mint.jsontodocs.json. - Expanded response schemas and working cURL examples across endpoint pages. (OpenAPI spec at
/docs/api-reference/openapi.jsonis not yet populated.) - Added an Expired Jobs API reference page.
v2.2.0
Location and keyword matching overhaul, plus new filter parameters to improve job filtering.🔧 API & Developer Experience
- Updated Endpoints:
/v2/jobs/neural-searchfor semantic search/v2/jobs/searchfor text search/v2/jobs/exportfor CSV/JSON exportv2/hirebase/companies/searchfor Company Search
Job Exports
- Job Exports have been made into a service which you can now track via your settings.
- Export data will last 30 days before deletion, see User Settings to view your exports.
- Job Exports is now available via API.
🔍 Job Search Enhancements
- Location Filtering: Geographic, text, and area-based matching via
geofilter_params. - Hide Recruiter Agencies: Removes recruiting-agency posts from the search and export feeds via
hide_recruiting_agencies. - Company filtering: Filter for company-specific data using
company_keywordssuch as goods and services.
📚 Docs & Guides
- Multi-language code examples.
- Guides for search, subscriptions, and integration.
Note: Please report any issues directly to spencer@hirebase.org. We release bug-fix updates based on severity. For full documentation and support, visit the Hirebase API docs.