How to build a company directory and profile pages

Add company browse, search, profile, jobs, similar companies, markets, and salary pages.

Company pages turn isolated listings into an employer directory. Build a browse/search route, one canonical profile route, and related job and salary sections. All reads are public; feature and entitlement flags still decide whether each surface appears.

Browse with numbered pages

Preserve filters and search terms when linking to another page. Disable “next” when the response contains no further results; do not invent a total when the envelope does not provide one.

Search when the visitor supplies a query

Use one canonical directory URL and encode query state in search parameters. Search result pages with arbitrary queries should generally not become separate canonical landing pages.

Compose a company profile

Render the employer description, verified links, markets, locations, open jobs, salary data, and related companies only when returned. Map a typed not-found error to the framework’s 404 boundary.

A company can also carry the board's own profile fields. Render public custom field values from customFieldValues and selected collection entries, such as benefits or technologies, from objectReferences. Arrange them in the order the operator set, which forms.company on the board context returns. See Profile fields and collections and Collection examples.

Image gallery and file fields store file ids in customFieldValues. Render them from customFieldMedia, which is keyed the same way and lists each file's name, contentType, sizeBytes, and an absolute url. Published images come back as permanent public asset URLs you can cache and use directly in an <img>. Other files, and an image saved moments ago that is still being published, link to a signed download that expires after at least 24 hours, so read url from each response rather than storing it.

Add market landing pages

Resolve a market slug before using it as a filter:

If market.redirectTo is present, redirect to that canonical route. Otherwise use market.sourceSlug for the list filter. Redirect aliases instead of publishing duplicates.

Verify the company journey

  1. Search for a known employer and confirm its profile links to the canonical company route.
  2. Change page and confirm the offset changes by exactly the page size without duplicate cards.
  3. Open an unknown company and confirm a native 404 response.
  4. Confirm closed jobs disappear from the open-jobs section after the public cache revalidates.
  5. Inspect raw HTML for canonical metadata on directory, market, and profile routes.

Continue with Blog and editorial pages to add durable search landing content around the catalog.