Bug Report: /careers URL does not change when you select a role
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.1k
- Forks
- 907
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 430
Description
Report
On /careers, the open roles list is a master-detail view: you select a role on the left and its summary shows on the right. The URL stays at /careers for every role.
To reproduce:
- Open
/careers. - Select a role other than the first one in the list.
- Copy the URL from the address bar and open it in a new tab.
The reader gets the first role in the list, not the role you selected. This makes it impossible to share a link to a specific role from the careers page.
Technical info
The role selection is component state in src/components/Careers/JobListings/index.tsx (selectedJob). Nothing writes the selected role to the URL. Per-role pages exist already (for example /careers/product-engineer, created in gatsby/createPages.ts from the AshbyJobPosting slug), so the target URLs are available — only the sync from the list is missing.
Expected outcome, or solution
When you select a role, the URL becomes a direct link to that role's job page (for example /careers/product-engineer), so the address bar is always shareable. Any query string, such as UTM parameters, must be kept — the "Read more" button already does this with the stored queryString value.
A possible fix is window.history.replaceState on selection, the same pattern /events uses. Draft PR #20198 has an implementation.
Why: Raised in Slack — the URL does not update as you move between roles, so job posts cannot be shared widely.
Created with PostHog from a Slack thread
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/components/Careers/JobListings/index.tsx and compare its selectedJob handling with the URL update pattern used by /events. Check gatsby/createPages.ts and draft PR #20198 to understand the existing per-role paths, then verify that selecting a role preserves query parameters and that the resulting URL opens the selected job.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100