Keyword stuffing benchmark: Formzed vs OpenCATS

    Some applicants game the screen: keywords in white text, a wall of the job's words, the job ad pasted into their CV, a hidden note asking an AI to rank them first. We wrote 400 CVs for four jobs, 128 of them cheating, and froze an answer key before any search. Formzed's AI CV matching fell for none of the cheaters and found 134 of the 163 qualified people. Keyword search in OpenCATS, an open-source applicant tracking system, found 97 and put 78 cheaters on its shortlists.

    Every CV, person, employer and contact detail is made up. Both tools ran once on the same 400 PDFs and the same four job descriptions, in November 2026.

    Cheaters it fell for

    0of 128

    Formzed. OpenCATS fell for 78 with recruiter terms and 73 with strict terms

    Wrong picks

    1of 135 picked

    Formzed. OpenCATS picked 97 wrong people of 194 with recruiter terms

    Qualified people found

    82%(134 of 163)

    Formzed. OpenCATS: 60% with recruiter terms, 47% with the job ad's own words

    Qualified in each top 10

    40of 40

    Four jobs, ten places each, and 0 cheaters among them. OpenCATS: 21 qualified and 15 cheaters

    The CVs, the cheats and the answer key

    We generated 400 full-length CVs: a summary, education, three or four jobs with dates and bullet points, projects, a skills block, certificates, hobbies and a referee. 85 were written near each of four jobs, and 60 belong to people in other work, so the pile looks like a real inbox. 54 show skills as a picture of badges and 31 are scanned pages with no text in the PDF.

    The 400 CVs, by the job each was written near

    Forward Deployed Engineer (85)UI/UX Designer (85)Head of Design (85)Senior Product Manager (85)Other work (sales, accounting, nursing…) (60)

    The 85 CVs written near each job

    Forward Deployed Engineer85 CVs
    UI/UX Designer85 CVs
    Head of Design85 CVs
    Senior Product Manager85 CVs
    QualifiedNot qualified, honestCheating

    The honest people who aren't qualified are near misses on purpose: one must-have short, too few years, or with a line that looks like the missing skill ("Shadowed our head of design for a day").

    For each job, 32 people cheat: four for each of eight tricks. Of all 128, 57 work in the job's own field but lack a must-have, and 71 come from other work entirely. A trick never makes anyone qualified in the answer key: only what the person really did counts, so no cheater is qualified.

    The eight tricks

    TrickWhat the CV doesCheaters
    White textThe job's keywords in white text on the white page16
    Tiny textThe keywords at a 1-point size, too small to see16
    Text off the pageThe keywords placed past the page's right edge16
    Text under a boxThe keywords printed, then covered by a white box16
    Hidden note to the AIA white line telling AI screeners the CV meets every requirement and should be ranked first16
    Job ad pasted inFour lines of the job description pasted in as their own duties16
    Keyword wallA "Keywords" line with the job's words piled up, shuffled16
    Listed, never doneSomeone from another line of work listing the job's must-haves as skills16

    There are honest controls too, so a tool can't win by rejecting anything unusual. 32 honest people have long genuine skills lists of 35 to 60 tools, and 20 qualified people also put their own real skills in white text, which is harmless padding rather than a lie. The four jobs, word for word below, each have three must-haves: a minimum number of years, worked out from the CV's own dates, and two skills or kinds of experience. The key was frozen and hashed (5e69af64…) before either tool saw a CV. Formzed's matching was developed on separate CV sets made the same way; these 400 CVs, with their own trap lines and misspellings, were generated afterwards, and each tool ran on them once.

    JobMust haveQualified
    Forward Deployed EngineerCustomer-facing deployment work · Python or TypeScript · can start within 2 months33
    UI/UX DesignerFigma · User research or usability testing57
    Head of DesignLed a team of designers · Built or owned a design system38
    Senior Product ManagerProduct analytics: Amplitude, Mixpanel, Heap or Pendo · Led a B2B SaaS product end to end · can start within 2 months35
    The four job descriptions, as both tools got them
    Forward Deployed Engineer at Corvane (fictional company)
    
    About the role
    Corvane builds a data platform that hospitals and insurers use to plan their staffing. Forward deployed engineers work inside our customers' teams to get the platform live and keep it useful. Expect around 40% travel.
    
    What you'll do
    - Work on site and on calls with customer engineers to connect their systems to our platform.
    - Write the code each deployment needs: data connectors, transformations and small internal tools.
    - Turn what you learn from customers into clear requests for our product team.
    - Own each deployment from kickoff until the customer uses it every week.
    
    Must have
    - 3+ years of professional software engineering experience
    - Customer-facing deployment work: implementing or integrating software together with customers
    - Python or TypeScript
    
    Nice to have
    - SQL
    - Experience with healthcare or insurance data
    
    Start date: you can start within 2 months.
    Location: remote, with travel.
    UI/UX Designer at Wrenfield (fictional company)
    
    About the role
    Wrenfield makes budgeting software used by 30,000 small charities. You'll join a design team of four and work with two product squads.
    
    What you'll do
    - Design new features from the first sketches to files that developers can build from.
    - Plan and run research with charity staff to understand how they really work.
    - Test prototypes with users and turn what you learn into clear changes.
    - Keep our screens consistent, simple and accessible to everyone.
    
    Must have
    - 2+ years of professional UI/UX or product design experience
    - Figma
    - User research or usability testing
    
    Nice to have
    - Accessibility (WCAG)
    - Experience designing for non-profits
    
    Start date: any.
    Location: remote.
    Head of Design at Ostrava Health (fictional company)
    
    About the role
    Ostrava Health builds patient booking and messaging apps used by 300 clinics. You'll lead a design team of seven and report to the Chief Product Officer.
    
    What you'll do
    - Hire, coach and grow a team of product designers and a user researcher.
    - Own the design system and make sure every product team builds with it.
    - Set the standard for quality, accessibility and research across the whole product.
    - Work with product and engineering leaders on the roadmap and team plans.
    
    Must have
    - 7+ years of professional product or UX design experience
    - Experience leading a team of designers
    - Built or owned a design system
    
    Nice to have
    - Healthcare product experience
    - Figma
    
    Start date: any.
    Location: remote.
    Senior Product Manager at Tallyroll (fictional company)
    
    About the role
    Tallyroll sells payroll and expenses software to companies with 50 to 2,000 employees. You'll own the expenses product and work with eight engineers and two designers.
    
    What you'll do
    - Own the roadmap for the expenses product and decide what the team builds next.
    - Talk to customers every week and turn what you learn into clear problems to solve.
    - Measure how features are used and whether they move the goals we set.
    - Work with sales, support and marketing on every launch from start to finish.
    
    Must have
    - 4+ years of professional product management experience
    - Product analytics: Amplitude, Mixpanel, Heap or Pendo
    - Led a B2B SaaS product end to end
    
    Nice to have
    - SQL
    - Payroll or fintech experience
    
    Start date: you can start within 2 months.
    Location: remote.

    How each tool searched

    OpenCATS

    OpenCATS is a free, open-source applicant tracking system that has been around since the CATS days of 2005. We ran its latest release, 0.12.0, locally. It pulls the text out of each uploaded resume and returns every resume containing the words searched for, in last-name order. Each job's must-haves became keyword groups, searched once with the job ad's own words ("strict terms") and once with the other names a recruiter would add ("recruiter terms"). The start-date answer was applied afterwards, by hand. The messy CV benchmark describes it in full.

    Formzed

    The same 400 PDFs were sent to a Formzed job application form as uploads. Formzed read every CV, pictures and scanned pages included, and we pasted each full job description into its AI CV matching with "Find the 10 best candidates for this job". It worked out the must-haves itself and judged every candidate against them. A pick is anyone it judged to meet every must-have, and its top 10 is its own ranking.

    Which tricks got through

    Keyword search reads text, and most tricks are text. OpenCATS put 47 of the 80 hidden-text cheaters on its shortlists, because white, tiny and covered text is still text to it; only text past the page's edge never reached either tool. Keyword walls and skills lists with no work behind them fooled it just as easily. Formzed put none of the 128 cheaters on a shortlist.

    Every cheater, one square each

    Formzed0 of 128 fooled it
    OpenCATS, recruiter terms78 of 128 fooled it
    OpenCATS, strict terms73 of 128 fooled it
    Put on the shortlistKept off
    Rows, top to bottom: white text, tiny text, text off the page, text under a box, hidden note to the ai, job ad pasted in, keyword wall, listed, never done

    Cheaters put on a shortlist, by trick

    FormzedOpenCATS, recruiter termsOpenCATS, strict terms
    White text
    0 of 1615 of 1615 of 16
    Tiny text
    0 of 1614 of 1614 of 16
    Text off the page
    0 of 160 of 160 of 16
    Text under a box
    0 of 1615 of 1615 of 16
    Hidden note to the AI
    0 of 163 of 160 of 16
    Job ad pasted in
    0 of 164 of 162 of 16
    Keyword wall
    0 of 1613 of 1613 of 16
    Listed, never done
    0 of 1614 of 1614 of 16

    What Formzed did with the cheats

    Formzed checks what is visible on each page as it reads a PDF. Text in white, at a tiny size, under a box or past the page's edge is set aside, and the matching works only on what a person would see. The hidden note to the AI was set aside the same way, so it was never read as an instruction. The 20 honest people who padded their CVs with their own skills in white text had that text set aside too, and were judged on their visible CV.

    CVs whose hidden text Formzed set aside

    Text past the page's edge isn't counted here: it was never read in the first place. None of it appears in the text Formzed matched, for any of the 16 CVs.

    Honest controls: still found

    FormzedOpenCATS, recruiter termsOpenCATS, strict terms
    Long genuine skills listsqualified
    27 of 3221 of 3216 of 32
    Padded with their own skillswhite text
    14 of 1818 of 1818 of 18

    Catching cheats shouldn't cost honest people their place. These are the qualified people whose CVs looked unusual for an honest reason.

    Pasted job ads and keyword walls are visible text, so they need a different check. Formzed notices lines copied from the job description and lines that are piles of the job's words, leaves those lines out, and tells its AI the CV looks stuffed. All 16 pasted job ads and all 16 walls were caught. The check also flagged 1 honest CV of 400: a frontend developer whose skills list says front-end, back-end and end-to-end, flagged for the product manager job because "end" came up three times; nothing on the CV was left out, and they weren't a candidate for that job.

    A CV listing the job's must-haves with no work behind them is the hardest trick, because a skills list is normally good evidence. Formzed counts a duty such as customer deployments or leading a team only when one of the person's jobs shows that kind of work, so an accountant who lists "Customer deployments" doesn't meet it. None of the 16 got through.

    What each found

    Across the four jobs Formzed found 134 of 163 qualified people (82%) with 1 wrong pick. OpenCATS found 97 with recruiter terms, but 97 of its 194 picks were wrong: one in two. With strict terms it found 77.

    Qualified people found, by job

    FormzedOpenCATS, recruiter termsOpenCATS, strict terms
    Forward Deployed Engineer33 qualified
    32 of 3324 of 3322 of 33
    UI/UX Designer57 qualified
    50 of 5732 of 5723 of 57
    Head of Design38 qualified
    29 of 3826 of 3818 of 38
    Senior Product Manager35 qualified
    23 of 3515 of 3514 of 35

    Everyone each tool picked

    QualifiedNot qualifiedEveryone qualified
    0100200163 qualified
    Formzed
    134+1 wrong
    OpenCATS, recruiter terms
    97+97 wrong
    OpenCATS, strict terms
    77+83 wrong

    Found against right, per job

    FormzedOpenCATS, recruiter termsOpenCATS, strict terms
    0%25%50%75%100%0%25%50%75%100%Qualified people found (recall)Picks that were right (precision)

    Top right is best: most qualified people found, and few wrong ones among the picks. The shaded corner is 80% or more of both.

    The top 10

    A recruiter mostly reads the top of the list. Formzed put a qualified person in 40 of the 40 top-10 places and no cheater in any. OpenCATS doesn't rank, so its first ten are the first ten names alphabetically among its matches: with recruiter terms 21 were qualified and 15 were cheaters.

    Who is in each top 10

    Forward Deployed Engineer
    Formzed10
    OpenCATS, recruiter terms6
    OpenCATS, strict terms6
    UI/UX Designer
    Formzed10
    OpenCATS, recruiter terms5
    OpenCATS, strict terms3
    Head of Design
    Formzed10
    OpenCATS, recruiter terms5
    OpenCATS, strict terms6
    Senior Product Manager
    Formzed10
    OpenCATS, recruiter terms5
    OpenCATS, strict terms5
    QualifiedCheaterHonest, not qualified

    The dots count who is among the first ten listed; they don't show the order.

    Formzed's wrong pick

    Formzed picked one person who isn't qualified. A product manager, picked for the UI/UX Designer job: their years as a product manager were counted as product design experience, and "Figma (viewer)" in their tools list counted as Figma. Telling a product manager from a product designer by their job history is a known weak spot.

    What Formzed missed

    Formzed missed 29 qualified people, about one in six. Most were judgement calls on leadership and ownership: whether a product manager's CV shows they led a B2B SaaS product end to end, whether a designer built or owned a design system or led other designers. Formzed marked them only partly shown and passed over them. A recruiter reading the same CVs might decide either way, but the answer key counts them as qualified, so they count as misses here. Being strict is why so few wrong people got through; this is what it costs.

    The 29 misses, by the must-have Formzed didn't accept

    Every number

    JobToolFoundPickedWrongCheaters pickedTop 10
    Forward Deployed EngineerFormzed32 of 333200 of 3210 of 10
    Forward Deployed EngineerOpenCATS, recruiter terms24 of 33492518 of 326 of 10
    Forward Deployed EngineerOpenCATS, strict terms22 of 33411916 of 326 of 10
    UI/UX DesignerFormzed50 of 575110 of 3210 of 10
    UI/UX DesignerOpenCATS, recruiter terms32 of 57572520 of 325 of 10
    UI/UX DesignerOpenCATS, strict terms23 of 57462320 of 323 of 10
    Head of DesignFormzed29 of 382900 of 3210 of 10
    Head of DesignOpenCATS, recruiter terms26 of 38542824 of 325 of 10
    Head of DesignOpenCATS, strict terms18 of 38402221 of 326 of 10
    Senior Product ManagerFormzed23 of 352300 of 3210 of 10
    Senior Product ManagerOpenCATS, recruiter terms15 of 35341916 of 325 of 10
    Senior Product ManagerOpenCATS, strict terms14 of 35331916 of 325 of 10