Job Board Enshittification

Published at 09:45 on 12 June 2026

About two months ago, I started experimenting with scraping online job listings. The main motive was just to save myself frustration; I have long been disappointed with the quality of the search results from such boards. Why should I waste time wading through a bunch of crap I am, given my search specifications, self-evidently uninterested in?

The scraper gathers the texts of recent job listings from a variety of different online job boards into a data file. A separate postprocessing step then reads through that data file, doing some rudimentary natural language processing on the texts of the job listings therein. Basically, it does keyword searches, giving points for matches, and bonus points for combinations of matches I view as signs a job is likely to be particularly interesting. Then it sorts the listings by the resulting scores and presents them to me.

And indeed (pun unintended), it is not unusual for some jobs to end up with a score of zero. A complete goose egg. The only way this is possible is if none of the keywords I am searching for match.

Another thing my scraper does is filter out things it has seen before. I keep track of the primary keys the site uses to store the listings in their database, and when I last saw them. (These primary keys are easy enough to deduce, because they inevitably show up in the HTML link to each job details page.) Today Indeed proudly returned a job I had last seen in the middle of last month as its first result, despite my request to sort the results in descending chronological order.

Why do this? Why show listings that have nothing whatsoever to do with my search terms? Why show some old listings I saw a month ago to me again? Because money. Indeed is obviously charging its clients extra for these services, so their ads get better reach. It may be bad for job seekers like me, but it is good for their own bottom line. This is textbook enshittification, wherein market forces reward businesses for offering worse services.

Have I mentioned yet that a dozen or so years ago, you didn’t have to do anything backhanded to scrape jobs from Indeed? They had a public API whose purpose was to make it easy for a program to download and filter job listings. They got rid of that, of course, because it is contrary to a business model that now includes shoving old crap or irrelevant crap at users in return for money.

And it’s not just Indeed. It’s most of them. The only job board that seems completely immune from this trend, in fact, is Job Bank, which is a public service run by the Government of Canada. They offer a public API, too. Let capitalism fans and their mythology of private enterprise always offering superior products put that in their pipe and smoke it.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.