Skip to content

signal: Thin Description #15

Description

@LXBStudioLLC

Spec

Tier: Weak
Name: Thin Description

A low-effort-listing hint: a posting whose description is very short, or is almost all boilerplate (mostly EEO, benefits, and legal text with little role-specific content). Recruiters posting real, active roles usually write a substantive description, so a threadbare one is a small sign the listing may be a placeholder or a ghost. Weak and correlational. Some real roles do have short descriptions.

Data source

None. Local only, uses just posting.DescriptionText. RequiresNetwork = false.

Approach

  1. Normalize the description (lowercase, collapse whitespace, tokenize) the way the existing signals do. Reuse the DuplicateJdSignal and DomScorer helpers rather than writing your own.
  2. Compute two cheap numbers: (a) meaningful length (characters or tokens after trimming), and (b) a boilerplate ratio, how much of the text matches a small set of boilerplate phrases ("equal opportunity employer", "reasonable accommodation", "benefits include", "background check", "committed to diversity").
  3. Return a SignalResult (low score, low-to-moderate confidence) when the description is very short (a conservative threshold, say under 350 characters) or the boilerplate ratio is very high with little role-specific text left. Return null otherwise.

Precision rules

  • Weak tier, low score. Never moves the band on its own.
  • Keep the thresholds conservative. A short but real description is common. When in doubt, return null.
  • Describe the pattern in the evidence, for example: "This posting's description is unusually short, or almost entirely boilerplate, which can mean a placeholder listing." Never a verdict on the company.

Acceptance criteria

  • Implements IGhostSignal with Name = "Thin Description" and Tier = Weak
  • RequiresNetwork = false. Local only, no network, no data files
  • Returns null for substantive descriptions and for empty or missing text
  • Never throws. Catch and return null
  • Human-readable evidence. No verdict on a named company
  • Tests use labeled fixtures (no network calls): very short (fires), pure boilerplate (fires), a normal substantive description (null)
  • dotnet test passes, including ContainerResolutionTests
  • PR targets main

Quick start

Copy the agent prompt from SIGNAL_AUTHORING.md, paste the Spec block above into it, and hand it to your coding agent. Good first signal, local only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions