Jobs
SEO for job boards
Public job URLs come from unique slugs. Pending and unpaid jobs should stay out of the sitemap and the index.
A job board’s indexable pages are the ones a candidate can open. In the Job Board Starter that means a job with a unique slug, a company slug, and a category slug. status starts as "pending" and paid starts false, so a submission URL must not be generated for Google until the Stripe return route publishes it.
What to emit
Give each published job its own title and description from the title, location, and description fields. Canonical URLs should use the slug, not the database id. Company pages can list that company’s published jobs. Category pages can list the category. Both indexes should ignore pending rows.
What to leave out
Do not add unpaid jobs to the sitemap. Do not render them on the public board. The payment check is accepting paid job submissions. The columns are in the job board schema.
Programmatic pages here are just the slug routes you already have: one page per published job, company, and category. Generating pages for empty categories adds thin URLs. Skip those.
The same published-only rule is how the directory kit treats listings in SEO architecture for large Next.js directories.