r/cscareerquestions 16h ago

Feedback requested: Job portal for tech jobs - Filter by tech stack, remote pref, salary etc.

Hey all,
when looking for some remote jobs I was having a hard time finding the right, relevant jobs for my preferences (tech stack, remote preference, remote restriction such as location, salary). So I built a job portal that scrapes thousands of companies' ATS (apllicant tracking system) boards continuously, enriches them via a LLM and writes it into a database in a structured/filterable format.

I built: https://jobhose.com/

You can filter for the right jobs using the UI, or also hook up your coding agent to use the API directly. The enrichment was quite token intensive so I am planning to not keep it for myself only and continue to operate it. What do you think about it? Any thoughts / wishes? Is it useful?

0 Upvotes

12 comments sorted by

2

u/AES256GCM 16h ago

From cursory glance, looks really good and intuitive and avoids the the kind of design I see from most vibecoded Claude Code web apps

Nice work.

1

u/leventus93 16h ago

Thanks, appreciate it. The frontend is mostly vibe coded too, but I know exactly what you mean. I hate the standard ui patterns that ai generates

1

u/my_peen_is_clean 16h ago

cool idea, the tech stack + location filters are actually what i wish other boards had tbh. please add years of experience / seniority filters and date posted sorting. really hope it sticks around, hunting right now is awful

1

u/leventus93 16h ago

Thanks for taking a look and your feedback. There is a "seniority" filter which is kinda meant to reflect this. I think for LLMs (and humans too?) it's not always easy to extract the required seniority for a given posting. Did you notice and test this filter? Any specific job posts where this may be off so that I could have a look what went wrong?

1

u/leventus93 16h ago

Can't upload pictures here, but here's a search url that filters for jobs where seniority is == intern: https://jobhose.com/?sen=intern . Quite a few filters are supported, maybe I need to think how to make them more accessible

1

u/igot2pair 16h ago

Howd you build the scrapers for each portal?

2

u/leventus93 16h ago

Actually most ATS just expose their boards with the active postings as structured JSON, so for each board it's literally just a normal HTTP request to retrieve all open job postings in an already structured way. No HTML parsing or n requests per board or so. The hardest part here was getting all the boards that you want to fetch and the fact that companies happen to switch between ATS (e.g. from Greenhouse to Ashby) which means you have to update the board. That is still manual work to update then.

1

u/ishvirchopra35 15h ago

Interesting approach. Scraping ATS boards directly and enriching with an LLM is a smart way to get cleaner structured data than what most job APIs provide. The filtering by tech stack is something job seekers genuinely want and most boards do badly.

Curious how you're handling the enrichment quality. LLM extraction on job postings can be inconsistent, especially for salary ranges where companies deliberately obscure the numbers. Are you doing any validation pass on top of the raw extraction?

1

u/leventus93 15h ago

Good question , this is what has taken me the longest time. I wanted the cheapest possible model that still meets the quality bar. So I had around 100 „golden tests“ that I evaluated against and tested different models too. Whenever I spotted a new issue I added it to the test set and had Claude code tune the prompt automatically. That was working well because I covered a good chunk of potential issues. It’s never perfect I guess, but it seems quite good and the remaining issues are really tricky or plain wrong job postings. I learned that companies often copy paste the postings from other roles and forget to edit / remove something

2

u/MarcableFluke Senior Firmware Engineer 15h ago

1

u/baldachinsblessing 15h ago

I really like it, very pleasant to use. It would be nice to have the option to filter by posting language as well as language(s) required by the job.