# Why a job's posted date is unreliable

> The date on a card is whatever the source reported, and sources mean different things by it, so treat it as a hint. Some give the day an ad was first published, some the day it was last edited, and a few give nothing, in which case Zorlya's date window for matching uses the day it first saw the posting.

Source: https://zorlya.com/blog/why-a-jobs-posted-date-is-unreliable

By Zorlya. Published 2026-10-20, updated 2026-10-25. Research and data. 8 min read.

A job's posted date reads like a fact, as in "posted 2 days ago". It is closer to a report. Zorlya does not decide when a posting was published. It copies a date field from the source, and each of the 130+ sources it reads has its own idea of what that field means. This post explains what the date is, what Zorlya does when there is none, and how to judge whether a job is still worth your time.

## One label, several meanings

Each source adapter reads one field from the source's answer and stores it as the posting's date. The fields differ in what they describe:

- **Created or published.** Lever's `createdAt`, Ashby's `publishedAt`, Workable's `published_on`, Remotive's `publication_date` and Teamtailor's `datePosted` name the moment an ad went up.
- **Updated.** Greenhouse is read from its `updated_at` field, Job Bank from the `updated` entry in its feed, and iCIMS from `updateddate`, falling back to `createddate` only when the first is missing. A field with that name moves whenever the employer touches the ad. A posting that has been open for months can look new after a small edit.
- **A comment's timestamp.** The Hacker News "Who is hiring" source reads each job from a comment in a monthly thread. The date is when the comment was written, which is when the company posted it there, not when the role opened.
- **Nothing.** Some feeds carry no date at all. The Python.org jobs feed is one, and the adapter's own test records that the feed has no date.

Zorlya cannot tell these apart on the card. A "2 days ago" can mean a role published 2 days ago, or an old role edited 2 days ago.

## What the date is supposed to mean

The shared vocabulary that job pages use for their hidden data, [schema.org's JobPosting](https://schema.org/JobPosting), calls `datePosted` the publication date of an online listing. Google's guidance for employers is more precise: it describes `datePosted` as [the original date that the employer posted the job](https://developers.google.com/search/docs/appearance/structured-data/job-posting). So the intended meaning is the first publication. Many feeds and hiring systems do not send that date. They send the date of the last change, because that is what their own systems track, and a reader like Zorlya can only copy what it is given.

## A worked example

Illustrative: the role and the dates are invented. One posting's life, as Zorlya sees it:

| Day | What happens at the employer | What Zorlya's card shows |
|---|---|---|
| 1 September | The ad goes up on the employer's hiring system | Nothing yet |
| 1 September, a few hours later | Zorlya reads the source | Posted 1 September |
| 20 October | The employer fixes a typo in the ad | Still 1 September |
| 20 October, at the next read | The source now reports its updated date | Posted 20 October |
| 25 October | You see the card | Posted 5 days ago |

The role has been open for almost two months. If the source reports the first publication date instead, the card would say 1 September throughout. Nothing on the card tells you which kind of source you are looking at, so open the posting.

## The date is refreshed every run

On each run the stored date is replaced by whatever the source says now. If an employer edits an ad and the source moves its date, Zorlya's date moves with it. Nothing keeps the first date that was ever seen. That keeps the card in step with the source, and it is also why a date can go forward.

## When the source gives no date

Where a source sends none, Zorlya falls back to the day it first stored the posting. That fallback is used for the date window of matching, and for the search alert emails that people already subscribed to. It is an honest lower bound on age, since the posting existed at least that long, but it can be later than the real date by as long as it took Zorlya to find the job.

The fallback is not used everywhere. In the signed-in app, a card shows a date only when the source supplied one, and a posting with no date shows none. The feed's "posted after" filter also uses only the source's date, so a posting with no date does not pass it. If you filter by recency, you are filtering out every job whose source does not publish a date, even a fresh one.

## Windows that hide older postings

Two limits also shape what you see:

- Search alert emails and the employer directory count only postings from the last 30 days, by the source's date or the first-seen day.
- Two feed sources, WP Remote Work and WordPress.org Jobs, are read page by page and the read stops at the first posting older than 7 days, with at most 5 pages a run.

Neither is a freshness guarantee. They are cut-offs.

## First-seen lags behind published

Zorlya fetches sources on a schedule. The default interval for the whole pipeline is 60 minutes, and each source is polled on its own learned schedule on top of that, so a posting can be live for hours before it is stored. For a source with no date, the shown date inherits that delay.

## A posting can outlive its opening

Zorlya does not currently check whether a posting has been taken down at its source. The feed has no age window: a posting leaves it only when it is closed, through a moderation action or by the employer on Zorlya. A role that was filled last week can still be listed. The date tells you when it appeared, not whether it is open.

## How to judge freshness yourself

1. Look at the source on the card. An employer's own board is usually the original, so a date there is the best signal available.
2. Open the posting. Some employers show the real closing date or say that applications are reviewed on a schedule.
3. Treat a date older than a month as a question and not a rejection. Roles that stay open for weeks are common, and the date field may reflect an edit.
4. Do not rely on the recency filter alone if you want to see every candidate, because it removes undated postings.
5. If a role is a strong match, apply first and verify afterward. The cost of applying to a closed role is small.

## How to find the employer's own date

1. Open the posting on the employer's site, not a copy.
2. Look for a date in the ad itself, often near the title or at the bottom.
3. If there is none, view the page source and search it for `datePosted`. Many job pages carry it in their hidden data.
4. Compare it with the card. If the employer's date is much earlier, the card is showing an edit.
5. Write the earlier date in your tracker, since it is the better guide to how long the role has been open.

## Signs that a posting is older than its date

- The employer's own page shows an earlier date or a closing date that has passed.
- The reference number looks like one from an earlier round, or the ad says it is a repost.
- You remember seeing the same ad weeks ago.
- The ad mentions a start date or an event that has already happened.

None of these proves the role is closed. Each is a reason to check the employer's page before you spend an evening on the application.

## Questions people ask

### Is a job posted 30 days ago still open?

It may be. Many roles stay open for weeks, and the date may be an edit. Check the employer's page for the role and a working application form.

### Why did a job's date move forward?

Because the source reports the date of its last change, and Zorlya copies the source's date on every read. The role did not become new.

### Why do some jobs have no date?

Their source sends none. The card shows no date, and the recency filter leaves them out.

### Should I skip old postings?

No. Treat an old date as a question. A strong match is worth one look at the employer's page.

## What we know and what we do not

We know which field each source's date comes from and how Zorlya uses it. Zorlya has not measured how often the shown date differs from the real first publication date, per source or overall. Everything above describes which field is read and how it is used, not how accurate those fields are.
