{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Job Posting", "description": "Schema for individual job listings extracted from job boards and company career pages.", "type": "object", "properties": { "title": { "type": "string", "description": "Job title or position name. Commonly found in: page h1 tag, job header, og:title meta tag." }, "company_name": { "type": "string", "description": "Name of the hiring company. Commonly found in: company header, job details section, breadcrumb navigation." }, "company_domain": { "type": "string", "description": "Website domain of the hiring company. Commonly found in: company website link, apply URL domain, company profile link." }, "location": { "type": "string", "description": "Job location (city, state, country or Remote). Commonly found in: job metadata row, location badge, job details section." }, "remote_type": { "type": "string", "enum": ["remote", "hybrid", "onsite", "other"], "description": "Remote work type for this position. Commonly found in: remote badge, job metadata row, work arrangement field." }, "employment_type": { "type": "string", "enum": ["full_time", "part_time", "contract", "internship", "other"], "description": "Employment type or contract duration. Commonly found in: job type badge, employment type field, job metadata row." }, "seniority_level": { "type": "string", "enum": ["intern", "entry", "mid", "senior", "staff", "principal", "director", "vp", "exec", "other"], "description": "Seniority level of the position. Commonly found in: job title, seniority field, experience level badge." }, "salary_min": { "type": "number", "description": "Minimum salary offered. Commonly found in: salary range display, compensation section, job metadata row." }, "salary_max": { "type": "number", "description": "Maximum salary offered. Commonly found in: salary range display, compensation section, job metadata row." }, "salary_currency": { "type": "string", "description": "ISO 4217 currency code for salary values. Commonly found in: salary display, compensation section." }, "salary_interval": { "type": "string", "enum": ["annual", "hourly", "monthly", "other"], "description": "Pay interval for salary figures. Commonly found in: salary display label, compensation section." }, "equity": { "type": "boolean", "description": "Whether equity or stock options are offered. Commonly found in: compensation section, benefits list, equity mention in description." }, "description": { "type": "string", "description": "Full text of the job description. Commonly found in: job description section, main content area, responsibilities section." }, "requirements": { "type": "array", "items": { "type": "string" }, "description": "List of job requirements or qualifications. Commonly found in: requirements section, qualifications list, what we're looking for." }, "tech_stack": { "type": "array", "items": { "type": "string" }, "description": "List of technologies, tools, or programming languages mentioned. Commonly found in: tech stack section, requirements list, job description body." }, "benefits": { "type": "array", "items": { "type": "string" }, "description": "List of benefits offered. Commonly found in: benefits section, perks list, what we offer section." }, "apply_url": { "type": "string", "format": "uri", "description": "Direct URL to apply for the position. Commonly found in: apply button href, application link, CTA button." }, "posted_date": { "type": "string", "format": "date", "description": "Date the job was posted. Commonly found in: posted date metadata, listing date field, job metadata row." }, "expiry_date": { "type": "string", "format": "date", "description": "Date the job listing expires. Commonly found in: closing date field, apply by date, job metadata." }, "job_id": { "type": "string", "description": "Platform or company internal job identifier. Commonly found in: job ID field, URL parameter, reference number." }, "source_platform": { "type": "string", "description": "Platform where the job was found (e.g., LinkedIn, Indeed). Commonly found in: site domain, platform branding, page footer." }, "department": { "type": "string", "description": "Department or team for this role. Commonly found in: department field, team name, job metadata row." }, "visa_sponsorship": { "type": "boolean", "description": "Whether visa sponsorship is available. Commonly found in: visa sponsorship field, requirements section, job description body." }, "page_title": { "type": "string", "description": "Title of the source page. Tabstack auto-fills this from page metadata when left empty." }, "favicon": { "type": "string", "format": "uri", "description": "Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty." } }, "required": ["title", "company_name", "location", "description", "apply_url"] }