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:
<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:
/api/public/boards/{company}/jobscurl https://hire.whizztech.ai/api/public/boards/acme/jobs{
"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:
POST /api/public/apply/{jobPostId} (multipart/form-data)
fields: full_name, email, phone?, cv (file), knockout answers
→ { "portal_url": "…" } • fires the application.received webhookThe apply flow#
| Field | Type | Description |
|---|---|---|
| CV upload | pdf/docx/image | Mobile-first, no forced account creation. Scanned and Arabic CVs are fully supported downstream. |
| Knockout questions | inline | Evaluated instantly at submission — no AI involved. Failing answers mark knockout_passed: false; nobody is auto-rejected. |
| Dedupe | automatic | Candidates are deduplicated per organization by email, so a re-application updates the same person. |
| Acknowledgment | Every applicant gets an instant acknowledgment with a magic-link status portal — no more application black hole. | |
| Consent & retention | GDPR/PDPL | Talent-pool consent captured at apply; configurable retention with automatic anonymization. |
| Webhook | application.received | Fired 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):
{
"@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" }
}