---
title: "How to Build a Job Board in Framer"
description: "How to build a job board in Framer: structuring job listings in the CMS, adding category, location, and remote/hybrid filtering, and handling applications properly."
canonical_url: "https://framerhub.io/blog/framer-job-board-guide"
last_updated: "2026-08-25T00:00:00.000Z"
---

Job seekers filter hard. Remote or on-site, department, seniority level, sometimes salary range, often all at once before they'll click into a single posting. A **framer job board** that only supports one filter at a time loses candidates who never see the roles that actually matched what they wanted.

This guide covers structuring job postings in Framer's CMS, adding the category, location, and remote/hybrid filtering candidates expect, and handling the application step itself.

---

## Structuring job listings in Framer's CMS

A job board's data model determines what filtering is even possible later, so get this right before building the page layout.

**Core fields:**

- **Job title** (text)
- **Department/category** (option field) — Engineering, Design, Sales, etc.
- **Location** (text or option field) — city, or "Multiple locations"
- **Work type** (option field) — Remote, Hybrid, On-site
- **Seniority** (option field) — Entry, Mid, Senior, Lead
- **Description** (rich text) — the full posting
- **Posted date** — for sorting newest-first and flagging stale listings
- **Company** (reference field, optional) — if the board lists multiple employers
- **Application method** — an embedded form, or a link out to an external application system

Getting work type and seniority set up as clean option fields (not buried in free-text descriptions) is what makes them filterable. If this data only exists inside the job description text, no filter can act on it.

---

## Building the native job listing grid

Drag a Collection List onto the page, connect it to your jobs collection, and design a card showing title, department, location, work type, and posted date. This gets a working, browsable job board live.

