Skip to content
Posted Band

Methodology · v1.0

A trend is only useful when its source, timestamp, and limits travel with it.

This page defines the collection, publication, and metric rules for the pilot archive. It will be versioned as additional ATS adapters and derived metrics become publishable.

01

Collection scope

Posted Band collects only public, unauthenticated JSON endpoints operated for employer job boards by Greenhouse, Lever, and Ashby. A configured endpoint must return a valid provider-shaped response before it enters the source registry.

Sources requiring login, circumventing technical controls, or depending on LinkedIn or Indeed are excluded. The current pilot cohort includes multiple boards from every supported provider so the same quality and publication rules are exercised across Greenhouse, Lever, and Ashby.

02

What a snapshot preserves

Each raw snapshot records the company, ATS provider, requested endpoint, UTC collection time, HTTP metadata, a SHA-256 checksum, and the source payload. Raw records are stored in a local SQLite database that is excluded from Git; published pages contain only the fields needed to explain an observation.

The private ingestion record retains the source job ID, title, location, department, office, public URL, provider update time when present, and original description HTML for later extraction. Published artifacts omit the complete description HTML and expose only the fields needed for source-backed observations.

03

Hiring velocity

The primary measure is active posting count at the company-day level. Net change is the latest active posting count minus the count in a dated comparison snapshot. A 7, 30, or 90 day comparison is published only when a successful snapshot exists on the exact start boundary.

A posting first appearing between consecutive successful daily snapshots is counted as appeared. A posting is counted as confirmed closed only after it is absent from two consecutive successful daily snapshots. The first snapshot and the first snapshot after a collection gap show unknown event counts rather than zero. These measures describe advertised hiring demand, not completed hires or headcount growth.

The company-page chart plots only successful UTC snapshot days and positions observations by their actual calendar dates. A line connects consecutive UTC dates only; collection gaps break the line rather than implying an interpolated path. The chart is a visual aid, while the adjacent HTML table remains the exact, crawlable record of dates and counts.

Department and location changes compare employer-provided labels on those same exact start and end snapshots. Each label reports its start count, end count, and difference; unchanged labels are omitted. A posting with multiple labels can contribute to more than one row, so dimension counts do not necessarily sum to the company total. Label movement describes the source taxonomy as published and does not prove an organizational decision.

04

Posted salary observations

Compensation is in scope only when it appears in the employer-published posting. The source text, currency, interval, lower and upper bounds, posting ID, and observation time are preserved together. Missing bounds remain missing; Posted Band does not infer a midpoint or market rate and present it as disclosed pay.

Salary disclosure rate is defined as postings with a parseable employer-published salary observation divided by active postings in the same company-day snapshot. Structured Greenhouse pay ranges, Lever salary ranges, and Ashby compensation tiers take precedence. A conservative description parser is used only when structured compensation is absent; it requires an explicit currency and pay interval and does not infer either one.

Department and location disclosure breakdowns use the latest successful snapshot. For each employer-provided label, the numerator is the number of distinct labeled postings with at least one parseable salary observation and the denominator is all active postings carrying that label. Duplicate labels within one posting count once; a posting with multiple labels can enter multiple rows. Rows are ranked by active labeled postings, limited to eight per dimension, and are not normalized across employer taxonomies.

Source-native salary range distributions group the latest successful snapshot by the employer-stated currency and pay interval. Each group reports distinct postings, range observations, fully bounded observations, and the minimum, median, and maximum of the stated lower and upper bounds separately. The median uses the range-observation grain: one posting can contribute multiple observations when the employer publishes separate location or compensation tiers. Posted Band does not apply foreign-exchange conversion, annualization, or cross-group ranking in this version.

Salary disclosure movement uses the same exact 7, 30, or 90 day boundaries as hiring velocity. Each comparison keeps the disclosed posting count, active posting count, disclosure rate, and percentage-point change at both ends. Cross-company reports divide the cohort's combined disclosed postings by its combined active postings; they do not average company percentages.

A salary range change is published only when the same source job ID has one uniquely identifiable range for the same currency, pay interval, location scope, and evidence type on two consecutive successful UTC snapshot days. If collection has a date gap, a posting has multiple ranges under the same matching key, or the evidence switches between structured data and description text, Posted Band does not claim a change. Each published change retains both source excerpts and observation times.

05

Freshness, failures, and revisions

Collection currently runs through an explicit local command. Every successful HTTP response is inserted into SQLite before provider parsing; normalized postings are attached only after parsing and before the quality gate. Schema changes and quality-rejected responses therefore remain available for diagnosis and parser replay. Identical same-company, same-day content is deduplicated by checksum, while a changed response is retained as another immutable snapshot. Failed or quality-rejected sources are recorded on the collection run and are never converted into a zero-posting day.

A separate publish command selects only successful snapshots and creates a reviewed JSON artifact. Next.js imports that artifact at build time; visitor requests never contact an ATS or the local database. Public pages show the latest successful collection time and source. Material corrections will update the affected observation and methodology notes rather than rewriting history without explanation.

06

Publication and aggregation gates

A reachable endpoint is not enough for an indexed company page. A page needs a latest successful collection no more than 48 hours old, at least 14 calendar days and 10 successful snapshot days of coverage, plus either at least 5 currently active roles or 10 distinct roles observed in the latest 30 days. It also needs a named source and at least one source-backed exact 7, 30, or 90-day comparison.

The company directory becomes indexable only after at least 3 companies independently pass those gates. A hiring pulse report requires at least 3 eligible companies sharing the same exact 7-day boundary. Until those gates open, the directory or report index remains a noindex review preview and report detail routes are not published.

