Job Metadata: What's Inside Every Job Posting

Beyond the job description text, every posting carries dozens of structured metadata fields - dates, location, salary, employment type, skills, and more besides.

What Is Job Metadata?

Job metadata is the structured, machine-readable data extracted from a job posting - separate from the free-text job description itself. Whenever Techmap collects a posting from an ATS career page, job board, or employment office - or via our own job crawlers, it does not merely store the raw text: it identifies and normalises dozens of individual fields, such as the company name, publish date, location, employment type, salary, and required skills.

This matters because raw job posting text is, by its very nature, unstructured and inconsistent across sources: one site might write "Remote" in the title, another in a dedicated field, and a third not at all. Metadata normalises these signals into consistent fields (such as job.workPlace), so they can be filtered, counted, and compared across sources, countries, and companies without re-parsing the text for every single query.

Why Job Metadata Matters

  • Filtering and search: query postings by countryCode, workPlace, careerLevel, or dateCreated, rather than scanning the description text.
  • Deduplication: the isDuplicate and isDuplicateOf flags let you exclude re-published copies of the very same posting.
  • Source quality: the isDirect flag distinguishes employer-direct postings (career pages) from job board republications. Do note, however, that the job board copy is very often the only copy available online at all - not every hiring company runs a website of its own, let alone a proper careers page.
  • Sales and market intelligence: company, location, and industry metadata power sales lead generation and labour market analysis, without the need for any manual text mining.
  • Structured data / SEO: the job.jsonLD object follows the schema.org JobPosting format and may be embedded directly on a job board page for Google Jobs eligibility.

Job Metadata Fields

The table below groups Techmap's actual API field names (from the result[] array of the Job API's Data Dictionary) according to the kind of metadata they capture. Every field name and example value shown here is taken directly from the live schema - please see the full field reference for types and population rates.

Identification & Role Metadata

What the position is and where it sits within the company.

FieldExampleDescription
titleSAP TM (Transportation Module) Functional AnalystTitle or name of the job posting
occupationFunctional AnalystThe job name reduced to a stem form (e.g., 'java programmer')
departmentITName of the department in the company such as sales, finance, it, ... (very rare)

Company Metadata

Who is hiring, resolved from the posting page or its embedded JSON.

FieldExampleDescription
companyAvance ConsultingName of the company originally stated on the job posting or in its JSON.
jsonLD.hiringOrganization .nameAvance ConsultingName of the company originally stated on the job posting or in its JSON.
jsonLD.hiringOrganization .urlhttps://example.comWebsite of the company originally stated on the job posting or in its JSON.
jsonLD.hiringOrganization .logohttps://s3.eu-central-1.amazonaws.com/images.techmap.io/dice_us-d865fc5a-e0ad-57a6-9e0f-45350b82af37-logo.pngLink to Logo of the company cached by techmap.
jsonLD.hiringOrganization .identifier5e1e4a2d824199645bd7e6a8ID of the company in Techmap's central database.

Freshness & Timing Metadata

When the posting was created and how long it's assumed to stay valid.

FieldExampleDescription
dateCreated2024-09-15T14:43:24.000ZThe date and time the job posting was created by the company (as stated on the page or its JSON).
dateExpired2024-10-14T14:48:29.000ZThe given date the posting is valid.
dateActive2024-10-14T14:48:29.000ZThe assumed expiry date of the posting, derived from schema.org validThrough or defaulting to dateCreated + 30 days.
jsonLD.datePosted2024-09-15T14:43:24.000ZThe date and time the job posting was created by the company (as stated on the page or its JSON).
jsonLD.validThrough2024-10-14T14:48:29.000ZThe given date the posting is valid.

Location Metadata

Where the role is based, down to coordinates and timezone.

FieldExampleDescription
countryCodeusThe country code (from ISO3166) the job posting is located, e.g., 'us'.
stateTXState the job is located in (rare).
cityClevelandCity the job is located in.
postCode77327Postal or Zip code of the job is located in (rare).
geoPoint{"lon": -95.02362, "lat": 30.33804}The geocoordinate object with latitude and longitude.
timezoneCSTTimezone code (3-letters)
timezoneOffset-6Timezone offset between -12 and +12 from GMT/UTC

Employment Metadata

How the role is structured - onsite or remote, seniority, contract and work type.

FieldExampleDescription
workPlace["Onsite"]List of workplaces such as Remote, Hybrid, Onsite, Field, ...
careerLevel["Senior"]List of career levels such as Junior, Senior, ...
contractType["DirectEmployment"]List of contract types such as Permanent, Temporary, ...
workType["Permanent"]List of work types such as Fulltime, Parttime, ...
jsonLD.employmentTypeDirect EmploymentThe main employment type such as Permanent, Temporary, ...

Compensation Metadata

Salary information, where the original posting discloses it.

FieldExampleDescription
hasSalaryTrueIndicates if the job posting has salary information.
minSalary50000.00The minimum salary of the position.

Classification Metadata

What the role is about and in which language it's written.

FieldExampleDescription
skills["Logistics","Autoconf","ABAP"]The skills stated or identified with the job posting
industryTransportThe industry stated or identified with the job posting
languageenLanguage the job posting is written in such as en, es, de, ...
localeen_USThe Locale of the job posting such as en_US, en_UK, de_CH, ...

