Recruitment operations
How to Search Resumes by Experience (and Make It Reliable)
By Andre · · 14 min read
How to Search Resumes by Experience (and Make It Reliable)

To search resumes by experience, do three things in order. Turn “experience” into specific, testable criteria (role, skills, years, recency). Run those criteria as Boolean queries or filters. Then check the extracted data, because a search is only as good as the job titles and dates behind it. If your resumes sit in an inbox as PDF and Word attachments, the real problem comes before searching: nobody has pulled the experience into fields you can filter.
This guide covers both halves: how to write the search, and how to get structured experience out of resumes so the search has something to work on.
TL;DR
- Define experience as role, skills, years and recency, not as one number. “5+ years” alone finds the wrong people.
- Use Boolean operators (AND, OR, NOT, quotes, parentheses) to cover title variants and exclude the obvious mismatches.
- Search works only on structured data: job titles, employers, dates and skills must be extracted from each resume first.
- Spot-check extracted experience for duplicates, date gaps and overlapping roles before you trust a shortlist.
- Keep experience criteria job-related and keep records only as long as you need them. US employers have a one-year minimum retention rule for hiring records.
Table of Contents
- Why “experience” is hard to search
- Step 1: Define the experience you actually need
- Step 2: Write the search
- Step 3: Get experience out of the resume and into fields
- Step 4: Check the extracted data before you trust a shortlist
- A worked example
- Perspective: why experience search starts at the inbox
- Keep candidate data lawful and tidy
- Get the inbox ready for this kind of search
- Try it on your own inbox
- FAQ
- Sources
Why “experience” is hard to search
Experience is not a single field on a resume. It is a mix of job titles, employer names, date ranges, responsibilities and skills, written differently by every candidate. One person writes “Sr. Software Engineer”, another “Senior Developer”, a third “Lead Engineer, Platform”. The same job, three strings.
The European Commission ran into this when it updated its occupation taxonomy. Its ESCO report from May 2021 notes that titles such as “Senior Android developer” appear often in CVs and vacancies but have no exact match in the existing occupation “mobile application developer”. The Commission built a machine learning model to suggest likely matches between job titles and occupation labels. If a taxonomy team needs a model to reconcile titles, a recruiter with a few hundred CVs in a shared inbox needs a method too.
There are three practical problems:
- Titles vary. A search for “project manager” misses “delivery lead” and “program coordinator”.
- Years are implied, not stated. Most resumes list date ranges, not “6 years of experience”. Someone has to calculate it.
- Experience type matters as much as length. Eight years in warehouse operations is not eight years in sales, even if both say “supervisor”.
Step 1: Define the experience you actually need
Before you type a query, write the requirement as a short checklist. Four parts cover most roles.
Role family
List the title variants that count. For an accounts payable specialist you might accept “AP clerk”, “accounts payable analyst” and “payables coordinator”. Put these in a short list now so your search covers them later.
Skills and tools
Separate must-haves from nice-to-haves. Two or three must-haves is a good limit. If you list ten, no resume will match and you will loosen the filter at random.
Years and recency
Decide whether you want total years, years in the role family, or years in the last five. A candidate with ten years of experience who left the field eight years ago is a different match from one currently in the role. Write down which you mean.
Context
Industry, team size, regulated environments, languages, location and availability. These are often what separates a good shortlist from a long one. If location is a big filter for you, our guide to searching candidates by location shows how CV data becomes map results.
A word on fairness. In the US, the Age Discrimination in Employment Act protects applicants who are 40 or older, and the EEOC’s fact sheet says the law generally makes it unlawful to include age preferences or limits in job notices or advertisements. Tie experience requirements to what the job needs (“3 years managing a payroll team”) rather than to phrases that act as proxies for age, and avoid maximum-years caps. If you are unsure about a specific requirement, ask your employment counsel.
Step 2: Write the search
Once the checklist exists, the query is mostly a translation of it. Boolean search uses a handful of operators: AND narrows, OR widens, NOT excludes, quotation marks match an exact phrase, and parentheses group terms. ResumeGeni gives an example of a query that combines them for a senior engineering search: “senior engineer” AND (Python OR Go OR Java) AND (“distributed systems” OR microservices) NOT (intern OR junior).
Notice the pattern. A title phrase, a group of acceptable skills, a group of domain terms, and an exclusion for the levels you do not want.
A template you can adapt
For an accounts payable role:
("accounts payable" OR "AP analyst" OR "payables") AND (NetSuite OR SAP OR QuickBooks) AND ("month-end" OR reconciliation) NOT (intern OR trainee)
Then apply the numeric filter separately, for example minimum years in role. Keep text queries and numeric filters apart: a phrase like “5 years” typed into a text search only finds resumes that happen to say those words, and it misses everyone whose dates imply it.
Common mistakes
- Too many ANDs. Each one removes candidates. Start with fewer, check the results, then add.
- Forgetting abbreviations. Include “Sr” and “Senior”, “QA” and “quality assurance”.
- Over-using NOT. Excluding “junior” also removes someone who was junior years ago and is now a lead, if both words appear on the resume.
- Searching one spelling. Use “manager” and “management” as needed, and check how your tool handles word endings.
We wrote a full set of ready-to-paste examples in five Boolean resume queries recruiters can tune. If your search mostly comes down to words in the CV text, resume keyword search explains how to find candidates hiding in an inbox.
Step 3: Get experience out of the resume and into fields
Searching works well when each resume has been turned into a profile with separate fields. Searching raw attachments works badly: you cannot sort a folder of PDFs by years in role.
For each resume, extract at minimum:
| Field | What to capture | Why it matters for search |
|---|---|---|
| Job title | The title as written, plus a normalized role family | Lets you find “Sr. Developer” and “Senior Engineer” together |
| Employer | Company name | Spots duplicates and relevant industries |
| Start and end dates | Month and year, with “present” flagged | Lets you calculate years and recency |
| Skills | Tools, methods, certifications | Supports must-have filters |
| Languages | Language and level if stated | Common hard requirement |
| Location | City, region, country | Combines with experience filters |
| Availability and salary expectation | If stated | Narrows shortlist before outreach |
Doing this by hand takes minutes per resume and invites typos. By automation, a parser reads the PDF, DOC or DOCX, identifies the sections and fills those fields. The classification step, mapping many titles to one role family, is where most of the value is. You can build that mapping yourself in a spreadsheet by listing titles you see most often against the role families you hire for, which is the same idea as the ESCO matching described above, at a smaller scale.
Calculating years of experience
Do it from dates, not from claims. Add up the months in roles that match your role family, and handle overlaps so a candidate with two concurrent part-time jobs is not counted twice. Treat missing end dates for the latest job as “to today”. If a resume lists only years (“2018 to 2021”), record that as the precision you have. Do not invent months.

