Docs · API · Career Pages

Career Pages.

Publishing a job puts it on a branded, SEO-indexed career page automatically. Three integration modes, from zero-code to fully custom — all fed by the same jobs you manage over the API.

1 — Hosted page#

Every organization gets a hosted careers site at https://jobs.whizztech.ai/{company} — server-rendered, mobile-first, RTL-aware for Arabic postings, and carrying JobPosting JSON-LD on every job so Google for Jobs indexes it for free. Configure the company slug, logo, brand color, and intro at Dashboard → Settings. Custom domains (careers.yourcompany.com) are available on Growth and above.

2 — One-line embed#

Drop one script tag on any page of your site and your open roles render right there, inheriting the apply flow (CV upload, knockout questions, consent) with no further work:

Your website
<script
  src="https://hire.whizztech.ai/embed.js"
  data-company="acme">
</script>

The widget stays in sync automatically — publish or close a job over the API and the embed updates on the next page load.

3 — Public JSON API#

Building the careers page yourself for full SEO control? Read the public board — no authentication, published jobs only:

GET/api/public/boards/{company}/jobs
Request
curl https://hire.whizztech.ai/api/public/boards/acme/jobs
Response · 200 OK
{
  "company": { "name": "Acme Logistics", "slug": "acme" },
  "jobs": [
    {
      "id": "4d1a8f36-9e02-47b8-b7c4-3a92d5e60f18",
      "slug": "fleet-operations-manager-9f2c1a",
      "title": "Fleet Operations Manager",
      "location": "Dubai, UAE",
      "location_type": "onsite",
      "employment_type": "full_time",
      "url": "https://jobs.whizztech.ai/acme/fleet-operations-manager-9f2c1a",
      "published_at": "2026-07-10T09:46:20.000Z"
    }
  ]
}

Link each job's url for the hosted apply flow, or build your own form against the public apply endpoint:

Apply endpoint (public, multipart)
POST /api/public/apply/{jobPostId}   (multipart/form-data)
fields: full_name, email, phone?, cv (file), knockout answers
→ { "portal_url": "…" }   • fires the application.received webhook

The apply flow#

FieldTypeDescription
CV uploadpdf/docx/imageMobile-first, no forced account creation. Scanned and Arabic CVs are fully supported downstream.
Knockout questionsinlineEvaluated instantly at submission — no AI involved. Failing answers mark knockout_passed: false; nobody is auto-rejected.
DedupeautomaticCandidates are deduplicated per organization by email, so a re-application updates the same person.
AcknowledgmentemailEvery applicant gets an instant acknowledgment with a magic-link status portal — no more application black hole.
Consent & retentionGDPR/PDPLTalent-pool consent captured at apply; configurable retention with automatic anonymization.
Webhookapplication.receivedFired on every submission — see Webhooks.

JobPosting schema#

Hosted pages render schema.org JobPosting JSON-LD generated with the JD (including validThrough from closes_at — Google requires expired jobs to drop out, which the lifecycle handles automatically):

Rendered JSON-LD (abridged)
{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Fleet Operations Manager",
  "datePosted": "2026-07-10",
  "validThrough": "2026-09-30T23:59:59Z",
  "employmentType": "FULL_TIME",
  "hiringOrganization": { "@type": "Organization", "name": "Acme Logistics" },
  "jobLocation": { "@type": "Place", "address": "Dubai, UAE" }
}