Quality & Provenance Metadata

Where the posting came from and how trustworthy or unique it is.

FieldExampleDescription
isDirectTrueIndicates if the job posting is directly from a company page or a job board.
isRecruiterFalseIndicates if the job posting is from a Recruiting firm.
isDuplicateFalseTrue if a posting with the same company, city, country, and job title was already seen within 3 days. Duplicates are kept but flagged. Use isDuplicate=false as a query filter to exclude them.
isDuplicateOf66f4d794a315a1138e6bfac2The ID of the earliest identical posting this one duplicates. Null when isDuplicate is false.
portaldiceThe origin of the job posting such as monster, linkedin, ...
sourcedice_usThe origin of the job posting with a countrycode such as 'monster_uk'.

Job Metadata in a Full API Response

Below is a complete, genuine example from the Job Posting API's /search endpoint: one posting with all of its metadata fields populated, including the jsonLD object in schema.org format.

{
  "api": "Techmap.io Job Posting API",
  "apiVersion": "v2.6",
  "page": 1,
  "pageSize": 10,
  "totalCount": 1069346,
  "result": [
    {
      "occupation": "Functional Analyst",
      "dateActive": "2024-10-14T14:48:29.000Z",
      "city": "Cleveland",
      "timezone": "CST",
      "contractType": ["DirectEmployment"],
      "language": "en",
      "industry": "Transport",
      "isDuplicate": false,
      "isDuplicateOf": null,
      "isDirect": false,
      "isRecruiter": false,
      "hasSalary": false,
      "jsonLD": {
        "identifier": "66f4d794a315a1138e6bfac2",
        "validThrough": "2024-10-14T14:48:29.000Z",
        "employmentType": "Direct Employment",
        "@type": "JobPosting",
        "salaryCurrency": "USD",
        "description": "**Job Description:** ...",
        "industry": "Transport",
        "title": "SAP TM Functional Analyst",
        "@context": "https://schema.org",
        "url": "https://www.dice.com/job-detail/003170f7-bd59-45d5-a0cf-e4ef93c27419",
        "relevantOccupation": "Functional Analyst",
        "skills": ["Logistics", "SAP TM", "ABAP"],
        "hiringOrganization": {
          "@type": "Organization",
          "name": "Example Corp",
          "url": "https://example.com"
        },
        "jobLocation": {
          "address": {
            "addressCountry": "United States",
            "@type": "PostalAddress",
            "addressLocality": "Cleveland",
            "addressRegion": "TX"
          },
          "@type": "Place",
          "latitude": 30.33804,
          "longitude": -95.02362
        },
        "datePosted": "2024-09-15"
      },
      "source": "dice_us",
      "locale": "en_US",
      "geoPoint": { "lon": -95.02362, "lat": 30.33804 },
      "title": "SAP TM Functional Analyst",
      "skills": ["Logistics", "SAP TM", "ABAP"],
      "dateCreated": "2024-09-15T14:43:24.000Z",
      "timezoneOffset": -6,
      "countryCode": "us",
      "company": "Example Corp",
      "state": "TX",
      "portal": "dice",
      "workPlace": ["Onsite"],
      "careerLevel": ["N/A"],
      "workType": ["N/A"],
      "postCode": "77327"
    }
  ],
  "resultSizeInBytes": 59203
}

This is the very same example as used in the Job API Overview's Data Dictionary.

References

Frequently Asked Questions

What is job metadata?

Job metadata is the structured data attached to a job posting, beyond its free-text description - fields such as the company, publish date, location, salary, employment type, and skills, extracted and normalised from the original posting page. It is what allows you to filter, sort, and query job postings without having to parse the raw text yourself.

What metadata fields does Techmap's API return for each job posting?

Techmap's Job Posting API returns over 30 job-level metadata fields per posting, covering identification (title, occupation, department), company, timing (dateCreated, dateActive, dateExpired), location (countryCode, city, geoPoint, timezone), employment type (workPlace, careerLevel, contractType, workType), compensation, skills, and provenance flags (isDirect, isDuplicate, portal, source). Please see the full field reference on the Job API Overview page.

How is job metadata different from the job description text?

The free-text job description lives in job.jsonLD.description as Markdown. Metadata fields such as job.workPlace, job.careerLevel, or job.countryCode are, by contrast, separately extracted, normalised structured values, so you may filter and group postings (e.g. remote jobs in a given country) without parsing or NLP-processing the description text yourself.

Is Techmap's job metadata based on schema.org?

Yes, indeed. The job.jsonLD field returns the posting's metadata as a schema.org JobPosting object (@type: JobPosting), including hiringOrganization and jobLocation sub-objects. It may be embedded directly on a webpage as structured data markup for job search engines.

Can I query job postings using only metadata filters, without the full text?

Yes, of course. The /search endpoint accepts metadata filters such as countryCode, isDirect, workPlace, careerLevel, and dateCreated as query parameters, so you may retrieve precisely the postings you need without ever touching the description field. Please see the Developer Guide for the full parameter list.

Questions? Contact us if something is unclear or if you want sample data.