"""Broad title-family query planning; no scoring at retrieval time."""
import re

ROLE_FAMILIES = {
 'director': ['Director Quality Engineering','Director QA','Director Software Quality','Director Test Engineering','Head of Quality Engineering','Head of Software Testing','Associate Director QA'],
 'senior_director': ['Senior Director Quality Engineering','Senior Director QA','Senior Director Test Engineering','Head of Quality Engineering','VP Quality Engineering'],
 'senior_manager': ['Senior QA Manager','Senior Quality Engineering Manager','Senior Test Engineering Manager','Software Quality Manager','Associate Director Quality Engineering'],
 'manager': ['QA Manager','Quality Engineering Manager','Software QA Manager','Test Engineering Manager','SDET Manager'],
 'head': ['Head of Quality Engineering','Head of QA','Head of Software Testing','Director Quality Engineering','VP Quality Engineering'],
 'individual': ['SDET','Software Development Engineer in Test','QA Automation Engineer','Software Quality Engineer','Test Automation Engineer'],
}

def family(role):
 r=(role or '').lower().strip()
 if re.search(r'\b(?:senior|sr\.?)[ -]+director\b',r):return 'senior_director'
 if re.search(r'\bhead\b|\bvp\b|vice president',r):return 'head'
 if re.search(r'\b(?:director|associate director)\b',r):return 'director'
 if re.search(r'\b(?:senior|sr\.?)[ -]+(?:qa |qe |quality |test |testing |engineering |automation )*manager\b',r):return 'senior_manager'
 if 'manager' in r:return 'manager'
 return 'individual'

def queries(role,location,breadth=1):
 """Return 1/3/7 independent targeted queries. Expand recall without Boolean OR ambiguity."""
 titles=list(dict.fromkeys([role]+ROLE_FAMILIES[family(role)]))
 count={1:1,2:3,3:7}.get(int(breadth),max(1,min(7,int(breadth))))
 place=(location or 'Bengaluru').strip()
 return [f'{title} jobs in {place} India' for title in titles[:count]]