Function and location detail pages are derived only from the latest published report's shared exact window. Labels must match the employer-provided text exactly; Posted Band does not merge case, synonyms, cities, or job families. One label page requires non-zero changes from at least 3 companies and at least 10 combined labeled postings at both the start and end boundaries. Companies with unchanged or absent labels are omitted rather than treated as zero, and no more than 20 pages per dimension are published from one artifact.

Pages below their applicable gate remain noindex, stay out of the sitemap, and are not presented as trend evidence. Publication is triggered by reviewed data, not by a calendar deadline or backfilled history.

Last reviewed: 2026-08-07 · Methodology version: 1.0

07

Metric dictionary · v1.1

These are the canonical public definitions used to interpret Posted Band tables, charts, reports, structured data, and machine-readable summaries. A label names a source observation; it does not widen the claim beyond the grain and boundary shown here.

Collection and coverage

Defines when a company-day exists in the public artifact and how cross-company collection completeness is reported.

  • Successful snapshot day

    Company × UTC date

    Definition

    A UTC date represented by one published company history point selected from a public ATS collection that passed source, provider-parsing, and publication-quality checks.

    Calculation

    Count distinct UTC dates in the company history; same-day recollections do not add another history day.

    Interpretation boundary

    A failed, incomplete, or quality-rejected collection does not become a zero-posting day.

  • Collection coverage status

    Current reviewed cohort × UTC date

    Definition

    The completeness of successful company-day observations for one UTC date against the companies in the current reviewed artifact cohort.

    Calculation

    Observed current-cohort companies divided by expected current-cohort companies; complete only when the counts are equal, otherwise partial.

    Interpretation boundary

    Coverage status measures collection completeness, not hiring movement; missing company-days are not filled or interpolated.

Hiring activity

Defines source-observed posting counts and exact-boundary movement without treating advertised demand as completed hiring.

  • Active posting count

    Company × successful UTC snapshot day

    Definition

    The number of distinct public ATS job postings present in a company’s selected successful snapshot.

    Calculation

    Count distinct source job IDs in the selected company-day snapshot.

    Interpretation boundary

    The count describes advertised roles, not completed hires, employee headcount, or business performance.

  • Appeared posting count

    Company × pair of consecutive successful UTC dates

    Definition

    The number of postings present in the current successful snapshot that were absent from the immediately preceding successful UTC-day snapshot.

    Calculation

    Count current source job IDs not present on the previous consecutive successful UTC date.

    Interpretation boundary

    The first snapshot and the first snapshot after a collection gap are unknown, not zero.

  • Confirmed closed posting count

    Company × successful UTC snapshot day

    Definition

    The number of previously observed postings whose absence is confirmed on two consecutive successful daily snapshots.

    Calculation

    Count a prior source job ID on the second consecutive successful UTC date on which it remains absent.

    Interpretation boundary

    This is a conservative posting-lifecycle signal, not the date a role was filled or a hire was completed.

  • Net posting change

    Company × exact comparison window

    Definition

    The difference in active posting count between two successful snapshots on an allowed exact comparison boundary.

    Calculation

    End active posting count minus start active posting count for an exact 7-, 30-, or 90-day boundary.

    Interpretation boundary

    No comparison is published from a shorter interval or an interpolated start date.

  • Employer-label net change

    Company × exact label × exact comparison window

    Definition

    The change in posting count for an exact employer-provided department or location label across the same exact start and end snapshots.

    Calculation

    End labeled posting count minus start labeled posting count for matching label text.

    Interpretation boundary

    Labels are not semantically normalized, and one multi-label posting may contribute to more than one row.

Posted salary evidence

Defines employer-published compensation evidence, disclosure rates, and source-native range summaries without estimation or normalization.

  • Salary-evidence posting count

    Company × successful UTC snapshot day

    Definition

    The number of distinct active postings with at least one parseable compensation observation published by the employer.

    Calculation

    Count distinct active source job IDs linked to one or more validated salary observations in the same snapshot.

    Interpretation boundary

    Missing pay is not estimated, and multiple range observations for one posting still contribute one posting to this count.

  • Salary disclosure rate

    Company or exact employer label × successful UTC snapshot day

    Definition

    The share of active postings in a snapshot that contain parseable employer-published salary evidence.

    Calculation

    Salary-evidence posting count divided by active posting count in the same snapshot.

    Interpretation boundary

    Cross-company rates use combined disclosed and active counts rather than averaging company percentages.

  • Salary disclosure change

    Company or report cohort × exact comparison window

    Definition

    The difference between salary disclosure rates at two successful snapshots on an allowed exact comparison boundary.

    Calculation

    End disclosure rate minus start disclosure rate, reported in percentage points.

    Interpretation boundary

    Both rates retain their disclosed and active posting counts; the change is not a percent increase.

  • Source-native salary range distribution

    Salary range observation × source-native currency × pay interval

    Definition

    A summary of employer-published salary range observations grouped by their original currency and pay interval.

    Calculation

    Within each currency and interval group, report distinct postings, range observations, fully bounded observations, and separate lower- and upper-bound min/median/max values.

    Interpretation boundary

    Values are not annualized, converted through foreign exchange, combined across groups, or presented as distinct-posting medians.

  • Verified salary range change

    Posting × source-native range key × consecutive successful UTC dates

    Definition

    A before-and-after difference in one uniquely matchable employer-published salary range for the same source posting, currency, pay interval, location scope, and evidence type on consecutive successful UTC dates.

    Calculation

    Compare the matched lower and upper bounds and publish the event only when at least one bound changes and exactly one range exists for the matching key on both dates.

    Interpretation boundary

    Collection gaps, ambiguous multi-range keys, or structured-to-description evidence changes are excluded; one event does not establish a companywide pay trend.

Last reviewed: 2026-08-07 · Metric dictionary version: 1.1