Skip to content

Add company filter to job filters#278

Merged
MichaelChudLife merged 9 commits into
monashcoding:developmentfrom
MichaelChudLife:frontend/michael/company-filter
Jun 19, 2026
Merged

Add company filter to job filters#278
MichaelChudLife merged 9 commits into
monashcoding:developmentfrom
MichaelChudLife:frontend/michael/company-filter

Conversation

@MichaelChudLife

Copy link
Copy Markdown
Contributor

Summary

Adds a Companies section to the job Filters modal (under Experience) that lets users hide specific companies from results, with a live per-company listing count. All companies are shown by default; users opt out of the ones they don't want to see.

  • Each company shows a count that reflects all other active filters but not the company exclusion itself (standard faceted search).
  • Uncheck a company (or use the chip ✕) to hide it; a single Clear restores all. Only the company filter is affected — other filters are preserved.
  • State lives in the URL (excludedCompanies[]), so exclusions persist on reload and are cleared by Reset Filters.

Changes (by commit)

  1. Filter state + URL — add excludedCompanies to JobFilters, parse/trim/dedupe it in the provider, include it in ResetFilters.
  2. BackendgetCompanyFacets aggregates per-company counts ($group on company.name), exposed to the client via a "use server" wrapper; buildJobQuery applies an excludedCompanies $nin; the jobs cache key now includes exclusions (fixes a stale-cache collision).
  3. UI — new CompanyFilterSection: searchable, count-annotated checklist; removable "hidden" chips (capped at 6 + "+N more"); scroll-shadow affordance; smooth height animation on open/close/row-wrap; memoised rows for performance. Rendered under Experience in the modal.
  4. Config — gitignore *.env (the root frontend.env was previously unignored) and add frontend/.env.example.
  5. DocsPRPs/company-filter.md describing the design as shipped.

Test plan

  • Open Filters → Companies lists companies with counts; counts respect other filters (e.g. Industry = Quant Trading).
  • Uncheck a company → it disappears from results, total drops, other counts unchanged; a hidden chip appears.
  • Chip ✕ / unchecking the last one animates closed smoothly; Clear empties exclusions without touching other filters.
  • Reload preserves exclusions via URL; Reset Filters clears them.
  • npm run build, npm run lint, npx tsc --noEmit all pass.

Notes

  • Exclusion-only by design (no "hide all", no inclusion mode) and modal-only (not added to the mobile dropdown bar). Company logos and list virtualisation are out of scope for v1.

@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown

@Kinetic200 is attempting to deploy a commit to the monash-coding's projects Team on Vercel.

A member of the Team first needs to authorize it.

@oliverhuangcode oliverhuangcode left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@vercel

vercel Bot commented Jun 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mploy-app Ready Ready Preview, Comment Jun 19, 2026 6:13am

@MichaelChudLife MichaelChudLife merged commit 5c6f276 into monashcoding:development Jun 19, 2026
3 checks passed
@MichaelChudLife MichaelChudLife deleted the frontend/michael/company-filter branch June 19, 2026 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants