feat: add deterministic Apec query derivation

This commit is contained in:
Antoine 2026-06-01 12:57:52 +02:00
parent 4d57af0b86
commit ac78bee74b
3 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,3 @@
from job_research.apec.query_derivation import derive_apec_queries
__all__ = ["derive_apec_queries"]

View File

@ -0,0 +1,19 @@
from job_research.models import CandidateProfileOutput
def derive_apec_queries(profile: CandidateProfileOutput) -> list[str]:
queries: list[str] = []
seen: set[str] = set()
for target_role in profile.target_roles:
query = target_role.strip()
if not query or query in seen:
continue
seen.add(query)
queries.append(query)
if len(queries) == 5:
break
return queries

View File

@ -0,0 +1,26 @@
from job_research.apec.query_derivation import derive_apec_queries
from job_research.models import CandidateProfileOutput
def test_derive_apec_queries_preserves_order_dedupes_and_caps_at_five() -> None:
profile = CandidateProfileOutput(
target_roles=[
"Data Engineer",
"Analytics Engineer",
"Data Engineer",
"BI Engineer",
"Junior Data Platform Engineer",
"ML Engineer",
"Backend Engineer",
]
)
queries = derive_apec_queries(profile)
assert queries == [
"Data Engineer",
"Analytics Engineer",
"BI Engineer",
"Junior Data Platform Engineer",
"ML Engineer",
]