Repository navigation
feat: reject internships placed outside the EU/EEA - #39
Merged
Merged
Conversation
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.