{"id":6155,"date":"2026-07-01T21:05:30","date_gmt":"2026-07-01T21:05:30","guid":{"rendered":"https:\/\/ceo.com.pl\/en\/?p=6155"},"modified":"2026-07-01T21:05:38","modified_gmt":"2026-07-01T21:05:38","slug":"labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026","status":"publish","type":"post","link":"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/","title":{"rendered":"Labour Market in Poland\u2019s Largest Cities: Jobs, Wages and Unemployment in May 2026"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Poland\u2019s largest regional cities entered May 2026 with sharply different labor-market conditions. While Pozna\u0144 and Warsaw combined the country\u2019s lowest registered unemployment rate of 1.6% with above-average wages, Bia\u0142ystok, \u0141\u00f3d\u017a and Kielce remained at the opposite end of the ranking. The comparison of all 18 voivodeship capitals also shows that low unemployment does not necessarily mean rising employment: only three cities recorded year-on-year job growth, while wage increases remained strong across the country. \u0141\u00f3d\u017a stood out as the weakest market in the ranking, combining high unemployment, a steep fall in enterprise-sector employment and by far the highest number of unemployed people per advertised vacancy.<\/p>\n\n\n\n<style>\n.rpm26en-wrap{--rpm26en-navy:#131F49;--rpm26en-amber:#e67a2d;--rpm26en-navy-light:#3f5c96;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;color:#1a1a1a;line-height:1.65;max-width:860px;margin:0 auto;}\n.rpm26en-wrap p{margin:0 0 1.1em;font-size:16px;}\n.rpm26en-lead{font-size:18px;color:var(--rpm26en-navy);font-weight:500;}\n.rpm26en-h2{color:var(--rpm26en-navy);font-size:24px;font-weight:700;margin:2em 0 0.6em;border-left:4px solid var(--rpm26en-amber);padding-left:12px;}\n.rpm26en-h3{color:var(--rpm26en-navy);font-size:19px;font-weight:700;margin:1.4em 0 0.5em;}\n.rpm26en-callout{background:var(--rpm26en-navy);border-radius:6px;padding:18px 20px;margin:1.4em 0;font-size:15px;}\n.rpm26en-callout, .rpm26en-callout p, .rpm26en-callout strong{color:#ffffff !important;}\n.rpm26en-callout strong{display:block;margin-bottom:4px;font-size:15px;}\n.rpm26en-chart-wrap{position:relative;height:420px;margin:1.4em 0 1.8em;background:#fafafa;border:1px solid #eee;border-radius:6px;padding:16px;box-sizing:border-box;}\n.rpm26en-table{width:100%;border-collapse:collapse;margin:1em 0 1.6em;font-size:14.5px;}\n.rpm26en-table th{background:var(--rpm26en-navy);color:#ffffff !important;text-align:left;padding:9px 12px;font-weight:600;}\n.rpm26en-table td{padding:8px 12px;border-bottom:1px solid #e5e5e5;}\n.rpm26en-table tr.rpm26en-best td{background:rgba(230,122,45,0.10);}\n.rpm26en-table tr.rpm26en-worst td{background:rgba(19,31,73,0.06);}\n.rpm26en-table-scroll{overflow-x:auto;margin:1em 0 1.6em;}\n.rpm26en-table-full{min-width:640px;}\n.rpm26en-source{font-size:13px;color:#666;font-style:italic;margin-top:1.5em;}\n@media (max-width:600px){.rpm26en-chart-wrap{height:520px;}.rpm26en-h2{font-size:20px;}.rpm26en-lead{font-size:16.5px;}}\n<\/style>\n\n<div class=\"rpm26en-wrap\">\n\n<div class=\"rpm26en-callout\">\n<strong>Methodology.<\/strong> The comparison covers 18 voivodeship capitals for which regional statistical offices published data for May 2026. Indicators refer to the enterprise sector (businesses employing more than 9 people) and to registered unemployment. Percentage changes are year-on-year (May 2026 versus May 2025). No figures have been estimated or supplemented \u2014 all values come directly from official statistical office publications.\n<\/div>\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/#Unemployment_lowest_in_Poznan_and_Warsaw_highest_in_Bialystok\" >Unemployment: lowest in Pozna\u0144 and Warsaw, highest in Bia\u0142ystok<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/#Wages_Krakow_Warsaw_and_Gdansk_lead_the_field\" >Wages: Krak\u00f3w, Warsaw and Gda\u0144sk lead the field<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/#Year-on-year_wage_growth\" >Year-on-year wage growth<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/#Employment_Gdansk_grows_Opole_loses_the_most\" >Employment: Gda\u0144sk grows, Opole loses the most<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/#Job_vacancy_availability_easiest_in_Gorzow_and_Opole_hardest_in_Lodz\" >Job vacancy availability: easiest in Gorz\u00f3w and Opole, hardest in \u0141\u00f3d\u017a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/ceo.com.pl\/en\/labour-market-in-polands-largest-cities-jobs-wages-and-unemployment-in-may-2026-2026\/#Full_comparison_table\" >Full comparison table<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"rpm26en-h2\"><span class=\"ez-toc-section\" id=\"Unemployment_lowest_in_Poznan_and_Warsaw_highest_in_Bialystok\"><\/span>Unemployment: lowest in Pozna\u0144 and Warsaw, highest in Bia\u0142ystok<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>The registered unemployment rate in May 2026 ranged from 1.6% to 5.9%, meaning the gap between the best- and worst-performing cities was more than threefold. The lowest rates were recorded in Pozna\u0144 and Warsaw (1.6% each) and in Katowice (1.8%). At the opposite end were Bia\u0142ystok (5.9%), \u0141\u00f3d\u017a (5.8%), and Kielce (5.5%).<\/p>\n\n<div id=\"rpm26en-chart-unemployment\" class=\"rpm26en-chart-wrap\">\n<canvas id=\"rpm26enCanvasUnemployment\"><\/canvas>\n<\/div>\n\n<table class=\"rpm26en-table\">\n<thead>\n<tr><th>Rank<\/th><th>City<\/th><th>Unemployment rate (%)<\/th><\/tr>\n<\/thead>\n<tbody>\n<tr class=\"rpm26en-best\"><td>1\u20132<\/td><td>Pozna\u0144 \/ Warsaw<\/td><td>1.6<\/td><\/tr>\n<tr class=\"rpm26en-best\"><td>3<\/td><td>Katowice<\/td><td>1.8<\/td><\/tr>\n<tr class=\"rpm26en-best\"><td>4<\/td><td>Wroc\u0142aw<\/td><td>2.5<\/td><\/tr>\n<tr class=\"rpm26en-best\"><td>5\u20136<\/td><td>Bydgoszcz \/ Krak\u00f3w<\/td><td>2.8<\/td><\/tr>\n<tr><td>\u2026<\/td><td>\u2026<\/td><td>\u2026<\/td><\/tr>\n<tr class=\"rpm26en-worst\"><td>16<\/td><td>Kielce<\/td><td>5.5<\/td><\/tr>\n<tr class=\"rpm26en-worst\"><td>17<\/td><td>\u0141\u00f3d\u017a<\/td><td>5.8<\/td><\/tr>\n<tr class=\"rpm26en-worst\"><td>18<\/td><td>Bia\u0142ystok<\/td><td>5.9<\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<h2 class=\"rpm26en-h2\"><span class=\"ez-toc-section\" id=\"Wages_Krakow_Warsaw_and_Gdansk_lead_the_field\"><\/span>Wages: Krak\u00f3w, Warsaw and Gda\u0144sk lead the field<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Average monthly gross wages in the enterprise sector reached their highest levels in Krak\u00f3w (PLN 11,469.00), Warsaw (PLN 11,204.68), and Gda\u0144sk (PLN 11,040.40). The lowest wages were recorded in Kielce (PLN 7,813.12), Bia\u0142ystok (PLN 7,862.01), and Gorz\u00f3w Wielkopolski (PLN 7,867.58) \u2014 a gap of more than PLN 3,600 per month between the extremes.<\/p>\n\n<div id=\"rpm26en-chart-wages\" class=\"rpm26en-chart-wrap\">\n<canvas id=\"rpm26enCanvasWages\"><\/canvas>\n<\/div>\n\n<h3 class=\"rpm26en-h3\"><span class=\"ez-toc-section\" id=\"Year-on-year_wage_growth\"><\/span>Year-on-year wage growth<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<p>In terms of wage growth momentum, Pozna\u0144 leads with average pay up 8.4% year-on-year, even though the city&#8217;s overall employment level contracted. Opole (+7.5%) and Szczecin (+7.3%) also posted strong growth. Wages rose most slowly in Zielona G\u00f3ra (+3.6%) and Kielce (+4.5%) \u2014 both cities that also have unemployment rates below the national average (5.9%), suggesting weaker wage pressure in their local labor markets.<\/p>\n\n<table class=\"rpm26en-table\">\n<thead>\n<tr><th>Rank<\/th><th>City<\/th><th>Wage change y\/y<\/th><\/tr>\n<\/thead>\n<tbody>\n<tr class=\"rpm26en-best\"><td>1<\/td><td>Pozna\u0144<\/td><td>+8.4%<\/td><\/tr>\n<tr class=\"rpm26en-best\"><td>2<\/td><td>Opole<\/td><td>+7.5%<\/td><\/tr>\n<tr class=\"rpm26en-best\"><td>3<\/td><td>Szczecin<\/td><td>+7.3%<\/td><\/tr>\n<tr class=\"rpm26en-best\"><td>4\u20136<\/td><td>Bia\u0142ystok \/ Lublin \/ Warsaw<\/td><td>+6.9%<\/td><\/tr>\n<tr><td>\u2026<\/td><td>\u2026<\/td><td>\u2026<\/td><\/tr>\n<tr class=\"rpm26en-worst\"><td>16<\/td><td>Wroc\u0142aw<\/td><td>+5.3%<\/td><\/tr>\n<tr class=\"rpm26en-worst\"><td>17<\/td><td>Toru\u0144<\/td><td>+5.1%<\/td><\/tr>\n<tr class=\"rpm26en-worst\"><td>18<\/td><td>Zielona G\u00f3ra<\/td><td>+3.6%<\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<h2 class=\"rpm26en-h2\"><span class=\"ez-toc-section\" id=\"Employment_Gdansk_grows_Opole_loses_the_most\"><\/span>Employment: Gda\u0144sk grows, Opole loses the most<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>On a year-on-year basis, average employment in the enterprise sector rose in only three of the eighteen cities: Gda\u0144sk (+3.9%), Szczecin (+1.4%), and Wroc\u0142aw (+0.6%). In the remaining fifteen cities, the number of jobs contracted. The steepest declines were recorded in Opole (\u22125.0%), \u0141\u00f3d\u017a (\u22123.0%), and Bia\u0142ystok (\u22122.9%).<\/p>\n\n<div id=\"rpm26en-chart-employment\" class=\"rpm26en-chart-wrap\">\n<canvas id=\"rpm26enCanvasEmployment\"><\/canvas>\n<\/div>\n\n<p>Notably, falling employment does not always correspond with a high unemployment rate. Pozna\u0144 and Warsaw \u2014 the cities with the lowest unemployment in the country \u2014 both saw job losses (\u22122.4% and \u22120.5%, respectively). This suggests that the low unemployment rate in these cities stems more from limited labor supply registered with employment offices than from expanding employment among local businesses.<\/p>\n\n<h2 class=\"rpm26en-h2\"><span class=\"ez-toc-section\" id=\"Job_vacancy_availability_easiest_in_Gorzow_and_Opole_hardest_in_Lodz\"><\/span>Job vacancy availability: easiest in Gorz\u00f3w and Opole, hardest in \u0141\u00f3d\u017a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>The number of registered unemployed per job vacancy posted in a given month is a useful measure of how much real competition exists for available positions. The most favorable situation was found in Gorz\u00f3w Wielkopolski and Opole (6 people per vacancy each), Krak\u00f3w (7), and Wroc\u0142aw (8). \u0141\u00f3d\u017a fared worst by far, with 134 registered unemployed per vacancy \u2014 a figure many times higher than the rest of the field. Lublin also posted a high ratio, at 53 people per vacancy.<\/p>\n\n<div id=\"rpm26en-chart-vacancies\" class=\"rpm26en-chart-wrap\">\n<canvas id=\"rpm26enCanvasVacancies\"><\/canvas>\n<\/div>\n\n<div class=\"rpm26en-callout\">\n<strong>The \u0141\u00f3d\u017a case.<\/strong> The city combines the second-highest unemployment rate (5.8%), one of the steepest employment declines (\u22123.0%), and by far the worst job vacancy ratio (134 unemployed per vacancy \u2014 more than twice the level of Lublin, the next city in line). No other city in the comparison combines this many unfavorable indicators at once.\n<\/div>\n\n<h2 class=\"rpm26en-h2\"><span class=\"ez-toc-section\" id=\"Full_comparison_table\"><\/span>Full comparison table<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>The table below compares all eighteen cities across four core labor market indicators for May 2026.<\/p>\n\n<div class=\"rpm26en-table-scroll\">\n<table class=\"rpm26en-table rpm26en-table-full\">\n<thead>\n<tr>\n<th>City<\/th>\n<th>Unemployment rate (%)<\/th>\n<th>Employment y\/y<\/th>\n<th>Average wage (PLN)<\/th>\n<th>Wage growth y\/y<\/th>\n<th>Unemployed\/vacancy<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr><td>Bia\u0142ystok<\/td><td>5.9<\/td><td>\u22122.9%<\/td><td>7,862.01<\/td><td>+6.9%<\/td><td>16<\/td><\/tr>\n<tr><td>Bydgoszcz<\/td><td>2.8<\/td><td>\u22121.8%<\/td><td>8,890.32<\/td><td>+6.8%<\/td><td>26<\/td><\/tr>\n<tr><td>Gda\u0144sk<\/td><td>3.3<\/td><td>+3.9%<\/td><td>11,040.40<\/td><td>+6.7%<\/td><td>11<\/td><\/tr>\n<tr><td>Gorz\u00f3w Wlkp.<\/td><td>4.4<\/td><td>\u22122.8%<\/td><td>7,867.58<\/td><td>+5.9%<\/td><td>6<\/td><\/tr>\n<tr><td>Katowice<\/td><td>1.8<\/td><td>\u22120.6%<\/td><td>9,920.97<\/td><td>+6.0%<\/td><td>16<\/td><\/tr>\n<tr><td>Kielce<\/td><td>5.5<\/td><td>\u22122.2%<\/td><td>7,813.12<\/td><td>+4.5%<\/td><td>13<\/td><\/tr>\n<tr><td>Krak\u00f3w<\/td><td>2.8<\/td><td>\u22122.0%<\/td><td>11,469.00<\/td><td>+6.2%<\/td><td>7<\/td><\/tr>\n<tr><td>Lublin<\/td><td>4.4<\/td><td>\u22121.0%<\/td><td>8,722.43<\/td><td>+6.9%<\/td><td>53<\/td><\/tr>\n<tr><td>\u0141\u00f3d\u017a<\/td><td>5.8<\/td><td>\u22123.0%<\/td><td>8,640.88<\/td><td>+6.3%<\/td><td>134<\/td><\/tr>\n<tr><td>Olsztyn<\/td><td>2.9<\/td><td>\u22120.2%<\/td><td>8,303.04<\/td><td>+6.7%<\/td><td>17<\/td><\/tr>\n<tr><td>Opole<\/td><td>3.2<\/td><td>\u22125.0%<\/td><td>8,780.44<\/td><td>+7.5%<\/td><td>6<\/td><\/tr>\n<tr><td>Pozna\u0144<\/td><td>1.6<\/td><td>\u22122.4%<\/td><td>10,952.17<\/td><td>+8.4%<\/td><td>30<\/td><\/tr>\n<tr><td>Rzesz\u00f3w<\/td><td>4.4<\/td><td>\u22121.1%<\/td><td>9,012.83<\/td><td>+5.9%<\/td><td>27<\/td><\/tr>\n<tr><td>Szczecin<\/td><td>4.2<\/td><td>+1.4%<\/td><td>9,595.30<\/td><td>+7.3%<\/td><td>24<\/td><\/tr>\n<tr><td>Toru\u0144<\/td><td>3.9<\/td><td>\u22120.4%<\/td><td>8,568.45<\/td><td>+5.1%<\/td><td>16<\/td><\/tr>\n<tr><td>Warsaw<\/td><td>1.6<\/td><td>\u22120.5%<\/td><td>11,204.68<\/td><td>+6.9%<\/td><td>17<\/td><\/tr>\n<tr><td>Wroc\u0142aw<\/td><td>2.5<\/td><td>+0.6%<\/td><td>9,904.47<\/td><td>+5.3%<\/td><td>8<\/td><\/tr>\n<tr><td>Zielona G\u00f3ra<\/td><td>4.4<\/td><td>\u22122.2%<\/td><td>8,568.46<\/td><td>+3.6%<\/td><td>26<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n<p class=\"rpm26en-source\">Data source: Statistics Poland (GUS). Own compilation based on GUS data \u2014 statistics for voivodeship capital cities, May 2026, as of July 1, 2026.<\/p>\n\n<\/div>\n\n<script class=\"nowprocket\" data-cfasync=\"false\" data-no-minify=\"1\">\nwindow.rpm26enChartData = {\n  unemployment: {\n    labels: [\"Pozna\u0144\",\"Warsaw\",\"Katowice\",\"Wroc\u0142aw\",\"Bydgoszcz\",\"Krak\u00f3w\",\"Olsztyn\",\"Opole\",\"Gda\u0144sk\",\"Toru\u0144\",\"Szczecin\",\"Gorz\u00f3w Wlkp.\",\"Lublin\",\"Rzesz\u00f3w\",\"Zielona G\u00f3ra\",\"Kielce\",\"\u0141\u00f3d\u017a\",\"Bia\u0142ystok\"],\n    values: [1.6,1.6,1.8,2.5,2.8,2.8,2.9,3.2,3.3,3.9,4.2,4.4,4.4,4.4,4.4,5.5,5.8,5.9]\n  },\n  wages: {\n    labels: [\"Krak\u00f3w\",\"Warsaw\",\"Gda\u0144sk\",\"Pozna\u0144\",\"Wroc\u0142aw\",\"Katowice\",\"Szczecin\",\"Rzesz\u00f3w\",\"Opole\",\"Lublin\",\"Olsztyn\",\"Bydgoszcz\",\"\u0141\u00f3d\u017a\",\"Toru\u0144\",\"Zielona G\u00f3ra\",\"Gorz\u00f3w Wlkp.\",\"Bia\u0142ystok\",\"Kielce\"],\n    values: [11469.00,11204.68,11040.40,10952.17,9904.47,9920.97,9595.30,9012.83,8780.44,8722.43,8303.04,8890.32,8640.88,8568.45,8568.46,7867.58,7862.01,7813.12]\n  },\n  employment: {\n    labels: [\"Gda\u0144sk\",\"Szczecin\",\"Wroc\u0142aw\",\"Olsztyn\",\"Toru\u0144\",\"Warsaw\",\"Katowice\",\"Rzesz\u00f3w\",\"Lublin\",\"Krak\u00f3w\",\"Kielce\",\"Zielona G\u00f3ra\",\"Bydgoszcz\",\"Pozna\u0144\",\"Gorz\u00f3w Wlkp.\",\"Bia\u0142ystok\",\"\u0141\u00f3d\u017a\",\"Opole\"],\n    values: [3.9,1.4,0.6,-0.2,-0.4,-0.5,-0.6,-1.1,-1.0,-2.0,-2.2,-2.2,-1.8,-2.4,-2.8,-2.9,-3.0,-5.0]\n  },\n  vacancies: {\n    labels: [\"Gorz\u00f3w Wlkp.\",\"Opole\",\"Krak\u00f3w\",\"Wroc\u0142aw\",\"Gda\u0144sk\",\"Kielce\",\"Bia\u0142ystok\",\"Katowice\",\"Toru\u0144\",\"Olsztyn\",\"Warsaw\",\"Szczecin\",\"Rzesz\u00f3w\",\"Bydgoszcz\",\"Zielona G\u00f3ra\",\"Pozna\u0144\",\"Lublin\",\"\u0141\u00f3d\u017a\"],\n    values: [6,6,7,8,11,13,16,16,16,17,17,24,27,26,26,30,53,134]\n  }\n};\n<\/script>\n\n<script class=\"nowprocket\" data-cfasync=\"false\" data-no-minify=\"1\" src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n\n<script class=\"nowprocket\" data-cfasync=\"false\" data-no-minify=\"1\">\n(function () {\n  \"use strict\";\n\n  var NAVY = \"#131F49\";\n  var NAVY_LIGHT = \"#3f5c96\";\n  var AMBER = \"#e67a2d\";\n  var DARK = \"#0a1230\";\n\n  function colorForRank(index, total, bestColor, worstColor, defaultColor, bestCount, worstCount) {\n    if (index < bestCount) return bestColor;\n    if (index >= total - worstCount) return worstColor;\n    return defaultColor;\n  }\n\n  function buildBarChart(canvasId, data, opts) {\n    var el = document.getElementById(canvasId);\n    if (!el) return;\n    var ctx = el.getContext(\"2d\");\n    var total = data.labels.length;\n    var bestCount = opts.bestCount || 5;\n    var worstCount = opts.worstCount || 5;\n    var colors = data.values.map(function (v, i) {\n      return colorForRank(i, total, opts.invert ? DARK : AMBER, opts.invert ? AMBER : DARK, NAVY_LIGHT, bestCount, worstCount);\n    });\n\n    try {\n      new Chart(ctx, {\n        type: \"bar\",\n        data: {\n          labels: data.labels,\n          datasets: [{\n            label: opts.label,\n            data: data.values,\n            backgroundColor: colors,\n            borderRadius: 3,\n            maxBarThickness: 28\n          }]\n        },\n        options: {\n          indexAxis: \"y\",\n          responsive: true,\n          maintainAspectRatio: false,\n          plugins: {\n            legend: { display: false },\n            tooltip: {\n              callbacks: {\n                label: function (ctx2) {\n                  var v = ctx2.parsed.x;\n                  var formatted = v.toLocaleString(\"en-US\", { minimumFractionDigits: opts.decimals || 0, maximumFractionDigits: opts.decimals || 1 });\n                  return opts.suffix ? formatted + opts.suffix : formatted;\n                }\n              }\n            }\n          },\n          scales: {\n            x: {\n              grid: { color: \"rgba(19,31,73,0.08)\" },\n              ticks: {\n                color: NAVY,\n                callback: function (value) {\n                  return value + (opts.suffix || \"\");\n                }\n              }\n            },\n            y: {\n              grid: { display: false },\n              ticks: { color: NAVY, font: { size: 11 } }\n            }\n          }\n        }\n      });\n    } catch (e) {\n      console.error(\"rpm26en chart error (\" + canvasId + \"):\", e);\n    }\n  }\n\n  function renderAll() {\n    var d = window.rpm26enChartData;\n    if (!d) return false;\n\n    buildBarChart(\"rpm26enCanvasUnemployment\", d.unemployment, {\n      label: \"Unemployment rate (%)\",\n      suffix: \"%\",\n      decimals: 1,\n      invert: false,\n      bestCount: 5,\n      worstCount: 5\n    });\n\n    buildBarChart(\"rpm26enCanvasWages\", d.wages, {\n      label: \"Average wage (PLN)\",\n      suffix: \" PLN\",\n      decimals: 0,\n      invert: false,\n      bestCount: 5,\n      worstCount: 5\n    });\n\n    buildBarChart(\"rpm26enCanvasEmployment\", d.employment, {\n      label: \"Employment change y\/y (%)\",\n      suffix: \"%\",\n      decimals: 1,\n      invert: true,\n      bestCount: 3,\n      worstCount: 5\n    });\n\n    buildBarChart(\"rpm26enCanvasVacancies\", d.vacancies, {\n      label: \"Unemployed per vacancy\",\n      suffix: \"\",\n      decimals: 0,\n      invert: false,\n      bestCount: 4,\n      worstCount: 2\n    });\n\n    return true;\n  }\n\n  var attempts = 0;\n  var maxAttempts = 100;\n  var poll = setInterval(function () {\n    attempts++;\n    if (typeof Chart !== \"undefined\" && document.getElementById(\"rpm26enCanvasUnemployment\")) {\n      clearInterval(poll);\n      renderAll();\n    } else if (attempts >= maxAttempts) {\n      clearInterval(poll);\n      console.error(\"rpm26en: Chart.js did not load in time.\");\n    }\n  }, 100);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Poland\u2019s largest regional cities entered May 2026 with sharply different labor-market conditions. While Pozna\u0144 and Warsaw combined the country\u2019s lowest registered unemployment rate of 1.6% with above-average wages, Bia\u0142ystok, \u0141\u00f3d\u017a and Kielce remained at the opposite end of the ranking. The comparison of all 18 voivodeship capitals also shows that low unemployment does not necessarily [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6156,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"How do Poland\u2019s largest cities compare on jobs, pay and unemployment?\n\nNew data for May 2026 show that Pozna\u0144 and Warsaw recorded the country\u2019s lowest registered unemployment rate, at 1.6%, while Krak\u00f3w led the ranking for average gross monthly wages at PLN 11,469.\n\nGda\u0144sk posted the strongest employment growth year on year, followed by Szczecin and Wroc\u0142aw. At the other end of the ranking, \u0141\u00f3d\u017a combined one of the highest unemployment rates with a sharp fall in employment and the highest number of registered unemployed people per job offer.\n\nThe comparison of 18 regional capitals highlights how differently local labour markets are developing across Poland.\n","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[21,15],"tags":[321,2690,166,3051,2669,75,324,70,77,73,2966,64,74,2732,76,82,71,134],"class_list":["post-6155","post","type-post","status-publish","format-standard","has-post-thumbnail","category-careers","category-economy","tag-bialystok","tag-gap","tag-gdansk","tag-gorzow-wielkopolski","tag-gus","tag-katowice","tag-kielce","tag-krakow","tag-lublin","tag-lodz","tag-opole","tag-poland","tag-poznan","tag-ranking","tag-szczecin","tag-warsaw","tag-wroclaw","tag-zielona-gora"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts\/6155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/comments?post=6155"}],"version-history":[{"count":1,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts\/6155\/revisions"}],"predecessor-version":[{"id":6157,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts\/6155\/revisions\/6157"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/media\/6156"}],"wp:attachment":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/media?parent=6155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/categories?post=6155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/tags?post=6155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}