A React mid role collects CVs before you finish your coffee. A SAP Fiori consultant or integration architect ad sits for two weeks. You end up with two applicants: a mid who “wants to reskill from Java”, and a senior who writes back that they will not do a six-hour unpaid take-home.
The second ad pays 28–33k PLN net on B2B. Budget is not the problem. Almost nobody applies at that rate — and the process still looks like a frontend hire: four interviews, a homework task, a week of silence, “one more stakeholder”.
This is not a piece about a “developer shortage”. Developers, in the narrow sense of frontend and popular backend, show up in the inbox. What companies cannot fill are architects, ERP/SAP consultants, and security people who can work under NIS2 and DORA. And they lack processes that do not burn those few people in round five.
1. The gap you will not see in the job-ad count
In early September 2026 JobHunt.pl aggregated 21,211 active IT roles from Polish job boards. The market is not dead. It is a market that hires seniors and pretends juniors do not exist.
| Level | Roles (JobHunt, 1 Sep 2026) | Share | Ad salary bands (PLN / month) |
|---|---|---|---|
| Junior | 1,434 | 7% | 10,440–13,246 |
| Mid | 5,883 | 28% | 15,710–20,141 |
| Senior | 10,326 | 49% | 22,493–27,948 |
| Lead | 2,297 | 11% | 21,770–27,232 |
There are seven times as many senior ads as junior ads. No Fluff Jobs said the same in its Q1 2026 recap: about 60% of ads target seniors, about 5% juniors, with a 23% quarter-on-quarter rebound in posting volume. A rebound does not mean roles got easier to fill. It means companies are posting JDs again for profiles they still cannot close.
Average job-ad lifetime on JobHunt: 50 days. Fifty days is not a “long process”. It is a quarter in which architecture sits idle and sprints run on debt.
2. Who is expensive, and who even enters the funnel
In Q1 2026 No Fluff Jobs recorded a reshuffle some hiring managers have not yet taken seriously: ERP overtook Architecture as the best-paid specialisation. Security and DevOps sit right behind. AI is in the rate table. It is not in the “easy to fill” table.
| Specialisation | NFJ Q1 2026 (B2B, k PLN net + VAT) | JobHunt, 1 Sep 2026 (roles / bands) | What the desk sees |
|---|---|---|---|
| ERP / SAP | 28.5–33.5 | 553 / 23.9–29.5k | Few CVs, long time-to-fill, hybrid in enterprise |
| Architecture | 27–32 | 544 / 27.5–32.9k | The rate does not fill the inbox. Candidates pick a contract, not six rounds |
| Security | 25–30 | 553 / 21.8–26.9k | GRC/NIS2 ≠ pentester. Mixing the roles burns the pipeline |
| DevOps / Cloud | 23.5–28.5 | 839 / 23.1–28.4k | Demand is there. Seniors will not wait for “one more call” |
| Java | — | 870 / 21.1–26.1k | Medium scarcity: CVs exist, seniors drop out of the process |
| React (as a skill) | — | 935 / 20.9–26.1k | The funnel works. Posting an ad here still makes sense |
| AI (category) | — | 524 / 22.3–28.7k | High rates, fewer applicants than the noise suggests |
The “IT Skills Gap” study (SW Research for Scalo, cited by Business Insider in January 2026) says the same from the company side: 41% name cybersecurity as the area with the largest shortage. AI/ML: 33%. IT project management: 30%. Experis and Randstad add a role split: Cloud Security, SOC/Detection & Response, and GRC/NIS2/IAM pull rates to 25–35k PLN net on invoice. A pentester is not a substitute for someone who can assemble a DORA evidence pack.
JobHunt on work mode: hybrid 45%, remote 37%, on-site 18%. Hybrid dominates enterprise and ERP/SAP roles. That is not a JD footnote. For a candidate in the Tricity, “2 days in Warsaw” ends the conversation before they even see the band.
The funnel point
The same recruitment process will not hire a React mid and a SAP consultant. An ad, a take-home and four rounds work where supply is wide. On scarce profiles the process is the product. If it takes six weeks, you lose to whoever gives feedback in 48 hours and a B2B start on Monday.
3. Anatomy of six weeks the ATS will not show
No client names. The run below is a 2026 pattern we see on the desk for senior Java / payments backend — a profile that already surfaces in Commoditech Search Console as queries like “where to find experienced Java developers for outsourcing”, sitting between “easy” frontend and “empty” SAP.
From the recruitment desk: senior Java, hybrid, “start ASAP”
Week 0. Brief: senior Java, Spring, Kafka, three years in payments, hybrid Warsaw 2 days, start ASAP, B2B. Market bands from ads: about 21–26k PLN. The client wants “someone who has already done this stack here”.
Week 1. Job ad plus direct search. A dozen-plus CVs, four people into screening. Two drop on “3 days in the office, not 2”. One gets a take-home: “a small service with tests, 4–6 hours”. They reply that they have two other processes with no homework.
Week 3–4. One candidate left. The stakeholder slips the interview by 11 days. Feedback after the call: “great, one more round with the architect, they are back from leave”.
Week 6. The candidate takes a contract with someone who decided in 48 hours. The client comes back asking about staff augmentation. Contractor time-to-submit: 1–2 days for CVs, start in about a week. An empty seat for six weeks at ~25k B2B is not a zero in the spreadsheet — it is sprints that never happened, and architecture someone will still be chasing in production.
On SAP Fiori, Dynamics or an architect the same pattern is worse, because you do not start with “a dozen CVs”. You start with two. One is a mid who “wants to move into ERP”. The other is a senior who will not apply to the ad — you have to call them. If after the call they get a six-hour task and silence, they go back to the contract they already have.
4. Matrix: when to post an ad, when to contract
The decision is not “perm or outsourcing”. It is: can this profile even close in your process before the roadmap moves.
| Profile | CVs on the ad | Perm, 4–6 weeks | Contracting / staff aug | When to use which |
|---|---|---|---|---|
| Frontend mid (React) | Many | Works if you do not drag the rounds | Overkill unless it is a spike or a 3-month gap | Perm / direct B2B |
| Java / backend senior | Medium | Often bleeds out on take-homes and hybrid | 48h–2 weeks to start | Contract when there is a deadline; perm for core team |
| SAP / Dynamics / architect | Almost none | 6–12 weeks or a fail | The only path with a predictable date | Lease immediately, search perm in parallel |
| Security / NIS2 / DORA | Very few | Does not scale if you mix GRC with pentest | Yes — and split the roles in the brief | Do not hire a pentester for an evidence pack |
Empty-seat cost is simple. An architect at 32k B2B is about 48k for six weeks of absence — before you add a delayed release and people waiting on architecture calls. Staff augmentation with an open 10–25% margin looks “expensive” on the hourly rate and cheap on time-to-hire. How to read margin and IP in the contract is a separate piece: Transparent staff augmentation: contracts, margins, IP.
5. Anti-patterns that burn scarce profiles
Salary boards show rates. They do not show why seniors vanish after screening.
- A 4–6 hour take-home for someone with three other offers. On frontend, someone will still do it. On SAP, security and architecture — they will not. Live pairing on a real fragment of the client’s system tells you more and takes an hour.
- LeetCode for a SAP Fiori or Dynamics consultant role. You filter for people who can reverse a list, not people who have seen an upgrade and custom code in production.
- One JD: “fullstack + AI + cloud + SAP”. That is not a senior. That is a committee nobody will staff. Split the brief or go straight to team leasing.
- A pentester for DORA / NIS2. Pentest and an evidence pack are two jobs. GRC, IAM/PAM, cloud security and SOC are not interchangeable. A brief that does not split them produces empty inboxes and declined offers.
- A ghost job and five “culture fit” rounds at 32k. Candidates count. Six weeks of silence tells them the project is not real, or that nobody can make a decision.
6. What to do at the desk (and when to call a partner)
A short playbook, no new framework:
- Split the brief before you open the ad. React mid, Java senior, SAP, GRC — four funnels. One ATS template for all four is a wasted month.
- Cut the process to two decisions. Technical screen + one hiring-manager interview. A third round only where production access or a secret is actually at stake. Feedback in 48 hours, not “we’ll come back after the board”.
- Hybrid: write the truth. “2 days Warsaw, rest remote, no relocation” opens the pool. “Hybrid, TBC” closes it.
- On SAP, architecture and security, start contracting in parallel with perm. Not instead. In parallel. Perm builds the core. A contract takes the 50-day ad lifetime off the roadmap. Commoditech keeps a 10–25% margin in this model and a 24–48h time-to-submit on CVs — details in the margin FAQ.
- Do not hunt an AI engineer as a cheaper architect. The AI category has 524 roles and high bands, but it is a different job. A RAG engineer will not land Fiori for you, and will not sign off a DORA control.
Landings, if the brief is already specific:
- SAP staff augmentation and Dynamics 365 — where the ad sits empty.
- Cybersecurity specialists — with roles split, not “someone in security”.
- Java and Scrum Master / PM — medium scarcity; the process is usually the bottleneck, not supply.
- Permanent recruitment and IT contracting — when it is core, and when it is a seat for a quarter.
7. FAQ
How long does it actually take to fill SAP or an architect versus a React mid?
On frontend, with a sane brief, first CVs arrive in 48 hours and a decision in 2–3 weeks. On SAP / Architecture / GRC the ad often does not fill the funnel on its own. JobHunt’s average IT ad lifetime is 50 days. Without direct sourcing or a partner with a bench, 6–12 weeks is the baseline, not a pessimistic case. Contracting cuts ramp-up to days, not months — if the brief is not “fullstack + SAP + AI”.
Is an AI engineer a cheaper substitute for an architect or an ERP consultant?
No. AI-category bands (about 22–29k on JobHunt) look like backend, not like ERP (28.5–33.5k at NFJ). Different job, different pipeline, different availability. Hunting “someone in AI, because SAP is expensive” leaves you with a person who will not touch Fiori, and architecture nobody owns.
If 7% of ads are junior, should we hire juniors at all?
Yes, but not on the same JD as a senior and not in the same budget slot. The 2026 market is shifted to seniors because firms want people who “have already done this”. That bids up senior rates and closes the door. A junior on payroll (in NFJ Q1 2026, employment contracts appear in 52% of junior ads, B2B in 42%) makes sense in a core team with a mentor. On scarce SAP, a junior “to train up” will not replace the consultant you need in October.
Who should we actually hire for NIS2 and DORA?
Not “a pentester with a cert”. Experis splits demand into three groups: Cloud Security, SOC/Detection & Response, and GRC/NIS2/IAM-PAM. Plus OT/ICS in energy and industry. A brief that mixes those roles stays empty, because no senior applies to an ad written for four people. Split it: who assembles audit evidence, who sits on incidents, who designs cloud controls.
8. Sources
- JobHunt.pl — Polish IT market 2026. Active-ad aggregation as of 1 September 2026: 21,211 roles, seniority, salary bands, work mode, ad lifetime.
- No Fluff Jobs — Q1 2026 recap (27 April 2026). ERP vs Architecture, 23% QoQ, 60% senior / 5% junior, hybrid 41% vs remote 38.5%.
- Business Insider / SW Research–Scalo, Experis, Randstad (25 January 2026). Skills gap: cybersecurity 41%, AI/ML 33%; security rates 25–35k B2B; GRC/NIS2 vs pentest roles.
- Commoditech — 10–25% margin policy in staff augmentation / time & materials.