Files

93 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# W1-016: offline opportunity qualification
`src/opportunity_intelligence/qualification/lrs.py` uses the existing standard-library HTML parser and saved LRS
collection. It performs no network access, applications, pipeline writes or
candidate promotion. No résumé or detailed Ken eligibility profile was supplied:
the brief identifies requirements to verify, not proven personal skill deficits.
## Reproduce
```powershell
python -m unittest discover -s tests -v
python w1.py qualify --run runs/2026-09-17/lrs-162640 --output runs/2026-09-17/qualification-review-new
```
On this workstation replace `python` with:
`& 'C:\Users\Gharke\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\python.exe'`.
The sandbox requires permission to execute that installed runtime.
Omitting `--run` chooses the latest successful saved LRS manifest by finish time.
Omitting `--output` creates `qualification-W1-016` under that run. Output must be
a new directory; use another directory for a repeat. `--limit` defaults to 12
and accepts 115. `--pipeline` defaults to `data/opportunities.json`.
Inputs must agree with manifest counts and staged records must match collected
records. Every used description snapshot is verified against its recorded SHA-256.
Missing descriptions, changed snapshots or inconsistent inputs fail visibly.
Assessment uses the collection date, not the current date. Identical code, inputs
and options produce byte-identical artifacts; regression tests verify this.
## Rules
In precedence order: exclude exact repeated LRS identities or identical title,
organization, location, header type and full normalized description; exclude
matches in the current pipeline; exclude reliable visible past expiration;
exclude clearly unrelated roles; then apply target-scope relevance rules.
All exclusions retain their reasons and evidence. Different pay, description or
location evidence prevents content-based exact deduplication. Similar requisitions
with separate IDs remain separate when their evidence differs.
Expiration is deliberately conservative: only an explicit visible ISO date labeled
`Application deadline:`, `Applications close:` or `Closing date:` qualifies, and
multiple different visible deadlines prevent exclusion. Deadline day is inclusive.
Historical or even valid JSON-LD alone is insufficient. Other date formats and
informal closure language need review; no expired exclusion was made in this run.
Role-specific title scores: architecture 100, IT leadership 90, AI implementation
85, cloud/infrastructure/network engineering 80, IT delivery management 65.
Description-supported technical fit scores 50; other IT contracts score 35.
Take the highest applicable score, then sort by visible added date descending
and numeric requisition ID ascending. Dates are only tie breakers, never proof
of an active vacancy. AI hiring/EEO boilerplate is removed from relevance evidence.
Industrial turbine management, marine work, sales, recruiting and office
administration are excluded. Junior/support roles without a target fit fall
outside scope. Lower-ranked relevant records are deferred, not disqualified.
Contract descriptions and temp/contract headers determine provisional contract
grouping; explicit direct hire determines employment grouping, retaining any
contradictory contract prose. Full-time does not by itself prove permanent
employment. Temp-to-perm indicates advertised contract-to-hire. Contract duration
is not inferred. Source qualifications and restrictions are extracted with
deterministic patterns; these are triage summaries, not exhaustive eligibility
assessments. Full description text is retained. Advertised pay is never called
verified, and geographic ranges and structured metadata remain separate.
## Results and artifacts
The final output is `runs/2026-09-17/lrs-162640/qualification-W1-016/`:
- `brief.md`: complete review brief with original links, maximum 15 entries.
- `shortlist.json`: selected evidence, requirements, conflicts and proposed actions.
- `audit.json`: all 84 staged candidates, including exclusions and deferred records.
- `summary.json`: filtering counts, rule version, code/input/snapshot hashes and
unchanged-pipeline verification.
The collection has 87 jobs, with 3 previously matched pipeline records and 84 staged
candidates. Qualification excludes 0 additional exact duplicates, 0 additional
pipeline matches, 0 reliably expired records, 9 clearly unrelated roles and 28
outside-scope roles. 47 remain relevant; 12 are shortlisted and 35 deferred. All
12 shortlist entries are provisionally contract/contract-to-hire. An empty
employment section is intentional, not a claim that the entire collection has
no employment opportunities.
`qualification-preview` and `qualification-review` contain intermediate review
outputs; `qualification-W1-016` is the final artifact. `runs/2026-09-17/lrs-inspection/lrs-descriptions.json` is
an offline inspection extract and is not an input to the qualifier.
Known source defects remain: historical JSON-LD dates/pay, malformed JSON and
conflicting engagement labels. Residency lists are quoted as supplied (including
source spelling errors). Remote work eligibility, availability and actual
compensation require confirmation before any later promotion. No source coverage
was expanded and existing discovery code was unchanged.