Semantic Search vs Keyword Search: Why Our Board Uses Rules

Keyword search matches words, semantic search matches meaning, and each fails in its own way. We run both, plus our own rules, on the same four job postings.

3D illustration of a glass pool where a hook, a net and an amber-framed grate each catch card shapes
Illustrative image, generated with AI.
On this page 11 sections
  1. Keyword search, in plain words
  2. Semantic search, in plain words
  3. Four postings, three methods
  4. What each is good at, with examples
  5. What job boards say they use
  6. What ApplyEze does instead, and what it misses
  7. How to get good results from each
  8. A two-minute test for any board
  9. Which matters for you
  10. Frequently asked
  11. Sources

Semantic search vs keyword search comes down to what gets compared. Keyword search compares the words in your query with the words in a document. Semantic search converts both into numbers that stand for meaning and compares those. So keyword search misses the job that says the same thing in other words, and semantic search can return a job that reads alike and differs on a fact that matters, such as a license. ApplyEze's job board does a third thing: hard filters and a rule-based fit score, with no embeddings and no AI in the ranking, so every result has a reason you can read. Below, all three run on the same four sample postings, with the math shown.

Keyword search, in plain words

A keyword engine builds an index, like the one at the back of a book, mapping each word to the documents that contain it. Then it scores each document against your query. The usual formula is BM25, the default in Elasticsearch. It rewards three things: your word appearing in the document, your word being rare across all documents, and the document being short rather than padded.

Here are four sample postings, written for this example, and the query customer success manager.

  • A. Customer Success Manager: own renewals and adoption for mid market accounts
  • B. Client Partner: keep accounts healthy, drive renewals and expansion
  • C. Customer Support Manager: lead a team that answers support tickets
  • D. Warehouse Manager: run shifts and inbound freight

Rarity first. "Success" appears in one posting of four, so it is worth the most (1.204). "Customer" is in two (0.693). "Manager" is in three (0.357). Using Elasticsearch's default settings (k1 of 1.2, b of 0.75), one term for posting A works out like this. The posting has 11 words and the average is 9.25, so:

1.204 × 2.2 ÷ (1 + 1.2 × (0.25 + 0.75 × 11 ÷ 9.25)) = 1.117

Adding each word's score for each posting:

PostingcustomersuccessmanagerBM25 total
A. Customer Success Manager0.6431.1170.3312.09
C. Customer Support Manager0.67100.3451.02
D. Warehouse Manager000.3960.40
B. Client Partner0000

Posting B describes the same job as A and scores zero, below a warehouse role. This has a name, the vocabulary problem, and it is old. In a 1987 paper, Furnas and colleagues found that two people favored the same term for something less than 20% of the time, and that access through one favorite word led to "80-90 percent failure rates in many common situations".

Semantic search, in plain words

A semantic engine runs each text through a model that outputs a list of numbers, called an embedding. Texts with similar meaning end up with similar lists. To search, it compares the list for your query with the list for each document, usually by the angle between them, which is cosine similarity.

To show the arithmetic, here are three invented numbers per text, standing for "keeping accounts", "handling tickets" and "warehouse work". These are made up. Real embeddings have far more numbers, and no person assigns what any of them means.

TextInvented vectorCosine with the query
Query: customer success manager0.90, 0.30, 0.10
A. Customer Success Manager0.92, 0.30, 0.050.999
B. Client Partner0.78, 0.45, 0.100.98
C. Customer Support Manager0.30, 0.90, 0.100.60
D. Warehouse Manager0.05, 0.10, 0.950.19

Posting B jumps to second, with no shared words, which is the whole point of the method. Because we chose those numbers, this shows what the method is built to do and proves nothing about how well any real model does it.

Four postings, three methods

The third column is our own title rule, which we ran for real: the target role Customer Success Manager, from our starting catalog, through the matcher's code on 9 November 2026.

Sample postingKeyword (BM25)Semantic (invented vectors)ApplyEze title rule
A. Customer Success Manager2.090.999Full match
B. Client Partner00.98No match
C. Customer Support Manager1.020.60Partial match
D. Warehouse Manager0.400.19No match

