openapi: 3.1.1 info: title: HiringJobOffer version: "2.1.0" description: Compensation and employment terms for a job Offer. components: schemas: HiringJobOffer: type: object x-beckn-container: offerAttributes x-status: under-review x-tags: - hiring - hiring-jobs - offer x-jsonld: "@context": "https://schema.beckn.io/HiringJobOffer/v2.1/context.jsonld" "@type": "hjoa:HiringJobOffer" description: > Commercial and contractual terms under which a job vacancy is offered. Uses SalarySpecification from hiring-common for structured salary data (supports ranges and multiple currencies/periods in a single sub-object). Duration fields (probation_period, notice_period, contract_duration, offer_validity) use ISO 8601 duration strings (e.g. P3M, P1Y) rather than integer-day counts, enabling unambiguous machine processing across calendar systems and localisation requirements. insurance_provided and accommodation_provided are explicit booleans here (not buried in a benefits list) because they are primary filtering criteria for many hiring verticals (transport, construction, hospitality). properties: salary_specification: $ref: "https://schema.beckn.io/SalarySpecification/v2.1/attributes.yaml#/components/schemas/SalarySpecification" description: Structured salary range with currency and period. x-jsonld-id: "hjoa:salary_specification" benefits: type: array items: type: string description: Named benefit labels (e.g. Health Insurance, ESOPs, Flexible Hours). x-jsonld-id: "hjoa:benefits" other_benefits: type: string description: Free-text description of additional or non-standard benefits. x-jsonld-id: "hjoa:other_benefits" insurance_provided: type: boolean description: > Whether the employer provides insurance (health, accident, or vehicle) as part of the package. Explicit boolean rather than a benefits list item because it is a primary discovery filter in transport and field-work verticals. x-jsonld-id: "hjoa:insurance_provided" accommodation_provided: type: boolean description: > Whether accommodation is included. Explicit boolean because it is a primary filter for migrant workers and field-based roles. x-jsonld-id: "hjoa:accommodation_provided" equity_offered: type: boolean description: Whether equity compensation is part of the package. x-jsonld-id: "hjoa:equity_offered" joining_date: type: string format: date description: Expected joining date (ISO 8601 date, e.g. 2026-06-01). x-jsonld-id: "hjoa:joining_date" contract_duration: type: string description: > ISO 8601 duration for fixed-term offers (e.g. P6M, P1Y). Omit for permanent/open-ended offers. x-jsonld-id: "hjoa:contract_duration" probation_period: type: string description: > Probation period as ISO 8601 duration (e.g. P3M for 3 months, P90D for 90 days). Replaces integer-day field for calendar-system neutrality. x-jsonld-id: "hjoa:probation_period" notice_period: type: string description: > Required notice period once employed, as ISO 8601 duration (e.g. P2M for 2 months, P30D for 30 days). x-jsonld-id: "hjoa:notice_period" offer_issued_at: type: string format: date-time description: Date and time the offer was issued. x-jsonld-id: "hjoa:offer_issued_at" offer_validity: type: string description: > Duration the offer remains valid after issuance, as ISO 8601 duration (e.g. P7D for 7 days, P2W for 2 weeks). x-jsonld-id: "hjoa:offer_validity" remarks: type: string description: Free-text remarks or special conditions attached to the offer. x-jsonld-id: "hjoa:remarks"