The feed that looked filtered
agenticjobs 0.5.0 is out. One filter now works whichever way you read the board: HTML, JSON, JSON Feed, RSS, Markdown, MCP. /?workplace=remote&tags=javascript /api/v1/jobs?workplace=remote&tags=javascript /jobs.md?workplace=remote&tags=javascript /feed?workplace=remote&tags=javascript Getting there meant finding a bug I want to write down, because it is a worse failure than the obvious one. Two of the RSS feeds took a query and threw it away. Not "did not support filtering", which would be fine and visible. They accepted the parameters, ignored them, and answered with the whole board: const page = await searchJobs ( pool , { ... parseQuery ( new URLSearchParams ()), // an EMPTY one limit : 100 , }); Every other surface built its query from the actual request. These two built one from an empty parameter list, so whatever a reader put in the address was discarded before it reached the database. The test that found it is the useful part. Ask every surface for something no listing is, and require all of them to return nothing: workplace=onsite, on a board whose only job is remote /api/v1/jobs 0 correct /jobs.json 0 correct /feed 0 correct /jobs.rss 1 ignored the filter /feed.rss 3 ignored the filter A feed that returns nothing when you filter is either correct or obviously broken, and you can tell which in a second. A feed that returns everything looks like a working feed with a lot of results. Nobody subscribes to ?workplace=remote and then counts. The interesting question was what a filtered everything-feed should contain. /feed.rss carries jobs, employers and candidates. If you filter it by employmentType=contract , what happens to the people? The rule I settled on: tags are the only filter that means the same thing on both halves of the board. Workplace, employment type, seniority, agent policy, a salary floor and an employer are questions about a job, and a person cannot answer them. So a job-shaped filter drops the candidates, and employers drop out of any filtere