Candidate
The person applying. The only party in the funnel who sees the whole of their own process and almost none of anyone else's.
Decides
- What is submitted, and in what machine-readable shape
- Which processes to enter and when to withdraw
- Which questions to ask, and when to ask them
- What is recorded: dates, wording, who said it
Cannot see
- Whether a requisition is funded, frozen or already promised internally
- The band, the level, and the rubric being scored against
- How many others are in the pipeline and where they came from
- Whether a rejection was written by a person or emitted by a rule
Measured on
- Reach a decision quickly enough to keep options open
- Avoid spending unpaid hours on processes that were never live
- Preserve the ability to reapply without having burned the relationship
What it looks like
Composite excerpts, written to be typical rather than copied. No particular message, company or person is quoted here.
Visible: every message received, every date, every stated reason, every hour spent.
Invisible: the requisition status, the approved band, the rubric, the queue depth, and whether a human read anything.
Most of the pain of a hiring process is an attempt to infer the second list from the first.
What to notice: This asymmetry is the reason the registry exists. It does not remove it — it makes the boundary between the two lists explicit.
What this position could do
Each of these is something this position actually controls, with the cost stated rather than implied.
Check what the parser extracted before you submitCost: low
The shape of the file is on the candidate's side of the line; what a reader decides after it is not. A layout a person reads without difficulty can arrive in the record as zero work-history entries, and the score that follows is arithmetic on what was extracted. Running the file through a parser first turns an invisible failure into an edit.
What it costs: A single-column text export gives up the layout, and every later edit to the document has to be checked again.
Addressesmech.ats_parser_extraction_failurebar.application_ingestionbar.automated_filter_parser_thresholdobs.rejection_within_minutes_of_application_submission
Ask what the conversation is attached toCost: low
Whether an approved requisition sits behind the outreach, and whether an internal candidacy is already running, are not in any field the candidate can see. Asking at the first exchange is the only route to either, and the answer arrives before the unpaid hours do.
What it costs: A logistics question in the first reply comes before any discussion of the work, and the answer cannot be checked against anything.
Addressesmech.speculative_sourcing_talent_pooling_without_openingmech.pre_selected_internal_candidatemech.stale_or_orphaned_job_requisitionbar.outbound_sourcing_talent_pool_contactobs.unsolicited_recruiter_outreach_followed_by_ghosting
Ask for the band before any assessment is scheduledCost: medium
The band, the level and the rubric are the second of the candidate's two lists, and the compensation bind runs on the candidate naming a number first. Asking for the band before an assessment is booked puts the mismatch at the screen rather than at week four, when the hours are already spent.
What it costs: The question can end a process at the screen, and stating an expectation early fixes a number before the level is fixed.
Addressesmech.unstated_compensation_band_discrepancybar.recruiter_screening_callbar.compensation_levelling_reconciliationpat.compensation_double_bindobs.compensation_band_reduced_or_altered_mid_process
Keep a dated record of every messageCost: low
Dates, wording and who said it are the one part of the process the candidate holds in full. Kept as they arrive, they separate what a process established from what it did not: a rejection timed minutes after submission, a requisition back on the board, two rounds whose feedback disagrees.
What it costs: It is unpaid administrative time in the period when time is scarcest, and a complete record of a process that ends in silence is still a record of silence.
Addressespat.closed_then_reposted_requisition_motifobs.materially_similar_role_reposted_shortly_after_rejectionobs.conflicting_feedback_across_different_interviewersobs.multiple_interview_reschedulings_or_interviewer_no_showmech.mid_process_role_requirement_redefinition
Submit at the stated timebox and name the cutsCost: medium
The hours a work sample takes come out of the same budget as the search itself, and the minutes it is read for are set on the other side of the gate. Stopping at the stated timebox and writing down what was cut to fit it keeps the exercise inside the scope that was agreed and leaves the trade-offs on the page.
What it costs: A submission that stops at the timebox is read next to submissions that did not stop, and the reviewer's minutes are not something the candidate sets.
Addressesloop.take_home_opportunity_cost_saturation_loopmech.take_home_evaluation_fatigue_asymmetrybar.take_home_work_sample_evaluationobs.take_home_assignment_exceeding_reasonable_stated_scope
Set a date when a silent process closesCost: medium
Silence after submission covers a listing nobody took down, a batch expiry job and a queue that was never reached, and none of the three is visible from outside. Choosing the closing date in advance turns an open question into a finished one and returns the hours to the searches that answered.
What it costs: An answer that arrives after the chosen date is treated as no answer, and the time already spent is written off rather than waited out.
Addressesmech.automated_application_expiration_timeoutmech.stale_or_orphaned_job_requisitionmech.recruiter_volume_quota_incentive_distortionbar.inbound_screening_triageobs.complete_silence_after_submission
Entries this position can see
- obs.communication_mismatch_or_tone_friction_in_panelCommunication mismatch or tone friction in panel
- obs.compensation_band_reduced_or_altered_mid_processCompensation band reduced or altered mid-process
- obs.complete_silence_after_submissionComplete silence after submission
- obs.conflicting_feedback_across_different_interviewersConflicting feedback across different interviewers
- obs.explicit_feedback_citing_skill_depth_shortfallExplicit feedback citing skill-depth shortfall
- obs.feedback_naming_as_absent_something_the_submitted_work_containsFeedback naming as absent something the submitted work contains
- obs.feedback_stating_candidate_is_overqualified_for_the_gradeFeedback stating candidate is overqualified for the grade
- obs.generic_closer_alignment_rejection_templateGeneric "closer alignment" rejection template
- obs.materially_similar_role_reposted_shortly_after_rejectionMaterially similar role reposted shortly after rejection
- obs.multiple_interview_reschedulings_or_interviewer_no_showMultiple interview reschedulings or interviewer no-show
- obs.offer_accepted_followed_by_delayed_start_date_or_post_signing_revocationOffer accepted followed by delayed start date or post-signing revocation
- obs.offer_rescinded_or_delayed_due_to_internal_freezeOffer rescinded or delayed due to internal freeze
- obs.position_closed_after_final_interview_without_hirePosition closed after final interview without hire
- obs.rejection_after_the_application_sat_pending_for_monthsRejection after the application sat pending for months
- obs.rejection_naming_a_jurisdiction_or_work_eligibility_groundRejection naming a jurisdiction or work-eligibility ground
- obs.rejection_naming_a_specific_industry_sector_as_requiredRejection naming a specific industry sector as required
- obs.rejection_naming_an_internal_hire_as_the_outcomeRejection naming an internal hire as the outcome
- obs.rejection_within_minutes_of_application_submissionRejection within minutes of application submission
- obs.republished_job_posting_with_refreshed_date_and_identical_requirement_bodyRepublished job posting with refreshed date and identical requirement body
- obs.take_home_assignment_exceeding_reasonable_stated_scopeTake-home assignment exceeding reasonable stated scope
- obs.unsolicited_recruiter_outreach_followed_by_ghostingUnsolicited recruiter outreach followed by ghosting
- bar.requisition_approval_public_postingRequisition Approval & Public Posting
- bar.outbound_sourcing_talent_pool_contactOutbound Sourcing & Talent Pool Contact
- bar.application_ingestionApplication Ingestion
- bar.automated_filter_parser_thresholdAutomated Filter & Parser Threshold
- bar.inbound_screening_triageInbound Screening & Triage
- bar.recruiter_screening_callRecruiter Screening Call
- bar.technical_screen_live_assessmentTechnical Screen / Live Assessment
- bar.take_home_work_sample_evaluationTake-Home / Work Sample Evaluation
- bar.hiring_manager_in_depth_reviewHiring Manager In-Depth Review
- bar.team_cross_functional_panelTeam & Cross-Functional Panel
- bar.compensation_levelling_reconciliationCompensation & Levelling Reconciliation
- bar.headcount_executive_budget_approvalHeadcount & Executive Budget Approval
- bar.reference_background_verificationReference & Background Verification
- bar.offer_closing_contract_executionOffer Closing & Contract Execution
- bar.client_profile_approval_and_client_interviewClient Profile Approval and Client Interview
- bar.probation_period_post_start_confirmationProbation Period & Post-Start Confirmation
- mech.ats_parser_extraction_failureATS Parser Extraction Failure
- mech.automated_application_expiration_timeoutAutomated Application Expiration Timeout
- mech.automated_keyword_qualification_filterAutomated Keyword / Qualification Filter
- mech.bench_priority_fillBench-Priority Fill
- mech.bid_conditional_talent_poolBid-Conditional Talent Pool
- mech.communication_or_working_style_frictionCommunication or Working Style Friction
- mech.domain_specificity_over_weightingDomain Specificity Over-Weighting
- mech.employment_gap_downranking_biasEmployment Gap Downranking Bias
- mech.experience_age_grading_mismatchExperience-Age Grading Mismatch
- mech.genuine_technical_skill_shortfallGenuine Technical Skill Shortfall
- mech.headcount_freeze_or_budget_cancellationHeadcount Freeze or Budget Cancellation
- mech.hidden_evaluation_rubric_or_undisclosed_priorityHidden Evaluation Rubric or Undisclosed Priority
- mech.hiring_manager_consensus_impasseHiring Manager Consensus Impasse
- mech.inflated_requisition_requirements_vs_actual_team_needsInflated Requisition Requirements vs Actual Team Needs
- mech.interview_resource_scheduling_saturationInterview Resource & Scheduling Saturation
- mech.location_or_timezone_compliance_constraintLocation or Timezone Compliance Constraint
- mech.mid_process_role_requirement_redefinitionMid-Process Role Requirement Redefinition
- mech.portfolio_work_artifact_misinterpretationPortfolio / Work Artifact Misinterpretation
- mech.pre_selected_internal_candidatePre-Selected Internal Candidate
- mech.probation_used_as_extended_de_facto_interviewProbation Used as Extended De-Facto Interview
- mech.recruiter_volume_quota_incentive_distortionRecruiter Volume & Quota Incentive Distortion
- mech.reference_check_discrepancy_or_regulatory_ineligibilityReference Check Discrepancy or Regulatory Ineligibility
- mech.speculative_sourcing_talent_pooling_without_openingSpeculative Sourcing / Talent Pooling Without Opening
- mech.stale_or_orphaned_job_requisitionStale or Orphaned Job Requisition
- mech.start_date_slippage_and_post_acceptance_revocationStart-Date Slippage and Post-Acceptance Revocation
- mech.stronger_competing_candidate_in_final_cohortStronger Competing Candidate in Final Cohort
- mech.take_home_evaluation_fatigue_asymmetryTake-Home Evaluation Fatigue & Asymmetry
- mech.unstated_compensation_band_discrepancyUnstated Compensation Band Discrepancy
- pat.closed_then_reposted_requisition_motifClosed-Then-Reposted Requisition Motif
- pat.compensation_double_bindCompensation Double Bind
- pat.experience_age_impossibilityExperience-Age Impossibility
- pat.seniority_double_bindSeniority Double Bind
- loop.employment_gap_penalty_loopEmployment Gap Penalty Loop
- loop.inflated_requirements_search_saturation_loopInflated-Requirements Search Saturation Loop
- loop.take_home_opportunity_cost_saturation_loopTake-Home Opportunity-Cost Saturation Loop
- int.a_named_decider_and_a_written_rule_for_a_split_panelA named decider and a written rule for a split panel
- int.auto_close_stale_job_requisitionsAuto-Close Stale Job Requisitions
- int.bench_availability_declared_at_each_stage_gateBench availability declared at each stage gate
- int.candidate_ats_parser_conformance_test_utilityCandidate ATS Parser Conformance Test Utility
- int.candidate_work_index_submitted_with_the_applicationCandidate Work Index Submitted With the Application
- int.contractable_jurisdictions_listed_in_the_postingContractable jurisdictions listed in the posting
- int.critique_injected_on_script_in_the_collaborative_exerciseCritique injected on script in the collaborative exercise
- int.dated_funding_certification_before_the_final_roundDated Funding Certification Before the Final Round
- int.disqualifying_criteria_published_with_the_postingDisqualifying criteria published with the posting
- int.distinct_closure_status_for_unreviewed_applicationsDistinct Closure Status for Unreviewed Applications
- int.domain_requirement_carries_a_stated_ramp_timeDomain requirement carries a stated ramp time
- int.internal_candidacy_stated_in_the_postingInternal Candidacy Stated in the Posting
- int.interview_seats_booked_with_prep_time_and_a_second_name_on_the_rotaInterview Seats Booked With Prep Time and a Second Name on the Rota
- int.outreach_states_the_requisition_behind_itOutreach States the Requisition Behind It
- int.publish_the_technical_screen_s_columns_and_threshold_before_the_roundPublish the Technical Screen's Columns and Threshold Before the Round
- int.recorded_finalist_standing_with_a_dated_re_entry_routeRecorded Finalist Standing With a Dated Re-Entry Route
- int.requirement_changes_versioned_and_sent_to_candidates_in_flightRequirement changes versioned and sent to candidates in flight
- int.requirements_drawn_from_the_team_s_own_backlogRequirements Drawn From the Team's Own Backlog
- int.screening_note_bound_to_observations_and_disposition_codesScreening Note Bound to Observations and Disposition Codes
- int.standardized_late_stage_rejection_feedback_taxonomyStandardized Late-Stage Rejection Feedback Taxonomy
- int.strict_take_home_timebox_blinded_evaluation_rubricStrict Take-Home Timebox & Blinded Evaluation Rubric
- int.upfront_compensation_band_disclosureUpfront Compensation Band Disclosure
- int.verification_discrepancy_disclosure_and_reconciliation_windowVerification Discrepancy Disclosure and Reconciliation Window