Step 4: Check the extracted data before you trust a shortlist
Extraction is fast, not perfect. Resumes with two columns, tables, scans or unusual layouts will produce occasional mistakes. A short routine catches most of them.
- Sample. Open 10 to 20 profiles next to their source resumes. Check titles, dates and employers.
- Look for date problems. Flag end dates before start dates, gaps over a year you did not expect, and roles that overlap for years.
- Look for missing fields. Filter for profiles with no job title or no dates. These are the resumes your searches will silently miss.
- Look for duplicates. The same candidate often applies twice, or arrives through two recruiters, with slightly different resumes. Merge them so you do not count a person’s experience twice or contact them twice.
- Keep versions straight. When a candidate sends an updated resume, the newer one should win without erasing history. Our guide to resume version control covers this for shared inboxes.
For a more formal way to run this check, five data quality dimensions for a recruiter inbox pilot gives you criteria such as completeness and consistency to score a sample.
Remember that the search tells you who to read, not who to hire. Read the shortlisted resumes before you reach out, and let a person make every decision about a candidate.
A worked example
Say you are hiring a payroll specialist and 300 resumes have collected in a shared inbox over six months.
- Checklist: role family is payroll specialist, payroll administrator, payroll coordinator. Must-haves: a major payroll system and multi-state or multi-site payroll. Recency: in a payroll role within the last three years. Minimum: 3 years in role family.
- Query:
(payroll) AND (ADP OR Paycom OR Gusto OR Workday) AND ("multi-state" OR "multiple locations"), with the numeric filter set to 3 or more years in role family. - Result: perhaps 25 resumes out of 300.
- Check: open five. Two have the right title but the dates show only 14 months. One uses “compensation analyst”, which is the same work, so you add that title to the role family and rerun.
- Shortlist: 12 resumes you read in full.
The final list is smaller, and you know why each person is on it. That is the point: a defensible, repeatable search, not a magic number.
Perspective: why experience search starts at the inbox
We built RecrutFlo because most small teams do not have a search problem first. They have a storage problem. Resumes arrive as attachments in a shared mailbox, and nobody can ask that mailbox for “payroll, three years or more, Texas”.
Our view is that you should not have to move to a heavy applicant tracking system to fix that. RecrutFlo connects to the inbox you already use, picks out CV attachments, extracts contact details, experience, skills, languages, location, salary expectations and availability, and organizes them into searchable profiles. Duplicate candidates are flagged, so one person does not appear three times.
We also think automation should save typing, not take decisions. The software fills the fields; your recruiter still reads the resume and makes the call. Plans and limits are published openly, and there is no onboarding call or implementation project to sit through. Our approach to privacy follows EU data protection principles, with isolated workspaces for each team.
If you do one thing this week, take your last 50 resumes and write down how you would find the three best ones for your next role. The gaps in that exercise are the fields you need extracted.
Marco
Keep candidate data lawful and tidy
Searching by experience means you are holding personal data, so set rules for how long and how you use it.
In the US, federal rules set a floor, not a ceiling. Under 29 CFR 1602.14, employers must preserve personnel and employment records, including application forms and other hiring records, for one year from when the record was made or the personnel action occurred, whichever is later. Records tied to a discrimination charge must be kept until the matter is resolved. Your state, your federal contractor status and your industry may add requirements, so confirm them with counsel.
If you recruit in Europe, the picture differs. France’s data protection authority, the CNIL, says in its recruitment guide of January 2023 that candidate data should be kept only as long as strictly necessary, and for a candidate pool, in principle no more than two years from the person’s last contact. The same guide says that a candidate-ranking system that produces discriminatory practices tied to age, sex, origin, disability or place of residence does not meet lawful processing requirements, except in narrow cases where an essential and proportionate legal requirement applies.
Two habits follow from both:
- Search on job-related criteria and document them in your checklist.
- Set a retention date for your database and delete or archive on schedule.
Team access control and an audit trail help here, because you can show who searched, who exported and who changed a profile.
Get the inbox ready for this kind of search
If your resumes arrive in Outlook, a few mailbox rules can capture them reliably before any parsing; see three Outlook rules to capture resumes. To see the whole path from messy inbox to searchable records, read how to turn the CVs in your recruitment inbox into a candidate database.
Try it on your own inbox
RecrutFlo connects to Microsoft 365, Outlook and IMAP mailboxes (Gmail is coming soon), detects CV attachments, extracts the experience fields above and lets you search by skills, experience, languages, location and role. You can test the workflow on the Free plan first. Paid plans are Starter at €19 per month, Professional at €49 per month and Business at €149 per month. If you need more capacity, extra processing runs are a one-off €9 for 100, €29 for 500 or €49 for 1,000. See plans and pricing, or look at how it works first.

