Sharing & SEO

How the public URL works, how the OG sharing card is generated, and what Google Jobs and AI search engines see on your hire pages.

Every published hire page is a public URL that any person — and any search engine — can crawl. This guide covers how the URL is built, what shows up in social previews, and what we render for Google Jobs and AI search engines like ChatGPT, Perplexity, and Gemini.

The URL

Default format:


hire.page/<workspace-slug>/<hire-page-slug>

Example: hire.page/acme/senior-video-editor.

Both segments are kebab-case and lowercase. Editing either slug 301-redirects from the old URL to the new one, so links you've shared keep working.

If you connect a custom domain (Starter+), the same page is also reachable at:


<your-domain>/<hire-page-slug>

…and the workspace segment is dropped.

Social sharing

Every hire page emits Open Graph and Twitter Card meta tags. When you paste the URL into LinkedIn, X, Discord, Slack, Telegram, iMessage, or Notion, you get a custom image with your role title, workspace logo, and accent color.

The OG image is generated on first request and cached. If you update your branding or page title, the next request regenerates the image automatically. Image dimensions: 1200×630, PNG.

Search-engine indexing

Published hire pages are indexable by default. You can opt out per page (Page settings → SEO → Hide from search engines) — this adds a noindex meta tag and removes the page from our sitemap.

Closed pages remain indexed; archived pages return 404 and are removed from the sitemap.

Sitemaps

We auto-generate sitemaps and serve them from the root:

  • sitemap.xml — the marketing-site sitemap
  • sitemap-workspaces.xml — public workspace homepages
  • sitemap-hire-pages.xml — every published, non-noindex hire page across the platform

If you've connected a custom domain, the sitemap for your domain includes only your workspace's hire pages.

JobPosting JSON-LD schema

Every published hire page emits a JobPosting JSON-LD block in the page's <head>. This is the structured-data format Google Jobs uses, and the same format AI search engines parse to extract structured role information.

We fill in:

  • title — the page title
  • description — the role body, stripped of formatting
  • datePosted — when the page was first published
  • validThrough — auto-set to 60 days from publish (resets on edit); for closed pages, the closing date
  • employmentType — derived from the attribute pill (FULL_TIME, PART_TIME, CONTRACTOR, etc.)
  • hiringOrganization — workspace name and logo
  • jobLocation — derived from the location attribute pill
  • baseSalary — derived from the comp band attribute pill, if you've set one

This makes the role eligible to appear in Google Jobs, AI search citations, and any tool that parses JobPosting schema.

What AI search engines see

When ChatGPT, Perplexity, Gemini, or Claude crawls a hire page, they see:

  • Fully server-side rendered HTML
  • The JobPosting schema in the head
  • The full role body as semantic HTML (<h1>, <h2>, <p>, <ul>)
  • The application form with proper <label> and <input> elements
  • Page metadata (title, description, OG tags)

We do not block AI crawlers in our root robots.txt. AI engines pick up hire pages from the standard sitemap.

Page title and description

Each hire page generates:

  • Title<role title> · <workspace name>. Override in Page settings → SEO → Custom title.
  • Meta description — first 160 characters of the role body, with formatting stripped. Override in Page settings → SEO → Custom description.

Frequently asked

Will my hire page appear on Google Jobs?

If indexed (default) and the JobPosting schema is complete (employment type and location at minimum), Google Jobs typically picks it up within 24–72 hours of publish.

Can I add my own SEO tags?

On Growth+ via custom HTML in head (see Tracking & custom code). For most teams, the auto-generated title/description and the custom-title/description overrides are enough.

Will closed pages still rank?

Yes, but with a validThrough date in the past. Google Jobs typically deprioritizes them within a few days of closing.

Can I have multiple custom domains pointing at one workspace?

Not in v2. One workspace, one custom domain.