Block G Posting Legitimacy in Career-Ops: 13 Signals Analyzed

Block G evaluates job posting legitimacy through 13 independent qualitative checks defined in modes/oferta.md, aggregating findings into a tiered Risk Summary without rendering legal conclusions.

Career-ops is an open-source evaluation framework that helps candidates assess job opportunities through systematic signal analysis. The Block G Posting Legimacy module specifically examines whether a listing represents a genuine, active opportunity by inspecting temporal, contextual, and jurisdictional indicators defined in the core specification.

What Is Block G in Career-Ops?

Block G serves as the "Posting Legitimacy" section within a career-ops evaluation report. According to modes/oferta.md, it aggregates independent qualitative checks that produce concise descriptive notes for the Risk Summary table. Each signal is descriptive only—the system flags anomalies but never instructs users to reject postings or issues legal determinations.

The 13 Legitimacy Signals Defined in modes/oferta.md

The following thirteen checks are applied sequentially during pipeline execution, organized here by analytical focus.

Posting Freshness and Availability

  • Posting Freshness: Extracts posted dates or "X days ago" strings from the live page, verifies the Apply button state, and notes redirections to generic careers pages. This signal requires a Playwright snapshot and executes only during full pipeline runs.

Content Quality and Description Analysis

  • Description Quality: Validates whether the job description mentions concrete technologies, team size, reporting structure, realistic experience-to-technology ratios, a clear 6–12 month scope, compensation details, and the proportion of role-specific versus boilerplate text.

  • AI-Buzzword vs. Infrastructure Mismatch: Detects discrepancies between AI-heavy marketing language and actual team size or infrastructure maturity. This requires at least two of three sub-checks to trigger a flag.

  • Benefits/Employment Terminology Country Mismatch: Flags benefits or employment terms belonging to different jurisdictions than the posting location—for example, "401(k)" appearing on a Canadian posting.

Company Hiring Context

  • Company Hiring Signals: Executes web queries such as "{company} layoffs {year}" and "{company} hiring freeze {year}", then correlates findings with the role's specific department.

  • Reposting Detection: Consults data/scan-history.tsv to identify earlier appearances of the same company and similar title under different URLs, reporting the recurrence count and time span.

  • Role Market Context: Provides qualitative assessment of typical fill-times for the role, whether the position aligns with the company's business model, and whether the seniority level justifies the expected hiring timeline.

Jurisdiction and Employment Classification

  • Employment-Classification Risk: Compares job description wording against jurisdiction-specific data in templates/agency-licensing.yml to identify contractor-style language, missing benefits, or unclear end dates.

  • Third-Party Platform Location Tag Mismatch: When both a third-party platform (LinkedIn, Indeed, etc.) and the employer's page provide location data with matching requisition IDs, flags mismatches at the country level.

  • Agency Licensing Check: Determines if the posting is agency-mediated and, if so, references templates/agency-licensing.yml for the candidate's jurisdiction to display relevant licensing regimes and public registry URLs.

  • Immigration-Status Requirement Overreach: Uses templates/immigration-status-requirements.yml to flag prohibited status-requirement patterns specific to the candidate's jurisdiction. This activates only when postings demand specific immigration statuses rather than general lawful authorization.

  • Jurisdiction-Prohibited Content: References templates/jurisdiction-prohibited-content.yml to flag job description language expressly prohibited locally, such as salary-history questions in California.

Compensation Transparency

  • Pay-Transparency Range-Width Check: Computes the advertised compensation spread and flags when top - bottom > 0.5 × bottom. This pure arithmetic heuristic operates independently of legal thresholds.

How to Execute Block G Analysis

You can trigger these legitimacy checks through the career-ops CLI. To run the full evaluation pipeline including Block G:

codex exec "career-ops auto-pipeline https://example.com/job/123"

For targeted legitimacy scans without the complete pipeline:

codex exec "career-ops oferta --block G https://example.com/job/123"

Both commands generate markdown reports containing the Block G – Posting Legitimacy section followed by the Risk Summary table, which categorizes findings into High Confidence, Proceed with Caution, or Suspicious tiers.

Key Source Files and Templates

The following files encode the complete heuristic set for Block G analysis:

Summary

  • Block G aggregates 13 distinct signals to assess job posting legitimacy without rendering legal conclusions.
  • Analysis spans temporal freshness, content quality, company context, and jurisdictional compliance.
  • Configuration relies on modes/oferta.md and three jurisdiction-specific YAML templates in the templates/ directory.
  • Execution requires either full pipeline runs (with Playwright for Signal 1) or targeted --block G invocations.
  • Output appears in the Risk Summary table with three-tier classification: High Confidence, Proceed with Caution, or Suspicious.

Frequently Asked Questions

How does Career-Ops determine if a job posting is a repost?

The system queries data/scan-history.tsv to locate previous entries matching the same company and similar title under different URLs. It reports the total recurrence count and the elapsed time since the first appearance, helping identify artificially "fresh" listings that may indicate high turnover or stale opportunities.

What triggers the Pay-Transparency Range-Width Check?

This Signal 13 heuristic activates when the mathematical difference between the top and bottom of the advertised salary range exceeds 50% of the bottom value (top - bottom > 0.5 × bottom). For example, a range of $100,000 to $160,000 triggers the flag because the $60,000 spread exceeds $50,000 (0.5 × $100,000).

Does Block G make automated decisions about job legitimacy?

No. According to the modes/oferta.md specification, all Block G signals are descriptive only. The system generates notes for the Risk Summary table but explicitly avoids making legal conclusions or recommending rejection. Candidates receive tiered classifications to inform their own evaluation.

Which signals require external data sources beyond the job description?

Signal 1 (Posting Freshness) requires a Playwright snapshot of the live page. Signals 4, 6, 10, 11, and 12 read from data/scan-history.tsv or the three template files (templates/agency-licensing.yml, templates/immigration-status-requirements.yml, templates/jurisdiction-prohibited-content.yml). Signal 3 (Company Hiring Signals) executes live web queries for layoff and hiring freeze information.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →