What a Tech Salary Range Can Tell You—and What a Missing Range Cannot
Only 6,024 of 23,702 current ApplyDjinn listings had a normalized salary bound in an October snapshot. Learn to compare pay evidence by role, location, currency and period without inventing a market average.

Salary data is useful precisely because it is incomplete. A range in a job posting is a concrete piece of employer evidence, while an empty pay field says almost nothing about what the employer might offer. Problems start when a product or candidate treats the visible subset as a complete market, combines monthly and annual amounts, or compares different countries as if currency symbols were the only difference. This article shows a more careful way to use ApplyDjinn's pay fields when choosing jobs and evaluating an offer.
The disclosed subset in ApplyDjinn's catalog
At October 10, 2026, 09:52 UTC, ApplyDjinn's current 30-day market view contained 23,702 active vacancy records at 282 employers. 6,024 of those records had at least a normalized minimum or maximum salary field, about 25.4% of the current set. That does not mean the other 74.6% pay nothing or pay below the visible roles. It means the source or parser did not produce a normalized bound in those fields for this snapshot. Some source pages may contain pay language that a parser did not capture; some employers publish no range.
The denominator is itself a monitored catalog, not every opening in a country. “Current” follows a 30-day source-published or observation rule for active listings, with an editorial pin exception. The share with pay data can change if new employers are connected, source templates change or extraction improves. A rise from 25.4% would not, by itself, mean salaries rose. It could simply mean more postings disclosed a range or the parser recognized more formats.
The salary section is a way to inspect comparable evidence, but an aggregate without role, level, geography, currency and source count can mislead. Use the employer's original posting for final terms. A catalog salary field is a navigation aid and a saved observation, not a written offer.
Missing is different from zero
If a listing has no normalized salary bound, the correct value is unknown. Filling it with a model estimate, the company's average pay or a neighboring role's range creates false precision. It also contaminates any median calculated across listings. A product can show that the range is not disclosed and, separately, show external benchmark context if that context has a clear source and method. It should not silently blend the two into a single “offered salary.”
One source may list a base-salary range. Another may include a total-compensation estimate. A third may describe a commission plan, overtime or equity. These are different variables even when they use the same currency. A useful comparison records exactly what the employer says the numbers include. If that is unclear, mark the component unknown and ask the recruiter. A big number without a component label is not a better data point than a smaller, well-defined base range.
The absent range can also be informative about the process, but not about the pay level. It may signal a job board feed with sparse fields, a source page that uses an image or document, or an employer that discusses compensation later. The next action is to check the source and ask for the pay basis when appropriate. Do not infer generosity or stinginess from an empty field.
Build a comparable set before calculating anything
Start with the role family and actual scope. “Software engineer” can include entry-level application work, senior infrastructure ownership, research engineering and engineering management. If you mix them, the range width mostly measures role diversity. Narrow by specialty and level, then by location and employer type where the sample allows it. The role view and vacancy catalog can help make that shortlist before you look at pay.
Second, align geography. A remote role may publish a range for one country or state while accepting applicants from several places at different rates. A multi-location posting may contain several ranges. If ApplyDjinn stores one normalized bound, inspect the source paragraph that explains its applicability. Do not apply a US range to an Israel-based offer or convert it into shekels without considering the employment entity and pay period. Currency conversion alone cannot make unlike roles comparable.
Third, align the period. A monthly salary, annual base, hourly rate and daily contract rate are not comparable without assumptions about hours, paid leave and benefits. Some fields in an applicant-tracking system may represent a range midpoint rather than a contractual promise. The safe table has separate columns for amount, currency, period, component, location and source link. If one is missing, leave it blank rather than guessing.
Keep the original number beside any converted number. A conversion may help you scan opportunities, but the source amount is what a recruiter can confirm. If the employer gives a range in more than one currency, do not assume the values are mechanically equivalent: they may reflect different entities, locations or compensation policies. Note the date of any exchange rate you use, then return to the native currency when discussing the actual offer. This avoids making a moving exchange rate look like a change in the employer's budget.
Fourth, record sample size and selection. Suppose ten comparable postings disclose pay and fifty do not. A median of the ten is the median among disclosing postings, not the median pay across sixty opportunities. If the ten are dominated by one employer or one city, report that. The 6,024 disclosed-bound records in the whole catalog cannot support a universal “tech salary” figure because they span different jobs and countries and reflect who chose to publish or what the parser could extract.
Read the range itself carefully
A range with a low and high endpoint is not a promise that a candidate will be offered the high end. The employer may tie placement within the range to level, location, experience or internal compensation structure. An unusually wide range may cover several levels or markets. A narrow range may leave other compensation components outside the displayed field. Read the exact source wording and ask what the role is leveled as before using the midpoint in a personal budget.
Compare offers using the complete written terms. Base pay, bonus conditions, equity vesting, healthcare, pension, leave, contract status, probation and currency risk can all matter. ApplyDjinn's offer decision guide gives a broader framework for that stage. This article is about the evidence quality of public salary fields, which is earlier and narrower. Do not treat a vacancy range as the contract you will sign.
If a recruiter asks for expectations before sharing a range, you can ask for the role's budget and level. If you provide a number, state the pay basis and location assumptions. The goal is to discover whether the opportunity is feasible, not to win a negotiation with a chart. Personal tax and employment consequences vary by situation; confirm them from current authoritative sources or a qualified adviser when they affect a decision.
A practical ApplyDjinn comparison
Imagine two source-verified roles in the same specialty and city. Role A discloses a base range and has a clear hybrid schedule. Role B does not disclose pay but may offer stronger ownership. Do not set Role B to zero or to a market average. Put “not disclosed” in the pay column and a question for the recruiter. Compare role scope, team and interview stage separately. When Role B shares a budget, you can update the table without rewriting the rest of the evaluation.
Now add a third role from another country. A direct numerical comparison is premature even if its converted amount looks higher. Check permitted work location, employment entity, pay period, taxes, benefits, cost of living, time-zone burden and travel. Some of these are personal constraints rather than public statistics. A chart can organize the questions; it cannot decide which arrangement is worth more to you.
For salary browsing, filter first to the role and geography, sort a short set of source links and inspect the exact range paragraphs. Note whether the source date is recent. A role first observed yesterday may have an older publication date and a range that changed after reposting. Save the date of the source check. If a listing has sparse or contradictory pay data, use it as a question, not as a number in a median.
What a trustworthy salary chart should show
It should show its denominator, the number of postings with usable pay data, the number excluded, the role and level scope, currency and period, and the observation date. If a chart uses disclosed ranges only, label it that way. If it includes more than one currency, separate panels or convert with a clearly stated exchange-rate date and method; do not hide conversion inside a single line. If a source provides a floor only, do not pretend a full range exists.
Display distribution as well as a central value when there are enough comparable observations. A few extreme executive or contract rates can distort an average. A median still has limited meaning when the sample is small or one employer contributes most rows. Suppressing a numerical summary can be the honest choice. The chart can instead list source examples and explain why no reliable aggregate is available.
Avoid implying causality from vacancy and stock charts. A public employer's share price can move for many reasons and does not reveal the salary budget for one team. A rise in salary-disclosing postings can come from changes in geography, policy or parser coverage rather than pay inflation. Keep market signals beside, not inside, the evidence for a particular compensation discussion.
A five-question check before using a number
Ask: Is this pay amount in the employer's source posting? Does it apply to my role level and location? Is it base pay, total compensation or another component? What is the currency and period? How many comparable postings support the wider claim I am making? If any answer is missing, either narrow the claim or ask the employer. A disclosed range can help you choose which conversation to start. A missing range should prompt a question. Neither should be turned into a precise prediction of what you personally will earn.
The October snapshot's 6,024 of 23,702 figure is not a salary benchmark. It is a reminder that the visible pay sample is selected. Use ApplyDjinn to find the source, filter to comparable roles and keep unknowns explicit. A careful shortlist with ten well-described roles is more useful than a universal average built from incompatible and missing fields.