Monthly Market Report
321
postings scored across 270 companies
Fit scores, skill demand, salary transparency, ghost job analysis.
321
Jobs Analyzed
▼ 1648 vs March
270
Companies Hiring
unique employers
53
Avg Fit Score
▼ 5pts vs March
30%
Salary Disclosed
▲ 15% vs March
69%
Remote Listings
of all postings
0%
Ghost Signal Rate
of postings
The scoring engine processed 321 job postings in April 2026, running them against active candidate profiles to generate 321 fit scores. That's down from 1,969 the prior month. The average fit score was 53 — 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 5 points from last month's 58. 232 postings (72%) scored below 60, meaning the fit was too thin to compete without significant profile improvement.
On the demand side, Bachelor's Degree, SQL, Data Analysis led across all scored postings. Data Science and Salesforce led the gap list — appearing in dozens of postings where candidates consistently fell short of the required depth. These aren't obscure skills. A 67% gap rate across 6 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 30% of postings disclosed salary. The numbers below are directional; treat them as a floor, not a guarantee. 69% 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.
232
Below 60 (weak fit)
89
60–74 (partial fit)
0
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 | Bachelor's Degree | 54 |
| 2 | SQL | 45 |
| 3 | Data Analysis | 41 |
| 4 | Communication Skills | 40 |
| 5 | Project Management | 33 |
| 6 | Analytical Skills | 29 |
| 7 | Communication | 16 |
| 8 | Power BI | 14 |
| 9 | Excel | 12 |
| 10 | Salesforce | 11 |
| 11 | Python | 11 |
| 12 | Leadership | 11 |
| 13 | Analytics | 11 |
| 14 | SEO | 10 |
| 15 | Program Management | 9 |
| 16 | A/B Testing | 9 |
| 17 | Digital Marketing | 8 |
| 18 | Problem-solving | 8 |
| 19 | Business Intelligence | 8 |
| 20 | Business Analysis | 7 |
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 |
|---|---|---|
| Data Science | 67% gap | 6 |
| Salesforce | 55% gap | 11 |
| Python | 45% gap | 11 |
| Marketing Experience | 43% gap | 7 |
| Social Media Management | 40% gap | 5 |
| Power BI | 36% gap | 14 |
| Product Management | 33% gap | 6 |
| SEO | 30% gap | 10 |
| B2B Marketing | 29% gap | 7 |
| Financial Analysis | 29% gap | 7 |
| Business Intelligence | 25% gap | 8 |
| SQL | 22% gap | 45 |
| A/B Testing | 22% gap | 9 |
| Business Development | 20% gap | 5 |
| Financial Modeling | 20% gap | 5 |
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 96 postings that disclosed compensation out of 321 total (30% transparency rate). Midpoint is used where both min and max are listed.
$140K
Median Salary
$148K
Average Salary
$74K
Floor
$573K
Ceiling
$149K
Average — Remote listings
+$1K above on-site avg
$148K
Average — On-site listings
Roles with at least 3 salary-disclosing postings
| Role | Median | n |
|---|---|---|
| Software Engineering | $151K | 3 |
| Data Science / ML | $148K | 9 |
| Data Analysis | $162K | 13 |
| Marketing | $140K | 31 |
| Other | $133K | 33 |
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 | Jobflarely | 13 |
| 2 | Jobs via Dice | 5 |
| 3 | TikTok | 5 |
| 4 | Snowflake | 3 |
| 5 | Uber | 3 |
| 6 | Pwc | 2 |
| 7 | Oula | 2 |
| 8 | American Medical Association - AMA | 2 |
| 9 | Fullpath | 2 |
| 10 | Jobgether | 2 |
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
321
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.
Bachelor's Degree, Data Analysis, Communication Skills averaged 3.9+ 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. Bachelor's Degree skill profile →
By contrast, Salesforce and Python appeared frequently but at low depth (L2), which means they're table stakes — worth having, but not differentiating.
Remote listings averaged $149K vs. $148K for on-site — a $1K gap. With 69% of postings flagged as remote, the supply of remote work remains strong.
30% of postings included compensation data this month. The median was $140K, 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 70% 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 321 postings from April, and see exactly where you match and where you don't.