DocsFeaturesPublic Job Board

Public Job Board

SEO-friendly public job listings where applicants can browse and apply to open positions. Covers routing, structured data, and customization.

Public Job Board

Reqcore includes a public-facing job board at /jobs where applicants can browse open positions and submit applications — no login required.

How It Works

When a recruiter changes a job's status to Open, the job automatically appears on the public board. When the status changes to Closed or Archived, the job disappears from the board.

Job Listing Page (/jobs)

The listing page shows all open jobs across all organizations, featuring:

  • Job title, location, employment type
  • Organization name
  • Posted date
  • Link to the full job detail page

Job Detail Page (/jobs/:slug)

Each open job has a dedicated page with:

  • Full job description (rendered from Markdown)
  • Location and employment type
  • Salary range (if provided)
  • Remote status
  • Apply Now button linking to the application form

SEO Optimization

Public job pages are optimized for search engines and job aggregators:

Structured Data (JSON-LD)

Each job detail page includes a JobPosting schema with:

{
  "@type": "JobPosting",
  "title": "Senior Software Engineer",
  "description": "...",
  "employmentType": "FULL_TIME",
  "jobLocation": { ... },
  "baseSalary": { ... },
  "hiringOrganization": { ... },
  "validThrough": "2026-06-01"
}

This structured data powers Google for Jobs and other job search engines.

URL Slugs

  • Slugs are auto-generated from the job title + short UUID (e.g., /jobs/senior-engineer-a1b2c3d4)
  • Recruiters can set custom slugs for more memorable URLs
  • Slugs are URL-safe and human-readable

Route Rules

  • Job listing and detail pages use ISR (Incremental Static Regeneration) with a 1-hour revalidation window
  • This balances SEO performance with fresh content

Public Application Flow

  1. Applicant visits /jobs/:slug
  2. Clicks Apply Now → redirected to /jobs/:slug/apply
  3. Fills in the application form (custom questions + file uploads)
  4. Submits → redirected to /jobs/:slug/confirmation

Anti-Spam Protection

  • Honeypot field on the submission form
  • IP-based rate limiting on the public apply endpoint
  • No CAPTCHA required (for better UX)

API Endpoints

MethodPathDescription
GET/api/public/jobsList all open jobs (no auth)
GET/api/public/jobs/:slugJob detail with custom questions (no auth)
POST/api/public/jobs/:slug/applySubmit an application (no auth, rate-limited)

Dynamic Sitemap

Open jobs are automatically added to the sitemap via a dynamic source endpoint at /api/__sitemap__/urls. This ensures search engines discover new job postings as they are published.

Next Steps