Skip to content

feat: reject internships placed outside the EU/EEA - #39

Merged
codcreater1 merged 19 commits into
mainfrom
feat/eu-eligibility-gate
Jul 20, 2026
Merged

codcreater1 merged 19 commits into
mainfrom
feat/eu-eligibility-gate

Conversation

@codcreater1

Copy link
Copy Markdown
Owner

Cross-team testing surfaced this gap in every app, ours included: a strong CV with a non-EU placement (e.g. Turkey) reached interview because the evaluator only scored the CV and never checked the placement location, which the assignment requires. The evaluation now extracts placement country + EU/EEA eligibility (eu/non_eu/unknown; location does not affect the CV score); non_eu forces rejection regardless of score with a location-based email; unknown never blocks. Also fixes CandidateState which dropped the new fields. Hermetic gate tests added. Verified live: Turkey/USA/India rejected at score 80, Poland/Germany/no-location unaffected.

Cross-team testing surfaced this gap in every app, ours included: a strong CV
with a non-EU placement (e.g. Turkey) was sent to interview because the
evaluator only scored the CV and never checked the placement location — which
the assignment explicitly requires ('internship in Turkey but only EU accepted').

The evaluation now also extracts the placement country and EU/EEA eligibility
(eu / non_eu / unknown; location does not affect the CV score). A 'non_eu'
placement forces status=rejected regardless of score, with a location-based
rejection email. 'unknown' (a plain CV with no stated placement) never blocks.

Also fixes the LangGraph CandidateState, which dropped the new fields before
they reached the decision. Adds gate regression tests (hermetic, LLM-free).
@codcreater1
codcreater1 merged commit 737343f into main Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant