What Information Is Included in Block D — Comp and Demand in Career-Ops?
Block D — Comp and Demand is the compensation-research section of the oferta job-evaluation mode that mandates structured collection of salary data, employer classification, reliability assessments, and HR verification questions to ensure transparent, comparable market analysis.
Block D — Comp and Demand serves as the systematic compensation framework within the santifer/career-ops repository's evaluation workflow. Located in modes/oferta.md, this block standardizes how candidates research and validate salary information, ensuring that downstream negotiation scripts and career decisions rely on vetted, decomposed data rather than potentially inflated or ambiguous figures.
Research Budget and Data Sources
Every Block D evaluation begins with a defined research budget specifying which platforms to query. According to lines 121–124 in modes/oferta.md, the system directs evaluators to use specific sources such as Glassdoor, Levels.fyi, and Blind to gather market data. This bounded approach prevents scope creep while ensuring comprehensive coverage of both public and crowdsourced compensation databases.
Company-Type Classification and Reliability Tiers
Before analyzing specific figures, Block D requires a mandatory company-type classification with an associated confidence level. As defined in lines 30–41 of modes/oferta.md, evaluators must categorize employers into types such as public-big-tech, growth-stage startup, or enterprise-legacy, each carrying different compensation benchmarking implications.
Following classification, Block D mandates a compensation reliability tier (lines 51–73) that dictates how much trust can be placed in any salary figure. The four-tier system includes:
- High — Base salary or structured public bands verified through official channels
- Medium — Partial data or reliable external aggregators with sufficient sample size
- Low — Anecdotal evidence or ambiguous language requiring verification
- Unknown — No verifiable data points available
Decomposing Salary Components
When an advertised salary figure exists, Block D enforces strict decomposition rules (lines 58–66). Evaluators must split compensation into distinct components:
- Advertised range — The verbatim figure from the job description
- Likely guaranteed base — The fixed, non-negotiable portion
- Variable/conditional cash — Performance bonuses, commissions, or OTE (On-Target Earnings)
- Expected stable cash — Conservative estimate of guaranteed plus likely variable
- Non-cash benefits — Equity, insurance, retirement contributions, and perks
Identifying Low-Reliability Signals
Block D includes specific linguistic patterns that automatically downgrade reliability tiers. Lines 75–77 in modes/oferta.md flag phrases such as "up to", "OTE", and "comprehensive salary" as low-reliability signals unless the fixed base is explicitly separated from variable components. This prevents candidates from anchoring negotiations on inflated total compensation figures that may not materialize.
HR Verification Questions
To bridge the gap between advertised and actual compensation, Block D requires the generation of 3–6 concrete HR verification questions (lines 79–88). These questions target the recruiter directly to confirm:
- The exact split between base salary and variable components
- Vesting schedules for equity grants
- Cliff periods and acceleration clauses
- Benefits premiums and employer contribution percentages
This requirement ensures candidates enter negotiation phases with specific, documented queries rather than vague discussions about "total comp."
Compensation Table Structure
The visual centerpiece of Block D is the compensation table, which follows a strict schema defined in lines 92–97. The table's first row must echo the job description's advertised figure verbatim, creating an immutable anchor point. Subsequent rows contain market research data from the bounded sources, enabling direct comparison between employer claims and external benchmarks.
When no advertised figure exists, Block D collapses to exactly two concise lines (lines 53–57): the company-type classification and the reliability tier, preventing fabrication of data where none exists.
Programmatic Extraction of Block D Data
Because santifer/career-ops reports follow strict markdown conventions, Block D content can be programmatically parsed for automation pipelines. The following JavaScript example extracts the compensation table and company classification from a generated report:
import yaml from 'js-yaml';
import fs from 'fs';
// Load the markdown report (generated by the oferta mode)
const report = fs.readFileSync('reports/042-some-company-2024-08-22.md', 'utf8');
// Extract the Block D markdown table (first row is JD figure)
const compTable = report.match(/## Block D — Comp and Demand[\s\S]*?\n\| Advertised \(JD\)[^\n]*\n([\s\S]*?)\n##/);
if (compTable) {
const rows = compTable[1].trim().split('\n').filter(l => l.startsWith('|'));
// Row 0 is the JD figure, rows 1+ are market data
const jdFigure = rows[0].split('|')[2].trim();
console.log('Advertised JD figure:', jdFigure);
}
// Pull the company-type classification (required in the report)
const typeMatch = report.match(/\| Company type \| ([^|]+) \|/);
if (typeMatch) {
console.log('Company type:', typeMatch[1].trim());
}
For command-line workflows, the Block D header can be located using ripgrep:
# Locate Block D in the evaluation template
rg -n "## Block D — Comp and Demand" -r "$0" modes/oferta.md
# -> outputs: 121:## Block D — Comp and Demand
These patterns enable integration with CI/CD pipelines that validate report completeness or generate compensation comparison charts across multiple job opportunities.
Localization and Schema Definitions
Block D specifications extend across localized versions of the evaluation mode. The Chinese translation in modes/zh/oferta.md and the Japanese variant in modes/ja/kyujin.md mirror the Block D structure, ensuring consistent compensation analysis across language contexts. Canonical reliability tier definitions reside in templates/states.yml, providing standardized status mappings that Block D references when setting assessment levels.
Summary
Block D — Comp and Demand transforms subjective salary research into a structured, auditable process:
- Mandates specific data sources (Glassdoor, Levels.fyi, Blind) within a bounded research budget
- Requires employer classification (public-big-tech, startup, etc.) with confidence levels
- Enforces four-tier reliability assessment (High, Medium, Low, Unknown) based on data quality
- Decomposes advertised figures into base, variable, and non-cash components
- Flags ambiguous language ("up to," "OTE") that artificially inflates perceived compensation
- Generates concrete HR questions to verify actual versus advertised packages
- Structures output tables with the JD figure as row one for direct market comparison
Frequently Asked Questions
What happens if a job description doesn't list a salary figure?
If no advertised number exists, Block D collapses to exactly two concise lines per lines 53–57 of modes/oferta.md: the company-type classification and the reliability tier (typically set to Unknown). This prevents evaluators from inventing benchmark figures while still documenting the employer category for future reference.
How does the compensation reliability tier system work?
The reliability tier (lines 51–73) categorizes data quality into High, Medium, Low, or Unknown based on source authority and specificity. High reliability requires structured public bands or verified base salaries, while Low reliability applies to anecdotal data or ambiguous total-compensation figures. This tier directly influences the confidence level assigned to downstream negotiation recommendations.
What are considered low-reliability signals in Block D?
According to lines 75–77, specific phrases automatically downgrade reliability unless the fixed base is explicitly separated: "up to", "OTE" (On-Target Earnings), "comprehensive salary", and similar constructs that conflate guaranteed and variable compensation. These signals trigger additional verification requirements in the HR questions section.
How is the Block D compensation table formatted?
The table (lines 92–97) begins with an immutable first row containing the job description's advertised figure verbatim, creating an audit trail between source claims and market research. Subsequent rows contain validated external data, with columns mapping to the decomposed components: advertised range, guaranteed base, variable cash, stable cash expectations, and non-cash benefits.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →