{
 "name": "CVtly job market facts",
 "url": "https://cvtly.com/facts",
 "citation": "Source: CVtly job data, 4 October 2026, cvtly.com/facts",
 "license": "https://creativecommons.org/licenses/by/4.0/",
 "publisher": "CVtly (cvtly.com)",
 "as_of": "2026-10-04T18:16:21Z",
 "checked_at": "2026-10-04T17:59:52Z",
 "cities": [
  {
   "city": "Paris",
   "country": "FR",
   "english_only_pct": 26,
   "explicit_pct": 29,
   "implied_pct": 39,
   "key": "langneed-paris",
   "language": "French",
   "n": 2547,
   "path": "/jobs/paris/do-i-need-french",
   "required_pct": 68
  },
  {
   "city": "Berlin",
   "country": "DE",
   "english_only_pct": 33,
   "explicit_pct": 46,
   "implied_pct": 11,
   "key": "langneed-berlin",
   "language": "German",
   "n": 1951,
   "path": "/jobs/berlin/do-i-need-german",
   "required_pct": 57
  },
  {
   "city": "Munich",
   "country": "DE",
   "english_only_pct": 29,
   "explicit_pct": 49,
   "implied_pct": 12,
   "key": "langneed-munich",
   "language": "German",
   "n": 1269,
   "path": "/jobs/munich/do-i-need-german",
   "required_pct": 61
  },
  {
   "city": "Amsterdam",
   "country": "NL",
   "english_only_pct": 51,
   "explicit_pct": 23,
   "implied_pct": 19,
   "key": "langneed-amsterdam",
   "language": "Dutch",
   "n": 1074,
   "path": "/jobs/amsterdam/do-i-need-dutch",
   "required_pct": 43
  },
  {
   "city": "Madrid",
   "country": "ES",
   "english_only_pct": 42,
   "explicit_pct": 19,
   "implied_pct": 35,
   "key": "langneed-madrid",
   "language": "Spanish",
   "n": 975,
   "path": "/jobs/madrid/do-i-need-spanish",
   "required_pct": 54
  },
  {
   "city": "Barcelona",
   "country": "ES",
   "english_only_pct": 67,
   "explicit_pct": 16,
   "implied_pct": 11,
   "key": "langneed-barcelona",
   "language": "Spanish",
   "n": 834,
   "path": "/jobs/barcelona/do-i-need-spanish",
   "required_pct": 27
  },
  {
   "city": "Milan",
   "country": "IT",
   "english_only_pct": 36,
   "explicit_pct": 32,
   "implied_pct": 28,
   "key": "langneed-milan",
   "language": "Italian",
   "n": 612,
   "path": "/jobs/milan/do-i-need-italian",
   "required_pct": 60
  },
  {
   "city": "Hamburg",
   "country": "DE",
   "english_only_pct": 15,
   "explicit_pct": 53,
   "implied_pct": 24,
   "key": "langneed-hamburg",
   "language": "German",
   "n": 556,
   "path": "/jobs/hamburg/do-i-need-german",
   "required_pct": 77
  },
  {
   "city": "Lisbon",
   "country": "PT",
   "english_only_pct": 84,
   "explicit_pct": 12,
   "implied_pct": 0,
   "key": "langneed-lisbon",
   "language": "Portuguese",
   "n": 530,
   "path": "/jobs/lisbon/do-i-need-portuguese",
   "required_pct": 12
  },
  {
   "city": "Frankfurt",
   "country": "DE",
   "english_only_pct": 14,
   "explicit_pct": 63,
   "implied_pct": 18,
   "key": "langneed-frankfurt",
   "language": "German",
   "n": 524,
   "path": "/jobs/frankfurt/do-i-need-german",
   "required_pct": 81
  },
  {
   "city": "Toulouse",
   "country": "FR",
   "english_only_pct": 13,
   "explicit_pct": 37,
   "implied_pct": 46,
   "key": "langneed-toulouse",
   "language": "French",
   "n": 518,
   "path": "/jobs/toulouse/do-i-need-french",
   "required_pct": 83
  },
  {
   "city": "Lyon",
   "country": "FR",
   "english_only_pct": 6,
   "explicit_pct": 13,
   "implied_pct": 81,
   "key": "langneed-lyon",
   "language": "French",
   "n": 278,
   "path": "/jobs/lyon/do-i-need-french",
   "required_pct": 93
  },
  {
   "city": "Brussels",
   "country": "BE",
   "english_only_pct": 25,
   "explicit_pct": 55,
   "implied_pct": 8,
   "key": "langneed-brussels",
   "language": "French or Dutch",
   "n": 277,
   "path": "/jobs/brussels/do-i-need-french-or-dutch",
   "required_pct": 63
  },
  {
   "city": "Dusseldorf",
   "country": "DE",
   "english_only_pct": 15,
   "explicit_pct": 53,
   "implied_pct": 22,
   "key": "langneed-dusseldorf",
   "language": "German",
   "n": 271,
   "path": "/jobs/dusseldorf/do-i-need-german",
   "required_pct": 75
  },
  {
   "city": "Zurich",
   "country": "CH",
   "english_only_pct": 53,
   "explicit_pct": 26,
   "implied_pct": 6,
   "key": "langneed-zurich",
   "language": "German",
   "n": 270,
   "path": "/jobs/zurich/do-i-need-german",
   "required_pct": 31
  },
  {
   "city": "Utrecht",
   "country": "NL",
   "english_only_pct": 16,
   "explicit_pct": 10,
   "implied_pct": 70,
   "key": "langneed-utrecht",
   "language": "Dutch",
   "n": 257,
   "path": "/jobs/utrecht/do-i-need-dutch",
   "required_pct": 80
  },
  {
   "city": "Rotterdam",
   "country": "NL",
   "english_only_pct": 18,
   "explicit_pct": 14,
   "implied_pct": 64,
   "key": "langneed-rotterdam",
   "language": "Dutch",
   "n": 242,
   "path": "/jobs/rotterdam/do-i-need-dutch",
   "required_pct": 79
  },
  {
   "city": "Marseille",
   "country": "FR",
   "english_only_pct": 7,
   "explicit_pct": 42,
   "implied_pct": 50,
   "key": "langneed-marseille",
   "language": "French",
   "n": 195,
   "path": "/jobs/marseille/do-i-need-french",
   "required_pct": 92
  },
  {
   "city": "Cologne",
   "country": "DE",
   "english_only_pct": 6,
   "explicit_pct": 53,
   "implied_pct": 36,
   "key": "langneed-cologne",
   "language": "German",
   "n": 176,
   "path": "/jobs/cologne/do-i-need-german",
   "required_pct": 89
  },
  {
   "city": "Stuttgart",
   "country": "DE",
   "english_only_pct": 10,
   "explicit_pct": 43,
   "implied_pct": 43,
   "key": "langneed-stuttgart",
   "language": "German",
   "n": 146,
   "path": "/jobs/stuttgart/do-i-need-german",
   "required_pct": 86
  },
  {
   "city": "Bordeaux",
   "country": "FR",
   "english_only_pct": 3,
   "explicit_pct": 17,
   "implied_pct": 80,
   "key": "langneed-bordeaux",
   "language": "French",
   "n": 127,
   "path": "/jobs/bordeaux/do-i-need-french",
   "required_pct": 97
  },
  {
   "city": "Eindhoven",
   "country": "NL",
   "english_only_pct": 37,
   "explicit_pct": 18,
   "implied_pct": 42,
   "key": "langneed-eindhoven",
   "language": "Dutch",
   "n": 104,
   "path": "/jobs/eindhoven/do-i-need-dutch",
   "required_pct": 61
  },
  {
   "city": "Hannover",
   "country": "DE",
   "english_only_pct": 6,
   "explicit_pct": 50,
   "implied_pct": 40,
   "key": "langneed-hannover",
   "language": "German",
   "n": 98,
   "path": "/jobs/hannover/do-i-need-german",
   "required_pct": 90
  },
  {
   "city": "Geneva",
   "country": "CH",
   "english_only_pct": 69,
   "explicit_pct": 11,
   "implied_pct": 6,
   "key": "langneed-geneva",
   "language": "French",
   "n": 83,
   "path": "/jobs/geneva/do-i-need-french",
   "required_pct": 17
  },
  {
   "city": "Nuremberg",
   "country": "DE",
   "english_only_pct": 22,
   "explicit_pct": 33,
   "implied_pct": 34,
   "key": "langneed-nuremberg",
   "language": "German",
   "n": 79,
   "path": "/jobs/nuremberg/do-i-need-german",
   "required_pct": 67
  },
  {
   "city": "Lille",
   "country": "FR",
   "english_only_pct": 5,
   "explicit_pct": 11,
   "implied_pct": 83,
   "key": "langneed-lille",
   "language": "French",
   "n": 66,
   "path": "/jobs/lille/do-i-need-french",
   "required_pct": 94
  },
  {
   "city": "Leipzig",
   "country": "DE",
   "english_only_pct": 4,
   "explicit_pct": 52,
   "implied_pct": 38,
   "key": "langneed-leipzig",
   "language": "German",
   "n": 52,
   "path": "/jobs/leipzig/do-i-need-german",
   "required_pct": 90
  },
  {
   "city": "The Hague",
   "country": "NL",
   "english_only_pct": 13,
   "explicit_pct": 9,
   "implied_pct": 77,
   "key": "langneed-the-hague",
   "language": "Dutch",
   "n": 47,
   "path": "/jobs/the-hague/do-i-need-dutch",
   "required_pct": 85
  }
 ],
 "countries": [
  {
   "ads": 10357,
   "code": "DE",
   "en": 3645,
   "en_share_pct": 37,
   "english_default": false,
   "known": 9907,
   "name": "Germany"
  },
  {
   "ads": 3610,
   "code": "NL",
   "en": 1607,
   "en_share_pct": 47,
   "english_default": false,
   "known": 3400,
   "name": "Netherlands"
  },
  {
   "ads": 9583,
   "code": "FR",
   "en": 1908,
   "en_share_pct": 22,
   "english_default": false,
   "known": 8807,
   "name": "France"
  },
  {
   "ads": 3604,
   "code": "ES",
   "en": 2065,
   "en_share_pct": 65,
   "english_default": false,
   "known": 3187,
   "name": "Spain"
  },
  {
   "ads": 1051,
   "code": "CH",
   "en": 707,
   "en_share_pct": 69,
   "english_default": false,
   "known": 1018,
   "name": "Switzerland"
  },
  {
   "ads": 949,
   "code": "BE",
   "en": 557,
   "en_share_pct": 63,
   "english_default": false,
   "known": 884,
   "name": "Belgium"
  },
  {
   "ads": 1104,
   "code": "PT",
   "en": 898,
   "en_share_pct": 98,
   "english_default": false,
   "known": 919,
   "name": "Portugal"
  },
  {
   "ads": 2300,
   "code": "IT",
   "en": 932,
   "en_share_pct": 48,
   "english_default": false,
   "known": 1950,
   "name": "Italy"
  },
  {
   "ads": 10814,
   "code": "GB",
   "en": 10720,
   "en_share_pct": null,
   "english_default": true,
   "known": 10802,
   "name": "United Kingdom"
  },
  {
   "ads": 1784,
   "code": "IE",
   "en": 1749,
   "en_share_pct": null,
   "english_default": true,
   "known": 1782,
   "name": "Ireland"
  }
 ],
 "data_version": 1,
 "figures": [
  {
   "id": "open_ads",
   "label": "Open job ads CVtly tracks",
   "method": "Job ads seen live at CVtly's last scans of company career sites, public job portals and a few job boards, each ad counted once, in the country stored for it. Ads the listing check says are probably no longer open are left out.",
   "sample": null,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "ads",
   "value": 45156
  },
  {
   "id": "companies",
   "label": "Companies behind these ads",
   "method": "Distinct employers of the open ads above.",
   "sample": null,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "companies",
   "value": 1619
  },
  {
   "id": "countries",
   "label": "Countries with open ads",
   "method": "Countries in scope with at least one open ad.",
   "sample": null,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "countries",
   "value": 10
  },
  {
   "id": "probably_closed_pct",
   "label": "Share of live ads that look closed",
   "method": "Share of every live ad that CVtly's listing check marks 'probably not open'. These ads are left out of every other figure.",
   "sample": 47278,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "percent",
   "value": 4
  },
  {
   "id": "english_ads",
   "label": "Open ads done in English",
   "method": "Ads whose working language CVtly can tell (high or medium confidence) and that is English.",
   "sample": 42656,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "ads",
   "value": 24788
  },
  {
   "id": "pay_stated_pct",
   "label": "English-language ads that state the pay",
   "method": "The ad gives an amount in the currency of the job's country.",
   "sample": 24788,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "percent",
   "value": 15
  },
  {
   "id": "remote_pct",
   "label": "Open ads that are fully remote",
   "method": "Among open ads that state a work mode (remote, hybrid or on site).",
   "sample": 21713,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "percent",
   "value": 16
  },
  {
   "id": "hybrid_pct",
   "label": "Open ads that are hybrid",
   "method": "Among open ads that state a work mode.",
   "sample": 21713,
   "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
   "unit": "percent",
   "value": 56
  }
 ],
 "history_days": 8,
 "remote": {
  "hybrid": 56,
  "onsite": 28,
  "remote": 16,
  "sample": 21713
 },
 "scan_interval_minutes": 61,
 "scope": "10 countries: Germany, the Netherlands, France, Spain, Switzerland, Belgium, Portugal, Italy, the United Kingdom and Ireland",
 "week": "2026-W40",
 "history": [
  {
   "week": "2026-W40",
   "json": "https://cvtly.com/facts/history/2026-w40.json",
   "csv": "https://cvtly.com/facts/history/2026-w40.csv"
  }
 ]
}
