{"id":6473,"date":"2026-06-13T14:26:05","date_gmt":"2026-06-13T14:26:05","guid":{"rendered":"https:\/\/3solutions.pt\/?page_id=6473"},"modified":"2026-06-18T21:56:49","modified_gmt":"2026-06-18T21:56:49","slug":"jobmaps-publicar-oferta","status":"publish","type":"page","link":"https:\/\/3solutions.pt\/en\/jobmaps-publicar-oferta\/","title":{"rendered":"Publicar oferta JobMaps"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6473\" class=\"elementor elementor-6473\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1928f61 e-flex e-con-boxed e-con e-parent\" data-id=\"1928f61\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d64b69e elementor-widget elementor-widget-html\" data-id=\"d64b69e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<header class=\"jm-site-header\">\r\n  <div class=\"jm-site-header-inner\">\r\n\r\n    <a href=\"\/jobmaps-o-mapa-do-trabalho-local\/\" class=\"jm-site-brand\" aria-label=\"Ir para a p\u00e1gina inicial do WIW\">\r\n      <span class=\"jm-site-logo\">\r\n        <img decoding=\"async\" src=\"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png\" alt=\"WIW - Work is Worth\">\r\n      <\/span>\r\n    <\/a>\r\n\r\n    <nav class=\"jm-site-nav\" aria-label=\"Menu WIW\">\r\n      <a id=\"jm-link-contratar\" href=\"\/jobmaps-login\/\" class=\"jm-site-nav-link\">Quero contratar<\/a>\r\n      <a id=\"jm-link-trabalhar\" href=\"\/jobmaps-login-candidato\/\" class=\"jm-site-nav-link\">Quero trabalhar<\/a>\r\n      <a id=\"jm-link-recrutador\" href=\"\/jobmaps-recrutador\/\" class=\"jm-site-nav-link\">Sou recrutador<\/a>\r\n\r\n      <a id=\"jm-user-pill\" href=\"\/jobmaps-o-mapa-do-trabalho-local\/\" class=\"jm-user-pill\" style=\"display:none;\">\r\n        <span class=\"jm-user-icon\">\ud83d\udc64<\/span>\r\n        <span id=\"jm-user-name\">\u00c1rea<\/span>\r\n      <\/a>\r\n\r\n      <a id=\"jm-logout-link\" href=\"#\" class=\"jm-site-nav-link jm-logout-link\" style=\"display:none;\">Sair<\/a>\r\n    <\/nav>\r\n\r\n  <\/div>\r\n<\/header>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const contratarLink = document.getElementById(\"jm-link-contratar\");\r\n  const trabalharLink = document.getElementById(\"jm-link-trabalhar\");\r\n  const recrutadorLink = document.getElementById(\"jm-link-recrutador\");\r\n  const userPill = document.getElementById(\"jm-user-pill\");\r\n  const userName = document.getElementById(\"jm-user-name\");\r\n  const logoutLink = document.getElementById(\"jm-logout-link\");\r\n\r\n  function resetNavState() {\r\n    const links = [contratarLink, trabalharLink, recrutadorLink];\r\n\r\n    links.forEach(function (link) {\r\n      if (!link) return;\r\n      link.classList.remove(\"jm-active-link\");\r\n      link.classList.remove(\"jm-logged-link\");\r\n    });\r\n\r\n    if (contratarLink) {\r\n      contratarLink.href = \"\/jobmaps-login\/\";\r\n      contratarLink.textContent = \"Quero contratar\";\r\n    }\r\n\r\n    if (trabalharLink) {\r\n      trabalharLink.href = \"\/jobmaps-login-candidato\/\";\r\n      trabalharLink.textContent = \"Quero trabalhar\";\r\n    }\r\n\r\n    if (recrutadorLink) {\r\n      recrutadorLink.href = \"\/jobmaps-recrutador\/\";\r\n      recrutadorLink.textContent = \"Sou recrutador\";\r\n    }\r\n  }\r\n\r\n  function activateLink(link) {\r\n    if (!link) return;\r\n    link.classList.add(\"jm-active-link\");\r\n    link.classList.add(\"jm-logged-link\");\r\n  }\r\n\r\n  function showLogout(data) {\r\n    if (logoutLink) {\r\n      const cleanLogoutUrl = (data.logout_url || \"#\")\r\n        .replace(\/&amp;\/g, \"&\")\r\n        .replace(\/&#038;\/g, \"&\");\r\n\r\n      logoutLink.href = cleanLogoutUrl;\r\n      logoutLink.style.display = \"inline-flex\";\r\n    }\r\n  }\r\n\r\n  function showUserPill(label, href) {\r\n    if (userPill && userName) {\r\n      userName.textContent = label || \"\u00c1rea\";\r\n      userPill.href = href || \"\/jobmaps-o-mapa-do-trabalho-local\/\";\r\n      userPill.style.display = \"inline-flex\";\r\n    }\r\n  }\r\n\r\n  function hideUserArea() {\r\n    if (userPill) {\r\n      userPill.style.display = \"none\";\r\n    }\r\n\r\n    if (logoutLink) {\r\n      logoutLink.style.display = \"none\";\r\n      logoutLink.href = \"#\";\r\n    }\r\n  }\r\n\r\n  function estadoNaoLogado() {\r\n    resetNavState();\r\n    hideUserArea();\r\n  }\r\n\r\n  function estadoEmpresaLogada(data) {\r\n    resetNavState();\r\n\r\n    if (contratarLink) {\r\n      contratarLink.href = \"\/jobmaps-area-empresa\/\";\r\n      activateLink(contratarLink);\r\n    }\r\n\r\n    showUserPill(data.empresa_titulo || data.display_name || \"Empresa\", \"\/jobmaps-area-empresa\/\");\r\n    showLogout(data);\r\n  }\r\n\r\n  function estadoCandidatoLogado(data) {\r\n    resetNavState();\r\n\r\n    if (trabalharLink) {\r\n      trabalharLink.href = \"\/jobmaps-area-candidato\/\";\r\n      activateLink(trabalharLink);\r\n    }\r\n\r\n    showUserPill(data.candidato_nome || data.display_name || \"Candidato\", \"\/jobmaps-area-candidato\/\");\r\n    showLogout(data);\r\n  }\r\n\r\n  function estadoRecrutadorLogado(data) {\r\n    resetNavState();\r\n\r\n    if (recrutadorLink) {\r\n      recrutadorLink.href = \"\/jobmaps-area-recrutador\/\";\r\n      activateLink(recrutadorLink);\r\n    }\r\n\r\n    showUserPill(data.recrutador_nome || data.display_name || \"Recrutador WIW\", \"\/jobmaps-area-recrutador\/\");\r\n    showLogout(data);\r\n  }\r\n\r\n  fetch(\"\/wp-admin\/admin-ajax.php?action=jm5_header_me&t=\" + Date.now(), {\r\n    method: \"GET\",\r\n    credentials: \"same-origin\",\r\n    cache: \"no-store\"\r\n  })\r\n    .then(response => response.json())\r\n    .then(data => {\r\n      if (!data || !data.logged_in) {\r\n        estadoNaoLogado();\r\n        return;\r\n      }\r\n\r\n      if (data.user_type === \"empresa\" || data.is_empresa) {\r\n        estadoEmpresaLogada(data);\r\n        return;\r\n      }\r\n\r\n      if (data.user_type === \"candidato\" || data.is_candidato) {\r\n        estadoCandidatoLogado(data);\r\n        return;\r\n      }\r\n\r\n      if (data.user_type === \"recrutador\" || data.is_recrutador) {\r\n        estadoRecrutadorLogado(data);\r\n        return;\r\n      }\r\n\r\n      estadoNaoLogado();\r\n    })\r\n    .catch(() => {\r\n      estadoNaoLogado();\r\n    });\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.jm-site-header {\r\n  width: 100%;\r\n  padding: 0;\r\n  background: #ffffff;\r\n  box-sizing: border-box;\r\n  font-family: inherit;\r\n  position: relative;\r\n  z-index: 20;\r\n  border-bottom: 1px solid #e8ebf0;\r\n}\r\n\r\n.jm-site-header-inner {\r\n  width: 100%;\r\n  margin: 0 auto;\r\n  padding: 4px 24px;\r\n  min-height: 66px;\r\n  background: #ffffff;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  gap: 22px;\r\n  box-sizing: border-box;\r\n  overflow: visible;\r\n  position: relative;\r\n}\r\n\r\n.jm-site-brand {\r\n  display: inline-flex;\r\n  flex-direction: column;\r\n  align-items: flex-start;\r\n  justify-content: center;\r\n  text-decoration: none;\r\n  flex-shrink: 0;\r\n  min-width: 250px;\r\n  overflow: visible;\r\n}\r\n\r\n.jm-site-logo {\r\n  height: 58px;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: flex-start;\r\n  overflow: visible;\r\n}\r\n\r\n.jm-site-logo img {\r\n  height: 160px;\r\n  width: auto;\r\n  max-width: 305px;\r\n  display: block;\r\n  transform: scale(1.18);\r\n  transform-origin: left center;\r\n}\r\n\r\n.jm-site-nav {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: flex-end;\r\n  gap: 22px;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.jm-site-nav-link {\r\n  position: relative;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 8px 0;\r\n  text-align: center;\r\n  text-decoration: none;\r\n  font-size: 12px;\r\n  font-weight: 650;\r\n  line-height: 1;\r\n  color: #6b7686;\r\n  background: transparent;\r\n  border: 0;\r\n  box-shadow: none;\r\n  transition: color 0.15s ease, opacity 0.15s ease;\r\n  box-sizing: border-box;\r\n  white-space: nowrap;\r\n  opacity: 0.92;\r\n}\r\n\r\n.jm-site-nav-link::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  left: 0;\r\n  right: 0;\r\n  bottom: -5px;\r\n  height: 2px;\r\n  border-radius: 999px;\r\n  background: #1556ff;\r\n  transform: scaleX(0);\r\n  transform-origin: center;\r\n  transition: transform 0.15s ease;\r\n}\r\n\r\n.jm-site-nav-link:hover {\r\n  color: #1556ff;\r\n  opacity: 1;\r\n}\r\n\r\n.jm-site-nav-link:hover::after {\r\n  transform: scaleX(1);\r\n}\r\n\r\n.jm-active-link {\r\n  color: #1556ff !important;\r\n  font-weight: 800;\r\n  opacity: 1;\r\n}\r\n\r\n.jm-active-link::after {\r\n  transform: scaleX(1);\r\n}\r\n\r\n.jm-logged-link {\r\n  color: #1556ff !important;\r\n}\r\n\r\n.jm-logout-link {\r\n  color: #a12626;\r\n  font-weight: 750;\r\n}\r\n\r\n.jm-logout-link::after {\r\n  background: #a12626;\r\n}\r\n\r\n.jm-user-pill {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  gap: 5px;\r\n  padding: 0;\r\n  border-radius: 0;\r\n  background: transparent;\r\n  color: #587092;\r\n  text-decoration: none;\r\n  font-size: 11.5px;\r\n  font-weight: 650;\r\n  border: 0;\r\n  white-space: nowrap;\r\n  max-width: 170px;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  transition: color 0.15s ease;\r\n}\r\n\r\n.jm-user-pill:hover {\r\n  color: #1556ff;\r\n}\r\n\r\n.jm-user-icon {\r\n  font-size: 12px;\r\n  line-height: 1;\r\n  flex-shrink: 0;\r\n}\r\n\r\n#jm-user-name {\r\n  display: inline-block;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  white-space: nowrap;\r\n}\r\n\r\n\/* Tablet *\/\r\n@media (max-width: 900px) {\r\n  .jm-site-header-inner {\r\n    padding: 5px 16px;\r\n    min-height: 68px;\r\n    gap: 14px;\r\n  }\r\n\r\n  .jm-site-brand {\r\n    min-width: 230px;\r\n  }\r\n\r\n  .jm-site-logo {\r\n    height: 60px;\r\n  }\r\n\r\n  .jm-site-logo img {\r\n    height: 158px;\r\n    max-width: 300px;\r\n    transform: scale(1.18);\r\n    transform-origin: left center;\r\n  }\r\n\r\n  .jm-site-nav {\r\n    gap: 15px;\r\n  }\r\n\r\n  .jm-site-nav-link {\r\n    font-size: 11.5px;\r\n    padding: 7px 0;\r\n  }\r\n\r\n  .jm-user-pill {\r\n    font-size: 11px;\r\n    max-width: 135px;\r\n  }\r\n}\r\n\r\n\/* Mobile *\/\r\n@media (max-width: 680px) {\r\n  .jm-site-header-inner {\r\n    padding: 6px 8px 11px;\r\n    min-height: auto;\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n    gap: 0;\r\n  }\r\n\r\n  .jm-site-brand {\r\n    width: 100%;\r\n    min-width: 0;\r\n    align-items: flex-start;\r\n    padding-right: 0;\r\n    margin-left: 0;\r\n  }\r\n\r\n  .jm-site-logo {\r\n    height: 95px;\r\n    width: 100%;\r\n    justify-content: flex-start;\r\n    overflow: visible;\r\n    margin-left: 0;\r\n  }\r\n\r\n  .jm-site-logo img {\r\n    height: 215px;\r\n    max-width: 390px;\r\n    transform: scale(1.22);\r\n    transform-origin: left center;\r\n    margin-left: -28px;\r\n  }\r\n\r\n  .jm-site-nav {\r\n    width: 100%;\r\n    justify-content: center;\r\n    gap: 11px 16px;\r\n    flex-wrap: wrap;\r\n    padding-top: 8px;\r\n  }\r\n\r\n  .jm-site-nav-link {\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n    padding: 5px 0;\r\n    color: #6b7686;\r\n  }\r\n\r\n  .jm-active-link {\r\n    color: #1556ff !important;\r\n    font-weight: 850;\r\n  }\r\n\r\n  .jm-site-nav-link::after {\r\n    bottom: -3px;\r\n    height: 2px;\r\n  }\r\n\r\n  .jm-user-pill {\r\n    position: absolute;\r\n    top: 12px;\r\n    right: 12px;\r\n    font-size: 11px;\r\n    max-width: 92px;\r\n    justify-content: flex-end;\r\n    margin-top: 0;\r\n    color: #587092;\r\n  }\r\n\r\n  .jm-user-icon {\r\n    font-size: 12px;\r\n  }\r\n\r\n  .jm-logout-link {\r\n    color: #a12626;\r\n  }\r\n}\r\n\r\n\/* Mobile muito estreito *\/\r\n@media (max-width: 420px) {\r\n  .jm-site-header-inner {\r\n    padding: 6px 6px 10px;\r\n  }\r\n\r\n  .jm-site-brand {\r\n    padding-right: 0;\r\n    margin-left: 0;\r\n  }\r\n\r\n  .jm-site-logo {\r\n    height: 88px;\r\n    overflow: visible;\r\n    margin-left: 0;\r\n  }\r\n\r\n  .jm-site-logo img {\r\n    height: 198px;\r\n    max-width: 360px;\r\n    transform: scale(1.18);\r\n    transform-origin: left center;\r\n    margin-left: -30px;\r\n  }\r\n\r\n  .jm-site-nav {\r\n    gap: 9px 12px;\r\n    padding-top: 7px;\r\n  }\r\n\r\n  .jm-site-nav-link {\r\n    font-size: 11.5px;\r\n    padding: 4px 0;\r\n  }\r\n\r\n  .jm-user-pill {\r\n    top: 11px;\r\n    right: 10px;\r\n    font-size: 10.5px;\r\n    max-width: 78px;\r\n  }\r\n\r\n  .jm-user-icon {\r\n    font-size: 11px;\r\n  }\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-637930c elementor-widget elementor-widget-html\" data-id=\"637930c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"jm-offer-page\">\r\n  <div class=\"jm-offer-shell\">\r\n\r\n\r\n<div id=\"jm-offer-loading\" class=\"jm-offer-message\">\r\n  A carregar o formul\u00e1rio de publica\u00e7\u00e3o...\r\n<\/div>\r\n\r\n<div id=\"jm-offer-content\" style=\"display:none;\">\r\n\r\n  <div class=\"jm-offer-hero\">\r\n    <div>\r\n      <span class=\"jm-offer-badge\">Nova oportunidade<\/span>\r\n      <h1>Publicar nova oferta<\/h1>\r\n      <p>\r\n        Preencha os dados principais da oportunidade. A oferta ficar\u00e1 pendente de valida\u00e7\u00e3o antes de aparecer no mapa p\u00fablico.\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <a class=\"jm-back-btn\" href=\"\/jobmaps-area-empresa\/\">Voltar \u00e0 \u00e1rea da entidade<\/a>\r\n  <\/div>\r\n\r\n  <div id=\"jm-offer-error\" class=\"jm-offer-message error\"><\/div>\r\n\r\n  <form id=\"jm-offer-form\" class=\"jm-offer-form\" method=\"post\" action=\"\/wp-admin\/admin-post.php\">\r\n\r\n    <input type=\"hidden\" name=\"action\" value=\"jm4_publicar_oferta_form\">\r\n\r\n    <div class=\"jm-form-grid\">\r\n\r\n      <div class=\"jm-field full\">\r\n  <label>Fun\u00e7\u00e3o \/ cargo<\/label>\r\n  <input \r\n    type=\"text\" \r\n    name=\"funcao\" \r\n    id=\"jm-funcao\"\r\n    list=\"jm-lista-funcoes\"\r\n    required \r\n    placeholder=\"Ex: Operador de loja, Cozinheiro, Administrativo\"\r\n  >\r\n\r\n  <datalist id=\"jm-lista-funcoes\">\r\n    <option value=\"Operador de loja\">\r\n    <option value=\"Operador de supermercado\">\r\n    <option value=\"Repositor\">\r\n    <option value=\"Operador de caixa\">\r\n    <option value=\"Empregado de balc\u00e3o\">\r\n    <option value=\"Empregado de mesa\">\r\n    <option value=\"Cozinheiro\">\r\n    <option value=\"Ajudante de cozinha\">\r\n    <option value=\"Pasteleiro\">\r\n    <option value=\"Padeiro\">\r\n    <option value=\"Talhante\">\r\n    <option value=\"Peixeiro\">\r\n    <option value=\"Charcuteiro\">\r\n    <option value=\"Barista\">\r\n    <option value=\"Rececionista\">\r\n    <option value=\"Empregado de quartos\">\r\n    <option value=\"Auxiliar de armaz\u00e9m\">\r\n    <option value=\"Operador de log\u00edstica\">\r\n    <option value=\"Motorista\">\r\n    <option value=\"Administrativo\">\r\n    <option value=\"Assistente administrativo\">\r\n    <option value=\"Comercial\">\r\n    <option value=\"Vendedor\">\r\n    <option value=\"T\u00e9cnico de vendas\">\r\n    <option value=\"Assistente de loja\">\r\n    <option value=\"Gerente de loja\">\r\n    <option value=\"Chefe de sec\u00e7\u00e3o\">\r\n    <option value=\"Respons\u00e1vel de turno\">\r\n    <option value=\"T\u00e9cnico de manuten\u00e7\u00e3o\">\r\n    <option value=\"Auxiliar de limpeza\">\r\n    <option value=\"Auxiliar de a\u00e7\u00e3o m\u00e9dica\">\r\n    <option value=\"Cuidador\">\r\n    <option value=\"Fisioterapeuta\">\r\n    <option value=\"T\u00e9cnico de inform\u00e1tica\">\r\n    <option value=\"Programador\">\r\n    <option value=\"Designer\">\r\n    <option value=\"Gestor de redes sociais\">\r\n    <option value=\"Outros\">\r\n  <\/datalist>\r\n\r\n  <small class=\"jm-field-note\">\r\n    Pode escolher uma fun\u00e7\u00e3o da lista ou escrever outra fun\u00e7\u00e3o espec\u00edfica.\r\n  <\/small>\r\n<\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>\u00c1rea profissional<\/label>\r\n        <select name=\"categoria\" required>\r\n          \r\n          <option value=\"\">Escolha a \u00e1rea profissional<\/option>\r\n          <option value=\"administracao-escritorio\">Administra\u00e7\u00e3o e Escrit\u00f3rio<\/option>\r\n          <option value=\"atendimento-cliente\">Atendimento ao Cliente<\/option>\r\n          <option value=\"retalho-loja\">Retalho e Loja<\/option>\r\n          <option value=\"comercial-vendas\">Comercial e Vendas<\/option>\r\n          <option value=\"marketing-comunicacao-conteudos\">Marketing, Comunica\u00e7\u00e3o e Conte\u00fados<\/option>\r\n          <option value=\"recursos-humanos\">Recursos Humanos<\/option>\r\n          <option value=\"contabilidade-financas-banca\">Contabilidade, Finan\u00e7as e Banca<\/option>\r\n          <option value=\"seguros\">Seguros<\/option>\r\n          <option value=\"juridico-advocacia-compliance\">Jur\u00eddico, Advocacia e Compliance<\/option>\r\n          <option value=\"tecnologia-it-programacao\">Tecnologia, IT e Programa\u00e7\u00e3o<\/option>\r\n          <option value=\"dados-ia-ciencia\">Dados, Intelig\u00eancia Artificial e Ci\u00eancia<\/option>\r\n          <option value=\"engenharia\">Engenharia<\/option>\r\n          <option value=\"arquitetura-design-tecnico\">Arquitetura e Design T\u00e9cnico<\/option>\r\n          <option value=\"construcao-civil-obras\">Constru\u00e7\u00e3o Civil e Obras<\/option>\r\n          <option value=\"industria-producao\">Ind\u00fastria e Produ\u00e7\u00e3o<\/option>\r\n          <option value=\"armazem-logistica\">Armaz\u00e9m e Log\u00edstica<\/option>\r\n          <option value=\"transportes-distribuicao-motoristas\">Transportes, Distribui\u00e7\u00e3o e Motoristas<\/option>\r\n          <option value=\"aviacao-aeroportos-mobilidade\">Avia\u00e7\u00e3o, Aeroportos e Mobilidade<\/option>\r\n          <option value=\"hotelaria-turismo\">Hotelaria e Turismo<\/option>\r\n          <option value=\"restauracao-cozinha-pastelaria\">Restaura\u00e7\u00e3o, Cozinha e Pastelaria<\/option>\r\n          <option value=\"limpeza-manutencao-facilities\">Limpeza, Manuten\u00e7\u00e3o e Facilities<\/option>\r\n          <option value=\"seguranca-vigilancia\">Seguran\u00e7a e Vigil\u00e2ncia<\/option>\r\n          <option value=\"saude-medicina-enfermagem\">Sa\u00fade, Medicina e Enfermagem<\/option>\r\n          <option value=\"farmacia-laboratorio\">Farm\u00e1cia e Laborat\u00f3rio<\/option>\r\n          <option value=\"bem-estar-estetica-desporto\">Bem-estar, Est\u00e9tica e Desporto<\/option>\r\n          <option value=\"educacao-formacao-explicacoes\">Educa\u00e7\u00e3o, Forma\u00e7\u00e3o e Explica\u00e7\u00f5es<\/option>\r\n          <option value=\"apoio-social-cuidados\">Apoio Social e Cuidados<\/option>\r\n          <option value=\"agricultura-floresta-ambiente\">Agricultura, Floresta e Ambiente<\/option>\r\n          <option value=\"energia-eletricidade-renovaveis\">Energia, Eletricidade e Renov\u00e1veis<\/option>\r\n          <option value=\"mecanica-automovel-oficinas\">Mec\u00e2nica, Autom\u00f3vel e Oficinas<\/option>\r\n          <option value=\"imobiliario\">Imobili\u00e1rio<\/option>\r\n          <option value=\"compras-procurement-import-export\">Compras, Procurement e Import\/Export<\/option>\r\n          <option value=\"gestao-direcao-coordenacao\">Gest\u00e3o, Dire\u00e7\u00e3o e Coordena\u00e7\u00e3o<\/option>\r\n          <option value=\"investigacao-ciencia-academia\">Investiga\u00e7\u00e3o, Ci\u00eancia e Academia<\/option>\r\n          <option value=\"artes-cultura-eventos\">Artes, Cultura e Eventos<\/option>\r\n          <option value=\"servicos-domesticos-apoio-familiar\">Servi\u00e7os Dom\u00e9sticos e Apoio Familiar<\/option>\r\n          <option value=\"estagios-primeiro-emprego\">Est\u00e1gios e Primeiro Emprego<\/option>\r\n          <option value=\"trabalho-temporario-reforcos\">Trabalho Tempor\u00e1rio e Refor\u00e7os<\/option>\r\n          <option value=\"freelance-remoto-projetos\">Freelance, Remoto e Projetos<\/option>\r\n          <option value=\"outros-servicos\">Outros Servi\u00e7os<\/option>\r\n        \r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Zona de Portugal<\/label>\r\n        <select id=\"jm-zona-portugal\" name=\"zona_portugal\" required>\r\n          <option value=\"\">Selecionar zona<\/option>\r\n          <option value=\"Norte\">Norte<\/option>\r\n          <option value=\"Centro\">Centro<\/option>\r\n          <option value=\"Lisboa e Vale do Tejo\">Lisboa e Vale do Tejo<\/option>\r\n          <option value=\"Alentejo\">Alentejo<\/option>\r\n          <option value=\"Algarve\">Algarve<\/option>\r\n          <option value=\"Madeira\">Madeira<\/option>\r\n          <option value=\"A\u00e7ores\">A\u00e7ores<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Distrito \/ Regi\u00e3o<\/label>\r\n        <select id=\"jm-distrito\" name=\"distrito\" required>\r\n          <option value=\"\">Escolha primeiro a zona<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Concelho<\/label>\r\n        <select id=\"jm-concelho\" name=\"concelho\" required>\r\n          <option value=\"\">Escolha primeiro o distrito<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Freguesia<\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"jm-freguesia\" \r\n          name=\"freguesia\" \r\n          required \r\n          placeholder=\"Ex: Arroios, Avenidas Novas, Cascais e Estoril\"\r\n        >\r\n        <small class=\"jm-field-note\">\r\n          Indique a freguesia do local de trabalho. Este campo ajuda a posicionar e agrupar melhor as ofertas no mapa.\r\n        <\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Localidade<\/label>\r\n        <input type=\"text\" id=\"jm-localidade\" name=\"localidade\" required placeholder=\"Ex: Parede, Cascais, T\u00e1bua\">\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Morada exata do local de trabalho<\/label>\r\n        <input type=\"text\" id=\"jm-morada-trabalho\" name=\"morada_trabalho\" required placeholder=\"Ex: Avenida da Rep\u00fablica, 123\">\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>C\u00f3digo postal<\/label>\r\n        <input type=\"text\" id=\"jm-codigo-postal\" name=\"codigo_postal\" required placeholder=\"Ex: 2775-000\">\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Localiza\u00e7\u00e3o p\u00fablica<\/label>\r\n        <input type=\"text\" id=\"jm-localizacao-publica\" name=\"localizacao\" required placeholder=\"Ex: Parede, Cascais\">\r\n        <small class=\"jm-field-note\">\r\n          Esta \u00e9 a localiza\u00e7\u00e3o que aparece publicamente no mapa. A morada exata ajuda apenas a posicionar melhor o pin.\r\n        <\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full jm-salary-explain\">\r\n        <strong>Como indicar o vencimento<\/strong>\r\n        <span>\r\n          Indique sempre o vencimento bruto mensal de refer\u00eancia para hor\u00e1rio completo. Este \u00e9 o valor usado no mapa para comparar ofertas de forma justa. Se a oferta for part-time, o sistema calcula automaticamente uma estimativa proporcional com base nas horas semanais.\r\n        <\/span>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Vencimento bruto mensal de refer\u00eancia (\u20ac)<\/label>\r\n        <input \r\n          type=\"number\" \r\n          id=\"jm-vencimento-referencia\"\r\n          name=\"vencimento_minimo\" \r\n          required \r\n          min=\"920\" \r\n          step=\"1\" \r\n          placeholder=\"Ex: 950\"\r\n        >\r\n        <small class=\"jm-field-note\">\r\n          Valor m\u00ednimo: 920\u20ac. Use o valor bruto mensal equivalente a tempo inteiro.\r\n        <\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Tipo de hor\u00e1rio<\/label>\r\n        <select id=\"jm-tipo-horario\" name=\"tipo_horario\" required>\r\n          <option value=\"\">Selecionar<\/option>\r\n          <option value=\"Full-time\">Full-time<\/option>\r\n          <option value=\"Part-time\">Part-time<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\" id=\"jm-horas-wrapper\" style=\"display:none;\">\r\n        <label>Horas semanais<\/label>\r\n        <input \r\n          type=\"number\" \r\n          id=\"jm-horas-semanais\"\r\n          name=\"horas_semanais\" \r\n          min=\"1\" \r\n          max=\"40\" \r\n          step=\"1\" \r\n          placeholder=\"Ex: 20\"\r\n        >\r\n        <small class=\"jm-field-note\">\r\n          Obrigat\u00f3rio quando a oferta \u00e9 part-time.\r\n        <\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\" id=\"jm-vencimento-pt-wrapper\" style=\"display:none;\">\r\n        <label>Vencimento proporcional estimado (\u20ac)<\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"jm-vencimento-proporcional\"\r\n          name=\"vencimento_proporcional_estimado\"\r\n          readonly\r\n          placeholder=\"Calculado automaticamente\"\r\n        >\r\n        <small class=\"jm-field-note\">\r\n          F\u00f3rmula: vencimento de refer\u00eancia \u00f7 173,33 \u00d7 horas semanais \u00d7 4.\r\n        <\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Tipo de contrato<\/label>\r\n        <select name=\"tipo_contrato\" required>\r\n          <option value=\"\">Selecionar<\/option>\r\n          <option value=\"Sem termo\">Sem termo<\/option>\r\n          <option value=\"Termo certo\">Termo certo<\/option>\r\n          <option value=\"Termo incerto\">Termo incerto<\/option>\r\n          <option value=\"Presta\u00e7\u00e3o de servi\u00e7os\">Presta\u00e7\u00e3o de servi\u00e7os<\/option>\r\n          <option value=\"Est\u00e1gio\">Est\u00e1gio<\/option>\r\n          <option value=\"Tempor\u00e1rio\">Tempor\u00e1rio<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Regime de trabalho<\/label>\r\n        <select name=\"regime_trabalho\" required>\r\n          <option value=\"\">Selecionar<\/option>\r\n          <option value=\"Presencial\">Presencial<\/option>\r\n          <option value=\"H\u00edbrido\">H\u00edbrido<\/option>\r\n          <option value=\"Remoto\">Remoto<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Hor\u00e1rio \/ observa\u00e7\u00f5es de hor\u00e1rio<\/label>\r\n        <input type=\"text\" name=\"horario\" placeholder=\"Ex: Turnos rotativos, segunda a sexta, fins de semana alternados\">\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Hor\u00e1rios rotativos<\/label>\r\n        <select name=\"horarios_rotativos\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"N\u00e3o\">N\u00e3o<\/option>\r\n          <option value=\"Sim\">Sim<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Hor\u00e1rio rotativo entre<\/label>\r\n        <div class=\"jm-inline-pair\">\r\n          <input type=\"time\" name=\"horario_rotativo_inicio\" aria-label=\"Hora de in\u00edcio\">\r\n          <input type=\"time\" name=\"horario_rotativo_fim\" aria-label=\"Hora de fim\">\r\n        <\/div>\r\n        <small class=\"jm-field-note\">Opcional. Exemplo: entre as 08h00 e as 22h00.<\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Descri\u00e7\u00e3o dos hor\u00e1rios rotativos<\/label>\r\n        <input type=\"text\" name=\"horario_rotativo_descricao\" placeholder=\"Ex: Turnos entre as 08h00 e as 22h00, com escala semanal. Opcional.\">\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Trabalho noturno<\/label>\r\n        <select name=\"trabalho_noturno\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"N\u00e3o\">N\u00e3o<\/option>\r\n          <option value=\"Sim\">Sim<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Horas noturnas entre<\/label>\r\n        <div class=\"jm-inline-pair\">\r\n          <input type=\"time\" name=\"trabalho_noturno_inicio\" aria-label=\"Hora noturna in\u00edcio\">\r\n          <input type=\"time\" name=\"trabalho_noturno_fim\" aria-label=\"Hora noturna fim\">\r\n        <\/div>\r\n        <small class=\"jm-field-note\">Opcional. Preencher apenas se fizer sentido.<\/small>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Trabalho ao fim de semana<\/label>\r\n        <select name=\"trabalho_fim_semana\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"N\u00e3o\">N\u00e3o<\/option>\r\n          <option value=\"Sim, ocasionalmente\">Sim, ocasionalmente<\/option>\r\n          <option value=\"Sim, regularmente\">Sim, regularmente<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Folgas<\/label>\r\n        <select name=\"folgas\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"Fixas\">Fixas<\/option>\r\n          <option value=\"Rotativas\">Rotativas<\/option>\r\n          <option value=\"A combinar\">A combinar<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full jm-section-divider\">\r\n        <strong>Sobre a empresa<\/strong>\r\n        <span>Estes campos n\u00e3o s\u00e3o obrigat\u00f3rios. Servem para ajudar a entidade a explicar melhor quem \u00e9 e para dar mais confian\u00e7a ao candidato.<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Descri\u00e7\u00e3o da empresa<\/label>\r\n        <textarea name=\"descricao_empresa\" rows=\"4\" placeholder=\"Ex: Empresa familiar com mais de 20 anos de atividade na \u00e1rea da distribui\u00e7\u00e3o alimentar. Valorizamos estabilidade, responsabilidade e bom ambiente de equipa.\"><\/textarea>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Tempo de atividade da empresa<\/label>\r\n        <select name=\"tempo_atividade_empresa\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"Menos de 1 ano\">Menos de 1 ano<\/option>\r\n          <option value=\"1 a 3 anos\">1 a 3 anos<\/option>\r\n          <option value=\"3 a 5 anos\">3 a 5 anos<\/option>\r\n          <option value=\"5 a 10 anos\">5 a 10 anos<\/option>\r\n          <option value=\"10 a 20 anos\">10 a 20 anos<\/option>\r\n          <option value=\"Mais de 20 anos\">Mais de 20 anos<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Tipo de entidade<\/label>\r\n        <select name=\"tipo_entidade_oferta\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"Empresa familiar\">Empresa familiar<\/option>\r\n          <option value=\"PME\">PME<\/option>\r\n          <option value=\"Grupo empresarial\">Grupo empresarial<\/option>\r\n          <option value=\"Multinacional\">Multinacional<\/option>\r\n          <option value=\"Startup\">Startup<\/option>\r\n          <option value=\"Associa\u00e7\u00e3o \/ IPSS\">Associa\u00e7\u00e3o \/ IPSS<\/option>\r\n          <option value=\"Entidade p\u00fablica\">Entidade p\u00fablica<\/option>\r\n          <option value=\"Empres\u00e1rio em nome individual\">Empres\u00e1rio em nome individual<\/option>\r\n          <option value=\"Particular\">Particular<\/option>\r\n          <option value=\"Outro\">Outro<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full jm-section-divider\">\r\n        <strong>Subs\u00eddio de refei\u00e7\u00e3o e regalias<\/strong>\r\n        <span>Nada disto \u00e9 obrigat\u00f3rio. A lista serve para lembrar a entidade do que pode valorizar a oferta.<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Subs\u00eddio de refei\u00e7\u00e3o<\/label>\r\n        <select name=\"subsidio_refeicao\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"N\u00e3o inclu\u00eddo\">N\u00e3o inclu\u00eddo<\/option>\r\n          <option value=\"Inclu\u00eddo\">Inclu\u00eddo<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Valor di\u00e1rio do subs\u00eddio de refei\u00e7\u00e3o (\u20ac)<\/label>\r\n        <input type=\"number\" name=\"subsidio_refeicao_valor\" min=\"0\" step=\"0.01\" placeholder=\"Ex: 7.50\">\r\n      <\/div>\r\n\r\n      <div class=\"jm-field\">\r\n        <label>Forma de pagamento do subs\u00eddio<\/label>\r\n        <select name=\"subsidio_refeicao_forma\">\r\n          <option value=\"N\/A\">N\/A \/ Prefiro n\u00e3o indicar<\/option>\r\n          <option value=\"Cart\u00e3o refei\u00e7\u00e3o\">Cart\u00e3o refei\u00e7\u00e3o<\/option>\r\n          <option value=\"Pago no vencimento\">Pago no vencimento<\/option>\r\n          <option value=\"Outro\">Outro<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Outras regalias dispon\u00edveis<\/label>\r\n        <small class=\"jm-field-note jm-note-before-list\">\r\n          Pode escolher v\u00e1rias op\u00e7\u00f5es. Se n\u00e3o quiser indicar nenhuma, escolha \u201cN\/A \/ Prefiro n\u00e3o indicar\u201d e siga o formul\u00e1rio.\r\n        <\/small>\r\n\r\n        <div class=\"jm-checkbox-grid\" id=\"jm-regalias-grid\">\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"N\/A\" data-na=\"1\"> <span>N\/A \/ Prefiro n\u00e3o indicar<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Seguro de sa\u00fade\"> <span>Seguro de sa\u00fade<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Seguro de vida\"> <span>Seguro de vida<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Plano de pens\u00f5es\"> <span>Plano de pens\u00f5es<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Carro de empresa para uso profissional\"> <span>Carro de empresa para uso profissional<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Carro de empresa para uso total\"> <span>Carro de empresa para uso total<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Combust\u00edvel inclu\u00eddo\"> <span>Combust\u00edvel inclu\u00eddo<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Via Verde inclu\u00edda\"> <span>Via Verde inclu\u00edda<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Estacionamento\"> <span>Estacionamento<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Telem\u00f3vel\"> <span>Telem\u00f3vel<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Plano de comunica\u00e7\u00f5es\"> <span>Plano de comunica\u00e7\u00f5es<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Computador port\u00e1til\"> <span>Computador port\u00e1til<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Tablet\"> <span>Tablet<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Equipamento de trabalho fornecido\"> <span>Equipamento de trabalho fornecido<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Fardamento \/ uniforme\"> <span>Fardamento \/ uniforme<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Forma\u00e7\u00e3o inicial\"> <span>Forma\u00e7\u00e3o inicial<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Forma\u00e7\u00e3o cont\u00ednua\"> <span>Forma\u00e7\u00e3o cont\u00ednua<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Possibilidade de progress\u00e3o\"> <span>Possibilidade de progress\u00e3o<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Pr\u00e9mio de desempenho\"> <span>Pr\u00e9mio de desempenho<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Pr\u00e9mio de assiduidade\"> <span>Pr\u00e9mio de assiduidade<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"B\u00f3nus anual\"> <span>B\u00f3nus anual<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Comiss\u00f5es\"> <span>Comiss\u00f5es<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Gorjetas\"> <span>Gorjetas<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Descontos em produtos\/servi\u00e7os da empresa\"> <span>Descontos em produtos\/servi\u00e7os da empresa<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Apoio em desloca\u00e7\u00f5es\"> <span>Apoio em desloca\u00e7\u00f5es<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Ajudas de custo\"> <span>Ajudas de custo<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Transporte assegurado pela empresa\"> <span>Transporte assegurado pela empresa<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Flexibilidade hor\u00e1ria\"> <span>Flexibilidade hor\u00e1ria<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Banco de horas\"> <span>Banco de horas<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Dias extra de f\u00e9rias\"> <span>Dias extra de f\u00e9rias<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Dia de anivers\u00e1rio\"> <span>Dia de anivers\u00e1rio<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Trabalho h\u00edbrido\"> <span>Trabalho h\u00edbrido<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Trabalho remoto parcial\"> <span>Trabalho remoto parcial<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Refei\u00e7\u00f5es inclu\u00eddas\"> <span>Refei\u00e7\u00f5es inclu\u00eddas<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Caf\u00e9 \/ snacks\"> <span>Caf\u00e9 \/ snacks<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Apoio \u00e0 fam\u00edlia\"> <span>Apoio \u00e0 fam\u00edlia<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Apoio \u00e0 creche\/escola\"> <span>Apoio \u00e0 creche\/escola<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Gin\u00e1sio ou apoio \u00e0 atividade f\u00edsica\"> <span>Gin\u00e1sio ou apoio \u00e0 atividade f\u00edsica<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Eventos de equipa\"> <span>Eventos de equipa<\/span><\/label>\r\n          <label class=\"jm-check\"><input type=\"checkbox\" name=\"regalias[]\" value=\"Outro\"> <span>Outro<\/span><\/label>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Outras regalias n\u00e3o listadas<\/label>\r\n        <textarea name=\"outras_regalias\" rows=\"3\" placeholder=\"Pode indicar aqui outras condi\u00e7\u00f5es ou vantagens que n\u00e3o estejam na lista. Opcional.\"><\/textarea>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Descri\u00e7\u00e3o da fun\u00e7\u00e3o<\/label>\r\n        <textarea name=\"descricao\" required rows=\"5\" minlength=\"40\" placeholder=\"Explique de forma simples o que a pessoa vai fazer.\"><\/textarea>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Requisitos \/ experi\u00eancia<\/label>\r\n        <textarea name=\"requisitos\" rows=\"4\" placeholder=\"Ex: Experi\u00eancia na \u00e1rea, gosto pelo atendimento, disponibilidade para turnos.\"><\/textarea>\r\n      <\/div>\r\n\r\n      <div class=\"jm-field full\">\r\n        <label>Benef\u00edcios \/ condi\u00e7\u00f5es adicionais<\/label>\r\n        <textarea name=\"beneficios\" rows=\"4\" placeholder=\"Ex: Forma\u00e7\u00e3o inicial, pr\u00e9mios, alimenta\u00e7\u00e3o, seguro de sa\u00fade, progress\u00e3o.\"><\/textarea>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"jm-submit-area\">\r\n      <button type=\"submit\">Submeter oferta para valida\u00e7\u00e3o<\/button>\r\n      <p>\r\n        A oferta n\u00e3o aparece automaticamente no mapa. Primeiro ficar\u00e1 pendente em Ofertas WIW.\r\n      <\/p>\r\n    <\/div>\r\n\r\n  <\/form>\r\n\r\n<\/div>\r\n\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", async function () {\r\n  const loading = document.getElementById(\"jm-offer-loading\");\r\n  const content = document.getElementById(\"jm-offer-content\");\r\n  const errorBox = document.getElementById(\"jm-offer-error\");\r\n  const form = document.getElementById(\"jm-offer-form\");\r\n\r\n  const zonaSelect = document.getElementById(\"jm-zona-portugal\");\r\n  const distritoSelect = document.getElementById(\"jm-distrito\");\r\n  const concelhoSelect = document.getElementById(\"jm-concelho\");\r\n  const freguesiaInput = document.getElementById(\"jm-freguesia\");\r\n  const localidadeInput = document.getElementById(\"jm-localidade\");\r\n  const localizacaoPublicaInput = document.getElementById(\"jm-localizacao-publica\");\r\n  const codigoPostalInput = document.getElementById(\"jm-codigo-postal\");\r\n\r\n  const tipoHorarioSelect = document.getElementById(\"jm-tipo-horario\");\r\n  const vencimentoReferenciaInput = document.getElementById(\"jm-vencimento-referencia\");\r\n  const horasWrapper = document.getElementById(\"jm-horas-wrapper\");\r\n  const horasSemanaisInput = document.getElementById(\"jm-horas-semanais\");\r\n  const vencimentoPtWrapper = document.getElementById(\"jm-vencimento-pt-wrapper\");\r\n  const vencimentoProporcionalInput = document.getElementById(\"jm-vencimento-proporcional\");\r\n\r\n  const params = new URLSearchParams(window.location.search);\r\n  const erro = params.get(\"erro\");\r\n\r\n  const regaliasGrid = document.getElementById(\"jm-regalias-grid\");\r\n  if (regaliasGrid) {\r\n    const checks = Array.from(regaliasGrid.querySelectorAll('input[type=\"checkbox\"][name=\"regalias[]\"]'));\r\n    const naCheck = checks.find(function(chk) { return chk.dataset.na === \"1\"; });\r\n\r\n    checks.forEach(function(chk) {\r\n      chk.addEventListener(\"change\", function() {\r\n        if (!naCheck) return;\r\n\r\n        if (chk === naCheck && chk.checked) {\r\n          checks.forEach(function(other) {\r\n            if (other !== naCheck) other.checked = false;\r\n          });\r\n        }\r\n\r\n        if (chk !== naCheck && chk.checked) {\r\n          naCheck.checked = false;\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  const mensagens = {\r\n    campos: \"Preencha os campos obrigat\u00f3rios antes de submeter a oferta.\",\r\n    empresa: \"N\u00e3o encontr\u00e1mos uma entidade associada a esta conta.\",\r\n    guardar: \"N\u00e3o foi poss\u00edvel guardar a oferta. Tente novamente.\",\r\n    sessao: \"A sess\u00e3o n\u00e3o ficou ativa. Entre novamente.\",\r\n    permissao: \"Esta conta n\u00e3o tem permiss\u00e3o para publicar ofertas.\",\r\n    vencimento: \"O vencimento m\u00ednimo deve ser igual ou superior a 920\u20ac.\"\r\n  };\r\n\r\n  if (erro && errorBox) {\r\n    errorBox.textContent = mensagens[erro] || \"N\u00e3o foi poss\u00edvel publicar a oferta.\";\r\n  }\r\n\r\n  const distritosPorZona = {\r\n    \"Norte\": [\"Braga\", \"Bragan\u00e7a\", \"Porto\", \"Viana do Castelo\", \"Vila Real\"],\r\n    \"Centro\": [\"Aveiro\", \"Castelo Branco\", \"Coimbra\", \"Guarda\", \"Leiria\", \"Viseu\"],\r\n    \"Lisboa e Vale do Tejo\": [\"Lisboa\", \"Santar\u00e9m\", \"Set\u00fabal\"],\r\n    \"Alentejo\": [\"Beja\", \"\u00c9vora\", \"Portalegre\"],\r\n    \"Algarve\": [\"Faro\"],\r\n    \"Madeira\": [\"Madeira\"],\r\n    \"A\u00e7ores\": [\"A\u00e7ores\"]\r\n  };\r\n\r\n  const concelhosPorDistrito = {\r\n    \"Aveiro\": [\"\u00c1gueda\", \"Albergaria-a-Velha\", \"Anadia\", \"Arouca\", \"Aveiro\", \"Castelo de Paiva\", \"Espinho\", \"Estarreja\", \"\u00cdlhavo\", \"Mealhada\", \"Murtosa\", \"Oliveira de Azem\u00e9is\", \"Oliveira do Bairro\", \"Ovar\", \"Santa Maria da Feira\", \"S\u00e3o Jo\u00e3o da Madeira\", \"Sever do Vouga\", \"Vagos\", \"Vale de Cambra\"],\r\n    \"Beja\": [\"Aljustrel\", \"Almod\u00f4var\", \"Alvito\", \"Barrancos\", \"Beja\", \"Castro Verde\", \"Cuba\", \"Ferreira do Alentejo\", \"M\u00e9rtola\", \"Moura\", \"Odemira\", \"Ourique\", \"Serpa\", \"Vidigueira\"],\r\n    \"Braga\": [\"Amares\", \"Barcelos\", \"Braga\", \"Cabeceiras de Basto\", \"Celorico de Basto\", \"Esposende\", \"Fafe\", \"Guimar\u00e3es\", \"P\u00f3voa de Lanhoso\", \"Terras de Bouro\", \"Vieira do Minho\", \"Vila Nova de Famalic\u00e3o\", \"Vila Verde\", \"Vizela\"],\r\n    \"Bragan\u00e7a\": [\"Alf\u00e2ndega da F\u00e9\", \"Bragan\u00e7a\", \"Carrazeda de Ansi\u00e3es\", \"Freixo de Espada \u00e0 Cinta\", \"Macedo de Cavaleiros\", \"Miranda do Douro\", \"Mirandela\", \"Mogadouro\", \"Torre de Moncorvo\", \"Vila Flor\", \"Vimioso\", \"Vinhais\"],\r\n    \"Castelo Branco\": [\"Belmonte\", \"Castelo Branco\", \"Covilh\u00e3\", \"Fund\u00e3o\", \"Idanha-a-Nova\", \"Oleiros\", \"Penamacor\", \"Proen\u00e7a-a-Nova\", \"Sert\u00e3\", \"Vila de Rei\", \"Vila Velha de R\u00f3d\u00e3o\"],\r\n    \"Coimbra\": [\"Arganil\", \"Cantanhede\", \"Coimbra\", \"Condeixa-a-Nova\", \"Figueira da Foz\", \"G\u00f3is\", \"Lous\u00e3\", \"Mira\", \"Miranda do Corvo\", \"Montemor-o-Velho\", \"Oliveira do Hospital\", \"Pampilhosa da Serra\", \"Penacova\", \"Penela\", \"Soure\", \"T\u00e1bua\", \"Vila Nova de Poiares\"],\r\n    \"\u00c9vora\": [\"Alandroal\", \"Arraiolos\", \"Borba\", \"Estremoz\", \"\u00c9vora\", \"Montemor-o-Novo\", \"Mora\", \"Mour\u00e3o\", \"Portel\", \"Redondo\", \"Reguengos de Monsaraz\", \"Vendas Novas\", \"Viana do Alentejo\", \"Vila Vi\u00e7osa\"],\r\n    \"Faro\": [\"Albufeira\", \"Alcoutim\", \"Aljezur\", \"Castro Marim\", \"Faro\", \"Lagoa\", \"Lagos\", \"Loul\u00e9\", \"Monchique\", \"Olh\u00e3o\", \"Portim\u00e3o\", \"S\u00e3o Br\u00e1s de Alportel\", \"Silves\", \"Tavira\", \"Vila do Bispo\", \"Vila Real de Santo Ant\u00f3nio\"],\r\n    \"Guarda\": [\"Aguiar da Beira\", \"Almeida\", \"Celorico da Beira\", \"Figueira de Castelo Rodrigo\", \"Fornos de Algodres\", \"Gouveia\", \"Guarda\", \"Manteigas\", \"M\u00eada\", \"Pinhel\", \"Sabugal\", \"Seia\", \"Trancoso\", \"Vila Nova de Foz C\u00f4a\"],\r\n    \"Leiria\": [\"Alcoba\u00e7a\", \"Alvai\u00e1zere\", \"Ansi\u00e3o\", \"Batalha\", \"Bombarral\", \"Caldas da Rainha\", \"Castanheira de Pera\", \"Figueir\u00f3 dos Vinhos\", \"Leiria\", \"Marinha Grande\", \"Nazar\u00e9\", \"\u00d3bidos\", \"Pedr\u00f3g\u00e3o Grande\", \"Peniche\", \"Pombal\", \"Porto de M\u00f3s\"],\r\n    \"Lisboa\": [\"Alenquer\", \"Amadora\", \"Arruda dos Vinhos\", \"Azambuja\", \"Cadaval\", \"Cascais\", \"Lisboa\", \"Loures\", \"Lourinh\u00e3\", \"Mafra\", \"Odivelas\", \"Oeiras\", \"Sintra\", \"Sobral de Monte Agra\u00e7o\", \"Torres Vedras\", \"Vila Franca de Xira\"],\r\n    \"Portalegre\": [\"Alter do Ch\u00e3o\", \"Arronches\", \"Avis\", \"Campo Maior\", \"Castelo de Vide\", \"Crato\", \"Elvas\", \"Fronteira\", \"Gavi\u00e3o\", \"Marv\u00e3o\", \"Monforte\", \"Nisa\", \"Ponte de Sor\", \"Portalegre\", \"Sousel\"],\r\n    \"Porto\": [\"Amarante\", \"Bai\u00e3o\", \"Felgueiras\", \"Gondomar\", \"Lousada\", \"Maia\", \"Marco de Canaveses\", \"Matosinhos\", \"Pa\u00e7os de Ferreira\", \"Paredes\", \"Penafiel\", \"Porto\", \"P\u00f3voa de Varzim\", \"Santo Tirso\", \"Trofa\", \"Valongo\", \"Vila do Conde\", \"Vila Nova de Gaia\"],\r\n    \"Santar\u00e9m\": [\"Abrantes\", \"Alcanena\", \"Almeirim\", \"Alpiar\u00e7a\", \"Benavente\", \"Cartaxo\", \"Chamusca\", \"Const\u00e2ncia\", \"Coruche\", \"Entroncamento\", \"Ferreira do Z\u00eazere\", \"Goleg\u00e3\", \"Ma\u00e7\u00e3o\", \"Our\u00e9m\", \"Rio Maior\", \"Salvaterra de Magos\", \"Santar\u00e9m\", \"Sardoal\", \"Tomar\", \"Torres Novas\", \"Vila Nova da Barquinha\"],\r\n    \"Set\u00fabal\": [\"Alc\u00e1cer do Sal\", \"Alcochete\", \"Almada\", \"Barreiro\", \"Gr\u00e2ndola\", \"Moita\", \"Montijo\", \"Palmela\", \"Santiago do Cac\u00e9m\", \"Seixal\", \"Sesimbra\", \"Set\u00fabal\", \"Sines\"],\r\n    \"Viana do Castelo\": [\"Arcos de Valdevez\", \"Caminha\", \"Melga\u00e7o\", \"Mon\u00e7\u00e3o\", \"Paredes de Coura\", \"Ponte da Barca\", \"Ponte de Lima\", \"Valen\u00e7a\", \"Viana do Castelo\", \"Vila Nova de Cerveira\"],\r\n    \"Vila Real\": [\"Alij\u00f3\", \"Boticas\", \"Chaves\", \"Mes\u00e3o Frio\", \"Mondim de Basto\", \"Montalegre\", \"Mur\u00e7a\", \"Peso da R\u00e9gua\", \"Ribeira de Pena\", \"Sabrosa\", \"Santa Marta de Penagui\u00e3o\", \"Valpa\u00e7os\", \"Vila Pouca de Aguiar\", \"Vila Real\"],\r\n    \"Viseu\": [\"Armamar\", \"Carregal do Sal\", \"Castro Daire\", \"Cinf\u00e3es\", \"Lamego\", \"Mangualde\", \"Moimenta da Beira\", \"Mort\u00e1gua\", \"Nelas\", \"Oliveira de Frades\", \"Penalva do Castelo\", \"Penedono\", \"Resende\", \"Santa Comba D\u00e3o\", \"S\u00e3o Jo\u00e3o da Pesqueira\", \"S\u00e3o Pedro do Sul\", \"S\u00e1t\u00e3o\", \"Sernancelhe\", \"Tabua\u00e7o\", \"Tarouca\", \"Tondela\", \"Vila Nova de Paiva\", \"Viseu\", \"Vouzela\"],\r\n    \"Madeira\": [\"Calheta\", \"C\u00e2mara de Lobos\", \"Funchal\", \"Machico\", \"Ponta do Sol\", \"Porto Moniz\", \"Porto Santo\", \"Ribeira Brava\", \"Santa Cruz\", \"Santana\", \"S\u00e3o Vicente\"],\r\n    \"A\u00e7ores\": [\"Angra do Hero\u00edsmo\", \"Calheta\", \"Corvo\", \"Horta\", \"Lagoa\", \"Lajes das Flores\", \"Lajes do Pico\", \"Madalena\", \"Nordeste\", \"Ponta Delgada\", \"Povoa\u00e7\u00e3o\", \"Praia da Vit\u00f3ria\", \"Ribeira Grande\", \"Santa Cruz da Graciosa\", \"Santa Cruz das Flores\", \"S\u00e3o Roque do Pico\", \"Velas\", \"Vila do Porto\", \"Vila Franca do Campo\"]\r\n  };\r\n\r\n  function limparSelect(select, placeholder) {\r\n    select.innerHTML = \"\";\r\n    const option = document.createElement(\"option\");\r\n    option.value = \"\";\r\n    option.textContent = placeholder;\r\n    select.appendChild(option);\r\n  }\r\n\r\n  function popularSelect(select, valores, placeholder) {\r\n    limparSelect(select, placeholder);\r\n\r\n    valores.forEach(function(valor) {\r\n      const option = document.createElement(\"option\");\r\n      option.value = valor;\r\n      option.textContent = valor;\r\n      select.appendChild(option);\r\n    });\r\n  }\r\n\r\n  function atualizarLocalizacaoPublica() {\r\n    const localidade = localidadeInput ? localidadeInput.value.trim() : \"\";\r\n    const freguesia = freguesiaInput ? freguesiaInput.value.trim() : \"\";\r\n    const concelho = concelhoSelect ? concelhoSelect.value.trim() : \"\";\r\n\r\n    if (!localizacaoPublicaInput) return;\r\n\r\n    const partes = [];\r\n\r\n    if (localidade) partes.push(localidade);\r\n    if (freguesia && freguesia.toLowerCase() !== localidade.toLowerCase()) partes.push(freguesia);\r\n    if (concelho) partes.push(concelho);\r\n\r\n    localizacaoPublicaInput.value = partes.join(\", \");\r\n  }\r\n\r\n  if (zonaSelect && distritoSelect && concelhoSelect) {\r\n    zonaSelect.addEventListener(\"change\", function() {\r\n      const zona = zonaSelect.value;\r\n      const distritos = distritosPorZona[zona] || [];\r\n\r\n      popularSelect(distritoSelect, distritos, \"Selecionar distrito \/ regi\u00e3o\");\r\n      limparSelect(concelhoSelect, \"Escolha primeiro o distrito\");\r\n      atualizarLocalizacaoPublica();\r\n    });\r\n\r\n    distritoSelect.addEventListener(\"change\", function() {\r\n      const distrito = distritoSelect.value;\r\n      const concelhos = concelhosPorDistrito[distrito] || [];\r\n\r\n      popularSelect(concelhoSelect, concelhos, \"Selecionar concelho\");\r\n      atualizarLocalizacaoPublica();\r\n    });\r\n\r\n    concelhoSelect.addEventListener(\"change\", atualizarLocalizacaoPublica);\r\n  }\r\n\r\n  if (localidadeInput) {\r\n    localidadeInput.addEventListener(\"input\", atualizarLocalizacaoPublica);\r\n  }\r\n\r\n  if (freguesiaInput) {\r\n    freguesiaInput.addEventListener(\"input\", atualizarLocalizacaoPublica);\r\n  }\r\n\r\n  if (codigoPostalInput) {\r\n    codigoPostalInput.addEventListener(\"input\", function() {\r\n      let value = codigoPostalInput.value.replace(\/[^\\d]\/g, \"\");\r\n\r\n      if (value.length > 4) {\r\n        value = value.slice(0, 4) + \"-\" + value.slice(4, 7);\r\n      }\r\n\r\n      codigoPostalInput.value = value.slice(0, 8);\r\n    });\r\n  }\r\n\r\n  function calcularVencimentoProporcional() {\r\n    if (!tipoHorarioSelect || !vencimentoReferenciaInput || !horasSemanaisInput || !vencimentoProporcionalInput) {\r\n      return;\r\n    }\r\n\r\n    const tipoHorario = tipoHorarioSelect.value;\r\n    const vencimentoReferencia = parseFloat(vencimentoReferenciaInput.value) || 0;\r\n    const horasSemanais = parseFloat(horasSemanaisInput.value) || 0;\r\n\r\n    if (tipoHorario !== \"Part-time\") {\r\n      vencimentoProporcionalInput.value = \"\";\r\n      return;\r\n    }\r\n\r\n    if (vencimentoReferencia >= 920 && horasSemanais > 0) {\r\n      const valor = (vencimentoReferencia \/ 173.33) * horasSemanais * 4;\r\n      vencimentoProporcionalInput.value = Math.round(valor).toLocaleString(\"pt-PT\") + \"\u20ac\";\r\n    } else {\r\n      vencimentoProporcionalInput.value = \"\";\r\n    }\r\n  }\r\n\r\n  if (tipoHorarioSelect) {\r\n    tipoHorarioSelect.addEventListener(\"change\", function() {\r\n      if (tipoHorarioSelect.value === \"Part-time\") {\r\n        if (horasWrapper) horasWrapper.style.display = \"block\";\r\n        if (vencimentoPtWrapper) vencimentoPtWrapper.style.display = \"block\";\r\n        if (horasSemanaisInput) horasSemanaisInput.setAttribute(\"required\", \"required\");\r\n      } else {\r\n        if (horasWrapper) horasWrapper.style.display = \"none\";\r\n        if (vencimentoPtWrapper) vencimentoPtWrapper.style.display = \"none\";\r\n        if (horasSemanaisInput) {\r\n          horasSemanaisInput.removeAttribute(\"required\");\r\n          horasSemanaisInput.value = \"\";\r\n        }\r\n        if (vencimentoProporcionalInput) vencimentoProporcionalInput.value = \"\";\r\n      }\r\n\r\n      calcularVencimentoProporcional();\r\n    });\r\n  }\r\n\r\n  if (vencimentoReferenciaInput) {\r\n    vencimentoReferenciaInput.addEventListener(\"input\", calcularVencimentoProporcional);\r\n  }\r\n\r\n  if (horasSemanaisInput) {\r\n    horasSemanaisInput.addEventListener(\"input\", calcularVencimentoProporcional);\r\n  }\r\n\r\n  if (form) {\r\n  form.addEventListener(\"submit\", function(event) {\r\n    const funcaoInput = document.getElementById(\"jm-funcao\");\r\n    const zona = zonaSelect ? zonaSelect.value.trim() : \"\";\r\n    const distrito = distritoSelect ? distritoSelect.value.trim() : \"\";\r\n    const concelho = concelhoSelect ? concelhoSelect.value.trim() : \"\";\r\n    const freguesia = freguesiaInput ? freguesiaInput.value.trim() : \"\";\r\n    const localidade = localidadeInput ? localidadeInput.value.trim() : \"\";\r\n    const morada = document.getElementById(\"jm-morada-trabalho\") ? document.getElementById(\"jm-morada-trabalho\").value.trim() : \"\";\r\n    const cp = codigoPostalInput ? codigoPostalInput.value.trim() : \"\";\r\n    const localizacaoPublica = localizacaoPublicaInput ? localizacaoPublicaInput.value.trim() : \"\";\r\n\r\n    function bloquear(mensagem) {\r\n      event.preventDefault();\r\n      errorBox.textContent = mensagem;\r\n      errorBox.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\r\n    }\r\n\r\n    if (!funcaoInput || funcaoInput.value.trim().length < 3) {\r\n      bloquear(\"Indique a fun\u00e7\u00e3o ou cargo da oferta.\");\r\n      return;\r\n    }\r\n\r\n    if (!zona) {\r\n      bloquear(\"Escolha a zona de Portugal.\");\r\n      return;\r\n    }\r\n\r\n    if (!distrito) {\r\n      bloquear(\"Escolha o distrito ou regi\u00e3o.\");\r\n      return;\r\n    }\r\n\r\n    if (!concelho) {\r\n      bloquear(\"Escolha o concelho.\");\r\n      return;\r\n    }\r\n\r\n    if (!freguesia || freguesia.length < 2) {\r\n      bloquear(\"Indique a freguesia do local de trabalho.\");\r\n      return;\r\n    }\r\n\r\n    if (!localidade || localidade.length < 2) {\r\n      bloquear(\"Indique a localidade da oferta.\");\r\n      return;\r\n    }\r\n\r\n    if (!morada || morada.length < 5) {\r\n      bloquear(\"Indique a morada exata do local de trabalho.\");\r\n      return;\r\n    }\r\n\r\n    if (!\/^\\d{4}-\\d{3}$\/.test(cp)) {\r\n      bloquear(\"O c\u00f3digo postal deve estar no formato 0000-000.\");\r\n      return;\r\n    }\r\n\r\n    if (!localizacaoPublica || localizacaoPublica.length < 3) {\r\n      bloquear(\"A localiza\u00e7\u00e3o p\u00fablica n\u00e3o est\u00e1 preenchida corretamente.\");\r\n      return;\r\n    }\r\n\r\n    if (!distritosPorZona[zona] || !distritosPorZona[zona].includes(distrito)) {\r\n      bloquear(\"O distrito escolhido n\u00e3o pertence \u00e0 zona selecionada.\");\r\n      return;\r\n    }\r\n\r\n    if (!concelhosPorDistrito[distrito] || !concelhosPorDistrito[distrito].includes(concelho)) {\r\n      bloquear(\"O concelho escolhido n\u00e3o pertence ao distrito selecionado.\");\r\n      return;\r\n    }\r\n\r\n    const textoLocalidade = localidade.toLowerCase();\r\n    const textoConcelho = concelho.toLowerCase();\r\n    const textoDistrito = distrito.toLowerCase();\r\n\r\n    if (\r\n      textoLocalidade === textoDistrito &&\r\n      textoLocalidade !== textoConcelho\r\n    ) {\r\n      bloquear(\"A localidade parece estar incorreta. Indique a localidade concreta, n\u00e3o apenas o distrito.\");\r\n      return;\r\n    }\r\n\r\n    if (\r\n      textoLocalidade === zona.toLowerCase()\r\n    ) {\r\n      bloquear(\"A localidade parece estar incorreta. Indique uma localidade concreta.\");\r\n      return;\r\n    }\r\n\r\n    if (freguesia.toLowerCase() === zona.toLowerCase()) {\r\n      bloquear(\"A freguesia parece estar incorreta. Indique uma freguesia concreta.\");\r\n      return;\r\n    }\r\n\r\n    const tipoHorario = tipoHorarioSelect ? tipoHorarioSelect.value.trim() : \"\";\r\n    const vencimentoReferencia = vencimentoReferenciaInput ? parseFloat(vencimentoReferenciaInput.value) || 0 : 0;\r\n    const horasSemanais = horasSemanaisInput ? parseFloat(horasSemanaisInput.value) || 0 : 0;\r\n\r\n    if (vencimentoReferencia < 920) {\r\n      bloquear(\"O vencimento bruto mensal de refer\u00eancia deve ser igual ou superior a 920\u20ac.\");\r\n      return;\r\n    }\r\n\r\n    if (!tipoHorario) {\r\n      bloquear(\"Escolha se a oferta \u00e9 full-time ou part-time.\");\r\n      return;\r\n    }\r\n\r\n    if (tipoHorario === \"Part-time\") {\r\n      if (!horasSemanais || horasSemanais < 1 || horasSemanais > 40) {\r\n        bloquear(\"Indique o n\u00famero de horas semanais da oferta part-time, entre 1 e 40 horas.\");\r\n        return;\r\n      }\r\n    }\r\n\r\n    \/*\r\n      Valida\u00e7\u00e3o poss\u00edvel sem base de dados CTT:\r\n      - Garante formato do c\u00f3digo postal.\r\n      - Garante coer\u00eancia zona\/distrito\/concelho.\r\n      - Garante localidade e morada obrigat\u00f3rias.\r\n      Para validar se o c\u00f3digo postal pertence mesmo \u00e0quela rua\/localidade,\r\n      seria necess\u00e1rio integrar base de dados CTT ou uma API de moradas.\r\n    *\/\r\n  });\r\n}\r\n\r\n  try {\r\n    const response = await fetch(\"\/wp-admin\/admin-ajax.php?action=jm4_empresa_me&t=\" + Date.now(), {\r\n      method: \"GET\",\r\n      credentials: \"same-origin\",\r\n      cache: \"no-store\",\r\n      headers: {\r\n        \"Cache-Control\": \"no-cache\"\r\n      }\r\n    });\r\n\r\n    const data = await response.json();\r\n\r\n    if (!data.logged_in) {\r\n      window.location.href = \"\/jobmaps-login\/?erro=sessao\";\r\n      return;\r\n    }\r\n\r\n    if (!data.is_empresa) {\r\n      window.location.href = \"\/jobmaps-login\/?erro=permissao\";\r\n      return;\r\n    }\r\n\r\n    loading.style.display = \"none\";\r\n    content.style.display = \"block\";\r\n\r\n  } catch (error) {\r\n    loading.textContent = \"N\u00e3o foi poss\u00edvel carregar o formul\u00e1rio. Tente novamente.\";\r\n    loading.classList.add(\"error\");\r\n  }\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.jm-offer-page {\r\n  min-height: calc(100vh - 120px);\r\n  padding: 46px 20px;\r\n  background:\r\n    radial-gradient(circle at top left, rgba(21,86,255,0.10), transparent 34%),\r\n    linear-gradient(180deg, #f5f9ff 0%, #eef5ff 100%);\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-offer-shell {\r\n  width: 100%;\r\n  max-width: 980px;\r\n  margin: 0 auto;\r\n}\r\n\r\n.jm-offer-hero {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  gap: 24px;\r\n  align-items: flex-end;\r\n  margin-bottom: 24px;\r\n  padding: 34px;\r\n  border-radius: 32px;\r\n  background: #ffffff;\r\n  box-shadow: 0 24px 70px rgba(20, 80, 170, 0.13);\r\n}\r\n\r\n.jm-offer-badge {\r\n  display: inline-flex;\r\n  margin-bottom: 16px;\r\n  padding: 8px 14px;\r\n  border-radius: 999px;\r\n  background: rgba(21,86,255,0.08);\r\n  color: #1556ff;\r\n  font-size: 13px;\r\n  font-weight: 850;\r\n}\r\n\r\n.jm-offer-hero h1 {\r\n  margin: 0 0 12px;\r\n  color: #15396f;\r\n  font-size: 40px;\r\n  line-height: 1.08;\r\n  font-weight: 950;\r\n  letter-spacing: -0.7px;\r\n}\r\n\r\n.jm-offer-hero p {\r\n  max-width: 620px;\r\n  margin: 0;\r\n  color: #39577f;\r\n  font-size: 17px;\r\n  line-height: 1.5;\r\n}\r\n\r\n.jm-back-btn {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 14px 20px;\r\n  border-radius: 999px;\r\n  background: #eef5ff;\r\n  color: #1556ff;\r\n  text-decoration: none;\r\n  font-size: 14px;\r\n  font-weight: 900;\r\n  white-space: nowrap;\r\n}\r\n\r\n.jm-offer-form {\r\n  padding: 34px;\r\n  border-radius: 32px;\r\n  background: #ffffff;\r\n  box-shadow: 0 24px 70px rgba(20, 80, 170, 0.12);\r\n}\r\n\r\n.jm-form-grid {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 18px;\r\n}\r\n\r\n.jm-field.full {\r\n  grid-column: 1 \/ -1;\r\n}\r\n\r\n.jm-field label {\r\n  display: block;\r\n  margin: 0 0 8px;\r\n  color: #15396f;\r\n  font-size: 13px;\r\n  font-weight: 900;\r\n}\r\n\r\n.jm-field input,\r\n.jm-field select,\r\n.jm-field textarea {\r\n  width: 100%;\r\n  padding: 14px 15px;\r\n  border: 1px solid #c9d9f2;\r\n  border-radius: 14px;\r\n  background: #ffffff;\r\n  color: #213b66;\r\n  font-size: 15px;\r\n  outline: none;\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-field textarea {\r\n  resize: vertical;\r\n}\r\n\r\n.jm-field input:focus,\r\n.jm-field select:focus,\r\n.jm-field textarea:focus {\r\n  border-color: #1556ff;\r\n  box-shadow: 0 0 0 4px rgba(21,86,255,0.08);\r\n}\r\n\r\n.jm-field-note {\r\n  display: block;\r\n  margin-top: 7px;\r\n  color: #667b96;\r\n  font-size: 12.5px;\r\n  line-height: 1.35;\r\n}\r\n\r\n.jm-salary-explain {\r\n  padding: 16px;\r\n  border-radius: 18px;\r\n  background: rgba(21, 86, 255, 0.07);\r\n  border: 1px solid rgba(21, 86, 255, 0.12);\r\n}\r\n\r\n.jm-salary-explain strong {\r\n  display: block;\r\n  margin-bottom: 6px;\r\n  color: #15396f;\r\n  font-size: 14px;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-salary-explain span {\r\n  display: block;\r\n  color: #506783;\r\n  font-size: 13px;\r\n  line-height: 1.45;\r\n}\r\n\r\n.jm-submit-area {\r\n  margin-top: 26px;\r\n  padding-top: 24px;\r\n  border-top: 1px solid #e1ebf8;\r\n}\r\n\r\n.jm-submit-area button {\r\n  width: 100%;\r\n  padding: 16px 20px;\r\n  border: 0;\r\n  border-radius: 999px;\r\n  background: linear-gradient(135deg, #1556ff, #159dff);\r\n  color: #ffffff;\r\n  font-size: 16px;\r\n  font-weight: 950;\r\n  cursor: pointer;\r\n  box-shadow: 0 14px 30px rgba(24,95,255,0.24);\r\n}\r\n\r\n.jm-submit-area p {\r\n  margin: 14px 0 0;\r\n  color: #506783;\r\n  font-size: 13px;\r\n  line-height: 1.45;\r\n  text-align: center;\r\n}\r\n\r\n.jm-offer-message {\r\n  max-width: 700px;\r\n  margin: 0 auto 18px;\r\n  padding: 16px 18px;\r\n  border-radius: 18px;\r\n  background: rgba(21,86,255,0.08);\r\n  color: #15396f;\r\n  font-size: 15px;\r\n  font-weight: 750;\r\n}\r\n\r\n.jm-offer-message.error {\r\n  background: rgba(220,40,40,0.10);\r\n  color: #a12626;\r\n}\r\n\r\n.jm-offer-message:empty {\r\n  display: none;\r\n}\r\n\r\n.jm-section-divider {\r\n  margin-top: 10px;\r\n  padding: 16px;\r\n  border-radius: 18px;\r\n  background: rgba(21, 86, 255, 0.07);\r\n  border: 1px solid rgba(21, 86, 255, 0.12);\r\n}\r\n\r\n.jm-section-divider strong {\r\n  display: block;\r\n  margin-bottom: 6px;\r\n  color: #15396f;\r\n  font-size: 14px;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-section-divider span {\r\n  display: block;\r\n  color: #506783;\r\n  font-size: 13px;\r\n  line-height: 1.45;\r\n}\r\n\r\n.jm-inline-pair {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 10px;\r\n}\r\n\r\n.jm-note-before-list {\r\n  margin-bottom: 12px;\r\n}\r\n\r\n.jm-checkbox-grid {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 10px;\r\n  padding: 14px;\r\n  border: 1px solid #c9d9f2;\r\n  border-radius: 18px;\r\n  background: #fbfdff;\r\n}\r\n\r\n.jm-check {\r\n  display: flex !important;\r\n  align-items: flex-start;\r\n  gap: 9px;\r\n  margin: 0 !important;\r\n  padding: 10px 11px;\r\n  border-radius: 13px;\r\n  background: #ffffff;\r\n  border: 1px solid #e1ebf8;\r\n  color: #213b66 !important;\r\n  font-size: 13px !important;\r\n  font-weight: 750 !important;\r\n  line-height: 1.25;\r\n  cursor: pointer;\r\n}\r\n\r\n.jm-check input {\r\n  width: auto !important;\r\n  margin: 2px 0 0 !important;\r\n  padding: 0 !important;\r\n  box-shadow: none !important;\r\n}\r\n\r\n.jm-check span {\r\n  display: block;\r\n}\r\n\r\n@media (max-width: 760px) {\r\n  .jm-offer-hero {\r\n    align-items: flex-start;\r\n    flex-direction: column;\r\n  }\r\n\r\n  .jm-back-btn {\r\n    width: 100%;\r\n  }\r\n\r\n  .jm-form-grid {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .jm-checkbox-grid,\r\n  .jm-inline-pair {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n\r\n@media (max-width: 560px) {\r\n  .jm-offer-page {\r\n    padding: 30px 14px;\r\n  }\r\n\r\n  .jm-offer-hero,\r\n  .jm-offer-form {\r\n    padding: 24px 20px;\r\n    border-radius: 24px;\r\n  }\r\n\r\n  .jm-offer-hero h1 {\r\n    font-size: 30px;\r\n  }\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Quero contratar Quero trabalhar Sou recrutador \ud83d\udc64 \u00c1rea Sair A carregar o formul\u00e1rio de publica\u00e7\u00e3o&#8230; Nova oportunidade Publicar nova oferta Preencha os dados principais da oportunidade. A oferta ficar\u00e1 pendente de valida\u00e7\u00e3o antes de aparecer no mapa p\u00fablico. Voltar \u00e0 \u00e1rea da entidade Fun\u00e7\u00e3o \/ cargo Pode escolher uma fun\u00e7\u00e3o da lista ou escrever outra [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-6473","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Publicar oferta JobMaps - WIW \u2014 Work is Worth<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/3solutions.pt\/en\/jobmaps-publicar-oferta\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Publicar oferta JobMaps - WIW \u2014 Work is Worth\" \/>\n<meta property=\"og:description\" content=\"Quero contratar Quero trabalhar Sou recrutador \ud83d\udc64 \u00c1rea Sair A carregar o formul\u00e1rio de publica\u00e7\u00e3o&#8230; Nova oportunidade Publicar nova oferta Preencha os dados principais da oportunidade. A oferta ficar\u00e1 pendente de valida\u00e7\u00e3o antes de aparecer no mapa p\u00fablico. Voltar \u00e0 \u00e1rea da entidade Fun\u00e7\u00e3o \/ cargo Pode escolher uma fun\u00e7\u00e3o da lista ou escrever outra [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/3solutions.pt\/en\/jobmaps-publicar-oferta\/\" \/>\n<meta property=\"og:site_name\" content=\"WIW \u2014 Work is Worth\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/share\/17VAXrDnwy\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-18T21:56:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/\",\"name\":\"Publicar oferta JobMaps - WIW \u2014 Work is Worth\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/WIW.png\",\"datePublished\":\"2026-06-13T14:26:05+00:00\",\"dateModified\":\"2026-06-18T21:56:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/#primaryimage\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/WIW.png\",\"contentUrl\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/WIW.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-publicar-oferta\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/3solutions.pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Publicar oferta JobMaps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#website\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/\",\"name\":\"3Solutions Consultoria em Marketing e Gest\u00e3o\",\"description\":\"Consultoria e Marketing Digital\",\"publisher\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/3solutions.pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#organization\",\"name\":\"3Solutions Consultoria em Marketing e Gest\u00e3o\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-Prancheta-1-copia-scaled-1.png\",\"contentUrl\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-Prancheta-1-copia-scaled-1.png\",\"width\":1505,\"height\":785,\"caption\":\"3Solutions Consultoria em Marketing e Gest\u00e3o\"},\"image\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/share\\\/17VAXrDnwy\\\/\",\"https:\\\/\\\/www.instagram.com\\\/wespeakretail?igsh=d2Y0a2RzY29nN2Fv\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Publicar oferta JobMaps - WIW \u2014 Work is Worth","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/3solutions.pt\/en\/jobmaps-publicar-oferta\/","og_locale":"en_GB","og_type":"article","og_title":"Publicar oferta JobMaps - WIW \u2014 Work is Worth","og_description":"Quero contratar Quero trabalhar Sou recrutador \ud83d\udc64 \u00c1rea Sair A carregar o formul\u00e1rio de publica\u00e7\u00e3o&#8230; Nova oportunidade Publicar nova oferta Preencha os dados principais da oportunidade. A oferta ficar\u00e1 pendente de valida\u00e7\u00e3o antes de aparecer no mapa p\u00fablico. Voltar \u00e0 \u00e1rea da entidade Fun\u00e7\u00e3o \/ cargo Pode escolher uma fun\u00e7\u00e3o da lista ou escrever outra [&hellip;]","og_url":"https:\/\/3solutions.pt\/en\/jobmaps-publicar-oferta\/","og_site_name":"WIW \u2014 Work is Worth","article_publisher":"https:\/\/www.facebook.com\/share\/17VAXrDnwy\/","article_modified_time":"2026-06-18T21:56:49+00:00","og_image":[{"url":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/","url":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/","name":"Publicar oferta JobMaps - WIW \u2014 Work is Worth","isPartOf":{"@id":"https:\/\/3solutions.pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/#primaryimage"},"image":{"@id":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/#primaryimage"},"thumbnailUrl":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png","datePublished":"2026-06-13T14:26:05+00:00","dateModified":"2026-06-18T21:56:49+00:00","breadcrumb":{"@id":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/#primaryimage","url":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png","contentUrl":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png"},{"@type":"BreadcrumbList","@id":"https:\/\/3solutions.pt\/jobmaps-publicar-oferta\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/3solutions.pt\/"},{"@type":"ListItem","position":2,"name":"Publicar oferta JobMaps"}]},{"@type":"WebSite","@id":"https:\/\/3solutions.pt\/#website","url":"https:\/\/3solutions.pt\/","name":"3Solutions Consultoria em Marketing e Gest\u00e3o","description":"Consultoria e Marketing Digital","publisher":{"@id":"https:\/\/3solutions.pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/3solutions.pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/3solutions.pt\/#organization","name":"3Solutions Consultoria em Marketing e Gest\u00e3o","url":"https:\/\/3solutions.pt\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/3solutions.pt\/#\/schema\/logo\/image\/","url":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/05\/cropped-Prancheta-1-copia-scaled-1.png","contentUrl":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/05\/cropped-Prancheta-1-copia-scaled-1.png","width":1505,"height":785,"caption":"3Solutions Consultoria em Marketing e Gest\u00e3o"},"image":{"@id":"https:\/\/3solutions.pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/share\/17VAXrDnwy\/","https:\/\/www.instagram.com\/wespeakretail?igsh=d2Y0a2RzY29nN2Fv"]}]}},"_links":{"self":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/comments?post=6473"}],"version-history":[{"count":88,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6473\/revisions"}],"predecessor-version":[{"id":7438,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6473\/revisions\/7438"}],"wp:attachment":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/media?parent=6473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}