A company's own careers page is the source of its job postings, and that page usually runs on a hiring platform such as Greenhouse, Lever, Ashby or Workday. Job boards copy the posting from there, and a copy can stay up after the original has closed.
So the freshest place to look for a job is the company career pages themselves. The trouble is that there are thousands of them, and no single search box covers them all.
This post shows two ways to search Greenhouse, Lever and Ashby jobs in one place:
- With Google and the
site:operator, which is free and takes some work. - With JobBloom, an AI job search engine I built to do the same thing in one sentence.
Method 1: Google with the site: operator
Each hiring platform hosts its customers' job pages on one domain. If you limit a Google search to that domain, you search every company on the platform at once.
| Platform | Domain to search |
|---|---|
| Greenhouse | boards.greenhouse.io, job-boards.greenhouse.io |
| Lever | jobs.lever.co |
| Ashby | jobs.ashbyhq.com |
| Workable | apply.workable.com |
| SmartRecruiters | jobs.smartrecruiters.com |
A search for remote backend jobs on the first three looks like this:
(site:boards.greenhouse.io OR site:job-boards.greenhouse.io OR site:jobs.lever.co OR site:jobs.ashbyhq.com) "backend engineer" (TypeScript OR "Node.js") remote This works, and it's worth knowing. It also has four problems:
- Many results are closed. Google keeps a page in its index after the job is taken down. You only find out when you click.
- "Remote" is just a word. A posting that says "this role is not remote" matches the search as well as a remote job does.
- There is no ranking by fit. You get pages that contain your words, in Google's order, and you read each one to see if it suits you.
- The query gets long. Every platform you add is another
site:clause, and Google limits a search to 32 words.
Method 2: describe the job in one sentence
JobBloom runs the same kind of search for you. You describe the job in plain English, and it searches company career pages on 33 hiring platforms. It's free and needs no sign-up.
I typed "Remote backend engineer jobs, TypeScript or Node.js" on 15 November 2026. This is what came back:
The search returned six open jobs. The top three were a Senior Backend Engineer (Node.js) role at Nuitée with a 95% match, a Senior Backend Engineer role at Ora So with 92%, and a TypeScript role at Databento with 88%. Each result has a short summary, skill tags, the location, and the hiring platform the posting came from. "View role" opens the original posting on the company's own page.
You can also choose which platforms to search. All 33 are on by default:
How the search works
The pipeline has five steps. The loading screen groups them into three stages and updates as they run:
1. Understand the sentence
An LLM reads the prompt and pulls out the hard requirements: the role, the location, whether the job is remote, hybrid or on-site, the job type, and the must-have skills. It then writes a short search query. You can see that query on the results page, next to "Searched for".
2. Search career pages only
The query goes to a web search API, limited to the domains of the supported hiring platforms. This is the site: trick from method 1, applied to 33 platforms at once. Each platform is a small config entry:
export const approvedJobHostFamilies = [ { provider: 'greenhouse', queryHost: 'boards.greenhouse.io', hosts: [ 'boards.greenhouse.io', 'job-boards.greenhouse.io', 'job-boards.eu.greenhouse.io', 'boards.eu.greenhouse.io', ], }, { provider: 'lever', queryHost: 'jobs.lever.co', hosts: ['jobs.lever.co', 'jobs.eu.lever.co'], }, // ...31 more ] Because the search is limited to these domains, job boards and reposts never enter the results.
3. Rank cheaply before any AI reads a page
LLM calls are the expensive part of a search, so results first get a ranking from free signals: title match, location and age. Only the most promising ones go on to the next step. Each search has a fixed budget of 12 jobs to read, and up to 8 more only when fewer than 5 good matches come back.
4. Check that each job is still open
This step fixes the biggest problem with the Google method. Before a job is shown, JobBloom fetches the posting and checks it with plain HTTP, with no LLM involved:
// Simplified from the real check. // The posting's own closing date has passed. if (validThrough < Date.now()) return 'unavailable' // The job URL now redirects to the company's job list. if (isDeadLinkRedirect(requestedUrl, finalUrl)) return 'unavailable' // The page says the job is closed. if (hasUnavailableMarker(pageText, hostname)) return 'unavailable' The check matters more than I expected. In October I rechecked 1,522 job postings that JobBloom users had found, and of the 1,326 I could check, 888 (67%) no longer led to an open job. Most of them didn't say "closed". They returned an error or quietly redirected to the careers homepage.
If a site is slow or blocks the check, the result is "unknown", and the job stays in the list. A job is only hidden when the check is sure it's closed.
5. Read, score and filter
The jobs that pass are read in full to extract the title, company, location, skills and a match score. The requirements from step 1 are then applied as rules. If you asked for remote, an on-site job is dropped even when every keyword matches. Close matches are shown separately as related roles.
Which method should you use?
Google site: search | JobBloom | |
|---|---|---|
| Cost | Free | Free, no sign-up |
| Platforms per search | As many as fit in 32 words | 33 |
| Closed jobs removed | No | Yes |
| Understands "remote" or "hybrid" | No, it matches the word | Yes, as a rule |
| Ranked by fit | No | Yes, with a match score |
| Full control over the query | Yes | Partly: you can edit the prompt and choose platforms |
Use the Google method when you want exact control, for example to search one platform for an unusual phrase. Use JobBloom when you want a short list of open jobs that fit what you described.
Try it
Describe the job you want at jobbloom.co and see what comes back. If the results miss a hiring platform you rely on, tell me in the comments which one.




