---
title: "Webhooks GA, plus 12-month historical jobs data on Pro plans"
description: "Real-time push delivery, idempotent retries, signed payloads, and a full year of back-data for trend analysis."
canonical: https://jobspipe.dev/blog/webhooks-ga-12mo-history
date_published: 2026-04-04
date_modified: 2026-04-04
author: Dvir Atias
---

# Webhooks GA, plus 12-month historical jobs data on Pro plans

Real-time push delivery, idempotent retries, signed payloads, and a full year of back-data for trend analysis.

Three things shipped in v1.2 last week. Here’s the short version with the engineering notes that didn’t fit in the changelog.

## Webhooks GA

Real-time push delivery is out of beta. If you’re on the Builder plan or higher, register a webhook URL and we’ll post new and updated jobs to it within minutes of detection.

Every payload is signed with HMAC-SHA256 over the raw request body, using a secret we generate when you create the endpoint. Delivery is at-least-once with idempotent retries; we re-deliver on any non-2xx response for up to 24 hours with exponential back-off. The `X-JobsPipe-Idempotency-Key` header is stable across retries so you can dedupe on your side.

## Twelve months of history on Pro

Pro and Scale plans now include a full year of historical jobs data. You can backfill your local index, build trend dashboards (e.g. how did Anthropic’s ML hiring change quarter over quarter), or train models on past postings.

Query it with `"posted_at_gte": "2025-05-01"` in the body of any `/v1/jobs/search` call. We expose the same JSON schema, just with an extra `archived_at` field on jobs that are no longer live.

## Performance: search is faster now

We rebuilt the search index on top of pgvector embeddings for full-text queries. The median search response is 84ms (was 220ms last release), and we’re no longer paying the round-trip to a separate search service. The schema didn’t change - your existing queries will just feel snappier.

## Frequently Asked Questions

### How do JobsPipe webhooks work?

Register a webhook URL on the Builder plan or higher and JobsPipe posts new and updated jobs to it within minutes of detection. Every payload is signed with HMAC-SHA256 over the raw request body, using a secret generated when you create the endpoint. Delivery is at-least-once with idempotent retries: any non-2xx response is re-delivered for up to 24 hours with exponential back-off.

### How do I avoid processing duplicate webhook deliveries?

Dedupe on the X-JobsPipe-Idempotency-Key header, which stays stable across retries. Delivery is at-least-once, so the same event can arrive more than once: JobsPipe re-delivers on any non-2xx response for up to 24 hours with exponential back-off. Payloads are also signed with HMAC-SHA256 over the raw request body, so you can verify authenticity before you process anything.

### How far back does JobsPipe historical jobs data go?

Every plan queries the same rolling 12-month corpus, including postings that have since closed. Filter by date with "posted\_at\_gte" in the body of any /v1/jobs/search call. The JSON schema is the same as live search, with a closed\_at timestamp on jobs that are no longer live. Use it to backfill a local index, build trend dashboards, or train models on past postings.

Related

## Keep reading

-   [Guide · Sep 9, 2026Are Data Jobs in Demand?](https://jobspipe.dev/blog/are-data-jobs-in-demand)
-   [Guide · Sep 9, 2026Are Data Science Jobs in Demand?](https://jobspipe.dev/blog/are-data-science-jobs-in-demand)
-   [Guide · Sep 9, 2026How to spot ghost jobs: a seven-point checklist mapped to real data fields](https://jobspipe.dev/blog/how-to-spot-ghost-jobs)
-   [Guide · Sep 9, 2026LinkedIn ghost jobs: how common they are, what they look like in the data, and how to filter them out](https://jobspipe.dev/blog/linkedin-ghost-jobs)
-   [Guide · Sep 9, 2026Why do companies post ghost jobs? The stated reasons, the accidental ones, and what the data shows](https://jobspipe.dev/blog/why-do-companies-post-ghost-jobs)


## Further reading

- [The JobsPipe developer portal: API docs, OpenAPI spec, MCP server and SDKs](https://jobspipe.dev/blog/jobspipe-developer-portal)
- [JobsPipe Pricing](https://jobspipe.dev/pricing)

---
Try it with no key: `curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search`. AI agents: the full machine-readable index of this site is https://jobspipe.dev/llms.txt?src=md-twin - API quickstart, MCP server, pricing. Free key (1,000 jobs to start): https://jobspipe.dev/signup