Read the rule's column closely. It misses posting B the same way keyword search does, and it gives partial credit to posting C, a different job that shares two words. List Client Partner as a second target role and posting B becomes a full match. That is the rule's bargain: it does what you tell it, and only what you tell it.

What each is good at, with examples

What you needKeyword searchSemantic search
Find a role under a title you did not think ofMisses itGood at this
Search in a sentence, such as "help software customers renew"Weak, the words may not appearGood at this
Find an exact certification or tool, such as CPA or Workday HCMGood at thisCan drift to related terms
Find a job ID or a specific employerGood at thisCan miss it
Tell Java from JavaScriptThe words differ, so it canThe texts read alike, so it can blur them
Tell Registered Nurse from Licensed Practical NurseThe words differ, so it canThe texts read alike, so it can blur them
Explain why a result appearedEasy, you can see the wordsHard, a score from a model

No method wins everywhere. BEIR, a 2021 benchmark across 18 datasets, found BM25 a robust baseline. Re-ranking and late-interaction models scored highest on average, at high computational cost, and dense retrieval models often underperformed other approaches. That is one reason many systems run both. Hybrid search sends one query to both engines and merges the two lists by position, often with Reciprocal Rank Fusion. Others retrieve first and let a slower model re-rank the top results.

What job boards say they use

These are companies' own descriptions, read on 9 November 2026. A page that does not mention a method tells you nothing about what runs behind it.

CompanyWhat it saysMethod named
LinkedIn, January 2026Large language models "to create a semantic search experience": jobs and queries become dense vectors, then a small language model scores the retrieved jobs against the queryYes, embeddings and a re-ranking model
Monster"uses a concept based semantic match and weighs related skills in the body", and it advises quotes for exact termsYes, semantic
ApplyPass, an auto-apply tool that competes with ApplyEze"AI/ML based vector based matching from your resume and live job descriptions", retrained nightly on your likes and dislikesYes, vectors
Indeed"connect people to jobs based on fit, not just keywords", using "more than 10,000 attributes"AI, no method named
Dice, updated January 2024"Beyond traditional keyword matching", with machine learning and a knowledge graphPartly
JobrightCompares skills, experience, seniority, industry and preferences with each job's requirementsAI, no method named

So "job boards use semantic search" is true of some and unknown for others. For more on the largest of them, see how LinkedIn job matching works.

What ApplyEze does instead, and what it misses

"ApplyEze does not rank by text similarity. It ranks on your target titles and the requirements it reads out of each posting." The matching path has no embeddings at all. Here is what happens to a posting.

  1. Parse. Each posting is parsed by our own rules first. When the rules cannot read a posting well enough, an AI model reads it on some application systems. The output is fields: skills, years, level, degree.
  2. Filter. Postings that fail on work authorization, location or a company you blocked are removed before scoring.
  3. Score. Matches are ranked by a fit score from your role, skills, industry, level, education, experience and pay. Title counts most. Weights stay out of this post, and job match scores explained shows how to read the result.
  4. Sort. Your first target title ranks first, then the second, and score decides inside each group.
Four steps: upload a resume, confirm the parsed profile, pick AI-suggested target roles, and see real matches.
How a resume becomes a working ApplyEze profile.

That chart shows where your titles enter: at the third of four steps, suggested from your resume and then yours to keep, remove or add to. The board in the fourth step ranks from that list, which is why a semantic ranker's main job, guessing related titles for you, falls to you here.

What this gives you: you can see why a job is on your board, because the factors are the score. The same profile and posting give the same result. You set the priority, and nothing reorders it behind you. Level is handled directly, so Director of Customer Success does not match Customer Success Manager unless you are at manager level or above. And the supply comes straight from employers: more than 100,000 employer boards polled directly, about 900,000 active jobs on 5 November 2026.

