Skip to main content

How Sweepy scores your resume and its limits

The percentage on each card measures one thing: how much vocabulary your resume and the posting share. Sweepy counts shared terms and never interprets them. That design keeps a sweep free, fast, and repeatable. It also sets a ceiling.

How Sweepy builds the percentage​

Sweepy reads your resume once. It then compares that text against every posting it validated.

The score blends two overlap measures:

  • Requirement overlap (60 percent): how much of the posting's own wording your resume already shows.
  • Keyword overlap (40 percent): how much of your resume's vocabulary the posting repeats.

Requirement overlap counts for 60 percent of the blend, because the posting defines what the match means.

Inside requirement overlap, the posting sets a weight for each term:

  • Required terms weigh twice as much as unlabeled terms.
  • Preferred terms weigh half as much.
  • Unlabeled terms use the base weight.

Sweepy combines both measures into one value. It then multiplies by your keywords_weight setting and caps the result at 100. The wizard writes 1.5, and the Sweep Settings tile changes it. A profile that omits the key scores at 1.0.

  • Raise keywords_weight to reward overlap.
  • Lower it toward 1.0 when your scores cluster near the top.
note

Your resume.must_have_skills list enters the keyword pool first, at the highest tier. Those terms weigh into every posting you score, and the score falls back to keyword overlap alone when a posting doesn't yield readable terms.

Each card also lists the terms behind the number. Sweepy shows up to six matched terms and up to three missing terms per job.

Card labels​

Every card prints the score with a label. The label tells you who produced the number.

  • KEYWORD OVERLAP marks Sweepy's own count from a standard sweep. The value blends requirement overlap and keyword overlap, and this label appears on every card a plain sweep produces.
  • MATCH marks a card where a model read the posting through an MCP client and set its own percentage.

A MATCH card reflects judgment. A KEYWORD OVERLAP card reflects shared words. Both order your list, but only the first one can weigh meaning.

What to watch for​

Deterministic scoring trades understanding for speed. Judgment calls stay out of the count.

  • Paraphrase. A posting can list guides for developers while a resume lists API documentation. Word-for-word matching scores that pair at zero.
  • Seniority and scope. Led and supported extract the same way. Years of experience, team size, and budget ownership never reach the score.
  • Transfer between fields. Skills from another field count only once your resume names the overlap. lesson planning matches no posting until your resume also says instructional design.
  • Career direction and outcomes. A 30% row can describe a better fit than a 60% row with more shared vocabulary. The score can't see your goals.

Treat the percentage as a reading order. It tells you which postings deserve your time.

Without a model compared with a model​

Without an LLMWith an LLM over MCP
What runsrun_sweep alonerun_sweep → get_jobs → submit_judgments → render_report
Match numberVocabulary overlapModel judgment, or the overlap value when the model passes none
Card labelNN% KEYWORD OVERLAPNN% MATCH
Summary, requirements, alignmentExtracted from the posting textWritten by the model
Comp and benefitsCompensation from structured board fields, then from the posting text. Hourly and monthly rates keep their unit. Benefits always Not disclosedModel writes both lines from the posting text
CostFree, offline, repeatableNeeds an MCP client and model tokens
Best atRanking hundreds of postings at onceReading 10 to 20 shortlisted postings in depth

Each mode covers ground the other one misses. The sweep ranks a large pool of postings. The model reads your shortlist the way a person would.

How to reduce the difference​

Work down this list. Each step narrows the distance between the two modes.

  1. Declare your field's synonyms. Add equivalences to resume.synonyms, such as docs-as-code and documentation as code. This step lifts the score for real matches more than any other.
  2. Curate must_have_skills. These terms enter the keyword pool at the highest tier, so they weigh into every posting you score.
  3. Split resumes by target. Give each resume.tracks[] entry its own path. Sweepy then scores a role against the resume written for that role family.
  4. Tune keywords_weight. The Sweep Settings tile applies a new weight to every card on the next sweep.
  5. Read the match lists on each card. missing_skills shows the terms to add. The matched-terms list shows what to lead with in a cover letter.
  6. Connect an MCP client and run the hybrid flow. Ask the model to read your top cards and set match_pct through submit_judgments. Those cards re-render as NN% MATCH. See MCP integration.
  7. Rate a sample by hand. Score 20 to 30 postings yourself as strong, partial, or weak. Compare your order with Sweepy's. Where the two disagree on the same kinds of roles, add the missing concepts to resume.synonyms or must_have_skills.
tip

Run both modes. Let run_sweep rank the full pool, then send the top 10 through your MCP client for a second opinion. You keep the broad sweep and gain the judgment pass. The shortlist alone spends model tokens.