For a small board (a single company's open roles, under 20-30 postings), a native grid with one Dynamic Filter, department or work type, may cover it. Most job boards, especially multi-employer ones, outgrow this quickly.

---

## Where native filtering falls short for job boards

**Combined filtering across department, location, and work type simultaneously.** Native Dynamic Filters apply AND logic across separate controls, but without search, sort, or result counts, the experience of narrowing down feels incomplete once a board has real volume.

**No search across title and description.** A candidate searching "product designer" should match postings by title and by relevant description content, not just an exact category match.

**No easy "posted in last 7 days" style freshness filtering** without extra manual field logic, something job seekers commonly want on active boards.

For the full picture of what native Dynamic Filters can and can't do, see our [Dynamic Filters guide](/blog/framer-dynamic-filters-guide).

---

## Adding real filtering with CMS Filter

[CMS Filter](/plugins/framer-cms-filter) handles the combined filtering job boards need.

**Multi-field search.** Candidates search job titles and descriptions together in one query.

**Combined filters.** Department AND work type AND seniority, active simultaneously, with clear AND/OR control over multi-select options within each filter.

**Sort by posted date, department, or seniority.**

**Active filter chips and result counts.** "18 roles match" with removable chips for each active filter gives candidates confidence and control while narrowing down.

### Setup steps

1. Install [CMS Filter](/plugins/framer-cms-filter) from the FramerHub plugin page or Framer Marketplace.
2. Replace the Collection List with `CMSCollection`, connected to your jobs collection, with a `storeKey`.
3. Add `CMSFilters` for department, work type, seniority, and location.
4. Add `CMSSearch` covering job title and description.
5. Add `CMSSort` for posted date and other relevant orderings.
6. Add `CMSCount` and `CMSClearAll`.
7. For a mobile filter drawer alongside a desktop sidebar, duplicate the `CMSFilters` block with the same `storeKey` to keep both in sync.

---

## Handling job applications properly

The application step is where candidates convert, or don't, so it deserves real attention beyond the listing grid itself.

**Embedded application form.** For boards handling applications directly rather than linking out, an application form needs at minimum name, email, resume/CV upload, and often a cover letter or a few screening questions. [Form Kit](/plugins/framer-form-kit) supports the file upload field this specifically requires, along with validation so incomplete applications don't waste a hiring manager's time. Native Framer forms have no file upload field at all, which makes them a non-starter for this specific use case.

**Linking out to an external ATS.** Many job boards simply link each posting to an external application system or the employer's own careers page. This is simpler to build but means losing visibility into application volume and candidate quality directly within your Framer site.

**Confirmation and next steps.** Whichever method you use, a candidate should see a clear confirmation after applying, ideally with a rough sense of what happens next and roughly when they might hear back.

---

## Multi-employer job boards

If your board lists postings from multiple companies rather than a single employer's open roles, add a separate companies collection with logo, description, and website, then reference it from each job posting. This unlocks company-specific pages (all roles at Company X) and lets candidates filter or browse by employer alongside role-based filters.

For designing supporting sections around your job listings (a hero explaining the board's focus, employer testimonials, an FAQ for candidates or employers), [FramerHub Components](/components) covers common patterns without custom-building each one.

---

## SEO for job board pages

Job boards can capture significant organic search traffic, since candidates search very specific role and location combinations.

**Give every job posting its own indexable page** with a title built from real fields (role, company, location), not a generic template repeated across every listing.

**Use JobPosting structured data.** This schema type is specifically designed for job listings and can make postings eligible for enhanced display in job-focused search results, including salary, location, and employment type when provided.

**Handle expired postings deliberately.** Rather than deleting a filled position outright (losing any accumulated search value), consider marking it "filled" or "closed" and redirecting to a relevant open role or the main board, depending on your SEO strategy.

**Avoid thin postings.** A posting with only a title and one line of description reads as low quality both to candidates and search engines. Encourage a real description with responsibilities and requirements.

---

## Salary and additional listing details

Salary transparency is increasingly expected, and in some regions legally required, on job postings. If you're including salary information:

**Use a range field, not a single number**, since most roles post a band rather than a fixed figure.

**Make it filterable if volume supports it.** A salary range filter (alongside department and location) is a natural addition to the CMS Filter setup once your board has enough postings to justify it.

**Keep formatting consistent** across postings (currency, period: annual vs. hourly) so filtering and display both work reliably.

Beyond salary, consider fields for required experience level, key skills or technologies (as tags, useful for both filtering and search), and benefits summary, depending on how detailed your board needs to be.

---

## Employer accounts and posting workflow

For boards where employers post their own jobs rather than a single admin managing all listings, you'll need a way to intake new postings without manual CMS entry for every single one.

A structured submission form (built with proper validation so required fields like title, department, and location aren't skipped) can feed a review queue, with an admin approving and publishing postings into the CMS collection. This keeps quality consistent while still allowing external submissions, rather than giving every employer direct CMS access.

For a purely internal single-company careers page, this layer isn't necessary, an admin can add postings directly to the collection as roles open.

---

## Common job board mistakes

**Free-text location and work-type fields.** If "Remote" is sometimes written as "remote," "Remote (US)," or buried in the description, filtering breaks down. Use consistent option fields.

**No freshness signal.** Job seekers are wary of stale boards. Show posted dates clearly and consider archiving or flagging postings older than 30-45 days rather than leaving them indistinguishable from new ones.

**Application forms with no file upload.** For roles where a resume is expected, a form that can't accept one is a hard blocker, not a minor inconvenience.

**No mobile-friendly filtering.** Candidates browsing on mobile need the same filtering power as desktop, not a stripped-down experience.

**Inconsistent seniority labeling.** "Senior," "Sr.," and "Level 3" used interchangeably across postings breaks a seniority filter's usefulness. Standardize on one option field with a fixed set of values.

**No clear application deadline or urgency signal where relevant.** For time-sensitive roles, showing a deadline (or lack of one) helps candidates prioritize which postings to act on first.

**Treating every job board the same regardless of scale.** A single-company careers page with 5 open roles doesn't need combined multi-field filtering, search, or sort. Add that layer once volume and variety actually justify it, rather than over-building a small board from day one.

---

## FAQ

### Can you build a job board with Framer's CMS?

Yes. Each job posting works well as a Framer CMS collection item, with fields for role, department, location, remote status, and seniority. The native gap is filtering: job seekers usually filter by several of these at once, which native Dynamic Filters don't fully support.

### How do I add a remote/hybrid/on-site filter to a Framer job board?

Set up a work-location option field on your job collection with values like Remote, Hybrid, and On-site. Native Dynamic Filters can bind a single dropdown or tab group to this field. For combining it with department, seniority, and search simultaneously, the [CMS Filter plugin](/plugins/framer-cms-filter) handles the combined multi-field logic.

### What fields does a Framer job board need?

At minimum: job title, department or category, location, remote/hybrid/on-site status, seniority level, and a description. Most job boards also add a company reference field (if listing multiple employers), a posted date, and an application link or embedded application form.

### How should job applications work on a Framer job board?

Two common patterns: an embedded application form directly on the job page (collecting name, email, resume upload, and cover letter), or a link out to an external application system (an ATS, or a company's own careers page). A form plugin with file upload support, like [Form Kit](/plugins/framer-form-kit), handles the first pattern natively within Framer.

### Can a Framer job board support multiple employers posting jobs?

Yes, by adding a company reference field to your job collection, connected to a separate companies collection with its own logo, description, and details. This lets you filter and display jobs by company as well as by role, location, or department.

---

## Bottom line

A **framer job board** needs to support the way candidates actually search: department, location, work type, and seniority, often combined, plus a search bar for anything more specific. Native Framer covers the CMS structure and a basic grid; [CMS Filter](/plugins/framer-cms-filter) covers the combined filtering, and [Form Kit](/plugins/framer-form-kit) covers a proper application flow with file uploads.

Set both up before your listing count grows past what a single unfiltered grid can reasonably handle. Whether you're building a single-company careers page or a full multi-employer board, getting the CMS field structure right at the start, clean option fields for department, location, work type, and seniority, is what makes every filtering and search feature possible later without a painful data cleanup pass.

*Last updated: August 2026*
