{
  "registry_version": "1.0.0",
  "data": {
    "title": "Inflated-Requirements Search Saturation Loop",
    "status": "active",
    "evidence_ids": [
      "evidence.hidden_workers_untapped_talent_hbs_accenture",
      "evidence.job_seekers_beware_of_ghost_jobs_clarify_capital_survey_of_hiring_managers",
      "evidence.self_selected_survey_of_it_job_seekers_in_one_national_market_dou"
    ],
    "content": "# Inflated-Requirements Search Saturation Loop\n\nTeams write inflated requirements that filter out strong generalists; the search stays open for months, recruiters tire of it, and the role is redefined mid-process.\n\n### Cycle Dynamics\nThis causal loop reinforces mechanisms across iterations:\n- `mech.inflated_requisition_requirements_vs_actual_team_needs` amplifies `mech.automated_keyword_qualification_filter`\n- `mech.automated_keyword_qualification_filter` amplifies `mech.mid_process_role_requirement_redefinition`\n- `mech.mid_process_role_requirement_redefinition` amplifies `mech.inflated_requisition_requirements_vs_actual_team_needs`",
    "aliases": [
      "L-003"
    ],
    "id": "loop.inflated_requirements_search_saturation_loop",
    "type": "loop",
    "summary": "Teams write inflated requirements that filter out strong generalists; the search stays open for months, recruiters tire of it, and the role is redefined mid-process.",
    "mechanisms": [
      "mech.inflated_requisition_requirements_vs_actual_team_needs",
      "mech.automated_keyword_qualification_filter",
      "mech.mid_process_role_requirement_redefinition"
    ],
    "edges": [
      {
        "from": "mech.inflated_requisition_requirements_vs_actual_team_needs",
        "to": "mech.automated_keyword_qualification_filter",
        "relation": "amplifies"
      },
      {
        "from": "mech.automated_keyword_qualification_filter",
        "to": "mech.mid_process_role_requirement_redefinition",
        "relation": "amplifies"
      },
      {
        "from": "mech.mid_process_role_requirement_redefinition",
        "to": "mech.inflated_requisition_requirements_vs_actual_team_needs",
        "relation": "amplifies"
      }
    ],
    "entry_points": [
      "mech.inflated_requisition_requirements_vs_actual_team_needs"
    ],
    "interventions": [
      "int.auto_close_stale_job_requisitions",
      "int.standardized_late_stage_rejection_feedback_taxonomy",
      "int.requirements_drawn_from_the_team_s_own_backlog"
    ],
    "evidence_level": "compatible",
    "specimens": [
      {
        "kind": "posting",
        "label": "The same requisition, rewritten twice",
        "lines": [
          {
            "text": "Month 0 — 8 required technologies, 7+ years, staff-level scope. Applications: 340. Advanced to onsite: 2. Hired: 0.",
            "tell": false
          },
          {
            "text": "Month 3 — search still open. Requirements rewritten upward: 10 technologies, 9+ years, plus formal lead experience.",
            "tell": true
          },
          {
            "text": "Month 6 — search still open. Recruiter reassigned; team now covering the work with overtime.",
            "tell": false
          }
        ],
        "reading": "The response to a failed search was a narrower filter. The filter was the reason the search failed, which is the turn that makes this a loop."
      },
      {
        "kind": "chat",
        "label": "Where the requirement came from",
        "lines": [
          {
            "speaker": "Recruiter",
            "at": "month 3",
            "text": "Do we really need nine years and Rust for this? The backlog is mostly billing endpoints.",
            "tell": false
          },
          {
            "speaker": "Hiring manager",
            "at": "month 3",
            "text": "Nobody good has applied in three months. If we lower the bar we will get more of the same.",
            "tell": true
          }
        ],
        "reading": "The inference runs backwards: an empty pipeline is read as evidence that the bar is too low. That reading is what tightens the next iteration."
      }
    ],
    "perspectives": [
      {
        "actor": "actor.hiring_manager",
        "sees": "Three months of applications, two candidates reaching onsite, no hire, and the team covering the work with overtime.",
        "reads": "The pipeline holds nobody the panel wanted, and a lower bar would add to the pool it has already turned down.",
        "does": "Rewrites the requirements upward, adds the missing signal as a formal requirement, and reposts: a bad hire is recorded against them and an open search is not."
      },
      {
        "actor": "actor.recruiter",
        "sees": "A requisition ageing past the time-to-fill it is measured on, and a requirements list that got longer at the rewrite.",
        "reads": "The requirements belong to the hiring manager, who is the internal client for this search.",
        "does": "Raises the question once, posts the revised text, and moves screening capacity to requisitions that can close."
      },
      {
        "actor": "actor.candidate",
        "sees": "A posting with ten required technologies, a nine-year threshold and a lead requirement, republished with a longer list than the version before it.",
        "reads": "The list is either the bar or a wish, and the posting does not say which; the year thresholds are the part a filter can act on.",
        "does": "Skips the posting or applies against a list they do not match, and never learns which of the requirements the screen enforced."
      }
    ]
  }
}