What rules ask of you in return:

  • Name your titles. Your work under a title you did not list ranks low. This is posting B again. Semantic search exists to catch it, and on this board you catch it by listing several titles, as target job titles explains.
  • Use the posting's skill names. Skills compare by name. We ran a profile listing "postgres" against a posting requiring "postgresql", and it read as missing. Fix the name on your profile and it counts.
  • Read past shared words. Customer Support Manager gets partial credit for Customer Success Manager, as the table shows. One paragraph of the posting settles it.

Rules are a trade: you get something you can read and steer, and you take on the work of naming the titles. AI appears later on your path, for a different task: "For each application, an AI model reads that posting and your real history and writes a resume for it." That model does not choose the job. You do.

How to get good results from each

On a keyword search:

  • Search each title separately, using the employer's wording from real postings, and include the abbreviation and the long form.
  • Use quotes for exact phrases, and use operators where they exist. LinkedIn's help page documents quotes, parentheses, and AND, OR and NOT in capitals. Test them on each board, since a page rarely says whether they still work on its job search.
  • Scan for your skills in the text. Resume wording has its own version of this problem, covered in resume keyword matching.

On a semantic search:

  • Describe the work in a sentence, not only a title, and try two phrasings.
  • Check level and licenses by hand. Read the first 20 results for drift toward roles that sound similar and sit a level up or need a credential you lack.
  • Use filters for facts, such as location and seniority, since those are what similarity can blur.

On a rule-ranked board like ours:

  • List every title you would accept, in order.
  • Read the matched and missing skills on each role, and fix wrong names on your profile.
  • Open your lowest-ranked rows now and then. If you find a job you want, add its title.

A two-minute test for any board

You can often tell what a search box is doing.

  1. Search a title with an unusual synonym, such as "people operations partner" if you do HR work. Look at the top ten. If several contain none of your words in the title or text, something other than word matching is at work.
  2. Search a sentence describing the work. Word matching returns little sense from a full sentence. A semantic engine often returns sensible results.
  3. Put an exact tool in quotes, then remove the quotes. If the results barely change and neighbors of that tool appear, the box is not honoring exact terms.

These are clues, not proof, because most boards also rank on signals you cannot see.

Which matters for you

Your situationWhat helps most
Changing fields, or your title is unusualSemantic search to discover titles, then list those titles anywhere you can
Licensed or credentialed work, such as nursing or accountingExact terms, in keyword search or a filter
Your title is common and you want volumeAny method works. The filters and your own triage matter more
You want to know why a job was suggestedA method that shows its factors

A practical approach uses two tools for two jobs: use a semantic search to find out what your work gets called, then use those words everywhere titles are listed.

To judge a board built on rules, run it on your own titles. Your first 50 applications on ApplyEze are free, with no card: you pick the matches and queue them in the desktop app on your computer, and ApplyEze fills and submits each form. You can start here.

Frequently asked

What is the difference between semantic search and keyword search?

Keyword search compares the words in your query with the words in a document and scores the overlap. Semantic search turns both into lists of numbers called embeddings and compares those, so two texts can match with no words in common. Keyword search misses synonyms, and semantic search can blur exact details such as a license or a product name.

Is semantic search better than keyword search?

Not across the board. A 2021 benchmark across 18 datasets, BEIR, found the keyword method BM25 a robust baseline and found that dense retrieval models often underperformed other approaches. Many production systems run both and merge the results, which is called hybrid search.

Do job boards use semantic search?

Some say so. LinkedIn describes large language models and embeddings in its job search, and Monster describes a concept based semantic match. Indeed says it matches on fit using more than 10,000 attributes without naming a method, so you cannot tell from most public pages what runs underneath.

What is hybrid search?

Hybrid search runs keyword search and semantic search on the same query and merges the two ranked lists. A common way to merge them is Reciprocal Rank Fusion, which combines results by their positions and ignores the raw scores.

Is the ApplyEze job board semantic?

No. The board has no embeddings and no AI in its ranking. It applies hard filters and then a rule-based fit score, with your target titles counting most. A role doing your work under a title you did not list ranks low, so list several.

Sources