Make Filter: unable to reliably blacklist keywords in a text field (AND / OR confusion)

:bullseye: What is your goal?

I want to block bundles where job_title contains any banned keyword (blacklist).

If job_title contains one or more of these words:

senior, staff, engineer, developer, software, internship, intern, lead, consultant

…the bundle should NOT proceed to downstream modules.

Only titles that contain none of these keywords should pass.

Scenario
Gmail → Text Parser → Tools (Set Variables) → Filter → OpenAI → JSON → Google Sheets

Field:

job_title = plain text string (confirmed)

:thinking: What is the problem & what have you tried?

What I tried

Regex

(?i)\b(senior|staff|principal|lead|software|engineer|developer|intern|internship|consultant)\b

→ Still passes matching titles

AND + “does not contain”

job_title does not contain senior
AND does not contain staff
AND does not contain engineer
AND does not contain developer
AND does not contain software
AND does not contain internship
AND does not contain lead
AND does not contain consultant

→ Titles with banned keywords still pass

OR combinations

OR + does not contain → everything passes

Mixed AND / OR → only blocks when two keywords are present

Examples that still pass:

“Internship – Configuration and Automation”

“Monday Senior Consultant”

“Staff Software Engineer”

“Software Engineer II”

Filter Inspector shows green checks even when keywords are clearly present.

:clipboard: Error messages or input/output bundles

No error but job titles with banned keywords continue passing through the filter just like on a parade…I’ve spend 2-3 hours today and yesterday battling this and trying all kinds of combinations and permutations, nothing seems to work.

So…

Is this:

Expected behavior?

A limitation of Make Filters?

A known UI issue with grouping / OR logic?

What is the recommended and reliable way to implement a keyword blacklist in Make?

Or I should rather do a router + positive filter for the banned job title keywords and the other route “fallback” to the GPT module? But where would the banned route go? I believe a filter doesnt work unless it ends in a module? There is no option for deadend router branches in make?

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

Attaching more screen shots.

The way you’ve set this up, at least one condition will always be valid. You need to change all the “OR” to “AND”, otherwise at least one condition will always be valid. Hence, the filter is useless as it lets everything through.

Alternatively, you can use a single “Does not match pattern” operator.

Logic is extremely important in Make, so you’ll need to think through things carefully to ensure you’ve got it right, and can think of and handle all edge cases/scenarios based on the potential input.

I’d recommend going through the Make Academy if you haven’t yet!

Here are some useful links and guides you can use to learn more on how to use the Make platform, apps, and app modules. I found these useful when I was learning Make, and hope they might benefit you too —

Learn Make

How-Tos

Hope this helps! If you are still having trouble, please provide more details.

— @samliew

Thank you! I did try all keywords with AND in the beginning and it still didnt work. I believe the culprit was that i hadn’t done lower(trim(4.job_title)) functions to “clean up” the job titles. They extracted directly from gmail so extra spaces and lower/upper cases may exist. I believe that filter logic needs to match the keyword exactly, cases sensitive and no extra spaces. It works now! :+1:

3 Likes

Hi Ivan! Thank you for taking a moment to come back and post the solution for the rest of the Community to see :slight_smile:

1 Like