ATS vs Job Board Fields
The two main job-listing endpoints (active-ats and active-jb) share most of their schema but each carries a small set of fields the other cannot. This page lists the differences so you can decide which feed (or combination) fits your use case.
modified-ats returns the same shape as active-ats; the only difference is that date_modified and modified_fields are required there (and always populated).
Summary
| Total fields | Shared | Endpoint-only | |
|---|---|---|---|
active-ats | 72 | 64 | 8 |
active-jb | 72 | 64 | 8 |
Fields only on active-ats (and modified-ats)
These eight fields exist on the ATS feeds but not on the job board feed.
Basic organization extras
Returned when include_basic_organization_details=true. These are the LinkedIn/Crunchbase enrichment fields that the JB feed does not currently expose at all - if you need them on JB rows, join by org_linkedin_slug against organizations-advanced.
| Field | Description |
|---|---|
org_linkedin_name | Canonical company name from LinkedIn. (JB exposes the raw source name as organization instead.) |
org_crunchbase_categories | List of Crunchbase categories the company is tagged with. |
org_crunchbase_total_investment | Total investment in USD raised by the company according to Crunchbase. |
org_logo_permalink | Stable Crustdata-hosted URL for the company logo. Aliased to match the equivalent field on organizations-advanced. |
Modification tracking
Only populated when time_frame=6m, or when fetched via modified-ats (where they are always populated and required).
| Field | Description |
|---|---|
date_modified | Date and time of the most recent modification of the listing. |
modified_fields | Array of field names that changed in the most recent modification. |
Source enrichment
| Field | Description |
|---|---|
domain_derived | Employer domain, extracted from the job posting URL. Often more reliable for joining than the raw organization name. |
locations_alt | Alternative source-supplied location strings. Hybrid origin: HTML-scraped for most ATS, AI-structured for a small subset. See the location search guide for when to use this vs locations / locations_derived. |
Fields only on active-jb
These eight fields exist on the job board feed but not on the ATS feeds. Most of them are signals only the source job board (LinkedIn) exposes.
LinkedIn-specific identifiers and signals
| Field | Description |
|---|---|
linkedin_id | LinkedIn's public job posting ID - the digits at the end of a linkedin.com/jobs/view/{linkedin_id} URL. Distinct from the internal id. |
direct_apply | True if the job supports in-platform application on the source job board (e.g. LinkedIn Easy Apply). |
seniority | Seniority level as listed by the job board. For more comprehensive coverage, use the AI-derived ai_experience_level (available on both endpoints). |
Recruiter
LinkedIn job posts often expose the human recruiter who posted the listing. Drop these three fields by passing exclude_recruiter_fields=true.
| Field | Description |
|---|---|
recruiter_name | Name of the recruiter who posted the job. |
recruiter_title | Title of the recruiter. |
recruiter_url | URL to the recruiter's profile. |
Cross-feed deduplication and data quality
| Field | Description |
|---|---|
ats_duplicate | True if this job board listing is a duplicate of an ATS listing in active-ats. Set exclude_ats_duplicate=true to drop the flagged duplicates. |
no_jb_schema | True if the job board listing has no structured schema data (most AI-derived fields will be sparse or missing for these). |
Note on shared fields
Although 64 fields appear on both endpoints, a couple of behaviors differ between them:
- Organization fields are always-on for JB, opt-in for ATS. On
active-jbthe LinkedIn organization is read directly from the job board, so the basic LinkedIn org fields (e.g.org_linkedin_industry,org_linkedin_headcount,org_linkedin_website, etc.) are returned with every row. Onactive-atsandmodified-atsthe same fields are matched via a domain/name lookup and are only returned when you setinclude_basic_organization_details=true. - Description search availability differs by
time_frame.descriptionanddescription_advancedwork withtime_frame=6monactive-ats(with a slowness/timeout caveat) but return400when combined withtime_frame=6monactive-jb.