Core design rule
“hoba must make uncertainty more explicit, not merely replace one unsupported story with another.”
An observation is not a cause. A rejection message is not necessarily a reason. A compatible mechanism is not a proven mechanism.
The hoba protocol
Four steps that replace going over it in your head with a set of separate, checkable facts.
Hard facts
Record only what you observed directly: emails received, the exact stage reached, gaps between events. No guessing at intent.
Output: observation nodes (A)
Obstacle
Find the barrier in the hiring funnel where it stopped: ATS parsing, the technical screen, a budget freeze.
Output: funnel barrier DAG (B)
Behind the obstacle
List the mechanisms logically compatible with those facts. The honest baseline mechanisms stay on the list, alongside structural friction.
Output: compatible mechanisms (M)
Agency
Separate what you can act on from what depends on an intermediary and what is exogenous. The step ends in a few bounded, low-cost probes.
Output: probes and a stop condition
HOBA is the procedure used to reason over the atlas; the evidence levels below describe the strength of individual claims. They are separate axes.
The four epistemic verbs
Every claim in hoba carries one of four calibrated verbs:
- 1. Observed
- Directly present in the evidence or in a submission log — a rejection email timestamp, a job post URL.
- 2. Compatible with
- Given the structural barrier, the mechanism could logically produce the observation. No probability is implied.
- 3. Supported
- Research or secondary signals raise confidence beyond logical compatibility alone.
- 4. Proven
- Direct verification supports the precise causal claim — a verified ATS parsing rule, for instance.
Preserving honest baselines
A credible registry cannot become an echo chamber that blames something external for every outcome. Real gaps in skill depth, friction in communication, and leveling mismatches sit in the ontology as mandatory baseline mechanisms (honest_baseline: true).
Evidence records & levels
Every node declares an evidence_level and may cite EVD-xxx records. The two axes are separate, and both are read straight off the schema below rather than restated here.
The kind describes the source: primary, research, reporting, survey, anecdote, illustrative.
The level describes how far the claim is carried: observed, compatible, supported, strongly_supported, proven, contradicted, unknown — the last two are not points on that line but states a claim can be in. A citation raises a claim only when it addresses the specific mechanism rather than the general topic, and “proven” is refused outright unless a primary or research record is cited.
The role describes what the source is doing in the model, not its format: descriptive_fact, mechanism_support, claim_scoped, edge_scoped, intervention_effectiveness, synthetic_labelled.
Each evidence record currently points to one published source: a peer-reviewed study, an institutional report, or a practitioner survey. A level stays provisional where the node cites a source about its general topic rather than the specific mechanism; loops with no source about the feedback cycle itself are marked compatible.
Explicit non-goals
hoba is deliberately not:
- a company or recruiter blacklist;
- a “ghost job” accusation engine;
- a personal rejection diary or doom tracker;
- a coaching service promising employment outcomes;
- a tool for legally determining discrimination.