If you would rather start with the basics, the RecrutFlo home page gives the short version.
FAQ
How do I search resumes for a minimum number of years of experience?
Calculate years from the start and end dates of roles in the relevant role family, then apply a numeric filter. Typing “5 years” into a text search only finds resumes that use those words. Structured fields built from dates give you a far more complete result.
How can I extract work experience from resumes automatically?
Use a parser that reads PDF, DOC and DOCX files and fills separate fields for job title, employer, dates and skills. Then spot-check a sample against the source resumes. Parsers handle most standard layouts well, and unusual formats are where a quick human check pays off.
How do I classify resumes by role when titles differ?
Group titles into role families. List the variants you see for each role, such as “AP clerk” and “payables coordinator”, and map them to one label. The European Commission’s ESCO work uses the same idea, matching free-text job titles to standard occupation labels.
Should I filter out candidates with too much experience?
Avoid setting maximum-years caps. Define the minimum the job needs and the skills it requires. The EEOC notes that the ADEA protects applicants aged 40 and over, and age-related limits in job notices are generally unlawful, so keep criteria tied to the work itself.
How long can I keep resumes in my database?
In the US, the federal minimum for hiring records is one year, and longer periods may apply by state, contract or pending charges. Set a retention date, document it, and delete or archive on schedule. Check specifics with your employment counsel.
Sources
- How Recruiters Search Inside an ATS
- Leveraging Artificial Intelligence to update the ESCO occupations pillar (European Commission, May 2021)
- Guide recrutement : les fondamentaux (CNIL, January 2023)
- 29 CFR 1602.14, Preservation of records made or kept
- Fact Sheet: Age Discrimination (EEOC)