Monthly Market Report
1,969
postings scored across 1,053 companies
Fit scores, skill demand, salary transparency, ghost job analysis.
1,969
Jobs Analyzed
▲ 1919 vs February
1,053
Companies Hiring
unique employers
58
Avg Fit Score
out of 100
15%
Salary Disclosed
▼ 51% vs February
55%
Remote Listings
of all postings
0%
Ghost Signal Rate
of postings
The scoring engine processed 1,969 job postings in March 2026, running them against active candidate profiles to generate 1,969 fit scores. That's up from 50 the prior month. The average fit score was 58 — lower than you'd want, and a sign that this month's postings had specific requirements that most profiles didn't fully meet. The average moved down 0 points from last month's 58. 28 postings (1%) crossed the 75-point threshold — the range where a application is worth serious effort. 824 postings (42%) scored below 60, meaning the fit was too thin to compete without significant profile improvement.
On the demand side, Data Analysis, Project Management, Digital Marketing led across all scored postings. German language and Marketo led the gap list — appearing in dozens of postings where candidates consistently fell short of the required depth. These aren't obscure skills. A 100% gap rate across 12 postings is a systemic problem, not an outlier. The L-level breakdown — which measures required skill depth from L1 (basic awareness) to L5 (architect-grade expertise) — reveals which skills are commoditized versus genuinely differentiating. Skills sitting at L3 or higher are where candidates get separated from the pack.
Only 15% of postings disclosed salary. The numbers below are directional; treat them as a floor, not a guarantee. 55% of postings were listed as remote or remote-friendly. Ghost job signals were relatively low at 0%, suggesting above-average listing quality this month. The salary data, skill rankings, and company breakdown below pull from the same scored dataset — not survey data, not self-reported figures.
How scored postings spread across the 0–100 range. Scores below 60 represent thin fit; 75+ is where applications compete well.
824
Below 60 (weak fit)
1,117
60–74 (partial fit)
28
75+ (strong fit)
Fit scores weight profile match at 70% and resume match at 30%. A score of 75+ means the candidate's skills, experience level, seniority, and logistics overlap enough to compete. See how fit scores work for the full methodology.
Ranked by how often each skill appeared in scored postings. L-level indicates the typical required depth: L1 is basic familiarity, L5 is architecture-level expertise. Skills above L3 signal roles where depth actually matters. Full skill profiles at /skills.
| # | Skill | Postings |
|---|---|---|
| 1 | Data Analysis | 253 |
| 2 | Project Management | 213 |
| 3 | Digital Marketing | 212 |
| 4 | Bachelor's Degree | 171 |
| 5 | Communication Skills | 156 |
| 6 | SEO | 154 |
| 7 | E-commerce | 151 |
| 8 | SQL | 116 |
| 9 | Communication | 108 |
| 10 | Marketing Strategy | 86 |
| 11 | Analytics | 79 |
| 12 | Cross-functional Collaboration | 66 |
| 13 | Content Creation | 65 |
| 14 | Analytical skills | 63 |
| 15 | Budget Management | 62 |
| 16 | Stakeholder Management | 59 |
| 17 | Industry Knowledge | 58 |
| 18 | Google Analytics | 53 |
| 19 | A/B Testing | 53 |
| 20 | Email Marketing | 49 |
Depth levels (L1–L5) derived from how surrounding job description context describes required experience. See the L-level system explained. Browse all tracked skills at /skills.
Skills where candidates most frequently fell below the required proficiency level. A high gap rate means this skill appears often in postings — and most candidates who applied were underprepared. These are the skills most worth closing before your next job search cycle.
| Skill | Gap Rate | Postings |
|---|---|---|
| German language | 100% gap | 12 |
| Marketo | 100% gap | 7 |
| Healthcare | 100% gap | 5 |
| Healthcare Industry Knowledge | 100% gap | 6 |
| Financial Services Experience | 100% gap | 6 |
| Snowflake | 100% gap | 6 |
| Healthcare Industry | 100% gap | 7 |
| Healthcare Industry Experience | 94% gap | 18 |
| Industry Experience | 85% gap | 27 |
| Jira | 83% gap | 6 |
| B2B SaaS Marketing | 80% gap | 5 |
| Public Relations | 80% gap | 5 |
| Insurance Industry Experience | 80% gap | 5 |
| Power BI | 78% gap | 23 |
| Agency Experience | 78% gap | 18 |
How to use this list: Skills with a gap rate above 50% and an L3+ requirement are the highest-leverage areas to improve. They appear frequently, they matter to employers, and most candidates applying don't have the depth required. Closing one of these gaps can move your fit score significantly across dozens of relevant postings. Run your scores to see which of these affect you specifically.
Based on 302 postings that disclosed compensation out of 1,969 total (15% transparency rate). Midpoint is used where both min and max are listed.
$126K
Median Salary
$134K
Average Salary
$67K
Floor
$543K
Ceiling
$136K
Average — Remote listings
+$2K above on-site avg
$133K
Average — On-site listings
Roles with at least 3 salary-disclosing postings
| Role | Median | n |
|---|---|---|
| DevOps / Platform | $138K | 5 |
| Finance | $181K | 3 |
| Data Science / ML | $189K | 7 |
| Product Management | $178K | 4 |
| Sales | $190K | 7 |
| HR / Recruiting | $159K | 3 |
| Software Engineering | $160K | 25 |
| Marketing | $125K | 110 |
Companies with the most active postings this month. Avg score reflects how well those postings matched the candidate profiles that viewed them. High ghost rates suggest the company posts frequently but may not actively fill those roles. Company profiles at /companies.
| # | Company | Listings |
|---|---|---|
| 1 | Flexionis | 127 |
| 2 | Virtual Vocations Inc | 123 |
| 3 | VirtualVocations | 88 |
| 4 | Hiredock | 75 |
| 5 | careerwave.lovestoblog | 63 |
| 6 | Jobgether | 44 |
| 7 | WhatJobs Direct | 16 |
| 8 | Wolt - English | 14 |
| 9 | Lensa | 14 |
| 10 | 11 |
Ghost jobs are postings that show low hiring intent — old posting dates, no salary disclosure, and generic descriptions that suggest the role isn't actively filling. ShouldApply scores each listing across multiple quality signals. Learn how ghost job detection works.
0%
of postings with ghost signals
0
postings with at least one ghost signal
1,969
postings with clean quality signals
Ghost signals are based on: posting age (45+ days), absence of salary data, and vague job description content. A listing can have one or more signals. The dashboard flags these automatically so you can deprioritize them. Full ghost job methodology.
Patterns worth noting from this month's dataset. Not statistical projections — just what the numbers show.
Data Analysis, Digital Marketing, Bachelor's Degree averaged 4+ on the depth scale this month — meaning postings weren't looking for familiarity, they required working fluency. Skills at L4+ are where candidates get separated from the pile. Data Analysis skill profile →
By contrast, Industry Knowledge appeared frequently but at low depth (L1), which means they're table stakes — worth having, but not differentiating.
Remote listings averaged $136K vs. $133K for on-site — a $2K gap. With 55% of postings flagged as remote, the supply of remote work remains strong.
15% of postings included compensation data this month. The median was $126K, which holds in line with market expectations for the skills in demand. State-level salary transparency laws (Colorado, New York, Washington) push overall rates up, but the remaining 85% of listings still leave candidates negotiating blind.
Data transparency matters. Here's exactly what goes into these numbers.
Job postings are pulled from five sources: JSearch, Remotive, Adzuna, Arbeitnow, and Wellfound. Each source is refreshed every 2–6 hours. Cross-source duplicates are removed using a SHA-256 content hash plus Jaccard title similarity (threshold: 0.8) within the same company.
Quality filters remove thin descriptions (under 100 words), postings from blocked domains, and non-English listings. What's left goes into the scoring pipeline.
Each posting is scored against a candidate's profile using a five-dimension model: Skills Match, Experience Level, Seniority Alignment, Industry Fit, and Logistics (salary, remote, location). The overall score is 70% profile fit + 30% resume match.
Skill depth (L1–L5) is extracted from surrounding context in the job description — not just keyword presence. SHA-256 input hashing prevents re-scoring identical profile+JD combinations, keeping the dataset efficient.
A posting is flagged as having ghost signals if it was posted more than 45 days ago and includes no salary data. This is one component of a broader additive ghost probability model (capped at 95%) that also weighs applicant count, vague description quality, and reposting patterns. See ghost job methodology for the full model.
Monthly reports are computed from all jobs created during the calendar month. This page is cached with a 7-day ISR window — data updates weekly as new postings are scored. Salary figures use the midpoint of disclosed min/max ranges where both values are present. Minimums of 3 data points are required before salary stats are shown.
See how you stack up
Upload your resume, get scored against 1,969 postings from March, and see exactly where you match and where you don't.