Data Schema Explorer
Browse every delivered column of the Canaria data products, grouped by delivery module, from delivery catalog 8.3. Select a product below to explore its columns, types, and coverage.
Coverage is the share of rows where the field is populated, measured on 6 Oct 2026 for job postings, company, public-company and Google Maps data; each product shows its own measurement date. A dash means coverage has not been measured for that field on the current release.
For accuracy benchmarks on every enriched field, see our data quality benchmarks. For definitions of terms like SOC and semantic deduplication, see the glossary.
Job Postings Data: 176 fields, 1,065,010,950 rows (catalog 8.3, measured 6 Oct 2026)
| Module | Field Name | Type | Description | Example | Coverage |
|---|---|---|---|---|---|
| jobs_core | jobID | string (fixed 64-char key) | SHA-256 per-source posting key: the primary key of the posting files and the join key between them. Changes if the employer edits the title; sourceWebsite with sourceJobKey is the title-edit-stable pair. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_core | sourceJobKey | string, nullable | The source's own posting identifier, preserved exactly as the source published it. Stable when an employer edits the title; combine with sourceWebsite. | sWtlZMamILRhA845R7pY6Uc4FcPWv_gX9nB0Y-EiQdyOATcAQ-TCRQ | 100% |
| jobs_core | sourceWebsite | string | The source the posting was collected from: aggregated job boards (for example indeed, linkedin, simplyhired, jora, postjobfree) and employer career portals (for example myworkdayjobs, greenhouse, lever, icims, smartrecruiters). Combine with sourceJobKey for joins that survive an employer editing the title. Some sources are retired: google (last posting 2024-08), careerbuilder and jobs2careers (2024-02), kariyer (2024-08) and jora (2025-10); their history stays. reference_source_coverage_monthly gives the monthly state (live, ramp, outage, retired) of every source with US postings. | simplyhired | 100% |
| jobs_core | jobDate | datetime (UTC), nullable | Posting date for the role (UTC, millisecond precision): the source's published posting date when it supplies one, else the day we first collected the posting. jobDateSource says which; see Notes for using the data in the Guide before building daily or weekly series on this column. | 2026-05-01 23:18:35.000 | 100% |
| jobs_core | jobDateSource | string | Where jobDate comes from: source (the source published it) or discovery_fallback (the source published none, so jobDate is the day we first collected the posting and equals firstSeenDate). | discovery_fallback | 100% |
| jobs_core | firstSeenDate | datetime (UTC) | First time Canaria observed this posting (UTC, millisecond precision), except where firstSeenFromBackfill = 1. | 2026-05-01 23:18:35.000 | 100% |
| jobs_core | firstSeenFromBackfill | integer | 1 when firstSeenDate is not our observation but the posting's own date, taken from an archive to fill a 2024 gap in our PostJobFree collection. Such a row was not known to us on that date: leave it out of point-in-time work keyed on firstSeenDate. | 0 | 100% |
| jobs_core | lastSeenDate | datetime (UTC) | Most recent time we observed this posting as still active (UTC, millisecond precision): the later of our last visit to the posting's page and the last time a search-results page or employer career portal still listed it. A listing never moves firstSeenDate. A duration computed from it is a lower bound on how long the posting was open. | 2026-05-02 22:21:55.000 | 100% |
| jobs_core | contentID | string (fixed 64-char key), nullable | SHA-256 content-version hash over title + description. Shifts when either changes. | e296b88342730dfa05e7e7b5c29ca9c77e4d8187d3012639234abe9ad07e76b7 | 92.7% |
| jobs_core | isUniqueJobPosting | integer | 1 if this posting represents its group of duplicates (the earliest seen), 0 if it duplicates another. SUM(isUniqueJobPosting) gives unique volume; COUNT() gives gross volume. A relisting first seen more than 60 days after the group's latest sighting starts a new unique posting; shorter gaps keep chaining. Postings that could not be tested count as unique. See Gross and unique postings in the Guide. | 1 | 100% |
| jobs_core | duplicateGroupID | string (fixed 64-char key), nullable | Near-duplicate group key: postings sharing it are the same role posted on several sources or collected again over time, and the one with isUniqueJobPosting = 1 is the group's representative. NULL when the posting could not be tested for duplicates, because its location was not resolved precisely enough to compare it. | 1de0b412ca7d479c32e343b2f80a6aafc6b27f6e2decff6ff8af342421a5aa98 | >99.9% |
| jobs_core | duplicateGroupSize | integer, nullable | Number of postings in this near-duplicate group (repost intensity). 1 for a posting with no duplicates; NULL when de-duplication has not been applied. | 3 | >99.9% |
| jobs_core | representativeJobID | string (fixed 64-char key), nullable | The jobID of the group's representative posting (the earliest-seen instance, the one with isUniqueJobPosting=1). Points into the same key space as jobID, so a duplicate row joins straight back to its canonical row on representativeJobID = jobID. Equal to the row's own jobID for a representative; NULL when de-duplication has not been applied. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | >99.9% |
| jobs_core | isDedupProvisional | integer | Deduplication disclosure flag: 1 when the posting's near-duplicate block was left unresolved (block exceeded the resolution cap), so its duplicate grouping is provisional. Exclude flagged rows from deduplication-sensitive metrics for strict analyses. | 0 | 100% |
| jobs_core | jobTitle | string, nullable | Raw posting title as published by the employer. | Health & Beauty TL | >99.9% |
| jobs_core | jobURL | string, nullable | Direct URL to the posting on the source site. The customer-clickable link to the job. | https://www.simplyhired.com/job/sWtlZMamILRhA845R7pY6Uc4FcPWv_gX9nB0Y-EiQdyOATcAQ-TCRQ | 99.3% |
| jobs_core | atsApplicationURL | string, nullable | URL to the employer's ATS application form (Greenhouse, Lever, Workday, etc.) when the posting links out to one. May differ from jobURL when the posting lives on an aggregator. NULL when the only link the source gives is back to the job board itself (for example a LinkedIn posting's own linkedin.com/jobs/view/.. page): that is the board, not an application form. | https://careers.smartrecruiters.com/Dominos | 2.9% |
| jobs_core | companyName | string, nullable | Company name as published on the posting, before normalization. companyName never has leading or trailing whitespace (including non-breaking spaces); a name that is empty after trimming, or HTML markup that cannot be stripped cleanly, is NULL. | Walmart | 98.3% |
| jobs_core | companyProfileURL | string, nullable | URL of the employer's profile or company page on the source site (e.g. an Indeed company page, a LinkedIn company URL), when available. | https://www.linkedin.com/company/travel-nurse-source | 27.0% |
| jobs_core | postedJobFunction | string, nullable | The job function the source site listed for the posting, exactly as stated (for example "Information Technology"). The source's own label, not a Canaria classification; it ships beside socCode, never in place of it. Filled mainly on LinkedIn postings and a few career portals; NULL where the source lists none. | Health Care Provider | 18.7% |
| jobs_core | postedIndustry | string, nullable | The industry the source site listed for the posting's employer, exactly as stated (for example "Staffing and Recruiting"). The source's own label for this posting, so it can differ between postings of one company; it ships beside the NAICS columns, never in place of them. Filled mainly on LinkedIn and a few career portals; NULL where the source lists none. | Hospitals and Health Care | 20.7% |
| jobs_core | postedDepartment | string, nullable | The department or team the source listed for the posting, as stated. A department list sent as a JSON array ships as the department names joined by " | ", and a trailing " /" separator is removed; every other value is exactly as stated. Filled mainly on employer career portals; NULL where the source lists none. | Clinical | 0.2% |
| jobs_core | postingExpirationDate | date, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| jobs_core | isUrgentHire | integer, nullable | Indeed postings only: 1 when Indeed marked the posting as urgently hiring, 0 when it did not. Indeed showed the mark on postings collected from 2022-04 to 2023-06 and from 2026-10; NULL elsewhere. New in catalog 8.3: it arrives with the next build. | - | |
| jobs_core | isHighVolumeHiring | integer, nullable | Indeed postings only: 1 when Indeed marked the posting as high-volume hiring, 0 when it did not. Indeed showed the mark on postings collected from 2022-04 to 2023-06 and from 2026-10; NULL elsewhere. New in catalog 8.3: it arrives with the next build. | - | |
| jobs_core | postingLanguage | string, nullable | ISO-style language tag detected on the description (en, es, fr, de, etc.). | en | 92.1% |
| jobs_core | postingChannel | string | Where the posting was sourced: employer_ats (the employer's own applicant-tracking system, e.g. Workday/Greenhouse/Lever, so a direct employer), job_board (aggregator/marketplace such as Indeed/LinkedIn), or unknown. | job_board | 100% |
| jobs_core | postedLocation | string, nullable | Location string exactly as the posting stated it, before parsing into the final columns. Source HTML markup is removed (each tag becomes a space, edges trimmed); NULL where removing the tags would leave a half-parsed string or nothing at all. | Moraine, OH | 91.2% |
| jobs_core | finalCity | string, nullable | Resolved city name in normalized form. | Moraine | 98.0% |
| jobs_core | finalState | string, nullable | Resolved state or top-level administrative region. US postings carry the 2-letter code (CA, WA); non-US postings carry the canonical region name. | OH | 97.2% |
| jobs_core | finalCountry | string, nullable | Resolved ISO 3166-1 country, uppercase (US, GB, DE). US territories (Puerto Rico, Guam, US Virgin Islands, American Samoa, Northern Mariana Islands) are reported as US with the territory in finalState (PR, GU, VI, AS, MP). | US | 99.2% |
| jobs_core | finalZipcode | string, nullable | Resolved postal code: the posting's own, when the source publishes one at posting level. A posting found by a location search without a ZIP of its own carries the search's ZIP only when that ZIP lies in the metro area (CBSA) of the city the posting names (or, for a city outside any metro, within 25 km of it); a posting that names no city we can place takes the search's ZIP as its only location. | 45419 | 87.7% |
| jobs_core | finalLatitude | float, nullable | Latitude of the resolved location at zip/city precision. NULL when only a state- or country-level location could be resolved (we do not present a coarse centroid as a precise point). | 39.70733642578125 | 97.8% |
| jobs_core | finalLongitude | float, nullable | Longitude of the resolved location at zip/city precision. NULL when only a state- or country-level location could be resolved. | -84.2156982421875 | 97.8% |
| jobs_core | cbsaCode | string, nullable | 5-digit OMB Core-Based Statistical Area (metro/micro area) code for the posting's resolved ZIP, e.g. 35620. Assignment is one dominant CBSA per ZIP, derived by resolving the Census 2020 ZCTA-to-county crosswalk against the OMB July 2023 CBSA delineation. ZCTAs approximate the USPS ZIP inventory rather than reproducing it, so coverage is close to but not identical with the full ZIP list. A US posting with no resolved ZIP but a resolved city and state takes its city's CBSA: the one holding a strict majority of the city's ZIPs (a city split across metros gets none). NULL when the posting has neither a ZIP nor a mapped city, the ZIP lies outside any CBSA, the resolved country is non-US, OR the ZIP is absent from the ZCTA-derived source. A NULL is therefore "no metro mapping available", not a positive assertion that the location is rural. | 19430 | 89.1% |
| jobs_core | cbsaTitle | string, nullable | Official OMB name of the CBSA in cbsaCode, e.g. New York-Newark-Jersey City, NY-NJ. NULL exactly when cbsaCode is NULL. | Dayton-Kettering-Beavercreek, OH | 89.1% |
| jobs_role | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_role | normalizedTitle | string, nullable | Canonical job title from Canaria's title taxonomy of about 100,000 roles: variant spellings, seniority prefixes and synonyms resolve to one canonical title. | Health and Beauty Clerk | 99.8% |
| jobs_role | normalizedTitleConfidence | float, nullable | Confidence for normalizedTitle, 0 to 1, calibrated to P(correct). | 0.28422087 | 99.8% |
| jobs_role | seniority | string, nullable | Seniority band classified from title and description: intern, entry, mid, supervisor, senior, staff_principal, director or executive. The classifier never declines: every posting it scores receives one of the eight bands, so a NULL is a posting no classifier scored. | entry | 99.9% |
| jobs_role | seniorityTrack | string, nullable | Career track: ic (individual contributor), manager (people manager), or mixed. Distinguishes IC from manager at the same band. | ic | 99.9% |
| jobs_role | seniorityConfidence | float, nullable | Confidence for seniority (the band only), 0 to 1. The classifier's own score, not calibrated to P(correct): choose a cut from this column's own distribution. socConfidence, by contrast, is calibrated and can be thresholded as a probability. | 0.8919606 | 99.9% |
| jobs_role | seniorityDetail | string, nullable | Finance/banking sub-band refinement for senior roles (banking_vp, vp, c_suite, banking_md). NULL when not applicable. Disambiguates what "VP" means in banking vs tech. | vp | 0.3% |
| jobs_role | seniorityDetailConfidence | float, nullable | Classifier score for seniorityDetail, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever seniorityDetail is NULL. seniorityTrack ships without a score of its own. | 0.9698889 | <0.1% |
| jobs_role | socCode | string, nullable | US SOC 2018 6-digit occupation code, classified from title and description context. | 39-5012 | 99.9% |
| jobs_role | socTitle | string, nullable | Short label for the SOC code in socCode. | Hairdressers, Hairstylists, and Cosmetologists | 99.9% |
| jobs_role | socConfidence | float, nullable | Confidence for socCode, isotonic-calibrated to P(correct), so it is meant to be read as a probability and thresholded as one. A declined classification is reported differently: socCode, socTitle and this column are NULL together, so a NULL means no occupation was assigned, never an assignment at zero confidence. | 0.1808818 | 99.9% |
| jobs_arrangement | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_arrangement | employmentStatus | string, nullable | Employment type: full_time, part_time, contract, temporary, internship, per_diem, volunteer, apprenticeship, residency_fellowship or other. A posting titled as a paid senior officer (vice president, president, a chief officer) never ships as volunteer: where the classifier says volunteer, the field is NULL. other is the classifier's rare catch-all (under 0.01% of postings, in practice executive roles with no stated arrangement). | contract | 99.9% |
| jobs_arrangement | employmentConfidence | float, nullable | Classifier score for employmentStatus, 0 to 1, not calibrated to P(correct); the classifier never abstains, so choose a cut from this column's own distribution. NULL exactly when employmentStatus is NULL. | 0.61192876 | 99.9% |
| jobs_arrangement | workerClassification | string, nullable | Staffing-market worker classification: w2, 1099, statutory_employee or c2c; in practice a w2 / 1099 split; statutory_employee (about 0.01% of postings, usually at low confidence) and c2c (a handful of postings) are emitted rarely and are not usable for analysis. NULL where the posting names no arrangement: the classifier answers unknown rather than default a contract posting to 1099. For postings that accept several arrangements, corp-to-corp included, see workerClassificationAccepted. Its own score is workerClassificationConfidence. | w2 | 99.1% |
| jobs_arrangement | workerClassificationConfidence | float, nullable | Classifier score for workerClassification, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever workerClassification is NULL. | 0.9929842 | 1.1% |
| jobs_arrangement | workerClassificationAccepted | array<string> | For staffing postings that accept multiple arrangements ("W2/1099/C2C OK"), the multi-hot set of accepted classifications. Empty array when the posting names a single arrangement or gives no signal. | [] | 0.2% |
| jobs_arrangement | industryEmploymentSubtype | string, nullable | Healthcare staffing subtype, classified from the posting text: travel, locum_tenens, telehealth_contractor, research_staff or staff. NULL when not a healthcare staffing posting. Because it reads the text, it also fires on some non-clinical travel roles (travelling merchandisers, field service technicians): combine it with a healthcare socCode (29- or 31-) for a clinical-only count. | travel | 12.3% |
| jobs_arrangement | industryEmploymentSubtypeConfidence | float, nullable | Classifier score for industryEmploymentSubtype, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever industryEmploymentSubtype is NULL. | 0.82015777 | 0.1% |
| jobs_arrangement | temporarySubtype | string, nullable | For temporary roles (employmentStatus = 'temporary'), the temporary nature (seasonal, project, leave_coverage, fixed_term, unspecified). NULL otherwise. | seasonal | 1.4% |
| jobs_arrangement | temporarySubtypeConfidence | float, nullable | Classifier score for temporarySubtype, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever temporarySubtype is NULL. | 0.8829124 | <0.1% |
| jobs_arrangement | isGovernment | integer, nullable | 1 if the employer is a government body, 0 / NULL otherwise. Pairs with requiresSecurityClearance. | 0 | 99.9% |
| jobs_arrangement | isGovernmentConfidence | float, nullable | Classifier score for isGovernment, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever isGovernment is NULL. | 0.920121 | 1.1% |
| jobs_arrangement | hasFractional | integer, nullable | 1 if the role is fractional (e.g. fractional CFO / CMO), 0 / NULL otherwise. Deterministic text-pattern extraction (fractional / interim / retainer-based executive phrasing), not a model score. | 0 | 99.9% |
| jobs_arrangement | hasDolApprentice | integer, nullable | 1 if the posting is a US DOL-registered apprenticeship, 0 / NULL otherwise. Deterministic text-pattern extraction (DOL registration / apprenticeship.gov / 29 CFR phrasing), not a model score. | 0 | 99.9% |
| jobs_arrangement | hasAcgmePgy | integer, nullable | 1 if the posting is an ACGME residency / PGY-N training position, 0 / NULL otherwise. Deterministic text-pattern extraction (PGY-N / ACGME / residency-program phrasing), not a model score. | 0 | 99.9% |
| jobs_arrangement | remoteStatus | string, nullable | Remote-work classification: Remote, Hybrid or On-Site. NULL only on postings no classifier scored. | On-Site | 99.9% |
| jobs_arrangement | remoteConfidence | float, nullable | Classifier score for remoteStatus, 0 to 1, not calibrated to P(correct); the classifier never abstains. Values concentrate very high, so a 0.95 cut on this column filters far less than the round number suggests. | 0.99875367 | 99.9% |
| jobs_arrangement | hybridDaysPerWeek | float, nullable | In-office days per week for hybrid roles, rounded to a whole day (0–7) so it filters cleanly (e.g. = 3). Populated only when remoteStatus = 'Hybrid'; NULL otherwise. | 3 | 7.5% |
| jobs_arrangement | hybridSchedule | string, nullable | For hybrid roles, whether the in-office schedule is fixed, flexible or unspecified (the posting was read and states none). NULL on non-hybrid rows, and on the few hybrid rows not yet scored for a schedule. | fixed | 7.5% |
| jobs_arrangement | hybridScheduleConfidence | float, nullable | Classifier score for hybridSchedule, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever hybridSchedule is NULL. | 0.54035014 | 3.3% |
| jobs_arrangement | onsitePattern | string, nullable | For on-site roles, the work-location pattern: fixed_location, rotating (locum tenens / travel nursing), or mobile (field trades). NULL otherwise. | fixed_location | 86.3% |
| jobs_arrangement | onsitePatternConfidence | float, nullable | Classifier score for onsitePattern, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever onsitePattern is NULL. | 0.9484171 | 0.8% |
| jobs_arrangement | geoRestrictionLevel | string, nullable | Geographic hiring restriction granularity: none, country, state_or_region, metro, or timezone. NULL when there is no signal. Applies to any work mode. | none | 99.9% |
| jobs_arrangement | geoRestrictionLevelConfidence | float, nullable | Classifier score for geoRestrictionLevel, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever geoRestrictionLevel is NULL. | 0.90548044 | 4.3% |
| jobs_arrangement | hasFiveDayMandate | integer, nullable | 1 if the posting states an explicit five-days-a-week in-office mandate, 0 or NULL otherwise. A text-pattern extraction (five-days-in-office phrasing), not a model score; a mandate also sets remoteStatus to On-Site, never Hybrid. | 0 | 99.9% |
| jobs_arrangement | shiftTypes | array<string> | Shift-type phrases extracted (night shift, weekends, rotating shift, etc.). | [] | 26.5% |
| jobs_arrangement | travelRequirements | array<string> | Travel-requirement phrases extracted (up to 25% travel, frequent client travel). | [] | 4.2% |
| jobs_arrangement | shiftPattern | string, nullable | The posting's shift pattern as one value, mapped from shiftTypes: multiple (more than one fixed shift named), day, evening, night, rotating, split, shift_work (shifts, which not stated), compressed or flexible. NULL where the posting names none; 24/7 and weekend mentions alone are not mapped. Recall is limited: many postings that state a schedule in free prose get no value, so read a NULL as not detected rather than no shift. | flexible | 15.6% |
| jobs_arrangement | travelRequirement | string, nullable | How much the job travels, as one value from travelRequirements and any travel percentage the description states: frequent, occasional, required (travel is part of the job, extent not stated) or none (the posting says no travel). NULL where the posting says nothing about travel. | required | 4.6% |
| jobs_arrangement | startTiming | string, nullable | The canonical start-timing answer, fused from the three start-date extractors with priority parsed date, then signal, then label: specific_date (a literal date was parsed; see parsedStartDates), within_1_week, within_2_weeks, flexible, immediate (ASAP folds in). NULL when no start signal exists. | immediate | 15.3% |
| jobs_arrangement | startTimingSource | string, nullable | Which extractor produced startTiming: parsed_date, signal, or label. | label | 15.3% |
| jobs_arrangement | advertiserType | string | Type of advertiser (Direct Employer / Staffing Agency / staffing sub-types). Resolved strongest signal first: (1) Staffing Agency whenever a curated structured company signal identifies a staffing/recruiting firm (review-inferred inferredEntityType = staffing_agency, or its normalized industry is Staffing and Recruiting / Temporary Help Services, or, for an employer with no entity-type annotation (inferredEntityType = unknown), a staffing name: staffing, executive search, search partners, search group or headhunter in the name, or a recruiting word (recruiting, recruitment, recruiter, personnel, placement, talent, manpower, temps, temporaries, employment agency, employment services, interim, workforce) together with a model industry code of 561311 or 561320 at a naicsConfidence of 0.70 or better) AND the posting text is either silent or says Direct Employer; (2) otherwise the value inferred from posting text, if any; (3) Direct Employer when the text was silent and postingChannel = employer_ats; (4) Direct Employer when none of the above fired and the company-grain signal identifies a real operating employer (inferredEntityType = real_employer at an inferredEntityTypeConfidence of 0.70 or better, the floor below which the classification treats the label as unverified). Undetermined when no rung finds evidence either way: no advertiser phrase in the text, not an employer applicant-tracking-system feed, and an employer that is neither a known staffing company nor a confidently labelled direct employer. It is not defaulted to Direct Employer. Full domain: Direct Employer, Staffing Agency, Search/Recruiting Firm, Temp/Contract Staffing Agency, Recruitment Process Outsourcing, Employer of Record, Professional Employer Organization, Undetermined. Rung (1) is the only one that overrides a value a weaker rung produced, and it overrides exactly one value: a staffing-family text value (Staffing Agency, Temp/Contract Staffing Agency, Search/Recruiting Firm, Professional Employer Organization, Employer of Record, Recruitment Process Outsourcing) is never overridden, and no posting on a non-staffing company is affected. Consequence you can rely on: this column never reads Direct Employer on a posting whose inferredEntityType is staffing_agency. The company-grain rungs read the same signal in both directions, so the staffing share computed from this column tracks the one computed from inferredEntityType. | Direct Employer | 100% |
| jobs_skills_extracted | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_skills_extracted | technicalSkills | array<string> | Technical skills extracted from the description, as the skills taxonomy's canonical labels (Python (Programming Language), Node.js (Javascript Library), Terraform, React, etc.). An ambiguous name carries a qualifier in parentheses, so match the FULL label: has(technicalSkills, 'Python (Programming Language)'), never 'python'. Generic occupational nouns that are not skills (e.g. Operations, Scheduling, Transportation) are removed. A small set of domain terms (Finance, Accounting, Logistics, Transportation, Marketing, Construction) is retained only on relevant occupational roles, and dropped otherwise. | [] | 86.5% |
| jobs_skills_extracted | softSkills | array<string> | Soft skills extracted, as canonical labels (Communication, Leadership, Attention to Detail). | [] | 68.6% |
| jobs_skills_extracted | certifications | array<string> | Certifications named in the posting, as canonical labels: an abbreviation ships under the full name (CPA as Certified Public Accountant, PMP as Project Management Professional Certification), often with the abbreviation in parentheses (Registered Nurse (RN), Basic Life Support (BLS) Certification). | [] | 25.8% |
| jobs_skills_extracted | licenseRequirements | array<string> | Professional license requirements extracted, as canonical labels (Driver's License, RN License, CDL Class A). | [] | 21.2% |
| jobs_skills_extracted | degreeLevels | array<string> | Degree levels the description requires (High School, Associates, Bachelors, Masters, Doctoral, Certificate, Postbaccalaureate Certificate, Postmasters Certificate). A level is read only from degree wording, never from benefit text such as tuition assistance, and a level the occupation never requires is removed unless the text clearly states it as a credential. minimumDegree holds the lowest. | [] | 38.7% |
| jobs_skills_extracted | minimumDegree | string | The lowest degree level required, collapsed from degreeLevels; both ship in this file. The collapse is lossy, so read degreeLevels when more than a floor matters. Empty string when no degree level is mentioned. Overloaded abbreviations are excluded where nothing disambiguates them: "dba" never emits Doctoral, and "j.d." emits it only in a degree shape ("J.D. required"), never in "J.D. Power". | High School | 38.7% |
| jobs_skills_extracted | experienceLevels | array<string> | Experience-level cues mentioned (entry-level, senior, executive). Senior is dropped when the posting's seniority signal confidently indicates an entry or mid-level role, removing false positives such as "senior care" on non-senior postings. | [] | 11.4% |
| jobs_skills_extracted | experienceRequirements | array<string> | Years-of-experience requirements parsed from the description, emitted as canonical labels (5+ years, 2-4 years, 10 years), not verbatim source spans: ranges normalize to N-M years and lead-ins like "minimum"/"at least" are stripped. Not converted to integers. Age minimums ("18 years of age") are excluded. | [] | 18.5% |
| jobs_skills_extracted | languageRequirements | array<string> | Language-requirement phrases, including English when explicitly required (bilingual Spanish, fluent in Mandarin, fluent in English). | [] | 6.1% |
| jobs_skills_extracted | physicalRequirements | array<string> | Physical-requirement phrases (lift 50 lbs, stand for 8 hours). | [] | 16.6% |
| jobs_skills_extracted | employerTaggedSkills | array<string> | The skills the SOURCE listed for the posting as structured tags (Indeed's attribute tags, and the same field where another feed publishes it), exactly as listed: one label, or each element of the source's list. [] where the source listed none. Kept apart from technicalSkills / softSkills, which are extracted from the description and normalized to the taxonomy, so a buyer can tell what the employer tagged from what the text says. Not normalized: two sources can spell one skill differently. | [] | 1.2% |
| jobs_skills_extracted | employerTaggedCertifications | array<string> | The certifications and licenses the source listed for the posting, as employerTaggedSkills describes. Compare certifications, extracted from the description. | [] | 0.6% |
| jobs_skills_extracted | employerTaggedQualifications | array<string> | The qualifications the source listed for the posting (Indeed's qualification tags), as employerTaggedSkills describes. | [] | 1.0% |
| jobs_salary | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_salary | salaryString | string, nullable | The salary text the values were parsed from, as the posting showed it. NULL when the posting states no pay or the values are an estimate. A posting whose pay text gave no usable figure keeps the text beside NULL values: test the value columns, not the text, for whether a salary shipped. | $19 - $32 an hour | 41.8% |
| jobs_salary | salarySource | string, nullable | Where the salary came from: description (stated in the posting text), source_field (the job board's structured salary field, as published; a board can fill that field with its own estimate without flagging it, so description is the only tier certainly in the employer's words), source_estimate (the job board's own flagged estimate) or predicted (a Canaria model estimate, where the posting states no pay). NULL when no salary value ships. Most resolved salaries are estimates, so read this column on every row. | scraped | 90.5% |
| jobs_salary | salaryPayPeriod | string, nullable | The pay period the employer stated, which the annualSalaryUSD values were annualized from: hour, year, week, month, day, two_week or half_month, and rarely a per-unit rate such as shift or mile. Set only when salarySource is description or source_field; NULL on predicted and source_estimate rows (those are annual estimates, not a stated period), wherever salarySource is NULL, and on the rare stated salary whose text named no period. salaryPayPeriod = 'hour' selects every hourly-stated posting without parsing salaryString. | hour | 38.5% |
| jobs_salary | annualSalaryMinimumUSD | float, nullable | Parsed annualized salary minimum, converted to USD at jobDate's FX rate. NULL if no lower bound parsed, the currency isn't covered, or the date is unknown. | 39520 | 89.5% |
| jobs_salary | annualSalaryAverageUSD | float, nullable | USD-converted average. | 53040 | 90.5% |
| jobs_salary | annualSalaryMaximumUSD | float, nullable | USD-converted maximum. | 66560 | 88.7% |
| jobs_salary | salaryConfidence | float, nullable | For salarySource = 'predicted': the model's own confidence, 0 to 1, derived from its predictive uncertainty. It orders predictions but is not a success rate, and it is not the width of the salary range. On the other tiers it marks provenance: 1.0 for stated pay (description, source_field), 0.9 for job-board estimates (source_estimate). Select tiers with salarySource, not with this column (0.9 is stored as 0.8999999761581421, so an equality test matches nothing). NULL wherever no salary value ships. | 1 | 90.5% |
| jobs_salary | salaryCurrencyCode | string, nullable | ISO 4217 currency code of the posting's original salary (USD, EUR, INR, KRW). Use this for filtering/grouping; the shipped annualSalaryUSD values are already converted to USD. NULL whenever no annualSalaryUSD value ships, including when the posting's currency had no exchange rate for its date. | USD | 90.5% |
| jobs_salary | isPaid | integer, nullable | 1 for paid roles, 0 for unpaid roles (unpaid internships, volunteer positions), NULL when there is no signal. | 1 | 99.3% |
| jobs_salary | isPaidConfidence | float, nullable | Classifier score for isPaid, 0 to 1, not calibrated to P(correct). Filled only on postings scored since this score was added, so its fill rate differs sharply by year (see Notes for using the data in the Guide): do not filter on it across years. NULL wherever isPaid is NULL. Also NULL where a stated wage overrode the classifier: the score was for the class that did not ship. | 0.9266869 | 1.1% |
| jobs_salary | benefits | array<string> | Employer-provided benefits (401K, PAID TIME OFF, HEALTH INSURANCE, etc.): those mentioned in the description, followed by any the job board listed for the posting that the description does not mention, under the same labels. A posting with no description carries the labels its job board listed. A board label that is not a benefit in this vocabulary ("Flexible schedule", "Remote", "Employee stock purchase plan") adds nothing here. | [] | 54.2% |
| jobs_salary | equity | array<string> | Equity or stock-based compensation mentioned (ESPP, Equity, Stock Options, and the rare Cash or Share Options). Distinct from cash benefits in benefits. | [] | 3.8% |
| jobs_salary | compensation | array<string> | Direct cash compensation beyond base pay mentioned (Commission, Performance Bonus, Overtime Pay, Shift Differential, Hazard Pay, Signing Bonus, Severance Pay). Wages, distinct from employer-provided benefits in benefits. | [] | 8.7% |
| jobs_company | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_company | normalizedCompanyName | string, nullable | Canonical employer name from Canaria's company database: the join key to the company and ticker files. Normally resolved from the posting's own companyName; where a posting names no employer, it can be recovered from its companyProfileURL, or carried from its duplicate group when every named member names the same company. | Walmart | 98.2% |
| jobs_company | normalizedIndustryName | string, nullable | Canonical industry of the employer, one spelling across the variants sources use. | Retail | 82.3% |
| jobs_company | naicsSector | string, nullable | NAICS 2022 sector (2-digit; the multi-prefix sectors read 31-33, 44-45 and 48-49), from whichever source naicsSource names. | 44-45 | 98.0% |
| jobs_company | naicsIndustryGroup | string, nullable | NAICS-2022 industry group (4-digit). The first four digits of naicsCode wherever a 6-digit code resolved. Label it from the reference_naics bundle at naicsLevel = 4. | 4552 | 98.0% |
| jobs_company | naicsCode | string, nullable | NAICS 2022 6-digit industry code. NULL mostly where the classifier declined to place the employer; a few of those postings still carry a sector and title from the curated industry lookup. | 455211 | 98.0% |
| jobs_company | naicsTitle | string, nullable | Official NAICS 2022 label of the most specific level that resolved. | Warehouse Clubs and Supercenters | 98.0% |
| jobs_company | naicsSource | string, nullable | Where both sources have a code, the model wins at or above 0.30 confidence, whether or not the two agree on the sector, and the curated lookup wins otherwise. NULL when no NAICS could be resolved. | industryMap | 98.0% |
| jobs_company | naicsConfidence | float, nullable | Model confidence for the NAICS code, 0 to 1, calibrated to P(correct). Set on model rows; NULL on curated-lookup rows (the lookup carries no score) and where no NAICS resolved. Filter on naicsSource first. | 0.9879 | 51.7% |
| jobs_company | sourceEntityType | string, nullable | Source-reported legal or organizational structure of the employer (Public Company, Privately Held, Nonprofit, Government Agency, Educational, Partnership, Self-Owned, Self-Employed). The source-reported companion to the classifier-inferred inferredEntityType. | Public Company | 71.0% |
| jobs_company | companyRevenueMinimumUSD | float, nullable | Lower bound (inclusive) of the employer's annual revenue range, in USD. | 10000000000 | 38.6% |
| jobs_company | companyRevenueMaximumUSD | float, nullable | Upper bound (inclusive) of the employer's annual revenue range, in USD; NULL for open-ended top buckets. | 5000000000 | 28.2% |
| jobs_company | companyHeadquartersCountryISO2 | string, nullable | ISO 3166-1 alpha-2 country code (uppercase) for the employer's headquarters country. | US | 78.7% |
| jobs_company | companyHeadquartersCity | string, nullable | Employer headquarters city in normalized form. | Bentonville | 78.3% |
| jobs_company | companyHeadquartersState | string, nullable | Employer headquarters state or top-level administrative region. US and Canadian employers carry the 2-letter code; others carry the canonical region name. | AR | 73.0% |
| jobs_company | tickerSymbol | string, nullable | Ticker of the listed company the employer resolves to (e.g. AAPL): its own listing or its owning parent's. The link is decided once per employer name and listed company, from a reviewed sample of that name's postings, and applies to its postings inside the company's ticker window. NULL on a posting a marketplace rule identifies as a third party's listing on the company's platform, and on one whose link did not yet hold on its first-seen date (see the Guide on public-company links). | WMT | 23.3% |
| jobs_company | isPubliclyTraded | integer, nullable | 1 when the employer itself is the listed company (including under a former name), 0 when the employer is owned by a listed parent (subsidiary, acquisition, or division), or carries the linked issuer's ticker without being owned by it, NULL when no public-company link was resolved. | 1 | 23.3% |
| jobs_company | stockExchange | string, nullable | Exchange the linked ticker trades on, one spelling per venue: NYSE, NASDAQ, NYSE AMERICAN, OTHER (NYSE Arca, Cboe BZX and IEX) or OTC (over-the-counter quotations) for US listings. NULL when tickerSymbol is NULL or the link records no venue. A symbol is not unique across venues: join on tickerSymbol and stockExchange. | NASDAQ | 21.4% |
| jobs_company | tickerRelation | string, nullable | How the employer relates to the linked ticker: self (the listed company), former_name (the listed company under an earlier name), subsidiary, division or acquisition (owned by the listed company), franchise (an independent franchisee operating under the listed company's brand, no equity link), partner (a contracted operator under the brand, such as a delivery or freight partner, no equity link), fund_portfolio (a company held by funds a listed manager runs) or bdc_holding (a portfolio investment of a listed business development company). | self | 23.3% |
| jobs_company | tickerParentName | string, nullable | Registered name of the company that owns the linked ticker (the employer itself for self and former_name links). NULL when tickerSymbol is NULL, and where the owning parent could not be named. Use tickerRelation and isPubliclyTraded, not this column, to tell a parent attribution from an own listing. | Walmart | 21.5% |
| jobs_company | tickerMatchConfidence | float, nullable | Confidence score (0 to 1) of the employer-to-ticker link. Links ship at 0.85 and above. NULL when tickerSymbol is NULL. | 1 | 23.3% |
| jobs_company | tickerMatchMethod | string, nullable | How the link was established: curated (a reviewed link), website (the employer's own domain matched the issuer's), name_exact, registrant_name (the issuer's registered filer name), name_variant, name_fuzzy, exact_alias (a reviewed alias that links only the one name it lists), corporate_family (inherited from a corporate parent or sibling link), curated_franchise (a reviewed franchise link) or brand_operator (a franchisee or partner whose own name pairs a listed brand with an operator, such as "DWMJ Inc d/b/a McDonald's"). Not every method occurs in every release; the highest-precision subset is curated, website and name_exact. | annotation | 23.3% |
| jobs_company | isUSListing | integer, nullable | 1 when the linked ticker trades on a US exchange (NYSE, NASDAQ, NYSE AMERICAN or OTHER (the bucket for NYSE Arca, Cboe BZX and IEX)), 0 when it trades outside the US, NULL when there is no ticker link, the link records no venue, or the venue is the over-the-counter market. Filter isUSListing = 1 for a US equity panel. | 1 | 21.1% |
| jobs_company | primaryListingSymbol | string, nullable | The company's home / ordinary-share listing symbol, carried beside tickerSymbol rather than instead of it, and resolved as of this posting's own date like the rest of the ticker block. primaryListingSymbol != tickerSymbol means tickerSymbol is not the home listing: an ADR or another secondary line: a sufficient test, not an exhaustive one, and it must not be read as "everything else is a single listing". The home leg exists only where Canaria's curated listing reference happens to hold both legs of one company, and there is no other source for it: the SEC-derived listing-date reference holds neither leg of these pairs. So use the inequality to confirm a secondary line, never to rule one out. NULL when tickerSymbol is NULL. | WMT | 23.3% |
| jobs_company | primaryListingExchange | string, nullable | Exchange primaryListingSymbol trades on, canonicalized to one spelling per venue exactly like stockExchange. NULL when tickerSymbol is NULL, and ALSO NULL whenever the link itself carries no venue: the two halves of the pair do not fill together. | NASDAQ | 21.4% |
| jobs_company | publicFloatUSD | integer, nullable | The public float (market value of the common equity held by non-affiliates, in USD) of the SEC registrant behind tickerSymbol, from the latest annual report (10-K) filed on or before the posting's date: no report filed after the posting is ever used. NULL where tickerSymbol is NULL or no float applies. A subsidiary posting under its parent's ticker carries the parent's float. Floats tagged in the wrong unit are screened out; a small residue remains (see Notes for using the data in the Guide). | 391703475732 | 18.9% |
| jobs_company | publicFloatAsOf | date, nullable | The date publicFloatUSD is measured at, as the report states it (the last business day of the issuer's second fiscal quarter). NULL exactly when publicFloatUSD is NULL. | 2025-07-31 | 18.9% |
| jobs_company | marketCapTier | string, nullable | Market-cap tier from publicFloatUSD: large (10 billion USD or more), mid (2 to 10 billion), small (300 million to 2 billion) or micro (under 300 million). Point in time like publicFloatUSD, so usable as a backtest universe filter. The company files carry no tier, because a current tier on a historical posting would be lookahead. | large | 18.9% |
| jobs_company | companyStatus | string | Ownership or sector class, always populated: public (the listed company itself), subsidiary_of_public (a business it owns), franchisee_of_public or partner_of_public (a franchisee or contracted operator under its brand, no equity link), portfolio_company_of_public (held by funds a listed manager runs), government, nonprofit, educational, private, or unknown. A verified listing outranks the reported sector. It always agrees with the ticker block on the same row: where the block is NULL, it reads the employer's class without a link. | public | 100% |
| jobs_company | inferredEntityType | string | Hiring role of the company: real_employer, staffing_agency, job_board_aggregator (a job board, not an employer), not_a_company, or unknown. A role ships only at 0.70 confidence or more, so unknown means not classified, not doubtful. Sources, in order of precedence: a reviewed classification, a verified stock-ticker link, the source-reported organisation type (Nonprofit, Educational), and a classifier reading the company's own postings. A separate axis from sourceEntityType (legal form) and companyStatus (ownership). | real_employer | 100% |
| jobs_company | inferredEntityTypeConfidence | float, nullable | Per-field confidence (0-1) of inferredEntityType. NULL exactly when inferredEntityType is unknown. For a classified employer this is the score recorded by the model-based company classification; for an employer resolved by the ticker-link rule it is that rule's measured precision (0.95); for one resolved by the organisation-type rule it is that label's measured precision (0.987 for Nonprofit, 0.955 for Educational); for one resolved by the posting-evidence classifier it is that classifier's own score, 0.70 or more. | 1 | 97.0% |
| jobs_company | attributesAsOf | date | The UTC day this posting's company attributes (industry name, NAICS, size and revenue bands, headquarters, entity type) were resolved. They are that day's values for the employer, not values as of the posting's date: profiles exist only from 2024-09 on, so a 2022 posting carries its employer as resolved now. The ticker block, public float and market-cap tier are point in time and are not covered by this date. | 2026-10-06 | 100% |
| jobs_signals | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_signals | remoteWorkMentions | array<string> | Remote-work phrases extracted (fully remote, work from home, hybrid 3 days in office, etc.). | [] | 12.6% |
| jobs_signals | parsedRemotePercentages | array<string> | Remote-percent strings parsed from the description (verbatim spans, e.g. 3 days in office, 100% remote). | [] | 0.7% |
| jobs_signals | remotePercentageLabels | array<string> | Qualitative remote tags (fully remote, fully onsite, remote-first). Independent of parsedRemotePercentages, not a per-entry pairing. | [] | 0.8% |
| jobs_signals | parsedStartDates | array<string> | Start-date strings parsed from the description (verbatim spans). | [] | 4.4% |
| jobs_signals | startDateLabels | array<string> | Qualitative start-date tags (immediate, ASAP, flexible). Independent of parsedStartDates, not a per-entry pairing. | [] | 11.5% |
| jobs_signals | startDateSignals | array<string> | Start-timing phrases from the signal extractor (Flexible Start, Start Within 1 Week, Start Within 2 Weeks). Finer-grained vocabulary than startDateLabels; both feed the canonical startTiming fusion. | ['Start Within 2 Weeks'] | 0.1% |
| jobs_signals | employmentTypeMentions | array<string> | Employment types mentioned in the text (full-time, part-time, contract, internship, etc.). Verbatim mentions; employmentStatus is the single classified value. | [] | 59.3% |
| jobs_signals | urgencySignals | array<string> | Urgency-signal phrases (immediate start, urgent hiring, start ASAP). | [] | 7.8% |
| jobs_signals | companyTypes | array<string> | Company-type cues mentioned in the posting (startup, fortune 500, non-profit). | [] | 16.5% |
| jobs_signals | eeocStatement | array<string> | EEOC / equal-opportunity statement categories detected on the posting (one element per statement; a posting can carry several). Empty array when none. | [] | 37.6% |
| jobs_eligibility | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_eligibility | offersVisaSponsorship | integer, nullable | 1 if the posting says the role offers visa sponsorship, 0 if it says it does not, NULL when it says neither. Read from the posting text: application questions and bare headings are not statements, and where a posting both refuses and appears to offer, the refusal wins. | 0 | 1.9% |
| jobs_eligibility | requiresSecurityClearance | integer, nullable | 1 if the posting states that the role requires a security clearance, 0 if it states that it does not, NULL when the posting makes no such statement. Read from the posting text only, so a NULL is "the posting does not say", never "no clearance needed". | 1 | 1.5% |
| jobs_eligibility | citizenshipRequirements | array<string> | Citizenship-requirement phrases extracted from the posting. | [] | 5.8% |
| jobs_eligibility | screeningRequirements | array<string> | Screening-requirement phrases (background check, drug test, credit check). | [] | 10.3% |
| jobs_eligibility | visaSponsorshipMentions | array<string> | Visa-sponsorship phrases extracted from the posting (mentions of H-1B, sponsorship language, etc.). | [] | 1.5% |
| jobs_eligibility | clearanceLevels | array<string> | Security clearance levels named in the posting, as canonical labels; match on the full label. Keyword-extracted and independent of requiresSecurityClearance, so a level can appear on a posting that states no requirement. | [] | 1.5% |
| jobs_contacts | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | 100% |
| jobs_contacts | extractedEmails | array<string> | Email addresses found in the description text. | ['careers@example-vet.com'] | 33.4% |
| jobs_contacts | extractedPhones | array<string> | Phone numbers found in the description text. | ['+1-555-0142'] | 41.4% |
| jobs_contacts | extractedURLs | array<string> | URLs found in the description text (distinct from jobURL, the posting's own link). | [] | 49.7% |
| jobs_descriptions | contentID | string (fixed 64-char key), nullable | SHA-256 content-version hash over title + description. Shifts when either changes. | 3cffff7ad7d58aaa3356e53ee724dd9dfbc3999657146d03b9561a611e80356f | 100% |
| jobs_descriptions | jobDescriptionCleaned | string | Cleaned full job description text: boilerplate and markup stripped, whitespace normalized. Heavy text is split into this file so jobs_core stays narrow; join to jobs_core on contentID. | Our growing veterinary practice is seeking an associate veterinarian to join our team... | 100% |
| jobs_clinical | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | f300000caf40825596634d529102a76d61157f94c6ae2fbe2d2b5cc55c7bd153 | 100% |
| jobs_clinical | complianceRequirements | array<string> | Clinical / regulatory compliance phrases extracted from the description (e.g. HIPAA, CMS, Joint Commission). | [] | 11.1% |
| jobs_clinical | facilityTypes | array<string> | Facility-type mentions extracted from the description (hospital, outpatient clinic, long-term care, skilled nursing facility). | ['Community Hospital', 'Magnet Hospital', 'Level II Trauma Center'] | 55.3% |
| jobs_clinical | patientPopulations | array<string> | Patient-population mentions (pediatric, geriatric, oncology, behavioral health). | ['Pediatric'] | 52.0% |
| jobs_clinical | caseloads | array<string> | Caseload-related phrases extracted from the description (patient volumes, ratios). | [] | 11.0% |
| jobs_clinical | credentialingTimelines | array<string> | Credentialing-timeline phrases extracted from the description (onboarding, license verification windows, start-readiness). | [] | 0.4% |
| jobs_changes | jobID | string (fixed 64-char key) | The posting's key; joins to jobs_core. | - | |
| jobs_changes | changeType | string | 'upsert' (the posting is new or its delivered values changed; its full current row is in the other jobs files) or 'removal' (delete it on jobID). A full delivery lists every live posting with its latest change and no removals. | upsert | - |
| jobs_changes | changedAt | datetime (UTC) | When the change was recorded (UTC). | - | |
| jobs_changes | vintage | string | The release the change came from. | - | |
| jobs_open_duration | jobID | string | The posting's key; joins to jobs_core. | deec6437263367ef8e9a8840000c69951b6f959acdaea5c1874f579fa0e73921 | - |
| jobs_open_duration | postingStatus | string | closed, open (not yet unlisted for its threshold: still open, or closed too recently to tell), or unmeasurable. | - | |
| jobs_open_duration | unmeasurableReason | string, nullable | Set only when unmeasurable: not_list_crawled (no listing page ever showed the posting: sources collected from detail pages only, most of 2022-2023, and Indeed from 2025-04 to 2026-07), crawl_stopped (we stopped collecting its source or board before it could be confirmed gone), insufficient_crawl_history (no collection calendar or threshold for its source in this release) or not_yet_measured (published after this release's measurement). | - | |
| jobs_open_duration | lastListedDate | date, nullable | The last day a listing collection showed the posting. | - | |
| jobs_open_duration | postingOpenDays | integer, nullable | Calendar days from firstSeenDate to lastListedDate, both included. For closed this is the open duration; for open, the days open so far (right-censored). NULL when unmeasurable. | - | |
| jobs_open_duration | postingDaysSeen | integer, nullable | Distinct days any of our collection saw the posting. | - | |
| jobs_open_duration | sightingCoverage | float, nullable | postingDaysSeen over the collected days of its unit between first and last sighting, capped at 1. Below 0.5 the span rests on few sightings: treat postingOpenDays as low confidence. NULL where it cannot be computed. | - | |
| jobs_open_duration | unlistedCrawledDays | integer, nullable | Collected days of its unit since lastListedDate, through measuredThroughDate. A stricter reader can require more than closureThresholdDays. | - | |
| jobs_open_duration | closureThresholdDays | integer, nullable | Collected days a posting must go unlisted before it counts as closed. Set per source from that source's own history (the smallest gap after which fewer than 5% of postings reappear, between 3 and 60 days) and re-measured on every release. | - | |
| jobs_open_duration | closureConfidence | float, nullable | 1 minus the share of the source's postings that were listed again after being unlisted this many collected days; 0 for a posting listed on its unit's last collected day. Set for open rows too. | - | |
| jobs_open_duration | closureKnowableDate | date, nullable | For closed only: the first date on which the verdict could have been known: the day after the threshold's last collected day for an employer board; for a job board, the day after the 14th day of the source's calendar that follows it, because whether a job-board day counts as collected compares it with the 14 days either side. | - | |
| jobs_open_duration | isLeftCensored | integer, nullable | 1 when the posting may have opened before we first saw it, so postingOpenDays is a lower bound. | - | |
| jobs_open_duration | leftCensorReason | string, nullable | posted_before_first_seen (a posting date from our historical archive precedes our first observation), before_list_crawling (first seen before its unit had a listing collection), list_crawling_start (first seen in its unit's first 7 collected days, when a newly collected board is already full of older postings). | - | |
| jobs_open_duration | sourceLastCrawledDate | date, nullable | The last day its unit was collected. | - | |
| jobs_open_duration | measuredThroughDate | date, nullable | The last collected day this release measured through: every verdict is as of this date. | - |
Company Data: 143 fields, 29,114,505 rows (catalog 8.3, measured 6 Oct 2026)
| Module | Field Name | Type | Description | Example | Coverage |
|---|---|---|---|---|---|
| company_profiles | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | amazon | 100% |
| company_profiles | affiliatedCompanyNames | array<string> | Distinct names of companies affiliated with this one on the source profile (e.g. LinkedIn affiliated pages). Empty array when none. | ['AWS','Twitch'] | 0.4% |
| company_profiles | attributesAsOf | date | The UTC day this row's company attributes (industry, NAICS, size and revenue bands, headquarters and the rest) were resolved: the release day. They are the release's current values, not values as of any posting date. | 2026-09-30 | - |
| company_profiles | companyCEO | string | Chief executive's name where the source profile lists one. | Jane Doe | 0.1% |
| company_profiles | companyDataSources | array<string> | Sources that contributed to this profile (array form of firmographicSources). Each firmographic field is chosen separately, preferring LinkedIn where both sources have a value, else the most recent observation, so one company's industry and size band can come from different sources. | ['indeed','linkedin'] | 87.3% |
| company_profiles | companyDescription | string | Short company description. | More than 60 years ago, Sam Walton opened the first Walmart in Rogers, Arkansas. Today,... | 73.5% |
| company_profiles | companyDomain | string | Registrable domain of companyWebsite, the buyer join key to web-domain datasets. | amazon.com | 60.0% |
| company_profiles | companyEmployeeCount | integer | Employee count shown on the source company profile, where it shows one. It is sourced separately from the self-reported size band (companyEmployeeSizeBucket) and usually lower, because not every employee is listed: use the size band to size a company and this column for the observed count. | 1540000 | 67.3% |
| company_profiles | companyEmployeeSizeBucket | string | Self-reported employee size band: 1, 2-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000 or 10001+. | 1001-5000 | 73.5% |
| company_profiles | companyEmployeeSizeMaximum | integer | Upper bound (inclusive) of the size bucket; NULL for open-ended buckets like 10001+. | 5000 | 73.3% |
| company_profiles | companyEmployeeSizeMinimum | integer | Lower bound (inclusive) of the size bucket as an integer. Useful for numeric range filters. | 1001 | 73.5% |
| company_profiles | companyFollowerCount | integer | Follower count on the source company profile (e.g. LinkedIn). NULL when not disclosed. | 2100000 | 64.7% |
| company_profiles | companyFoundedYear | integer | Year the company was founded. | 1994 | 29.8% |
| company_profiles | companyHeadquartersCity | string | Headquarters city (canonical, normalized form). | Mountain View | 67.8% |
| company_profiles | companyHeadquartersCountryISO2 | string | ISO 3166-1 alpha-2 code (uppercase) of the headquarters country. A few profiles carry a retired or user-assigned code as the source gives it (AN, CS, XK). | US | 73.4% |
| company_profiles | companyHeadquartersState | string | Headquarters state or top-level administrative region. US and Canadian companies carry the 2-letter code (CA, WA, ON); others carry the canonical region name. Resolved by the same location rules as a posting's finalState. | CA | 45.3% |
| company_profiles | companyHeadquartersZipcode | string | Headquarters postal / ZIP code, parsed from the HQ location string. NULL when the source did not carry one. | 98109 | 0.6% |
| company_profiles | companyLastVerifiedDate | timestamp | Most recent time a source profile behind this row was collected. | 2026-09-22 12:00:00 | 13.3% |
| company_profiles | companyLinkedInURL | string | The company's LinkedIn page (where several match, the one with the most followers). | 10.7% | |
| company_profiles | companyLogoURL | string | URL of the company logo image from the source profile. NULL when not present. | https://…/logo.png | 77.4% |
| company_profiles | companyOfficeLocations | array<string> | "City, State, Country" for each office listed on the company's source profiles; empty when none is listed. | [] | 5.8% |
| company_profiles | companyRating | float | Aggregate company rating on the source profile (source scale). NULL when not rated. | 4.1 | 2.6% |
| company_profiles | companyRevenueMaximumUSD | float | Upper bound (inclusive) of the revenue bucket in USD; NULL for open-ended buckets like more than $10B (USD). | 500000000.0 | 0.4% |
| company_profiles | companyRevenueMinimumUSD | float | Lower bound (inclusive) of the revenue bucket in USD. | 100000000.0 | 0.5% |
| company_profiles | companyRevenueRange | string | Annual revenue band in USD: less than $1M, $1M to $5M, $5M to $25M, $25M to $100M, $100M to $500M, $500M to $1B, $1B to $5B, $5B to $10B or more than $10B (each label ends in "(USD)"). Filled where a source profile states revenue. | $1B to $5B (USD) | 0.5% |
| company_profiles | companyReviewCount | integer | Number of reviews behind companyRating. NULL when not disclosed. | 18452 | 2.6% |
| company_profiles | companySpecialties | array<string> | Distinct self-declared specialties / focus areas from the source profile. Empty array when none. | ['Cloud Computing','E-commerce'] | 3.4% |
| company_profiles | companyStatus | string | Ownership and sector class, set on every profile: public (the listed issuer), subsidiary_of_public (owned by a listed parent), franchisee_of_public, partner_of_public or portfolio_company_of_public (operating under, contracted to, or held by funds of a listed company that does not own it), government, nonprofit, educational, private, or unknown. A verified listing outranks the reported sector; a company identified as listed or listed-owned whose ticker could not be linked reads public or subsidiary_of_public with no tickerSymbol. | private | 100% |
| company_profiles | companyWebsite | string | Primary company domain. | amazon.com | 60.0% |
| company_profiles | firmographicSourceCount | integer | Number of source profile records that contributed to this row; more records mean better-corroborated firmographics. | 6 | 100% |
| company_profiles | firmographicSources | string | Comma-separated source systems that contributed firmographics. | linkedin,indeed | 87.3% |
| company_profiles | firstPostingDate | timestamp | Earliest jobDate of any posting attributed to this company (UTC). Where a source publishes no posting date, jobDate is the day we first collected the posting, so an early firstPostingDate can reflect when collection of that source began. A small number of companies carry a first posting before January 2022, from postings collected before the panel starts. | 2022-01-14 00:00:00.000 | 29.9% |
| company_profiles | placesAvgRating | float | Average star rating (0-5) across matched Google Maps locations, weighted by each location's review count. NULL under the same rule as placesLocationCount, or when none of the matched locations carry a rating. | 4.2 | 13.6% |
| company_profiles | placesLocationCount | integer | Number of Google Maps business locations matched to this company. Locations flagged third-party-sited are excluded from every places roll-up. NULL when no location matched or when every matched location was flagged. | 1842 | 17.8% |
| company_profiles | placesNaicsCode | string | Most common NAICS-2022 industry code across the company's matched Google Maps locations (the modal value). NULL under the same rule as placesLocationCount. | 722511 | 17.0% |
| company_profiles | placesReviewCount | integer | Sum of customer review counts across all matched Google Maps locations. NULL under the same rule as placesLocationCount. | 983204 | 17.8% |
| company_profiles | placesTopCategories | array<string> | Most common Google Maps business categories across the company's matched locations, most frequent first. Empty when no location matched or every matched location was flagged. | ['Coffee shop','Cafe'] | 17.7% |
| company_profiles | placesTotalWeeklyHours | float | Sum of weekly open hours across all matched Google Maps locations, a coarse proxy for physical-footprint scale. NULL under the same rule as placesLocationCount. | 128640.0 | 13.3% |
| company_profiles | inferredEntityType | string | Hiring role of the company: real_employer, staffing_agency, job_board_aggregator (a job board, not an employer), not_a_company, or unknown. A role ships only at 0.70 confidence or more, so unknown means not classified, not doubtful. Sources, in order of precedence: a reviewed classification, a verified stock-ticker link, the source-reported organisation type (Nonprofit, Educational), and a classifier reading the company's own postings. A separate axis from sourceEntityType (legal form) and companyStatus (ownership). | real_employer | 100% |
| company_profiles | inferredEntityTypeConfidence | float | Confidence (0-1) of inferredEntityType; NULL exactly when inferredEntityType is unknown. For a classified company it is the classifier's score, 0.70 or more; for a company resolved by the ticker-link rule, that rule's measured precision (0.95); for one resolved by the organisation-type rule, that label's measured precision (0.987 for Nonprofit, 0.955 for Educational). | 0.94 | 20.0% |
| company_profiles | isPubliclyTraded | integer | 1 when this company is the listed entity (including listings under a former name); 0 when it is owned by a listed parent (subsidiary, acquisition, division) or operates under one's brand; NULL when there is no link to a public listing. | 1 | 0.2% |
| company_profiles | isUSListing | integer | 1 when the linked ticker trades on a US exchange (NYSE, NASDAQ, NYSE AMERICAN or OTHER (the bucket for NYSE Arca, Cboe BZX and IEX)), 0 when it trades outside the US (for example XETRA, LSE, Euronext Paris, TSX). NULL when there is no ticker link, the link records no exchange, or the ticker trades over the counter (OTC). Filter isUSListing = 1 for a US equity panel. | 1 | 0.1% |
| company_profiles | lastPostingDate | timestamp | Latest jobDate. Millisecond precision in UTC. | 2026-04-01 00:00:00.000 | 29.9% |
| company_profiles | lifetimeDistinctSOCCount | integer | Distinct US Standard Occupational Classification codes across the company's lifetime. | 42 | 100% |
| company_profiles | lifetimeDistinctStatesCount | integer | Distinct US states the company has hired in. | 50 | 100% |
| company_profiles | lifetimePostingsCount | integer | Gross count of all job postings attributed to this company (every posting, before near-duplicate collapse). Approximate, within about 0.5%. | 247830 | 100% |
| company_profiles | lifetimePostingsWithClearanceCount | integer | Lifetime postings whose description mentions a security clearance requirement. | 380 | 100% |
| company_profiles | lifetimePostingsWithRemoteCount | integer | Lifetime postings flagged as remote. | 38940 | 100% |
| company_profiles | lifetimePostingsWithSalaryCount | integer | Lifetime postings whose text or the source site's structured salary field states pay (the same rule as postingsWithAnyPostedSalaryCount in Hiring History). Structured fields can include a site's own estimate; for pay stated in the posting text, use Hiring History's postingsWithSalaryCount. Approximate, within about 0.5%. | 142109 | 100% |
| company_profiles | lifetimePostingsWithVisaSponsorshipCount | integer | Lifetime postings whose description mentions visa sponsorship, whether offering or declining it. | 5021 | 100% |
| company_profiles | lifetimeUniquePostingsCount | integer | De-duplicated lifetime posting count: unique postings only (isUniqueJobPosting = 1), so the same role posted on several sources or collected again over time counts once. Approximate, within about 0.5%. | 198042 | 100% |
| company_profiles | nAffiliatedPages | integer | Count of distinct affiliated companies (see affiliatedCompanyNames). | 12 | 100% |
| company_profiles | nCompanyLocations | integer | Count of distinct office locations listed on the source profile. | 27 | 100% |
| company_profiles | nCompanyUpdates | integer | Count of distinct company posts / updates captured from the source profile. | 340 | 100% |
| company_profiles | nEmployeesListed | integer | Count of distinct employees surfaced across the company's source profiles. | 1240 | 100% |
| company_profiles | nSimilarPages | integer | Count of distinct similar companies (see similarCompanyNames). | 20 | 100% |
| company_profiles | naicsCode | string | NAICS 2022 6-digit industry code. NULL where a company can be placed in a sector but not a 6-digit industry (for example "Manufacturing", sector 31-33). | 513210 | 100% |
| company_profiles | naicsConfidence | float | Model confidence in naicsCode (0-1), calibrated to the probability the code is correct; set only when naicsSource is model. For companies with few records the score runs low, so the code is right more often than it says: set thresholds by company size rather than one cut for the whole file. | 0.71 | 89.0% |
| company_profiles | naicsIndustryGroup | string | NAICS-2022 industry group (4-digit), the first four digits of the winning code. Populated when the winning source is specific enough to land at the 4-digit level. | 5132 | 100% |
| company_profiles | naicsSector | string | NAICS-2022 sector code (2-digit, with canonical range form 31-33/44-45/48-49 for multi-prefix sectors). Comes from whichever NAICS source won for this company: a reviewed public-issuer or large-employer code, the model or the curated lookup. NULL when no source places the company. | 51 | 100% |
| company_profiles | naicsSource | string | Which side of the resolution above produced naicsCode / naicsSector / naicsIndustryGroup / naicsTitle: model for the classification model, industry_lookup for the curated lookup. NULL when no NAICS was resolved at all. | model | 100% |
| company_profiles | naicsTitle | string | Short label for the most-specific populated NAICS level. | Software Publishers | 100% |
| company_profiles | normalizedIndustryName | string | Canonical industry label, one spelling across the variants sources use. Filter or join on this. | Information Technology & Services | 73.5% |
| company_profiles | primaryListingExchange | string | Exchange primaryListingSymbol trades on, canonicalized to one spelling per venue exactly like stockExchange. NULL when tickerSymbol is NULL, and ALSO NULL whenever the link itself carries no venue: the two halves of the pair do not fill together, so a non-NULL primaryListingSymbol does not imply a venue beside it. Same contract as the jobs source's column of this name. | SIX SWISS | 0.1% |
| company_profiles | primaryListingSymbol | string | The company's home / ordinary-share listing symbol, carried beside tickerSymbol rather than instead of it. primaryListingSymbol != tickerSymbol means tickerSymbol is not the home listing, an ADR or another secondary line, a sufficient test, not an exhaustive one (see the dual-listing note below for the measured coverage). Note isUSListing describes tickerSymbol, not this pair. NULL when tickerSymbol is NULL, matching the jobs source's column of this name. | ZURN | 0.2% |
| company_profiles | relatedCompaniesCount | integer | Number of companies that share substantial job-posting content with this one, published with topRelatedCompanies. 0 when none are known; this release publishes no related companies, so it reads 0 on every row. | 4 | 100% |
| company_profiles | similarCompanyNames | array<string> | Distinct names of companies the source lists as similar to this one. Empty array when none. | ['Google','Microsoft'] | 4.8% |
| company_profiles | sourceEntityType | string | Source-reported legal / organizational structure of the company (normalized). The source-reported companion to the classifier-inferred inferredEntityType. | Public Company, Privately Held, Nonprofit, Government Agency | 40.0% |
| company_profiles | stockExchange | string | Exchange the linked ticker trades on, one spelling per venue (over-the-counter markets read OTC, Xetra reads XETRA, NYSE American reads NYSE AMERICAN). Venues are never merged. NULL when there is no ticker link or the link records no venue. | NASDAQ | 0.1% |
| company_profiles | tickerMatchConfidence | float | Confidence of the company-to-ticker link (0-1). Links below 0.85 are not shipped. | 0.97 | 0.2% |
| company_profiles | tickerMatchMethod | string | How the link was established: curated (a reviewed link), website (the employer's own domain matched the issuer's), name_exact, registrant_name (the issuer's registered filer name), name_variant, name_fuzzy, exact_alias (a reviewed alias that links only the one name it lists), corporate_family (inherited from a corporate parent or sibling link), curated_franchise (a reviewed franchise link) or brand_operator (a franchisee or partner whose own name pairs a listed brand with an operator, such as "DWMJ Inc d/b/a McDonald's"). Not every method occurs in every release; the highest-precision subset is curated, website and name_exact. | website | 0.2% |
| company_profiles | tickerParentName | string | Verified registered name of the listed entity that owns the ticker. For self / former_name rows this is the company's own registered name; for subsidiaries it is the parent's. | Apple Inc. | 0.1% |
| company_profiles | tickerRelation | string | How the company relates to the linked ticker: self (the listed company), former_name (the listed company under an earlier name), subsidiary, division or acquisition (owned by the listed company), franchise (an independent franchisee operating under the listed company's brand, no equity link), partner (a contracted operator under the brand, such as a delivery or freight partner, no equity link), fund_portfolio (a company held by funds a listed manager runs) or bdc_holding (a portfolio investment of a listed business development company). NULL when there is no listed-company link. | self | 0.2% |
| company_profiles | tickerSymbol | string | Stock ticker of the listed company this company resolves to (the company itself, or its listed parent or acquirer). Set only on the profiles linked to a listed company; NULL otherwise. | AAPL | 0.2% |
| company_profiles | topEmployeeTitles | array<string> | Up to 10 most-frequent employee job titles observed across the company's source profiles (canonical-level topK). Empty array when none. | ['Software Engineer','Program Manager'] | 0.3% |
| company_profiles | topRelatedCompanies | array<string> | Reserved for a later release; empty on every row of this release. | ['audible','twitch'] | 0% |
| company_profiles | topRelatedCompaniesAvgSimilarity | array<float> | Reserved for a later release; empty on every row of this release. | [0.91,0.88] | 0% |
| company_profiles | sourceRecordsCount | integer | Number of source records that name this company under any of the spellings that resolve to it, counted across job postings, company-database profile records and employee-review records. Not a posting count: use lifetimePostingsCount / lifetimeUniquePostingsCount for hiring volume. | 92341 | 100% |
| company_contacts | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | banfield pet hospital | 100% |
| company_contacts | contactEmails | array<string> | De-duplicated recruiting and contact email addresses found across the company's postings. The per-posting contacts behind this roll-up ship in Job Postings Data (jobs_contacts). | ['careers@example-vet.com','hr@example-vet.com'] | 61.3% |
| company_contacts | contactPhones | array<string> | Deduplicated contact phone numbers aggregated across all of the company's postings. | ['+1-555-0142'] | 45.1% |
| company_contacts | contactURLs | array<string> | De-duplicated application and contact URLs found across the company's postings. | ['https://example-vet.com/careers'] | 30.9% |
| company_contacts | postingsWithContactsCount | integer | Number of the company's postings that carried at least one extracted contact (support for the aggregation). | 37 | 100% |
| company_contacts | contactLastSeenDate | timestamp | Most recent last-seen date across the postings that contributed contacts (freshness signal for the contact set). | 2026-06-28 00:00:00.000 | 100% |
| company_hiring_activity | companyPostedSalaryTier | string | Coarse tier of the month's average annual salary across its postings, posted or predicted: high (100K USD or more), medium (60K to 100K USD), low (under 60K USD). NULL when no posting of the month has a salary. | high | 99.4% |
| company_hiring_activity | companyStatus | string | Ownership class of the company, always populated: public (the listed company itself), subsidiary_of_public (a business it owns), franchisee_of_public or partner_of_public (a franchisee or contracted operator under its brand, no equity link), portfolio_company_of_public (held by funds a listed manager runs), government, nonprofit, educational, private, or unknown. On a row with ticker credit it follows the credit. | public | 100% |
| company_hiring_activity | distinctSOCCount | integer | Distinct US SOC codes appearing in this month. | 14 | 100% |
| company_hiring_activity | distinctStatesCount | integer | Distinct US states the company posted roles in. | 23 | 100% |
| company_hiring_activity | growth90DaysVs365Days | float | Ratio of the last 3 months' unique postings to the trailing 12 months' average quarter, both counted only over the sources live in every month of the 12-month window (like-for-like), so the panel's first 11 months carry no value. Near 1.0 is steady hiring, above 1.5 acceleration, below 0.7 a slowdown. NULL when the trailing 12-month total is below 20 unique postings, the company has fewer than 6 months of observed activity, or any month in the window is partial. | 1.68 | 37.4% |
| company_hiring_activity | inferredEntityType | string | Hiring role of the company, always populated: real_employer, staffing_agency, job_board_aggregator, not_a_company or unknown. A role ships only at 0.70 confidence or more, so unknown means not classified. | real_employer | 100% |
| company_hiring_activity | isLowVolume | integer | 1 if the company had fewer than 10 postings this month; its shares (pay stated, remote) rest on few postings. | 0 | 100% |
| company_hiring_activity | isPartialMonth | integer | 1 if the month is cut short by the data boundary, so its counts are not comparable to a whole month: the panel's first month when collection starts after the 1st, and the month holding the data cutoff. Leave these rows out of a trend; the counts are real but incomplete. The growth columns are already NULL wherever a comparison touches one. | 0 | 100% |
| company_hiring_activity | medianDaysOpen | float | Reserved for a later release; empty on every row of this release. | 21.5 | 0% |
| company_hiring_activity | medianDaysOpenPostingsCount | integer | Reserved for a later release; empty on every row of this release. | 36 | 0% |
| company_hiring_activity | monthOverMonthGrowth | float | Like-for-like month-over-month growth of unique postings: this month's unique postings from the sources live in both months, over the previous month's from the same sources, minus 1. A source starting or stopping therefore does not move it. NULL when that prior count is under 10 unique postings, this month has fewer than 5, or either month is partial. | 0.142 | 21.6% |
| company_hiring_activity | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | Walmart | 100% |
| company_hiring_activity | postingsWithAnyPostedSalaryCount | integer | Postings whose text or the source site's structured salary field states pay (salarySource description or source_field, value > 0), among the postings whose text was observed. Includes structured pay that may be a site's own unflagged estimate (see postingsWithSalaryCount), so compare it across time only within one source (company_hiring_activity_by_source). | 312 | 100% |
| company_hiring_activity | postingsWithClearanceCount | integer | Postings whose description mentions a security clearance requirement, among postings whose text was observed (share over postingsWithContentCount). | 5 | 100% |
| company_hiring_activity | postingsWithContentCount | integer | Postings in this row whose text (description) was observed: the denominator of every share above. A posting whose text was never collected cannot show pay, remote work, visa or clearance language, so it is in totalPostingsCount and in no share; dividing by totalPostingsCount would read a gap in description collection as a change in hiring. | 455 | 100% |
| company_hiring_activity | postingsWithRemoteCount | integer | Flagged as remote work, among the postings whose text was observed (share over postingsWithContentCount). | 89 | 100% |
| company_hiring_activity | postingsWithSalaryCount | integer | Postings whose text states the pay (salarySource = 'description' and a resolved annualSalaryAverageUSD above 0), among postings whose text was observed. A source site's structured salary field is not counted here, because some sites fill it with their own unflagged estimate; it is in postingsWithAnyPostedSalaryCount. Predicted salaries and flagged source estimates are in neither. Share = postingsWithSalaryCount / postingsWithContentCount. | 241 | 100% |
| company_hiring_activity | postingsWithVisaSponsorshipCount | integer | Postings whose description mentions visa sponsorship, whether offering or declining it, among postings whose text was observed (share over postingsWithContentCount). | 23 | 100% |
| company_hiring_activity | snapshotMonth | integer | The New York calendar month of the postings' jobDate (the stated posting date; else the first collection day, less any relative "N days ago" the posting shows; else the first collection day), YYYYMM. | 202603 | 100% |
| company_hiring_activity | topSOCCounts | array<integer> | Parallel posting counts for topSOCs. | [152, 78] | 100% |
| company_hiring_activity | topSOCs | array<string> | Top 10 occupation codes ranked by posting count. | ['15-1252', '15-1132'] | 100% |
| company_hiring_activity | topStateCounts | array<integer> | Parallel posting counts for topStates. | [201, 89] | 99.7% |
| company_hiring_activity | topStates | array<string> | Top 10 states ranked by posting count. | ['WA', 'CA'] | 99.7% |
| company_hiring_activity | totalPostingsCount | integer | Postings attributed to this company in this month, one per posting row before near-duplicate collapse, so a job relisted under many source keys counts each time; use totalUniquePostingsCount for hiring demand. A company-month with fewer than 5 rows has no row here unless a listed security's owned counts credit it. | 487 | 100% |
| company_hiring_activity | totalPostingsCountKnownAtPeriodEnd | integer | totalPostingsCount over only the postings first seen by the month's last day (New York time): what a reader holding the data when the month closed would have counted. It does not change after the month closes. | 67965 | 100% |
| company_hiring_activity | totalUniquePostingsCount | integer | De-duplicated monthly posting count: unique postings only (isUniqueJobPosting = 1). | 402 | 100% |
| company_hiring_activity | totalUniquePostingsCountKnownAtPeriodEnd | integer | totalUniquePostingsCount over only the postings first seen by the month's last day (New York time): what a reader holding the data when the month closed would have counted. It does not change after the month closes. | 29521 | 100% |
| company_hiring_activity | yearOverYearGrowth | float | Like-for-like year-over-year growth of unique postings: the same rule against the same month 12 months earlier, over the sources live in both. NULL when the year-ago count is under 10 unique postings, this month has fewer than 5, or either month is partial. | -0.081 | 12.0% |
| company_hiring_activity_by_source | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | 100% | |
| company_hiring_activity_by_source | snapshotMonth | integer | The New York calendar month of the postings' jobDate (the stated posting date; else the first collection day, less any relative "N days ago" the posting shows; else the first collection day), YYYYMM. | 100% | |
| company_hiring_activity_by_source | sourceWebsite | string | The source the postings came from. The rows of one company-month sum exactly to that month's counts in company_hiring_activity. | 100% | |
| company_hiring_activity_by_source | companyStatus | string | Ownership class of the company, always populated: public (the listed company itself), subsidiary_of_public (a business it owns), franchisee_of_public or partner_of_public (a franchisee or contracted operator under its brand, no equity link), portfolio_company_of_public (held by funds a listed manager runs), government, nonprofit, educational, private, or unknown. On a row with ticker credit it follows the credit. | 100% | |
| company_hiring_activity_by_source | postingsWithAnyPostedSalaryCount | integer | Postings whose text or the source site's structured salary field states pay (salarySource description or source_field, value > 0), among the postings whose text was observed. Includes structured pay that may be a site's own unflagged estimate (see postingsWithSalaryCount), so compare it across time only within one source (company_hiring_activity_by_source). | 100% | |
| company_hiring_activity_by_source | postingsWithClearanceCount | integer | Postings whose description mentions a security clearance requirement, among postings whose text was observed (share over postingsWithContentCount). | 100% | |
| company_hiring_activity_by_source | postingsWithContentCount | integer | Postings in this row whose text (description) was observed: the denominator of every share above. A posting whose text was never collected cannot show pay, remote work, visa or clearance language, so it is in totalPostingsCount and in no share; dividing by totalPostingsCount would read a gap in description collection as a change in hiring. | 100% | |
| company_hiring_activity_by_source | postingsWithRemoteCount | integer | Flagged as remote work, among the postings whose text was observed (share over postingsWithContentCount). | 100% | |
| company_hiring_activity_by_source | postingsWithSalaryCount | integer | Postings whose text states the pay (salarySource = 'description' and a resolved annualSalaryAverageUSD above 0), among postings whose text was observed. A source site's structured salary field is not counted here, because some sites fill it with their own unflagged estimate; it is in postingsWithAnyPostedSalaryCount. Predicted salaries and flagged source estimates are in neither. Share = postingsWithSalaryCount / postingsWithContentCount. | 100% | |
| company_hiring_activity_by_source | postingsWithVisaSponsorshipCount | integer | Postings whose description mentions visa sponsorship, whether offering or declining it, among postings whose text was observed (share over postingsWithContentCount). | 100% | |
| company_hiring_activity_by_source | totalPostingsCount | integer | Postings attributed to this company in this month, one per posting row before near-duplicate collapse, so a job relisted under many source keys counts each time; use totalUniquePostingsCount for hiring demand. A company-month with fewer than 5 rows has no row here unless a listed security's owned counts credit it. | 100% | |
| company_hiring_activity_by_source | totalPostingsCountKnownAtPeriodEnd | integer | totalPostingsCount over only the postings first seen by the month's last day (New York time): what a reader holding the data when the month closed would have counted. It does not change after the month closes. | 100% | |
| company_hiring_activity_by_source | totalUniquePostingsCount | integer | De-duplicated monthly posting count: unique postings only (isUniqueJobPosting = 1). | 100% | |
| company_hiring_activity_by_source | totalUniquePostingsCountKnownAtPeriodEnd | integer | totalUniquePostingsCount over only the postings first seen by the month's last day (New York time): what a reader holding the data when the month closed would have counted. It does not change after the month closes. | 100% | |
| company_hiring_activity_vintages | companyPostedSalaryTier | string | Coarse tier of the month's average annual salary across its postings, posted or predicted: high (100K USD or more), medium (60K to 100K USD), low (under 60K USD). NULL when no posting of the month has a salary. | 99.4% | |
| company_hiring_activity_vintages | companyStatus | string | Ownership class of the company, always populated: public (the listed company itself), subsidiary_of_public (a business it owns), franchisee_of_public or partner_of_public (a franchisee or contracted operator under its brand, no equity link), portfolio_company_of_public (held by funds a listed manager runs), government, nonprofit, educational, private, or unknown. On a row with ticker credit it follows the credit. | 100% | |
| company_hiring_activity_vintages | distinctSOCCount | integer | Distinct US SOC codes appearing in this month. | 100% | |
| company_hiring_activity_vintages | distinctStatesCount | integer | Distinct US states the company posted roles in. | 100% | |
| company_hiring_activity_vintages | growth90DaysVs365Days | float | Ratio of the last 3 months' unique postings to the trailing 12 months' average quarter, both counted only over the sources live in every month of the 12-month window (like-for-like), so the panel's first 11 months carry no value. Near 1.0 is steady hiring, above 1.5 acceleration, below 0.7 a slowdown. NULL when the trailing 12-month total is below 20 unique postings, the company has fewer than 6 months of observed activity, or any month in the window is partial. | 38.0% | |
| company_hiring_activity_vintages | inferredEntityType | string | Hiring role of the company, always populated: real_employer, staffing_agency, job_board_aggregator, not_a_company or unknown. A role ships only at 0.70 confidence or more, so unknown means not classified. | 100% | |
| company_hiring_activity_vintages | isLowVolume | integer | 1 if the company had fewer than 10 postings this month; its shares (pay stated, remote) rest on few postings. | 100% | |
| company_hiring_activity_vintages | isPartialMonth | integer | 1 if the month is cut short by the data boundary, so its counts are not comparable to a whole month: the panel's first month when collection starts after the 1st, and the month holding the data cutoff. Leave these rows out of a trend; the counts are real but incomplete. The growth columns are already NULL wherever a comparison touches one. | 100% | |
| company_hiring_activity_vintages | medianDaysOpen | float | Reserved for a later release; empty on every row of this release. | 0% | |
| company_hiring_activity_vintages | medianDaysOpenPostingsCount | integer | Reserved for a later release; empty on every row of this release. | 0% | |
| company_hiring_activity_vintages | monthOverMonthGrowth | float | Like-for-like month-over-month growth of unique postings: this month's unique postings from the sources live in both months, over the previous month's from the same sources, minus 1. A source starting or stopping therefore does not move it. NULL when that prior count is under 10 unique postings, this month has fewer than 5, or either month is partial. | 22.0% | |
| company_hiring_activity_vintages | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | 100% | |
| company_hiring_activity_vintages | postingsWithAnyPostedSalaryCount | integer | Postings whose text or the source site's structured salary field states pay (salarySource description or source_field, value > 0), among the postings whose text was observed. Includes structured pay that may be a site's own unflagged estimate (see postingsWithSalaryCount), so compare it across time only within one source (company_hiring_activity_by_source). | 100% | |
| company_hiring_activity_vintages | postingsWithClearanceCount | integer | Postings whose description mentions a security clearance requirement, among postings whose text was observed (share over postingsWithContentCount). | 100% | |
| company_hiring_activity_vintages | postingsWithContentCount | integer | Postings in this row whose text (description) was observed: the denominator of every share above. A posting whose text was never collected cannot show pay, remote work, visa or clearance language, so it is in totalPostingsCount and in no share; dividing by totalPostingsCount would read a gap in description collection as a change in hiring. | 100% | |
| company_hiring_activity_vintages | postingsWithRemoteCount | integer | Flagged as remote work, among the postings whose text was observed (share over postingsWithContentCount). | 100% | |
| company_hiring_activity_vintages | postingsWithSalaryCount | integer | Postings whose text states the pay (salarySource = 'description' and a resolved annualSalaryAverageUSD above 0), among postings whose text was observed. A source site's structured salary field is not counted here, because some sites fill it with their own unflagged estimate; it is in postingsWithAnyPostedSalaryCount. Predicted salaries and flagged source estimates are in neither. Share = postingsWithSalaryCount / postingsWithContentCount. | 100% | |
| company_hiring_activity_vintages | postingsWithVisaSponsorshipCount | integer | Postings whose description mentions visa sponsorship, whether offering or declining it, among postings whose text was observed (share over postingsWithContentCount). | 100% | |
| company_hiring_activity_vintages | snapshotMonth | integer | The New York calendar month of the postings' jobDate (the stated posting date; else the first collection day, less any relative "N days ago" the posting shows; else the first collection day), YYYYMM. | 100% | |
| company_hiring_activity_vintages | topSOCCounts | array<integer> | Parallel posting counts for topSOCs. | 100% | |
| company_hiring_activity_vintages | topSOCs | array<string> | Top 10 occupation codes ranked by posting count. | 100% | |
| company_hiring_activity_vintages | topStateCounts | array<integer> | Parallel posting counts for topStates. | 99.7% | |
| company_hiring_activity_vintages | topStates | array<string> | Top 10 states ranked by posting count. | 99.7% | |
| company_hiring_activity_vintages | totalPostingsCount | integer | Postings attributed to this company in this month, one per posting row before near-duplicate collapse, so a job relisted under many source keys counts each time; use totalUniquePostingsCount for hiring demand. A company-month with fewer than 5 rows has no row here unless a listed security's owned counts credit it. | 100% | |
| company_hiring_activity_vintages | totalPostingsCountKnownAtPeriodEnd | integer | totalPostingsCount over only the postings first seen by the month's last day (New York time): what a reader holding the data when the month closed would have counted. It does not change after the month closes. | 100% | |
| company_hiring_activity_vintages | totalUniquePostingsCount | integer | De-duplicated monthly posting count: unique postings only (isUniqueJobPosting = 1). | 100% | |
| company_hiring_activity_vintages | totalUniquePostingsCountKnownAtPeriodEnd | integer | totalUniquePostingsCount over only the postings first seen by the month's last day (New York time): what a reader holding the data when the month closed would have counted. It does not change after the month closes. | 100% | |
| company_hiring_activity_vintages | yearOverYearGrowth | float | Like-for-like year-over-year growth of unique postings: the same rule against the same month 12 months earlier, over the sources live in both. NULL when the year-ago count is under 10 unique postings, this month has fewer than 5, or either month is partial. | 12.2% | |
| company_hiring_activity_vintages | vintage | string | The release that delivered this row. Together with the file's key it identifies one as-known value: a period a later release restated keeps its earlier row beside the new one. | 100% | |
| company_hiring_activity_vintages | vintageRecordedAt | timestamp | When this vintage row was first recorded (UTC). Rows are appended when a delivery first sees a release's value and are never rewritten. | 100% | |
| company_hiring_activity_vintages | vintageRetracted | integer | 1 on the row recorded when a release no longer carried a period an earlier release had carried (the row repeats the last values, so the retraction is visible); 0 otherwise. | 0 | 100% |
| company_technologies | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | 100% | |
| company_technologies | technology | string | A named software product, platform or programming language (for example Snowflake, Kubernetes, Python, Salesforce); business, soft and trade skills, equipment and certifications are not included. Found by matching product names in posting text; for names that are also ordinary words, require uniquePostings of 2 or more when precision matters. | Python | 100% |
| company_technologies | firstSeenDate | timestamp | Earliest first-seen date among the company's unique postings naming the technology. | 100% | |
| company_technologies | lastSeenDate | timestamp | Latest last-seen date among the company's unique postings naming the technology. | 100% | |
| company_technologies | uniquePostings | integer | The company's unique postings (one per duplicate group) naming the technology, each counted once. | 100% | |
| company_technologies_monthly | technology | string | As in company_technologies. | Python | 100% |
| company_technologies_monthly | snapshotMonth | integer | YYYYMM of the postings' first sighting (New York calendar). | 100% | |
| company_technologies_monthly | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | 100% | |
| company_technologies_monthly | firstSeenDate | timestamp | Earliest first-seen date among the month's unique postings naming the technology. | 100% | |
| company_technologies_monthly | lastSeenDate | timestamp | Latest last-seen date among the month's unique postings naming the technology. | 100% | |
| company_technologies_monthly | uniquePostings | integer | The company's unique postings first seen in the month that name the technology. | 100% | |
| company_hiring_events | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | 100% | |
| company_hiring_events | eventType | string | surge (the month's unique postings are at least twice the mean of the 3 months before and at least 10, counting only sources live in all four months; never the newest month), new_location (the company's first posting in a US state, or in a new city of a state it already posts in), or new_technology (the company's first posting naming a technology). new_location and new_technology need six months of history with the company and with the source, so a new source or new coverage is not read as expansion. | surge | 100% |
| company_hiring_events | eventDate | timestamp | First-seen time of the evidence posting, or for a surge the first instant after the month (New York midnight). | 100% | |
| company_hiring_events | baselinePostings | float | For a surge, the mean monthly unique postings of the 3 months before. NULL for other event types. | 1.7% | |
| company_hiring_events | companyFirstSeenDate | timestamp | First-seen date of the company's earliest posting, the start of the history the event rules require. | 100% | |
| company_hiring_events | eventPostings | integer | Unique postings behind the event: the month's count for a surge, the postings in the new place or naming the new technology that month otherwise. | 100% | |
| company_hiring_events | eventRule | string | The rule that fired, in words, so every event can be audited. | 100% | |
| company_hiring_events | finalCity | string | City of a new_location event at city level. NULL for other events. | 58.8% | |
| company_hiring_events | finalState | string | US state or territory of a new_location event; a handful carry a region outside the US as the posting wrote it. NULL for other events. | 58.9% | |
| company_hiring_events | jobID | string | Posting key of the event's evidence posting, joining to the job postings files; NULL for surge events. | 98.3% | |
| company_hiring_events | locationLevel | string | state or city for a new_location event. NULL for other events. | 58.9% | |
| company_hiring_events | snapshotMonth | integer | YYYYMM (New York calendar) of the event's first sighting. | 100% | |
| company_hiring_events | technology | string | The technology of a new_technology event. NULL for other events. | 39.4% | |
| company_headcount_monthly | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | 100% | |
| company_headcount_monthly | snapshotMonth | integer | Calendar month, YYYYMM. | 202607 | 100% |
| company_headcount_monthly | companyLinkedInURL | string | The LinkedIn company page the employee count was read from. | 100% | |
| company_headcount_monthly | employeeCount | integer | The employee count the page showed: the month's latest observation, or the latest earlier one carried forward. | 100% | |
| company_headcount_monthly | employeeCountObservedDate | date | The date employeeCount was observed. | 100% | |
| company_headcount_monthly | monthsSinceObservation | integer | 0 when observed in this month, else whole months since employeeCountObservedDate. | 100% | |
| company_headcount_monthly | isCarriedForward | integer | 1 when monthsSinceObservation > 0. | 100% | |
| company_headcount_monthly | observationsInMonthCount | integer | Distinct observation dates in this month (0 when carried forward). | 100% | |
| company_funding_events | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | - | |
| company_funding_events | fundingFilingDate | date | Date the filing was made. | - | |
| company_funding_events | fundingFilingID | string | The filing's identifier, unique per filing. | - | |
| company_funding_events | isFundingAmendment | integer | 1 for an amendment of an earlier filing, 0 for a new notice; NULL when not stated. | - | |
| company_funding_events | fundingFirstSaleDate | date | Date of the offering's first sale; NULL when it had not yet occurred or was not stated. | - | |
| company_funding_events | fundingOfferingAmountUSD | float | Total offering amount in USD; NULL when the offering amount is indefinite or not stated. | - | |
| company_funding_events | isFundingOfferingAmountIndefinite | integer | 1 when the filing states an indefinite offering amount. | - | |
| company_funding_events | fundingAmountSoldUSD | float | Amount sold as of the filing, in USD; NULL when not stated. | - | |
| company_funding_events | fundingAmountRemainingUSD | float | Amount remaining to be sold, in USD; NULL when indefinite or not stated. | - | |
| company_funding_events | fundingInvestorCount | integer | Number of investors who had already invested. | - | |
| company_funding_events | fundingIndustryGroup | string | Industry group as filed. | - | |
| company_funding_events | fundingSecurityTypes | array<string> | Securities offered, any of equity, debt, pooled_investment_fund; empty when the filing reports none of them. | - | |
| company_funding_events | fundingRevenueRange | string | The issuer's revenue range as filed, including Decline to Disclose; empty when not stated. | - |
Public Company Hiring Data: 60 fields, 293,064 rows (catalog 8.3, measured 6 Oct 2026)
| Module | Field Name | Type | Description | Example | Coverage |
|---|---|---|---|---|---|
| ticker_hiring_activity | tickerSymbol | string | The posting's ticker, point in time. | ADEN | 100% |
| ticker_hiring_activity | stockExchange | string, nullable | The venue: NYSE, NASDAQ, NYSE AMERICAN, OTHER (NYSE Arca, Cboe BZX and IEX) or OTC (over-the-counter quotations) for US listings; the exchange's name outside the US. Two securities can hold one symbol in one period, so key on tickerTenancyID as well, never on the symbol alone. NULL keeps postings whose link names no venue, or several, on a row of their own. | NASDAQ | 85.0% |
| ticker_hiring_activity | tickerTenancyID | string | Which security held the symbol: an opaque 16-character label, one per security's stay on a symbol. Every count is keyed on it beside the symbol and venue, so a symbol that passed from one company to another is two series. Never NULL or empty. | e98003753a5368b8 | 100% |
| ticker_hiring_activity | snapshotMonth | integer | YYYYMM of jobDate (New York calendar). | 202606 | 100% |
| ticker_hiring_activity | grossPostings | integer | Owned postings: the listed company and what it owns (tickerRelation self, former_name, subsidiary, division or acquisition), counted once per source listing, so a source relisting one job under new keys adds it once, in the month of their posting date (jobDate, New York calendar). | 1 | 100% |
| ticker_hiring_activity | grossPostingsInclFranchise | integer | grossPostings plus the postings of franchisees and brand partners (tickerRelation franchise or partner: a brand licence or service contract, no equity link), in the month of their posting date (jobDate, New York calendar). | 1 | 100% |
| ticker_hiring_activity | grossPostingsInclFranchiseKnownAtPeriodEnd | integer | grossPostingsInclFranchise counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity | grossPostingsKnownAtPeriodEnd | integer | grossPostings counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity | isPartialMonth | integer | 1 on a month cut short by the data boundary. | 0 | 100% |
| ticker_hiring_activity | marketCapTier | string, nullable | large, mid, small or micro, from publicFloatUSD. NULL where no float applies. | small | 58.4% |
| ticker_hiring_activity | medianDaysOpen | float, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_hiring_activity | medianDaysOpenPostingsCount | integer, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_hiring_activity | publicFloatAsOf | date, nullable | The date publicFloatUSD is measured at: the last business day of the issuer's second fiscal quarter. | 2023-06-30 | 58.4% |
| ticker_hiring_activity | publicFloatUSD | integer, nullable | The issuer's SEC public float in USD, from the latest annual report (10-K) filed on or before the first day of the month. NULL where no float applies. | 1600000000 | 58.4% |
| ticker_hiring_activity | tickerCategory | string | What kind of business the ticker is: staffing, job_board, marketplace, franchisor or operating. Never NULL. | operating | 100% |
| ticker_hiring_activity | uniquePostings | integer | grossPostings restricted to unique postings (isUniqueJobPosting = 1): each group of duplicates counts once, in the month of their posting date (jobDate, New York calendar). | 1 | 100% |
| ticker_hiring_activity | uniquePostingsInclFranchise | integer | grossPostingsInclFranchise restricted to unique postings (isUniqueJobPosting = 1), in the month of their posting date (jobDate, New York calendar). | 1 | 100% |
| ticker_hiring_activity | uniquePostingsInclFranchiseKnownAtPeriodEnd | integer | uniquePostingsInclFranchise counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity | uniquePostingsKnownAtPeriodEnd | integer | uniquePostings counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity | uniquePostingsLikeForLikeIndex | float, nullable | Chain-linked level index of uniquePostings over the sources live in both months, 100 in its segment's base month. A month with fewer than 20 matched unique postings on either side starts a new segment, and two index values compare only inside one segment. | 100 | 98.3% |
| ticker_hiring_activity | uniquePostingsLikeForLikeIndexBaseMonth | integer, nullable | YYYYMM of the month this row's index level is 100 at. Two index values compare only when they share it. NULL where the index is NULL. | 202201 | 98.3% |
| ticker_hiring_activity_weekly | tickerSymbol | string | The posting's ticker, point in time. | ADEN | 100% |
| ticker_hiring_activity_weekly | stockExchange | string, nullable | The venue: NYSE, NASDAQ, NYSE AMERICAN, OTHER (NYSE Arca, Cboe BZX and IEX) or OTC (over-the-counter quotations) for US listings; the exchange's name outside the US. Two securities can hold one symbol in one period, so key on tickerTenancyID as well, never on the symbol alone. NULL keeps postings whose link names no venue, or several, on a row of their own. | NASDAQ | 84.6% |
| ticker_hiring_activity_weekly | tickerTenancyID | string | Which security held the symbol: an opaque 16-character label, one per security's stay on a symbol. Every count is keyed on it beside the symbol and venue, so a symbol that passed from one company to another is two series. Never NULL or empty. | 68f3966ab6a7a8d9 | 100% |
| ticker_hiring_activity_weekly | snapshotWeek | date | The Monday of the ISO week (New York calendar) of the posting's jobDate, the monthly file's counting date. A week that spans two months counts once here and in both months of the monthly file, so weeks do not sum to months. | 2026-04-13 | 100% |
| ticker_hiring_activity_weekly | grossPostings | integer | Owned postings: the listed company and what it owns (tickerRelation self, former_name, subsidiary, division or acquisition), counted once per source listing, so a source relisting one job under new keys adds it once, in the ISO week (Monday start, New York calendar) of their posting date. | 1 | 100% |
| ticker_hiring_activity_weekly | grossPostingsInclFranchise | integer | grossPostings plus the postings of franchisees and brand partners (tickerRelation franchise or partner: a brand licence or service contract, no equity link), in the ISO week (Monday start, New York calendar) of their posting date. | 1 | 100% |
| ticker_hiring_activity_weekly | grossPostingsInclFranchiseKnownAtPeriodEnd | integer | grossPostingsInclFranchise counting only the postings first seen (New York day) by the last day of the week: the value as it was knowable when the week closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_weekly | grossPostingsKnownAtPeriodEnd | integer | grossPostings counting only the postings first seen (New York day) by the last day of the week: the value as it was knowable when the week closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_weekly | isPartialWeek | integer | 1 on the first week when its first posting is not on a Monday, and on the newest week when its last posting is not on a Sunday. | 0 | 100% |
| ticker_hiring_activity_weekly | knowableAt | datetime (UTC), nullable | When the row became knowable (UTC): the latest time our system first recorded any posting the row counts, so it never dates a count earlier than it was knowable. On a first release, rows carry the time the release was produced; for historical as-of work, use the KnownAtPeriodEnd columns and the daily ...Arrived counts. | 2026-10-04 17:20:25.246 | 100% |
| ticker_hiring_activity_weekly | marketCapTier | string, nullable | large, mid, small or micro, from publicFloatUSD. NULL where no float applies. | small | 59.4% |
| ticker_hiring_activity_weekly | publicFloatAsOf | date, nullable | The date publicFloatUSD is measured at: the last business day of the issuer's second fiscal quarter. | 2023-06-30 | 59.4% |
| ticker_hiring_activity_weekly | publicFloatUSD | integer, nullable | The issuer's SEC public float in USD, from the latest annual report (10-K) filed on or before snapshotWeek (the week's Monday). NULL where no float applies. | 1700000000 | 59.4% |
| ticker_hiring_activity_weekly | tickerCategory | string | What kind of business the ticker is: staffing, job_board, marketplace, franchisor or operating. Never NULL. | operating | 100% |
| ticker_hiring_activity_weekly | uniquePostings | integer | grossPostings restricted to unique postings (isUniqueJobPosting = 1): each group of duplicates counts once, in the ISO week (Monday start, New York calendar) of their posting date. | 1 | 100% |
| ticker_hiring_activity_weekly | uniquePostingsInclFranchise | integer | grossPostingsInclFranchise restricted to unique postings (isUniqueJobPosting = 1), in the ISO week (Monday start, New York calendar) of their posting date. | 1 | 100% |
| ticker_hiring_activity_weekly | uniquePostingsInclFranchiseKnownAtPeriodEnd | integer | uniquePostingsInclFranchise counting only the postings first seen (New York day) by the last day of the week: the value as it was knowable when the week closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_weekly | uniquePostingsKnownAtPeriodEnd | integer | uniquePostings counting only the postings first seen (New York day) by the last day of the week: the value as it was knowable when the week closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_breakdown | tickerSymbol | string | The posting's ticker, point in time. | CMPGY | 100% |
| ticker_hiring_activity_breakdown | stockExchange | string, nullable | The venue: NYSE, NASDAQ, NYSE AMERICAN, OTHER (NYSE Arca, Cboe BZX and IEX) or OTC (over-the-counter quotations) for US listings; the exchange's name outside the US. Two securities can hold one symbol in one period, so key on tickerTenancyID as well, never on the symbol alone. NULL keeps postings whose link names no venue, or several, on a row of their own. | NYSE | 85.3% |
| ticker_hiring_activity_breakdown | tickerTenancyID | string | Which security held the symbol: an opaque 16-character label, one per security's stay on a symbol. Every count is keyed on it beside the symbol and venue, so a symbol that passed from one company to another is two series. Never NULL or empty. | 081ee22ad45120c3 | 100% |
| ticker_hiring_activity_breakdown | snapshotMonth | integer | YYYYMM of jobDate (New York calendar). | 202606 | 100% |
| ticker_hiring_activity_breakdown | breakdownDimension | string | socMajorGroup (the SOC 2018 major group of socCode, as NN-0000), state (finalState), seniority (seniority) or workArrangement (remoteStatus). | state | 100% |
| ticker_hiring_activity_breakdown | breakdownValue | string, nullable | The value. NULL counts the postings with no value for the dimension. | On-Site | 98.7% |
| ticker_hiring_activity_breakdown | grossPostings | integer | Owned postings: the listed company and what it owns (tickerRelation self, former_name, subsidiary, division or acquisition), counted once per source listing, so a source relisting one job under new keys adds it once, in the month, with this breakdownValue. | 1 | 100% |
| ticker_hiring_activity_breakdown | grossPostingsInclFranchise | integer | grossPostings plus the postings of franchisees and brand partners (tickerRelation franchise or partner: a brand licence or service contract, no equity link), in the month, with this breakdownValue. | 1 | 100% |
| ticker_hiring_activity_breakdown | grossPostingsInclFranchiseKnownAtPeriodEnd | integer | grossPostingsInclFranchise counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_breakdown | grossPostingsKnownAtPeriodEnd | integer | grossPostings counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_breakdown | isPartialMonth | integer | ticker_hiring_activity's flag for the month. | 0 | 100% |
| ticker_hiring_activity_breakdown | knowableAt | datetime (UTC), nullable | When the row became knowable (UTC): the latest time our system first recorded any posting the row counts, so it never dates a count earlier than it was knowable. On a first release, rows carry the time the release was produced; for historical as-of work, use the KnownAtPeriodEnd columns and the daily ...Arrived counts. | 2026-10-04 17:20:25.246 | 100% |
| ticker_hiring_activity_breakdown | marketCapTier | string, nullable | ticker_hiring_activity's values for the month. | large | 64.4% |
| ticker_hiring_activity_breakdown | publicFloatAsOf | date, nullable | ticker_hiring_activity's values for the month. | 2023-06-30 | 64.4% |
| ticker_hiring_activity_breakdown | publicFloatUSD | integer, nullable | ticker_hiring_activity's values for the month. | 3000000000 | 64.4% |
| ticker_hiring_activity_breakdown | tickerCategory | string | What kind of business the ticker is: staffing, job_board, marketplace, franchisor or operating. Never NULL. | operating | 100% |
| ticker_hiring_activity_breakdown | uniquePostings | integer | grossPostings restricted to unique postings (isUniqueJobPosting = 1): each group of duplicates counts once, in the month, with this breakdownValue. | 1 | 100% |
| ticker_hiring_activity_breakdown | uniquePostingsInclFranchise | integer | grossPostingsInclFranchise restricted to unique postings (isUniqueJobPosting = 1), in the month, with this breakdownValue. | 1 | 100% |
| ticker_hiring_activity_breakdown | uniquePostingsInclFranchiseKnownAtPeriodEnd | integer | uniquePostingsInclFranchise counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_breakdown | uniquePostingsKnownAtPeriodEnd | integer | uniquePostings counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_by_source | tickerSymbol | string | The posting's ticker, point in time. | ADEN | 100% |
| ticker_hiring_activity_by_source | stockExchange | string, nullable | The venue: NYSE, NASDAQ, NYSE AMERICAN, OTHER (NYSE Arca, Cboe BZX and IEX) or OTC (over-the-counter quotations) for US listings; the exchange's name outside the US. Two securities can hold one symbol in one period, so key on tickerTenancyID as well, never on the symbol alone. NULL keeps postings whose link names no venue, or several, on a row of their own. | NYSE | 85.7% |
| ticker_hiring_activity_by_source | tickerTenancyID | string | Which security held the symbol: an opaque 16-character label, one per security's stay on a symbol. Every count is keyed on it beside the symbol and venue, so a symbol that passed from one company to another is two series. Never NULL or empty. | 02c7ec0490ff6f83 | 100% |
| ticker_hiring_activity_by_source | snapshotMonth | integer | YYYYMM of jobDate (New York calendar). | 202401 | 100% |
| ticker_hiring_activity_by_source | sourceWebsite | string | The source, as on the job postings files. | indeed | 100% |
| ticker_hiring_activity_by_source | grossPostings | integer | Owned postings: the listed company and what it owns (tickerRelation self, former_name, subsidiary, division or acquisition), counted once per source listing, so a source relisting one job under new keys adds it once, in the month, from this sourceWebsite. | 1 | 100% |
| ticker_hiring_activity_by_source | grossPostingsInclFranchise | integer | grossPostings plus the postings of franchisees and brand partners (tickerRelation franchise or partner: a brand licence or service contract, no equity link), in the month, from this sourceWebsite. | 1 | 100% |
| ticker_hiring_activity_by_source | grossPostingsInclFranchiseKnownAtPeriodEnd | integer | grossPostingsInclFranchise counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_by_source | grossPostingsKnownAtPeriodEnd | integer | grossPostings counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_by_source | isMatchedMoM | integer | 1 when the source is live in this month and the month before, so this row counts toward like-for-like month-over-month growth; 0 otherwise. | 1 | 100% |
| ticker_hiring_activity_by_source | isMatchedYoY | integer | 1 when the source is live in this month and the same month a year earlier, so this row counts toward like-for-like year-over-year growth; 0 otherwise. | 0 | 100% |
| ticker_hiring_activity_by_source | isPartialMonth | integer | ticker_hiring_activity's flag for the month. | 0 | 100% |
| ticker_hiring_activity_by_source | knowableAt | datetime (UTC), nullable | When the row became knowable (UTC): the latest time our system first recorded any posting the row counts, so it never dates a count earlier than it was knowable. On a first release, rows carry the time the release was produced; for historical as-of work, use the KnownAtPeriodEnd columns and the daily ...Arrived counts. | 2026-10-04 17:20:25.246 | 100% |
| ticker_hiring_activity_by_source | tickerCategory | string | What kind of business the ticker is: staffing, job_board, marketplace, franchisor or operating. Never NULL. | operating | 100% |
| ticker_hiring_activity_by_source | uniquePostings | integer | grossPostings restricted to unique postings (isUniqueJobPosting = 1): each group of duplicates counts once, in the month, from this sourceWebsite. | 1 | 100% |
| ticker_hiring_activity_by_source | uniquePostingsInclFranchise | integer | grossPostingsInclFranchise restricted to unique postings (isUniqueJobPosting = 1), in the month, from this sourceWebsite. | 1 | 100% |
| ticker_hiring_activity_by_source | uniquePostingsInclFranchiseKnownAtPeriodEnd | integer | uniquePostingsInclFranchise counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_activity_by_source | uniquePostingsKnownAtPeriodEnd | integer | uniquePostings counting only the postings first seen (New York day) by the last day of the month: the value as it was knowable when the month closed. Point in time; it never gains a posting first seen later. | 1 | 100% |
| ticker_hiring_daily | tickerSymbol | string | The posting's ticker, point in time. | ADRNY | 100% |
| ticker_hiring_daily | stockExchange | string, nullable | The venue: NYSE, NASDAQ, NYSE AMERICAN, OTHER (NYSE Arca, Cboe BZX and IEX) or OTC (over-the-counter quotations) for US listings; the exchange's name outside the US. Two securities can hold one symbol in one period, so key on tickerTenancyID as well, never on the symbol alone. NULL keeps postings whose link names no venue, or several, on a row of their own. | NASDAQ | 85.7% |
| ticker_hiring_daily | tickerTenancyID | string | Which security held the symbol: an opaque 16-character label, one per security's stay on a symbol. Key on it with tickerSymbol and stockExchange. Never NULL or empty. | 3709bef09cf87198 | 100% |
| ticker_hiring_daily | snapshotDate | date | A New York calendar day. | 2026-09-24 | 100% |
| ticker_hiring_daily | closedUniquePostings | integer, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_hiring_daily | grossPostings | integer | Owned postings: the listed company and what it owns (tickerRelation self, former_name, subsidiary, division or acquisition), counted once per source listing, so a source relisting one job under new keys adds it once, on this New York day of their posting date (jobDate). | 0 | 100% |
| ticker_hiring_daily | grossPostingsArrived | integer | The same postings as grossPostings, counted on the New York day they were first seen rather than on their posting date: what reached us that day. Point in time; a day's unique arrivals are final when the day ends. | 0 | 100% |
| ticker_hiring_daily | grossPostingsInclFranchise | integer | grossPostings plus the postings of franchisees and brand partners (tickerRelation franchise or partner: a brand licence or service contract, no equity link), on this New York day of their posting date (jobDate). | 0 | 100% |
| ticker_hiring_daily | grossPostingsInclFranchiseArrived | integer | The same postings as grossPostingsInclFranchise, counted on the New York day they were first seen rather than on their posting date: what reached us that day. Point in time; a day's unique arrivals are final when the day ends. | 0 | 100% |
| ticker_hiring_daily | grossPostingsInclFranchiseKnownAtPeriodEnd | integer | grossPostingsInclFranchise counting only the postings first seen (New York day) by the last day of the day: the value as it was knowable when the day closed. Point in time; it never gains a posting first seen later. | 0 | 100% |
| ticker_hiring_daily | grossPostingsKnownAtPeriodEnd | integer | grossPostings counting only the postings first seen (New York day) by the last day of the day: the value as it was knowable when the day closed. Point in time; it never gains a posting first seen later. | 0 | 100% |
| ticker_hiring_daily | isPartialDay | integer | 1 on the newest days of the panel, whose collection may not be complete; every earlier day is closed. | 0 | 100% |
| ticker_hiring_daily | knowableAt | datetime (UTC), nullable | When the row became knowable (UTC): the latest time our system first recorded any posting the row counts, or the end of the day on a day with no postings, so it never dates a count earlier than it was knowable. On a first release, rows that count postings carry the time the release was produced; for historical as-of work, use the KnownAtPeriodEnd columns and the ...Arrived counts. | 2026-10-04 17:20:25.246 | 100% |
| ticker_hiring_daily | marketCapTier | string, nullable | large, mid, small or micro, from the publicFloatUSD in force on snapshotDate. NULL where no float applies. | micro | 56.9% |
| ticker_hiring_daily | openUniquePostings | integer, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_hiring_daily | publicFloatAsOf | date, nullable | The date publicFloatUSD is measured at (the last business day of the issuer's second fiscal quarter), for the float in force on snapshotDate. | 2023-06-30 | 56.9% |
| ticker_hiring_daily | publicFloatUSD | integer, nullable | The issuer's SEC public float in USD, from the latest annual report (10-K) filed on or before snapshotDate. | 1100000000 | 56.9% |
| ticker_hiring_daily | sourcesCrawled | integer, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_hiring_daily | sourcesExpected | integer, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_hiring_daily | tickerCategory | string | What kind of business the ticker is: staffing, job_board, marketplace, franchisor or operating. Never NULL. | operating | 100% |
| ticker_hiring_daily | uniquePostings | integer | grossPostings restricted to unique postings (isUniqueJobPosting = 1): each group of duplicates counts once, on this New York day of their posting date (jobDate). | 0 | 100% |
| ticker_hiring_daily | uniquePostingsArrived | integer | The same postings as uniquePostings, counted on the New York day they were first seen rather than on their posting date: what reached us that day. Point in time; a day's unique arrivals are final when the day ends. | 0 | 100% |
| ticker_hiring_daily | uniquePostingsInclFranchise | integer | grossPostingsInclFranchise restricted to unique postings (isUniqueJobPosting = 1), on this New York day of their posting date (jobDate). | 0 | 100% |
| ticker_hiring_daily | uniquePostingsInclFranchiseArrived | integer | The same postings as uniquePostingsInclFranchise, counted on the New York day they were first seen rather than on their posting date: what reached us that day. Point in time; a day's unique arrivals are final when the day ends. | 0 | 100% |
| ticker_hiring_daily | uniquePostingsInclFranchiseKnownAtPeriodEnd | integer | uniquePostingsInclFranchise counting only the postings first seen (New York day) by the last day of the day: the value as it was knowable when the day closed. Point in time; it never gains a posting first seen later. | 0 | 100% |
| ticker_hiring_daily | uniquePostingsKnownAtPeriodEnd | integer | uniquePostings counting only the postings first seen (New York day) by the last day of the day: the value as it was knowable when the day closed. Point in time; it never gains a posting first seen later. | 0 | 100% |
| ticker_hiring_daily | unmeasurableOpenPostings | integer, nullable | Reserved for a later release; empty on every row of this release. | 0% | |
| ticker_identifiers | tickerSymbol | string | Ticker symbol, as on ticker_hiring_activity. Join a series row on tickerSymbol plus stockExchange and its period date between validFrom and validTo. | CR | 100% |
| ticker_identifiers | stockExchange | string, nullable | Venue, as on ticker_hiring_activity. A row whose venue is null carries no identifiers. | NASDAQ | 88.7% |
| ticker_identifiers | tickerTenancyID | string | The series key's listing, as on every ticker file. A symbol two securities held in turn is two keys, each with only its own security's identifiers. Empty on a few rows, which match no series. | a484ce577c12f0d0 | 99.4% |
| ticker_identifiers | validFrom | date, nullable | First day the row holds, inclusive; NULL = from the start of the listing. | 1997-12-31 | 73.3% |
| ticker_identifiers | validTo | date, nullable | Last day the row holds, inclusive; NULL = still current. | 2023-03-28 | 24.4% |
| ticker_identifiers | compositeFIGI | string, nullable | The composite FIGI of the security that traded under the symbol over these days. | BBG017BXPZ85 | 61.6% |
| ticker_identifiers | shareClassFIGI | string, nullable | The share-class FIGI of that security. | BBG017BXPZ94 | 61.6% |
| ticker_identifiers | legalEntityIdentifier | string, nullable | The issuer's LEI, where it can be tied to that security. | 549300EXNPSXEWUD3N21 | 50.1% |
| ticker_identifiers | issuerCik | string, nullable | The SEC filer (CIK) behind the listing, where every range of the key names the same one; NULL otherwise. | 1789029 | 72.3% |
| ticker_identifiers | creditedTickerSymbol | string | The class whose series carry this symbol's postings: the most liquid class for a secondary share class (BRK.A to BRK.B, GOOG to GOOGL), else the symbol itself. | CR | 100% |
| ticker_identifiers | secTickerSymbol | string, nullable | The symbol as the SEC's published ticker list spells it: a class suffix after a dash where these files use a dot (BRK.A as BRK-A). NULL on a venue outside the US. | CR | 86.7% |
| company_ticker_history | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | Verb Technology Company | 100% |
| company_ticker_history | tickerSymbol | string | Stock ticker symbol in force during this listing window. Not unique across venues on its own; join on tickerSymbol plus stockExchange. | ANSS | 100% |
| company_ticker_history | stockExchange | string | Exchange or venue of the listing (NYSE, NASDAQ, LSE, XETRA). Empty when no exchange was recorded for the link. | NASDAQ | 95.0% |
| company_ticker_history | tickerRelation | string | How the company relates to the listed entity: self (the listed company), former_name (the listed company under an earlier name), subsidiary, division or acquisition (owned by the listed company), franchise (an independent franchisee operating under the listed company's brand, no equity link), partner (a contracted operator under the listed company's brand, no equity link), or fund_portfolio / bdc_holding (held by funds a listed manager runs, or by a business development company, not by the listed company itself). | self | 100% |
| company_ticker_history | tickerParentName | string, nullable | Name of the listed entity that carries the ticker. NULL where the listed parent could not be named. | ANSYS INC | 92.8% |
| company_ticker_history | isPubliclyTraded | integer | 1 when the company is the listed entity itself (relation self or former_name); 0 when it is owned by a listed parent. | 1 | 100% |
| company_ticker_history | isUSListing | integer, nullable | 1 when the linked ticker trades on a US exchange, 0 for a venue outside the US, NULL when unknown (no exchange recorded, or an over-the-counter quotation, which stockExchange = 'OTC' flags in the ticker files). Describes tickerSymbol, not the primaryListingSymbol / primaryListingExchange pair. | 1 | 94.1% |
| company_ticker_history | primaryListingSymbol | string, nullable | The company's home / ordinary-share listing symbol, carried beside tickerSymbol rather than instead of it. primaryListingSymbol != tickerSymbol confirms tickerSymbol is not the home listing (an ADR or another secondary line); it does not rule one out. NULL when tickerSymbol is NULL. | YUM | 100% |
| company_ticker_history | primaryListingExchange | string, nullable | Exchange primaryListingSymbol trades on, canonicalized to one spelling per venue like stockExchange. NULL when tickerSymbol is NULL, and also NULL whenever the link records no venue. | NYSE | 95.0% |
| company_ticker_history | tickerMatchConfidence | float | Confidence score (0-1) of the company-to-ticker match. Links below 0.85 are not shipped. | 0.97 | 100% |
| company_ticker_history | tickerMatchMethod | string | How the link was established: curated (a reviewed link), website (the employer's own domain matched the issuer's), name_exact, registrant_name (the issuer's registered filer name), name_variant, name_fuzzy, exact_alias (a reviewed alias that links only the one name it lists), corporate_family (inherited from a corporate parent or sibling link), curated_franchise (a reviewed franchise link) or brand_operator (a franchisee or partner whose own name pairs a listed brand with an operator, such as "DWMJ Inc d/b/a McDonald's"). Not every method occurs in every release; the highest-precision subset is curated, website and name_exact. | name_exact | 100% |
| company_ticker_history | validFrom | date, nullable | Start of the listing window. NULL when no listing start is known (windowStartReason unknown or undetermined). The window is closed on both ends. | 1996-06-12 | 51.1% |
| company_ticker_history | validTo | date, nullable | End of the listing window. NULL means the window is open (the listing is current). | 2025-07-16 | 18.8% |
| company_ticker_history | listingValidTo | date, nullable | Statutory end of the listing itself (the delisting date), kept beside validTo when a verified acquisition closes the window earlier than the listing formally ended. | 2025-07-27 | 8.9% |
| company_ticker_history | windowStartReason | string | Why the window opens: first_listing (the listing started on this symbol), symbol_listing (the first listing of the symbol, lent to a link no reviewer approved: weaker evidence than first_listing), first_price_before_corpus (no listing evidence dates the window, so it opens on the security's first price, before January 2022: it means already trading before the panel starts, not listed on that day), symbol_change (the ticker changed and nothing else did), acquisition_close (a verified transaction handed the company to its acquirer), parent_listing (the window starts when the listed parent floated), venue_transfer (the listing moved between two US exchanges: the first trading day on the new one), home_listing_change (the issuer's home listing began, ended or moved; the US line is unchanged), unknown (no listing start was found) or undetermined (the window could not be placed and its start is undated). Empty on a few windows with no recorded reason. | first_listing | 99.6% |
| company_ticker_history | windowEndReason | string | Why the window ends: current (still open), delisted, delisted_to_otc (the listing ended and the same shares kept trading over the counter), acquired (closed on the verified ownership boundary), acquired_date_unknown (an acquirer is known but its start date is not), divested (the issuer sold or spun off this company and kept trading; for a fund holding, the last day the funds held it), symbol_delisted (closed on the delisting date the symbol carries, lent to a link no reviewer approved: weaker evidence than delisted), symbol_change, venue_transfer, home_listing_change or undetermined. | acquired | 100% |
| company_ticker_history | tickerCategory | string | What kind of business the listed company is: staffing, job_board, marketplace, franchisor or operating (every other company). Keep tickerCategory = 'operating' to leave out staffing firms, job boards, marketplaces and franchisors, as a cross-sectional study usually does. The same value ships on every ticker file. | operating | 100% |
| company_ticker_history | tickerTenancyID | string | Opaque 16-character identifier of the listed security this listing window belongs to: one value per security's stay on a symbol. The ticker files key their series on it, so a symbol that passed from one company to another is two series. Empty when the window is tied to no single security. | 5480551e25efb958 | 100% |
| company_ticker_history | issuerCik | string | The SEC filer (CIK) behind the listing window, where the window is tied to one SEC registrant. NULL otherwise, including foreign listings. | 1041061 | 89.9% |
Google Maps Business Data: 77 fields, 203,045,739 rows (catalog 8.3, measured 6 Oct 2026)
| Module | Field Name | Type | Description | Example | Coverage |
|---|---|---|---|---|---|
| places_listings | cid | string | Google Maps place identifier. Primary key. | 9825404506245605297 | 100% |
| places_listings | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | Tops Friendly Markets | 11.9% |
| places_listings | address | string | Full address as the listing shows it. | 98 South Ave, Hilton, NY 14468, United States | 98.8% |
| places_listings | amenities | array<string> | Amenities and capabilities present at the place (for example delivery, takeout, wheelchairEntrance), as the listing reports them; only those reported as available appear. | ['wheelchairEntrance', 'wheelchairParking', 'wheelchairRestroom'] | 49.5% |
| places_listings | avgReviewRating | float | Average review rating recomputed from the review set (alongside the listed reviewRating). | 3.88 | 21.9% |
| places_listings | businessName | string | The place's name as listed on Google Maps. | Tops Friendly Markets | 100% |
| places_listings | categories | array<string> | Full set of Google Maps categories assigned to the place. | ['Supermarket', 'Grocery store'] | 99.3% |
| places_listings | category | string | Primary Google Maps business category (e.g. restaurant). | Supermarket | 99.3% |
| places_listings | cbsaCode | string | US metro area code (CBSA), the same metro code the job postings carry. NULL outside the US, and where a US place's location maps to no metro area. | 40380 | 9.3% |
| places_listings | cbsaTitle | string | Official OMB name of the CBSA in cbsaCode, e.g. New York-Newark-Jersey City, NY-NJ. NULL exactly when cbsaCode is NULL. | Rochester, NY | 9.3% |
| places_listings | companyDomain | string | Normalized registrable domain of website (e.g. acme.com). The join key to this table's companyDomain (derived by the same rule from the company website). NULL when website is empty or unparseable. | topsmarkets.com | 31.6% |
| places_listings | companyStatus | string | Ownership / sector classification of the linked company, always populated (public / subsidiary_of_public / franchisee_of_public / partner_of_public / portfolio_company_of_public / government / nonprofit / educational / private / unknown). unknown when the place has no company link. | private | 100% |
| places_listings | finalCity | string | City, parsed from the address. | Hilton | 97.3% |
| places_listings | finalCountry | string | ISO 3166-1 alpha-2 country code, uppercase (e.g. US); backfilled from the place timezone when the address parse left it empty. | US | 100% |
| places_listings | finalState | string | State or region, as the listing writes it. | NY | 72.8% |
| places_listings | geohash5 | string | Geohash of the coordinates at precision 5 (about 5 km cells); a city-centroid cell where the place has no usable coordinate. | dr8wj | 100% |
| places_listings | geohash7 | string | Geohash at precision 7 (about 150 m cells); empty where the place has no usable coordinate. | dr8wjzg | 100% |
| places_listings | hasDetailedProfile | integer | 1 when the place was collected at least once in detailed mode, else 0. Only these places carry the detailed profile (star histogram, popular times, owner and similar fields). | 1 | 100% |
| places_listings | imageCount | integer | Count of photos attached to the place listing. NULL when the listing's photos were not collected (unknown, not zero). | 3 | 29.7% |
| places_listings | inferredEntityType | string | The linked company's hiring role (real_employer, staffing_agency, job_board_aggregator, not_a_company or unknown), from Canaria's company classification. unknown when the place has no company link. | real_employer | 100% |
| places_listings | inferredEntityTypeConfidence | float | Per-field confidence (0-1) of inferredEntityType. NULL exactly when inferredEntityType is unknown. The score recorded by the model-based company classification where a company was classified; the ticker-link rule's measured precision (0.95), or the organisation-type rule's (0.987 Nonprofit, 0.955 Educational), or the posting-evidence classifier's own score (0.70 or more), where it was not. | 1 | 5.5% |
| places_listings | is24Hours | integer | 1 when the listing says the place is open 24 hours. | 0 | 100% |
| places_listings | isClaimedBusiness | integer | 1 when the listing is a claimed/active Google Business Profile (ownerName present), else 0. | 1 | 100% |
| places_listings | isPubliclyTraded | integer | 1 when the linked company is the listed entity; 0 when owned by a listed parent; NULL when the place has no listed-company link. | 1.0% | |
| places_listings | isThirdPartySited | integer | 1 when the place belongs to a branded network whose sites are typically run by someone else (parcel lockers, rental dealers, charging stations, kiosks inside other stores), so the linked company is the brand, not necessarily the operator; 0 when not flagged, which does not prove the company operates the site. NULL when the place has no company link. Keep isThirdPartySited = 0 for employer-level location counts. | 0 | 11.9% |
| places_listings | isUSListing | integer | 1 when the linked company's ticker trades on a US exchange (NYSE, NASDAQ, NYSE AMERICAN or OTHER (the bucket for NYSE Arca, Cboe BZX and IEX)), 0 when it trades outside the US. NULL when there is no listed-company link, the link records no exchange, or the ticker trades over the counter (OTC). | 0.8% | |
| places_listings | latestReviewDate | date | Publish date (UTC) of the newest review among the reviews collected for the place. Google returns a sample of at most about 8 reviews per place, so this is a lower bound on the place's most recent review, not its exact date. NULL when no collected review carries a date, or no reviews were collected. | 2026-04-25 | 16.3% |
| places_listings | latitude | float | Latitude of the place, as the listing gives it. | 43.2858508 | 100% |
| places_listings | longitude | float | Longitude of the place, as the listing gives it. | -77.7899955 | 100% |
| places_listings | naicsCode | string | 6-digit NAICS-2022 industry code derived from the Google Maps category. | 445110 | 81.6% |
| places_listings | naicsSector | string | 2-digit NAICS sector rollup of naicsCode. | 44-45 | 81.6% |
| places_listings | naicsTitle | string | Official NAICS-2022 title for naicsCode. | Supermarkets and grocery stores | 96.1% |
| places_listings | openingHours | map<string, string> | Opening hours by day, Monday to Sunday, as "open-close" in local time (read with timezone). Closed days, and days the listing does not show, are absent. is24Hours and totalWeeklyHours carry the 24-hour flag and the weekly total. | {'fri': '06:00-23:00'} | 38.0% |
| places_listings | ownerName | string | Google Business Profile owner name, when the listing is claimed. | Example Veterinary Group | 44.5% |
| places_listings | peakDay | string | Day of week with the highest Google Popular Times busyness. | Friday | 7.7% |
| places_listings | peakHour | integer | Hour of day (0-23) with the highest Google Popular Times busyness. | 17 | 7.7% |
| places_listings | phone | string | Phone number as the listing displays it. | +1 555-0142 | 59.0% |
| places_listings | phoneE164 | string | The same number in E.164 international form (for example +14155550100). | +15550142 | 58.8% |
| places_listings | placeKind | string | What kind of place the listing is: business (its category maps to a NAICS code), non_business (a category on the curated non-business list: bus stops, housing, parks, places of worship, natural features and the like; naicsTitle reads Not a business there) or unknown (a category not mapped yet, or none). "Businesses only" is placeKind = 'business'. | business | 100% |
| places_listings | postalCode | string | Postal / ZIP code as listed; US places carry the 5-digit ZIP (a ZIP+4 is cut to its base, the way a posting's finalZipcode is). | 14468 | 83.7% |
| places_listings | reviewCount | integer | Number of reviews the listing shows. | 579 | 51.8% |
| places_listings | reviewCountWithText | integer | Number of reviews carrying written text. | 8 | 22.1% |
| places_listings | reviewRating | float | Star rating the listing shows (1 to 5). | 4.1 | 56.2% |
| places_listings | reviewSentiment | string | Overall skew of the review distribution: positive / neutral / polarized / negative. NULL when not computed. | positive | 20.4% |
| places_listings | stars1 | integer | Count of 1-star ratings in the place's review histogram. | 21 | 20.4% |
| places_listings | stars2 | integer | Count of 2-star ratings in the place's review histogram. | 23 | 20.4% |
| places_listings | stars3 | integer | Count of 3-star ratings in the place's review histogram. | 78 | 20.4% |
| places_listings | stars4 | integer | Count of 4-star ratings in the place's review histogram. | 189 | 20.4% |
| places_listings | stars5 | integer | Count of 5-star ratings in the place's review histogram. | 268 | 20.4% |
| places_listings | status | string | Normalized place-operational status (operational / closed_temporarily / closed_permanently / unknown), derived from raw Google hours text. | operational | 100% |
| places_listings | stockExchange | string | Exchange the linked ticker trades on, uppercase and canonicalized to one spelling per venue: US (NYSE/NASDAQ) and foreign markets alike. NULL when tickerSymbol is NULL. | 0.8% | |
| places_listings | tickerMatchConfidence | float | Confidence (0-1) of the company-to-ticker link. NULL when there is no listed-company link. | 1.0% | |
| places_listings | tickerMatchMethod | string | How the link was established: curated (a reviewed link), website (the employer's own domain matched the issuer's), name_exact, registrant_name (the issuer's registered filer name), name_variant, name_fuzzy, exact_alias (a reviewed alias that links only the one name it lists), corporate_family (inherited from a corporate parent or sibling link), curated_franchise (a reviewed franchise link) or brand_operator (a franchisee or partner whose own name pairs a listed brand with an operator, such as "DWMJ Inc d/b/a McDonald's"). Not every method occurs in every release; the highest-precision subset is curated, website and name_exact. | 1.0% | |
| places_listings | tickerParentName | string | Verified registered name of the listed entity that owns the ticker. NULL when there is no listed-company link. | 0.8% | |
| places_listings | tickerRelation | string | How the company relates to the linked ticker: self (the listed company), former_name (the listed company under an earlier name), subsidiary, division or acquisition (owned by the listed company), franchise (an independent franchisee operating under the listed company's brand, no equity link), partner (a contracted operator under the brand, such as a delivery or freight partner, no equity link), fund_portfolio (a company held by funds a listed manager runs) or bdc_holding (a portfolio investment of a listed business development company). NULL when there is no listed-company link. | 1.0% | |
| places_listings | tickerSymbol | string | Stock ticker of the linked company (e.g. AAPL). NULL when the place has no listed-company link. | 1.0% | |
| places_listings | timezone | string | Place timezone; also the source used to backfill finalCountry when the address parse leaves it empty. | America/New_York | 100% |
| places_listings | businessNameLanguage | string | Detected language of businessName. | en | 99.9% |
| places_listings | totalRatings | integer | Total number of star ratings, stars1 to stars5 summed. | 579 | 20.4% |
| places_listings | totalWeeklyHours | float | Scheduled open hours per week, from openingHours. | 17 | 43.0% |
| places_listings | website | string | Place website (Google redirect wrappers unwrapped). | https://example-hvac.com | 31.6% |
| places_attributes | cid | string | Google Maps place identifier; joins 1:1 to places_listings.cid. | 9825404506245605297 | 100% |
| places_attributes | googlePlaceID | string | Google Place ID of the listing. Null when the collection lacks it. | 32.9% | |
| places_attributes | plusCode | string | Google Plus Code (open location code) of the listing. Null when the collection lacks it. | 99.8% | |
| places_attributes | priceLevel | integer | Google price tier on the 1-4 icon scale ($ to $$$$). NULL when Google shows none. | 1.5% | |
| places_attributes | priceCurrency | string | Currency of the listed price range, when Google shows one. | 1.5% | |
| places_attributes | priceMinimum | float | Lower bound of the listed price range, when Google shows one. | 1.3% | |
| places_attributes | priceMaximum | float | Upper bound of the listed price range, when Google shows one. | 1.5% | |
| places_attributes | popularTimesByHour | map<string, array<integer>> | Popular Times histogram: day of week to 24 hourly busyness values (0-100 Google scale), hour 0 first. Empty when the listing shows none. | 7.7% | |
| places_attributes | peakBusyness | float | Busyness value (0-100 Google scale) at the peak day and hour. | 7.7% | |
| places_attributes | avgWeekdayBusyness | float | Average Popular Times busyness across weekday hours. | 7.7% | |
| places_attributes | avgWeekendBusyness | float | Average Popular Times busyness across weekend hours. | 7.5% | |
| places_attributes | busiestPeriod | string | Named busiest period of the week (for example weekday lunch, weekend evening) from Popular Times. | 7.7% | |
| places_attributes | weeklyBusynessScore | float | Aggregate weekly busyness score computed from the Popular Times curve. | 7.7% | |
| places_attributes | menuURL | string | Link to the listing's menu, when it shows one (redirector unwrapped). | 0.8% | |
| places_attributes | reservationURLs | array<string> | Reservation links shown on the listing. Empty when none. | 0.3% | |
| places_attributes | orderOnlineURLs | array<string> | Order-online links shown on the listing. Empty when none. | 1.6% | |
| places_attributes | businessDescription | string | The business's own description text on the listing. Null when none. | 1.2% |
Salary Benchmark Data: 37 fields, 43,787 rows (catalog 8.3, measured 5 Sep 2026)
| Module | Field Name | Type | Description | Example | Coverage |
|---|---|---|---|---|---|
| salary_benchmarks | socCode | string | SOC 2018 occupation code. Primary join key. | 15-1252 | - |
| salary_benchmarks | socTitle | string | Official SOC 2018 occupation title. | Software Developers | - |
| salary_benchmarks | state | string | US state two-letter code; 'US' on national rows. | CA | - |
| salary_benchmarks | granularityLevel | string | 'state' or 'national'. Filter on it to pick the rollup you want. | state | - |
| salary_benchmarks | industry | string | The occupation's most common industry nationally. | Information Technology & Services | - |
| salary_benchmarks | salaryP10 | float | 10th percentile of the fused annual salary distribution, USD. | 82400 | - |
| salary_benchmarks | salaryP25 | float | 25th percentile, USD per year. | 108300 | - |
| salary_benchmarks | salaryP50 | float | Primary benchmark: median annual salary, USD, fused from posted pay, employee-reported pay and BLS wage statistics, weighted by each source's precision. | 142500 | - |
| salary_benchmarks | salaryP75 | float | 75th percentile, USD per year. | 187200 | - |
| salary_benchmarks | salaryP90 | float | 90th percentile, USD per year. | 246100 | - |
| salary_benchmarks | ciLower | float | Lower bound of the 95% confidence interval on salaryP50. Wider when the sample is thin or sources disagree. | 135400 | - |
| salary_benchmarks | ciUpper | float | Upper bound of the 95% confidence interval on salaryP50. | 149700 | - |
| salary_benchmarks | totalPostingsCount | integer | Job postings with a salary behind this cell, of every provenance (employer-stated, source-estimated and model-predicted); the three provenance columns below sum to it. Use it as the fusion's evidence weight, not as a count of employers who published pay. | 8420 | - |
| salary_benchmarks | employerStatedPostingsCount | integer | The subset of totalPostingsCount whose salary the employer wrote. The employer-evidence count: use it (plus employeeReportedCount) for your own minimum-sample floor. | 3572 | - |
| salary_benchmarks | sourceEstimatedPostingsCount | integer | The subset where the job site supplied its own salary estimate. | 295 | - |
| salary_benchmarks | modelPredictedPostingsCount | integer | The subset where Canaria's salary model supplied the figure. | 4553 | - |
| salary_benchmarks | employeeReportedCount | integer | Employee-reported salary records behind this cell. | 1932 | - |
| salary_benchmarks | sampleSize | integer | totalPostingsCount plus employeeReportedCount. BLS is a reference and does not count here. State rows below 30 are not published. | 10352 | - |
| salary_benchmarks | sourcesUsed | array<string> | Which of 'posted', 'reported' and 'bls' fused into this row. | ['posted','reported','bls'] | - |
| salary_benchmarks | colaMultiplier | float | Cost-of-living index for the state; 1.0 = US average (always 1.0 on national rows). | 1.42 | - |
| salary_benchmarks | nationalEquivalentP50 | float | salaryP50 divided by colaMultiplier: the state median expressed in national cost-of-living terms. | 100352 | - |
| salary_benchmarks | costTier | string | Cost-of-living bucket: 'High' (multiplier 1.2 or more), 'Medium' (0.85 to below 1.2) or 'Low' (below 0.85). | High | - |
| salary_skill_premium | skill | string | Canonical skill label, lowercased. | python | - |
| salary_skill_premium | socCode | string | SOC 2018 occupation code. | 15-1252 | - |
| salary_skill_premium | state | string | US state two-letter code. | CA | - |
| salary_skill_premium | premiumUSD | float | Annual salary difference, USD, for postings listing this skill versus those that do not, in the same occupation and state, weighted across seniority levels. Clamped to plus or minus $100K. | 12400 | - |
| salary_skill_premium | premiumPct | float | premiumUSD as a percentage of the without-skill median. | 8.5 | - |
| salary_skill_premium | postingsWithSkillCount | integer | Unique salaried postings listing the skill (at least 100 per seniority cell). | 3210 | - |
| salary_skill_premium | postingsWithoutSkillCount | integer | Unique salaried postings in the same cells without the skill. | 8910 | - |
| salary_yoe_curve | socCode | string | SOC 2018 occupation code. | 15-1252 | - |
| salary_yoe_curve | state | string | US state two-letter code (US employee reports only). | CA | - |
| salary_yoe_curve | yoeBucket | string | Years-of-experience bucket, exactly one of '0-1 year', '1-3 years', '4-6 years', '7-9 years', '10-14 years', '15+ years'. The labels do not sort chronologically as strings; order the curve explicitly. | 4-6 years | - |
| salary_yoe_curve | reportedSalaryP50 | float | Median employee-reported annual salary, USD, at this experience bucket. | - | |
| salary_yoe_curve | employeeReportedCount | integer | Employee-reported salary records behind this point (at least 3). | - | |
| salary_yoy_trend | socCode | string | SOC 2018 occupation code. | 15-1252 | - |
| salary_yoy_trend | state | string | US state two-letter code. | CA | - |
| salary_yoy_trend | currentYear | integer | Latest complete calendar year in the window. | - | |
| salary_yoy_trend | currentSalaryP50 | float | Median posted annual salary, USD, in currentYear. | - | |
| salary_yoy_trend | priorSalaryP50 | float | Median posted annual salary, USD, in the year before currentYear. | - | |
| salary_yoy_trend | yoyChangePct | float | Percentage change from priorSalaryP50 to currentSalaryP50. Cells need at least 100 postings in both years; changes outside -50% to +100% are left out, not clamped. | - | |
| salary_company_profiles | normalizedCompanyName | string | Canonical company name from Canaria's company database: the join key to the company, posting and ticker files. | - | |
| salary_company_profiles | industry | string | The company's most common industry across its postings. | - | |
| salary_company_profiles | distinctSocCount | integer | Distinct SOC occupations the company hires for. | - | |
| salary_company_profiles | totalPostingsCount | integer | The company's US postings with a salary of any provenance, in occupation and state cells of at least 5 postings. Only companies with at least 100 employer-stated salaries have a profile. | - | |
| salary_company_profiles | employeeReportedCount | integer | Employee-reported salary records for the company. | - | |
| salary_company_profiles | transparencyPct | float | Share of the company's postings whose text was observed (postings with a resolved occupation, in US company, occupation and state cells of at least 5 postings) that state a salary in the posting text. Structured salary fields, which some job sites fill with their own estimates, model-predicted salaries and job-site estimates do not count. | - | |
| salary_company_profiles | vsMarketRatio | float | The company's posted median pay against the market median for the same occupations, weighted by its posting mix. Above 1.0 means it pays above market. | - |
Job Skills Data: 35 fields, 8,886,228 rows (catalog 8.3, measured 25 Aug 2026)
| Module | Field Name | Type | Description | Example | Coverage |
|---|---|---|---|---|---|
| skills_title_stats | normalizedTitle | string | Canonical job title (the same value as normalizedTitle on the posting files). | registered nurse | - |
| skills_title_stats | socCode | string | The title's occupation: the most common SOC 2018 code across the title's postings in the window, the same value on every row of the title. Null when no posting of the title carries a code. | 29-1141 | - |
| skills_title_stats | socTitle | string | Official SOC 2018 title of socCode. | Registered Nurses | - |
| skills_title_stats | socCodeShare | float | Share of the title's postings carrying socCode (0 to 1). Filter on it to drop titles whose occupation is mixed. | - | |
| skills_title_stats | skillType | string | Skill family: technical, soft, certification or license. Part of the key; every statistic is computed within one family. | technical | - |
| skills_title_stats | skill | string | Lowercased canonical skill string. | python | - |
| skills_title_stats | postingsWithSkill | integer | Unique postings for this title carrying this skill, counted once per posting. | - | |
| skills_title_stats | postingsWithAnySkillForTitle | integer | The title's unique postings carrying any skill of this family: the denominator for skillCoverage. | - | |
| skills_title_stats | skillCoverage | float | postingsWithSkill divided by postingsWithAnySkillForTitle (0 to 1). | - | |
| skills_title_stats | skillLift | float | Coverage relative to the skill's prevalence across all postings. Above 1 means over-represented in this role. | - | |
| skills_title_stats | skillSpecificity | float | Share of all postings carrying the skill that belong to this title (0 to 1). | - | |
| skills_title_stats | essentialScore | float | Composite score: how often the skill appears on this role's postings, shrinkage-adjusted so low-volume titles are not dominated by noise (0 to 1). | - | |
| skills_title_stats | distinctiveScore | expr:1. / (1. + exp(-distinctive)) over distinctive: float32 | Composite score: how strongly the skill marks this role against the whole market, bounded 0 to 1; 0.5 means the market rate, above 0.5 over-represented. | - | |
| skills_title_stats | emergingScore | float | Composite score: growth times confidence. Zero means no growth signal, which is a value, not a gap. | - | |
| skills_title_stats | isStatisticallySignificant | integer | 1 when the cell passes a multiple-testing-corrected significance gate (q at or below 0.01 with at least 30 postings). | 1 | - |
| skills_trends | normalizedTitle | string | Canonical job title (the same value as normalizedTitle on the posting files). | registered nurse | - |
| skills_trends | skillType | string | Skill family: technical, soft, certification or license. Part of the key; every statistic is computed within one family. | technical | - |
| skills_trends | skill | string | Lowercased canonical skill string. | python | - |
| skills_trends | yearMonth | integer | Calendar month, YYYYMM. A title and skill series has a row only in months where the skill appeared, so a series can contain gaps. | 202607 | - |
| skills_trends | monthlyPostingsWithSkill | integer | Unique postings that month for this title carrying this skill. | - | |
| skills_trends | monthlySkillCoverage | float | That month's coverage (0 to 1). Prefer it to raw counts for time series, since monthly posting volumes also reflect collection changes. | - | |
| skills_trends | isPartialMonth | integer | 1 on the window's edge months: the first month and the current month are incomplete. | 0 | - |
| skills_trends | monthOverMonthGrowth | float | Change in coverage versus the preceding month. Null when the preceding month has no row for the series. Clamped to -1 to +9. | - | |
| skills_trends | yearOverYearGrowth | float | Change in coverage versus the same month a year earlier. Null where the series has no row 12 months earlier. Clamped to -1 to +9. | - | |
| skills_state_trends | state | string | US state two-letter code (the 50 states, DC and the territories). Postings with no resolved state are left out of this file and still count nationally. | TX | - |
| skills_state_trends | skillType | string | Skill family: technical, soft, certification or license. Part of the key; every statistic is computed within one family. | technical | - |
| skills_state_trends | skill | string | Lowercased canonical skill string. | python | - |
| skills_state_trends | yearMonth | integer | Calendar month, YYYYMM. | 202607 | - |
| skills_state_trends | monthlyPostingsWithSkill | integer | Unique postings in the state and month carrying the skill. Every skill is kept, so counts add up across months and states. | - | |
| skills_state_trends | monthlyPostingsWithAnySkill | integer | Unique postings in the state and month carrying any skill of this family: the denominator for monthlySkillCoverage. | - | |
| skills_state_trends | monthlySkillCoverage | float | monthlyPostingsWithSkill divided by monthlyPostingsWithAnySkill (0 to 1). | - | |
| skills_state_trends | isPartialMonth | integer | 1 on the window's edge months, as on skills_trends. | 0 | - |
| skills_state_trends | locationQuotient | float | monthlySkillCoverage divided by the skill's national coverage in the same month: 1.0 is the national share, 2.0 twice as concentrated in the state. Small states make small counts; filter on monthlyPostingsWithSkill before reading it. | - | |
| skills_cooccurrence | skillType | string | Skill family: technical, soft, certification or license. Part of the key; every statistic is computed within one family. | technical | - |
| skills_cooccurrence | skill | string | Lowercased canonical skill string. | python | - |
| skills_cooccurrence | coOccurrenceRank | integer | 1 to 25: the anchor skill's companions, strongest first. Each skill lists its own top 25, so a pair may appear under either skill or both. | 1 | - |
| skills_cooccurrence | relatedSkill | string | The companion skill (same family). | - | |
| skills_cooccurrence | coOccurrencePostingsCount | integer | Postings carrying both skills (minimum 10). | - | |
| skills_cooccurrence | coOccurrenceScore | float | Normalized pointwise mutual information, -1 to 1: 1 = always together, 0 = independent, negative = together less often than chance. | - | |
| skills_global_stats | skillType | string | Skill family: technical, soft, certification or license. Part of the key; every statistic is computed within one family. | technical | - |
| skills_global_stats | skill | string | Lowercased canonical skill string. | python | - |
| skills_global_stats | skillPostingsCount | integer | Unique postings carrying this skill across the window. | - | |
| skills_global_stats | distinctJobTitleCount | integer | How many distinct titles list the skill. | - | |
| skills_global_stats | skillPrevalence | float | Share of the family's postings-with-any-skill carrying this skill (0 to 1). | - | |
| skills_global_stats | skillTypeTotalPostingsCount | integer | The family's window total: postings carrying a normalized title and at least one skill of this family, the denominator behind skillPrevalence. A posting counts in every family whose skills it carries, so the family totals overlap. | - | |
| skills_entity_summary | normalizedTitle | string | Canonical job title (the same value as normalizedTitle on the posting files). | registered nurse | - |
| skills_entity_summary | socCode | string | The title's occupation: the most common SOC 2018 code across the title's postings in the window, the same value on every row of the title. Null when no posting of the title carries a code. | 29-1141 | - |
| skills_entity_summary | socTitle | string | Official SOC 2018 title of socCode. | Registered Nurses | - |
| skills_entity_summary | socCodeShare | float | Share of the title's postings carrying socCode (0 to 1). Filter on it to drop titles whose occupation is mixed. | - | |
| skills_entity_summary | skillType | string | Skill family: technical, soft, certification or license. Part of the key; every statistic is computed within one family. | technical | - |
| skills_entity_summary | totalPostingsCount | integer | The title's unique postings in the window (the same value on every family row of the title). | - | |
| skills_entity_summary | distinctSkillsCount | integer | Distinct skills retained for the title in this family (capped at 50). | - | |
| skills_entity_summary | topSkills | array<string> | The title's top skills in this family, strongest first. | - |
Loading schema explorer...