Hiring manager
The person the role reports to, and the panel they convene. Sets the bar, owns the outcome, and is doing this alongside the work the role exists to absorb.
Decides
- The requirements as written, and the ones only they know about
- Who interviews and what they ask
- The level a candidate is assessed at
- Whether a split panel becomes a hire
Cannot see
- What the same candidate showed in rounds they did not attend
- How the requirements read to someone outside the team
- What the search is costing the people covering the gap
Measured on
- Avoid a bad hire, which is visible and attributed, more than a missed hire, which is neither
- Fill the gap without the ramp-up cost of someone who needs teaching
- Keep the team's own delivery on track while running the loop
What it looks like
Composite excerpts, written to be typical rather than copied. No particular message, company or person is quoted here.
A bad hire is visible for a year and attributed to the person who made it.
A missed hire is invisible and attributed to nobody.
Both are costly. Only one has a name on it.
What to notice: This is not a bias to be scolded out of anyone; it is an incentive with a shape. Several conservative-default mechanisms follow from it directly.
What this position could do
Each of these is something this position actually controls, with the cost stated rather than implied.
Write the requirement list from last quarter's workCost: medium
The requirements as written belong to this actor, and the list is what the keyword filter and the recruiter's screen are both built from. Checking each line against what the team delivered last quarter separates what the job uses from what a previous strong candidate happened to have. A year count larger than the age of the technology is checkable before the posting goes up.
What it costs: A shorter list brings more applications into a funnel this actor's own team staffs, and it gives up the requirement page as the argument for a higher level and a wider band.
Addressesmech.inflated_requisition_requirements_vs_actual_team_needspat.experience_age_impossibilitymech.automated_keyword_qualification_filterloop.inflated_requirements_search_saturation_loop
Put the house preferences into the interview briefCost: low
This actor sets what each interviewer asks, and holds the requirements only they know about. A preference about architecture or about vertical experience that is not in the brief is still scored in the room, and the candidate cannot design against a criterion they were not given.
What it costs: A preference in writing is open to challenge from the panel and from the recruiter, and one that cannot be put into a sentence does not make it into the brief.
Addressesmech.hidden_evaluation_rubric_or_undisclosed_prioritymech.domain_specificity_over_weightingbar.technical_screen_live_assessmentbar.hiring_manager_in_depth_reviewobs.conflicting_feedback_across_different_interviewers
Cap the take-home and floor the review timeCost: medium
The exercise and who reviews it are both this actor's to set. Work built over hours and read in minutes is scored on whatever the reader happened to open, and the note that comes out of it describes the review rather than the submission. Capping the candidate's hours without a floor under the reviewer's minutes moves the asymmetry rather than closing it.
What it costs: A three-hour sample carries less to go on, so more of the decision falls to the panel, and twenty minutes from each of two reviewers comes out of a sprint the team is already behind on.
Addressesmech.take_home_evaluation_fatigue_asymmetrymech.interview_resource_scheduling_saturationbar.take_home_work_sample_evaluationloop.take_home_opportunity_cost_saturation_loop
Agree the decision rule before the first conversationCost: medium
Whether a split panel becomes a hire is this actor's decision, and a unanimity requirement settles it in advance: one dissent and three produce the same outcome. Writing the rule down before the loop starts, including who breaks a tie, keeps an even split from being written up as a finding about the candidate.
What it costs: Naming the tiebreaker means this actor signs a hire the panel did not agree on, and a hire that goes wrong is visible for a year and carries their name.
Addressesmech.hiring_manager_consensus_impassebar.team_cross_functional_panelobs.conflicting_feedback_across_different_interviewers
Freeze the requirements once the loop opensCost: high
The requirements as written are this actor's; whether a requisition closes is not. Assessments taken against one description do not carry over to another, so a change of stack or scope that arrives mid-loop belongs in the next posting rather than in the scoring of work already done. Everyone already inside is then measured against the description they were given.
What it costs: The loop runs to the end against a profile the team has moved past, and the change the requirements needed waits for a search that starts again from the posting.
Addressesmech.mid_process_role_requirement_redefinitionloop.inflated_requirements_search_saturation_loop
Fix the assessed level before the loop opensCost: medium
The level a candidate is assessed at is this actor's to set, and it is set at the in-depth review whether or not it was written down first. Naming the level, and what evidence meets it, before the loop opens means experience above the band is measured against the requirements rather than against a forecast about how long someone stays.
What it costs: A level fixed in advance removes the move of recovering a strong candidate at the level below, and where the level was set wrong the search runs again from the posting.
Addressespat.seniority_double_bindobs.feedback_stating_candidate_is_overqualified_for_the_grademech.experience_age_grading_mismatchbar.hiring_manager_in_depth_review
Entries this position can see
- obs.communication_mismatch_or_tone_friction_in_panelCommunication mismatch or tone friction in panel
- 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.multiple_interview_reschedulings_or_interviewer_no_showMultiple interview reschedulings or interviewer no-show
- obs.position_closed_after_final_interview_without_hirePosition closed after final interview without hire
- 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.take_home_assignment_exceeding_reasonable_stated_scopeTake-home assignment exceeding reasonable stated scope
- bar.requisition_approval_public_postingRequisition Approval & Public Posting
- bar.automated_filter_parser_thresholdAutomated Filter & Parser Threshold
- 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.probation_period_post_start_confirmationProbation Period & Post-Start Confirmation
- mech.automated_keyword_qualification_filterAutomated Keyword / Qualification Filter
- mech.communication_or_working_style_frictionCommunication or Working Style Friction
- mech.domain_specificity_over_weightingDomain Specificity Over-Weighting
- 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.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.stronger_competing_candidate_in_final_cohortStronger Competing Candidate in Final Cohort
- mech.take_home_evaluation_fatigue_asymmetryTake-Home Evaluation Fatigue & Asymmetry
- pat.closed_then_reposted_requisition_motifClosed-Then-Reposted Requisition Motif
- pat.experience_age_impossibilityExperience-Age Impossibility
- pat.seniority_double_bindSeniority Double Bind
- 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.candidate_work_index_submitted_with_the_applicationCandidate Work Index Submitted With the Application
- int.critique_injected_on_script_in_the_collaborative_exerciseCritique injected on script in the collaborative exercise
- 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.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.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