{"id":6892,"date":"2026-06-16T15:23:17","date_gmt":"2026-06-16T15:23:17","guid":{"rendered":"https:\/\/3solutions.pt\/?page_id=6892"},"modified":"2026-06-18T21:53:16","modified_gmt":"2026-06-18T21:53:16","slug":"jobmaps-minhas-ofertas","status":"publish","type":"page","link":"https:\/\/3solutions.pt\/en\/jobmaps-minhas-ofertas\/","title":{"rendered":"Minhas Ofertas"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6892\" class=\"elementor elementor-6892\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b827d04 e-flex e-con-boxed e-con e-parent\" data-id=\"b827d04\" 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-242a0a6 elementor-widget elementor-widget-html\" data-id=\"242a0a6\" 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-d31880c elementor-widget elementor-widget-html\" data-id=\"d31880c\" 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-my-offers-page\">\r\n  <div class=\"jm-my-offers-shell\">\r\n\r\n    <div id=\"jm-my-offers-loading\" class=\"jm-my-offers-message\">\r\n      A carregar as suas ofertas...\r\n    <\/div>\r\n\r\n    <div id=\"jm-my-offers-error\" class=\"jm-my-offers-message error\" style=\"display:none;\"><\/div>\r\n\r\n    <div id=\"jm-my-offers-content\" style=\"display:none;\">\r\n\r\n      <div class=\"jm-my-offers-hero\">\r\n        <div>\r\n          <span class=\"jm-my-offers-badge\">\u00c1rea da entidade WIW<\/span>\r\n          <h1>Minhas ofertas<\/h1>\r\n          <p>\r\n            Consulte as oportunidades submetidas pela sua entidade, veja o estado de publica\u00e7\u00e3o e acompanhe candidaturas.\r\n          <\/p>\r\n          <strong id=\"jm-my-offers-company\">Entidade WIW<\/strong>\r\n        <\/div>\r\n\r\n        <div class=\"jm-my-offers-actions\">\r\n          <a class=\"jm-main-btn\" href=\"\/jobmaps-publicar-oferta\/\">Publicar nova oferta<\/a>\r\n          <a class=\"jm-soft-btn\" href=\"\/jobmaps-area-empresa\/\">Voltar \u00e0 \u00e1rea<\/a>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"jm-my-offers-toolbar\">\r\n        <div class=\"jm-stat-card\">\r\n          <strong id=\"jm-total-ofertas\">0<\/strong>\r\n          <span>Total de ofertas<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"jm-filter-wrap\">\r\n          <label for=\"jm-estado-filter\">Filtrar por estado<\/label>\r\n          <select id=\"jm-estado-filter\">\r\n            <option value=\"todas\">Todas<\/option>\r\n            <option value=\"Publicada\">Publicadas<\/option>\r\n            <option value=\"Pendente\">Pendentes<\/option>\r\n            <option value=\"Rascunho\">Rascunhos<\/option>\r\n            <option value=\"Expirada\">Expiradas<\/option>\r\n          <\/select>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div id=\"jm-empty-state\" class=\"jm-empty-state\" style=\"display:none;\">\r\n        <h2>Ainda n\u00e3o tem ofertas submetidas<\/h2>\r\n        <p>Publique a primeira oportunidade para come\u00e7ar a aparecer no circuito WIW.<\/p>\r\n        <a class=\"jm-main-btn\" href=\"\/jobmaps-publicar-oferta\/\">Publicar primeira oferta<\/a>\r\n      <\/div>\r\n\r\n      <div id=\"jm-offers-list\" class=\"jm-offers-list\"><\/div>\r\n\r\n    <\/div>\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-my-offers-loading\");\r\n  const errorBox = document.getElementById(\"jm-my-offers-error\");\r\n  const content = document.getElementById(\"jm-my-offers-content\");\r\n  const list = document.getElementById(\"jm-offers-list\");\r\n  const emptyState = document.getElementById(\"jm-empty-state\");\r\n  const totalBox = document.getElementById(\"jm-total-ofertas\");\r\n  const companyBox = document.getElementById(\"jm-my-offers-company\");\r\n  const estadoFilter = document.getElementById(\"jm-estado-filter\");\r\n\r\n  let ofertas = [];\r\n\r\n  function showError(message) {\r\n    if (loading) loading.style.display = \"none\";\r\n    if (content) content.style.display = \"none\";\r\n    if (errorBox) {\r\n      errorBox.textContent = message;\r\n      errorBox.style.display = \"block\";\r\n    }\r\n  }\r\n\r\n  function money(value) {\r\n    const n = Number(value);\r\n    if (!value || isNaN(n) || n <= 0) return \"N\u00e3o indicado\";\r\n    return n.toLocaleString(\"pt-PT\") + \"\u20ac\";\r\n  }\r\n\r\n  function clean(value, fallback = \"\u2014\") {\r\n    return value && String(value).trim() !== \"\" ? String(value).trim() : fallback;\r\n  }\r\n\r\n  function escapeHtml(value) {\r\n    return String(value || \"\").replace(\/[&<>\"']\/g, function(match) {\r\n      return {\r\n        \"&\": \"&amp;\",\r\n        \"<\": \"&lt;\",\r\n        \">\": \"&gt;\",\r\n        \"\\\"\": \"&quot;\",\r\n        \"'\": \"&#039;\"\r\n      }[match];\r\n    });\r\n  }\r\n\r\n  function safeUrl(value, fallback = \"#\") {\r\n    const url = clean(value, fallback);\r\n    if (url === \"#\") return \"#\";\r\n    if (\/^(https?:\\\/\\\/|\\\/)\/.test(url)) return url;\r\n    return fallback;\r\n  }\r\n\r\n  function statusClass(status) {\r\n    if (status === \"Publicada\") return \"published\";\r\n    if (status === \"Pendente\") return \"pending\";\r\n    if (status === \"Rascunho\") return \"draft\";\r\n    if (status === \"Expirada\") return \"expired\";\r\n    return \"neutral\";\r\n  }\r\n\r\n  function getCandidateCount(oferta, key) {\r\n    const n = Number(oferta[key]);\r\n    if (!isNaN(n) && n >= 0) return n;\r\n    return 0;\r\n  }\r\n\r\n  function renderOffers() {\r\n    if (!list) return;\r\n\r\n    const filtro = estadoFilter ? estadoFilter.value : \"todas\";\r\n    const filtradas = ofertas.filter(function(oferta) {\r\n      return filtro === \"todas\" || oferta.estado_label === filtro;\r\n    });\r\n\r\n    list.innerHTML = \"\";\r\n\r\n    if (!ofertas.length) {\r\n      if (emptyState) emptyState.style.display = \"block\";\r\n      return;\r\n    }\r\n\r\n    if (emptyState) emptyState.style.display = \"none\";\r\n\r\n    if (!filtradas.length) {\r\n      list.innerHTML = '<div class=\"jm-empty-filter\">N\u00e3o existem ofertas com este estado.<\/div>';\r\n      return;\r\n    }\r\n\r\n    filtradas.forEach(function(oferta) {\r\n      const card = document.createElement(\"article\");\r\n      card.className = \"jm-offer-card\";\r\n\r\n      const estado = clean(oferta.estado_label, \"Estado\");\r\n      const canViewPublic = estado === \"Publicada\";\r\n      const isExpired = estado === \"Expirada\";\r\n      const novos = getCandidateCount(oferta, \"candidatos_novos\");\r\n      const vistos = getCandidateCount(oferta, \"candidatos_vistos\");\r\n      const totalCandidatos = getCandidateCount(oferta, \"candidatos_total\");\r\n      const candidatosUrl = safeUrl(oferta.candidaturas_url || (\"\/jobmaps-candidaturas-oferta\/?oferta_id=\" + oferta.id));\r\n      const renovarUrl = \"#\";\r\n      const editarUrl = safeUrl(oferta.editar_url);\r\n      const verUrl = safeUrl(oferta.ver_url);\r\n\r\n      card.innerHTML = `\r\n        <div class=\"jm-offer-card-main\">\r\n          <div class=\"jm-offer-title-row\">\r\n            <span class=\"jm-status ${statusClass(estado)}\">${escapeHtml(estado)}<\/span>\r\n            <span class=\"jm-date\">${escapeHtml(clean(oferta.data, \"Sem data\"))}<\/span>\r\n          <\/div>\r\n\r\n          <h2>${escapeHtml(clean(oferta.funcao || oferta.titulo, \"Oferta de emprego\"))}<\/h2>\r\n\r\n          <div class=\"jm-offer-meta\">\r\n            <span>${escapeHtml(clean(oferta.localizacao, \"Localiza\u00e7\u00e3o n\u00e3o indicada\"))}<\/span>\r\n            <span>${escapeHtml(money(oferta.vencimento_minimo))}<\/span>\r\n            <span>${escapeHtml(clean(oferta.tipo_horario, \"Hor\u00e1rio n\u00e3o indicado\"))}<\/span>\r\n            <span>${escapeHtml(clean(oferta.tipo_contrato, \"Contrato n\u00e3o indicado\"))}<\/span>\r\n          <\/div>\r\n\r\n          ${oferta.tipo_horario === \"Part-time\" && oferta.vencimento_proporcional_estimado ? `\r\n            <p class=\"jm-parttime-note\">\r\n              Estimativa part-time: <strong>${escapeHtml(money(oferta.vencimento_proporcional_estimado))}<\/strong>\r\n              ${oferta.horas_semanais ? ` para ${escapeHtml(oferta.horas_semanais)}h\/semana` : ``}\r\n            <\/p>\r\n          ` : ``}\r\n\r\n          ${isExpired ? `\r\n            <p class=\"jm-expired-note\">\r\n              Esta oferta est\u00e1 expirada e deixou de aparecer nas listagens p\u00fablicas. Pode renov\u00e1-la para voltar a receber candidaturas.\r\n            <\/p>\r\n          ` : ``}\r\n        <\/div>\r\n\r\n        <div class=\"jm-candidate-box\">\r\n          <strong>Candidaturas<\/strong>\r\n\r\n          <div class=\"jm-candidate-stats\">\r\n            <span><b>${novos}<\/b> novos<\/span>\r\n            <span><b>${vistos}<\/b> vistos<\/span>\r\n            <span><b>${totalCandidatos}<\/b> total<\/span>\r\n          <\/div>\r\n\r\n          <a class=\"jm-candidates-btn\" href=\"${candidatosUrl}\">\r\n            Ver candidatos\r\n          <\/a>\r\n\r\n          <small>Abra a lista para analisar candidatos, ver contactos e alterar estados.<\/small>\r\n        <\/div>\r\n\r\n        <div class=\"jm-offer-card-actions\">\r\n          ${canViewPublic ? `<a href=\"${verUrl}\" target=\"_blank\" rel=\"noopener\">Ver p\u00fablica<\/a>` : `<span class=\"jm-disabled-action\">${isExpired ? \"Oferta expirada\" : \"Aguarda publica\u00e7\u00e3o\"}<\/span>`}\r\n          <a href=\"${editarUrl}\" class=\"jm-muted-action\">Editar oferta<\/a>\r\n          ${isExpired ? `<button type=\"button\" class=\"jm-renew-action\" data-renew-offer=\"${escapeHtml(oferta.id)}\">Renovar oferta<\/button>` : ``}\r\n        <\/div>\r\n      `;\r\n\r\n      list.appendChild(card);\r\n    });\r\n\r\n    bindRenewButtons();\r\n  }\r\n\r\n  async function renovarOferta(ofertaId, btn) {\r\n    if (!ofertaId) {\r\n      showError(\"Oferta inv\u00e1lida.\");\r\n      return;\r\n    }\r\n\r\n    if (btn) {\r\n      btn.disabled = true;\r\n      btn.textContent = \"A renovar...\";\r\n    }\r\n\r\n    const formData = new FormData();\r\n    formData.append(\"action\", \"jm5_renovar_oferta\");\r\n    formData.append(\"oferta_id\", ofertaId);\r\n\r\n    try {\r\n      const response = await fetch(\"\/wp-admin\/admin-ajax.php\", {\r\n        method: \"POST\",\r\n        credentials: \"same-origin\",\r\n        body: formData\r\n      });\r\n\r\n      const data = await response.json();\r\n\r\n      if (!data || !data.success) {\r\n        alert(data && data.message ? data.message : \"N\u00e3o foi poss\u00edvel renovar a oferta.\");\r\n        if (btn) {\r\n          btn.disabled = false;\r\n          btn.textContent = \"Renovar oferta\";\r\n        }\r\n        return;\r\n      }\r\n\r\n      ofertas = ofertas.map(function(oferta) {\r\n        if (String(oferta.id) === String(ofertaId)) {\r\n          oferta.estado_label = \"Publicada\";\r\n          oferta.estado = \"publicada\";\r\n          oferta.status = \"publicada\";\r\n\r\n          if (data.oferta) {\r\n            oferta.data_publicacao = data.oferta.data_publicacao || oferta.data_publicacao;\r\n            oferta.data_expiracao = data.oferta.data_expiracao || oferta.data_expiracao;\r\n          }\r\n        }\r\n\r\n        return oferta;\r\n      });\r\n\r\n      renderOffers();\r\n      alert(data.message || \"Oferta renovada por mais 30 dias.\");\r\n\r\n    } catch (error) {\r\n      alert(\"Erro ao renovar a oferta.\");\r\n      if (btn) {\r\n        btn.disabled = false;\r\n        btn.textContent = \"Renovar oferta\";\r\n      }\r\n    }\r\n  }\r\n\r\n  function bindRenewButtons() {\r\n    document.querySelectorAll(\"[data-renew-offer]\").forEach(function(btn) {\r\n      btn.addEventListener(\"click\", function() {\r\n        const ofertaId = btn.getAttribute(\"data-renew-offer\");\r\n        renovarOferta(ofertaId, btn);\r\n      });\r\n    });\r\n  }\r\n\r\n  try {\r\n    const response = await fetch(\"\/wp-admin\/admin-ajax.php?action=jm4_minhas_ofertas&t=\" + Date.now(), {\r\n      method: \"GET\",\r\n      credentials: \"same-origin\",\r\n      cache: \"no-store\"\r\n    });\r\n\r\n    const data = await response.json();\r\n\r\n    if (!data || !data.success) {\r\n      showError(data && data.message ? data.message : \"N\u00e3o foi poss\u00edvel carregar as suas ofertas.\");\r\n      return;\r\n    }\r\n\r\n    ofertas = Array.isArray(data.ofertas) ? data.ofertas : [];\r\n\r\n    if (companyBox && data.empresa && data.empresa.nome) {\r\n      companyBox.textContent = data.empresa.nome;\r\n    }\r\n\r\n    if (totalBox) {\r\n      totalBox.textContent = String(data.total || ofertas.length || 0);\r\n    }\r\n\r\n    if (estadoFilter) {\r\n      estadoFilter.addEventListener(\"change\", renderOffers);\r\n    }\r\n\r\n    renderOffers();\r\n\r\n    if (loading) loading.style.display = \"none\";\r\n    if (content) content.style.display = \"block\";\r\n\r\n  } catch (error) {\r\n    showError(\"Erro ao carregar as ofertas. Tente novamente.\");\r\n  }\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.jm-my-offers-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-my-offers-shell {\r\n  width: 100%;\r\n  max-width: 1180px;\r\n  margin: 0 auto;\r\n}\r\n\r\n.jm-my-offers-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: 22px;\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-my-offers-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-my-offers-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-my-offers-hero p {\r\n  max-width: 660px;\r\n  margin: 0 0 14px;\r\n  color: #39577f;\r\n  font-size: 17px;\r\n  line-height: 1.5;\r\n}\r\n\r\n#jm-my-offers-company {\r\n  display: inline-flex;\r\n  color: #15396f;\r\n  font-size: 15px;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-my-offers-actions {\r\n  display: grid;\r\n  gap: 10px;\r\n  min-width: 210px;\r\n}\r\n\r\n.jm-main-btn,\r\n.jm-soft-btn {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 14px 18px;\r\n  border-radius: 999px;\r\n  text-decoration: none;\r\n  font-size: 14px;\r\n  font-weight: 950;\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-main-btn {\r\n  background: linear-gradient(135deg, #1556ff, #159dff);\r\n  color: #ffffff;\r\n  box-shadow: 0 14px 30px rgba(24,95,255,0.24);\r\n}\r\n\r\n.jm-soft-btn {\r\n  background: #eef5ff;\r\n  color: #1556ff;\r\n}\r\n\r\n.jm-my-offers-toolbar {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  gap: 18px;\r\n  align-items: center;\r\n  margin-bottom: 18px;\r\n}\r\n\r\n.jm-stat-card,\r\n.jm-filter-wrap {\r\n  padding: 18px 20px;\r\n  border-radius: 22px;\r\n  background: #ffffff;\r\n  border: 1px solid #d9e6f8;\r\n  box-shadow: 0 16px 40px rgba(20, 80, 170, 0.08);\r\n}\r\n\r\n.jm-stat-card strong {\r\n  display: block;\r\n  color: #15396f;\r\n  font-size: 30px;\r\n  font-weight: 950;\r\n  line-height: 1;\r\n}\r\n\r\n.jm-stat-card span,\r\n.jm-filter-wrap label {\r\n  display: block;\r\n  margin-top: 6px;\r\n  color: #587092;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n}\r\n\r\n.jm-filter-wrap select {\r\n  margin-top: 8px;\r\n  min-width: 220px;\r\n  padding: 12px 14px;\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}\r\n\r\n.jm-offers-list {\r\n  display: grid;\r\n  gap: 16px;\r\n}\r\n\r\n.jm-offer-card {\r\n  display: grid;\r\n  grid-template-columns: minmax(0, 1fr) 230px 165px;\r\n  gap: 18px;\r\n  padding: 24px;\r\n  border-radius: 26px;\r\n  background: #ffffff;\r\n  border: 1px solid #d9e6f8;\r\n  box-shadow: 0 18px 48px rgba(20, 80, 170, 0.09);\r\n}\r\n\r\n.jm-offer-title-row {\r\n  display: flex;\r\n  gap: 10px;\r\n  align-items: center;\r\n  margin-bottom: 12px;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.jm-status,\r\n.jm-date {\r\n  display: inline-flex;\r\n  padding: 7px 11px;\r\n  border-radius: 999px;\r\n  font-size: 12px;\r\n  font-weight: 900;\r\n}\r\n\r\n.jm-status.published {\r\n  background: rgba(27, 160, 95, 0.10);\r\n  color: #168451;\r\n}\r\n\r\n.jm-status.pending {\r\n  background: rgba(245, 151, 32, 0.12);\r\n  color: #ad6811;\r\n}\r\n\r\n.jm-status.draft,\r\n.jm-status.neutral {\r\n  background: rgba(88, 112, 146, 0.10);\r\n  color: #587092;\r\n}\r\n\r\n.jm-status.expired {\r\n  background: rgba(220,40,40,0.10);\r\n  color: #a12626;\r\n}\r\n\r\n.jm-date {\r\n  background: #f3f7ff;\r\n  color: #587092;\r\n}\r\n\r\n.jm-offer-card h2 {\r\n  margin: 0 0 12px;\r\n  color: #15396f;\r\n  font-size: 24px;\r\n  line-height: 1.18;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-offer-meta {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 9px;\r\n}\r\n\r\n.jm-offer-meta span {\r\n  display: inline-flex;\r\n  padding: 8px 11px;\r\n  border-radius: 999px;\r\n  background: #f8fbff;\r\n  border: 1px solid #e1ebf8;\r\n  color: #39577f;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n}\r\n\r\n.jm-parttime-note,\r\n.jm-expired-note {\r\n  margin: 14px 0 0;\r\n  color: #39577f;\r\n  font-size: 14px;\r\n  line-height: 1.45;\r\n}\r\n\r\n.jm-expired-note {\r\n  padding: 12px 14px;\r\n  border-radius: 16px;\r\n  background: rgba(220,40,40,0.07);\r\n  border: 1px solid rgba(220,40,40,0.14);\r\n  color: #8f2525;\r\n  font-weight: 750;\r\n}\r\n\r\n.jm-candidate-box {\r\n  padding: 16px;\r\n  border-radius: 20px;\r\n  background: #f8fbff;\r\n  border: 1px solid #d9e6f8;\r\n  align-self: stretch;\r\n}\r\n\r\n.jm-candidate-box > strong {\r\n  display: block;\r\n  margin-bottom: 10px;\r\n  color: #15396f;\r\n  font-size: 14px;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-candidate-stats {\r\n  display: grid;\r\n  grid-template-columns: 1fr;\r\n  gap: 7px;\r\n  margin-bottom: 12px;\r\n}\r\n\r\n.jm-candidate-stats span {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  gap: 8px;\r\n  padding: 8px 10px;\r\n  border-radius: 12px;\r\n  background: #ffffff;\r\n  border: 1px solid #e1ebf8;\r\n  color: #39577f;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n}\r\n\r\n.jm-candidate-stats b {\r\n  color: #15396f;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-candidates-btn {\r\n  display: inline-flex;\r\n  width: 100%;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 11px 12px;\r\n  border-radius: 999px;\r\n  background: #eef5ff;\r\n  color: #1556ff;\r\n  text-decoration: none;\r\n  font-size: 13px;\r\n  font-weight: 950;\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-candidate-box small {\r\n  display: block;\r\n  margin-top: 9px;\r\n  color: #8a9ab0;\r\n  font-size: 12px;\r\n  line-height: 1.35;\r\n}\r\n\r\n.jm-offer-card-actions {\r\n  display: grid;\r\n  gap: 9px;\r\n  align-content: center;\r\n}\r\n\r\n.jm-offer-card-actions a,\r\n.jm-offer-card-actions button,\r\n.jm-disabled-action {\r\n  display: inline-flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 12px 14px;\r\n  border-radius: 999px;\r\n  text-decoration: none;\r\n  font-size: 13px;\r\n  font-weight: 900;\r\n  text-align: center;\r\n}\r\n\r\n.jm-offer-card-actions a,\r\n.jm-offer-card-actions button {\r\n  background: #eef5ff;\r\n  color: #1556ff;\r\n  border: 0;\r\n  cursor: pointer;\r\n  font-family: inherit;\r\n}\r\n\r\n.jm-offer-card-actions .jm-muted-action {\r\n  background: #f8fbff;\r\n  color: #39577f;\r\n  border: 1px solid #e1ebf8;\r\n}\r\n\r\n.jm-offer-card-actions .jm-renew-action {\r\n  background: linear-gradient(135deg, #1556ff, #159dff);\r\n  color: #ffffff;\r\n  box-shadow: 0 10px 22px rgba(24,95,255,0.18);\r\n}\r\n\r\n.jm-disabled-action {\r\n  background: #f2f5f9;\r\n  color: #8a9ab0;\r\n  border: 1px solid #e1e7ef;\r\n}\r\n\r\n.jm-empty-state,\r\n.jm-empty-filter {\r\n  padding: 34px;\r\n  border-radius: 28px;\r\n  background: #ffffff;\r\n  border: 1px solid #d9e6f8;\r\n  text-align: center;\r\n  box-shadow: 0 18px 48px rgba(20, 80, 170, 0.09);\r\n}\r\n\r\n.jm-empty-state h2 {\r\n  margin: 0 0 10px;\r\n  color: #15396f;\r\n  font-size: 26px;\r\n  font-weight: 950;\r\n}\r\n\r\n.jm-empty-state p,\r\n.jm-empty-filter {\r\n  color: #587092;\r\n  font-size: 15px;\r\n}\r\n\r\n.jm-empty-state .jm-main-btn {\r\n  margin-top: 18px;\r\n}\r\n\r\n.jm-my-offers-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-my-offers-message.error {\r\n  background: rgba(220,40,40,0.10);\r\n  color: #a12626;\r\n}\r\n\r\n@media (max-width: 980px) {\r\n  .jm-offer-card {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n\r\n@media (max-width: 820px) {\r\n  .jm-my-offers-hero,\r\n  .jm-my-offers-toolbar {\r\n    align-items: stretch;\r\n    flex-direction: column;\r\n  }\r\n\r\n  .jm-my-offers-actions {\r\n    min-width: 0;\r\n  }\r\n}\r\n\r\n@media (max-width: 560px) {\r\n  .jm-my-offers-page {\r\n    padding: 30px 14px;\r\n  }\r\n\r\n  .jm-my-offers-hero,\r\n  .jm-offer-card {\r\n    padding: 22px;\r\n    border-radius: 24px;\r\n  }\r\n\r\n  .jm-my-offers-hero h1 {\r\n    font-size: 31px;\r\n  }\r\n\r\n  .jm-filter-wrap select {\r\n    min-width: 0;\r\n    width: 100%;\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 as suas ofertas&#8230; \u00c1rea da entidade WIW Minhas ofertas Consulte as oportunidades submetidas pela sua entidade, veja o estado de publica\u00e7\u00e3o e acompanhe candidaturas. Entidade WIW Publicar nova oferta Voltar \u00e0 \u00e1rea 0 Total de ofertas Filtrar por estado TodasPublicadasPendentesRascunhosExpiradas Ainda n\u00e3o tem ofertas [&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-6892","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>Minhas Ofertas - 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-minhas-ofertas\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Minhas Ofertas - WIW \u2014 Work is Worth\" \/>\n<meta property=\"og:description\" content=\"Quero contratar Quero trabalhar Sou recrutador \ud83d\udc64 \u00c1rea Sair A carregar as suas ofertas&#8230; \u00c1rea da entidade WIW Minhas ofertas Consulte as oportunidades submetidas pela sua entidade, veja o estado de publica\u00e7\u00e3o e acompanhe candidaturas. Entidade WIW Publicar nova oferta Voltar \u00e0 \u00e1rea 0 Total de ofertas Filtrar por estado TodasPublicadasPendentesRascunhosExpiradas Ainda n\u00e3o tem ofertas [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/3solutions.pt\/en\/jobmaps-minhas-ofertas\/\" \/>\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:53:16+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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/\",\"name\":\"Minhas Ofertas - WIW \u2014 Work is Worth\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/WIW.png\",\"datePublished\":\"2026-06-16T15:23:17+00:00\",\"dateModified\":\"2026-06-18T21:53:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-minhas-ofertas\\\/#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-minhas-ofertas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/3solutions.pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Minhas Ofertas\"}]},{\"@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":"Minhas Ofertas - 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-minhas-ofertas\/","og_locale":"en_GB","og_type":"article","og_title":"Minhas Ofertas - WIW \u2014 Work is Worth","og_description":"Quero contratar Quero trabalhar Sou recrutador \ud83d\udc64 \u00c1rea Sair A carregar as suas ofertas&#8230; \u00c1rea da entidade WIW Minhas ofertas Consulte as oportunidades submetidas pela sua entidade, veja o estado de publica\u00e7\u00e3o e acompanhe candidaturas. Entidade WIW Publicar nova oferta Voltar \u00e0 \u00e1rea 0 Total de ofertas Filtrar por estado TodasPublicadasPendentesRascunhosExpiradas Ainda n\u00e3o tem ofertas [&hellip;]","og_url":"https:\/\/3solutions.pt\/en\/jobmaps-minhas-ofertas\/","og_site_name":"WIW \u2014 Work is Worth","article_publisher":"https:\/\/www.facebook.com\/share\/17VAXrDnwy\/","article_modified_time":"2026-06-18T21:53:16+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":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/","url":"https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/","name":"Minhas Ofertas - WIW \u2014 Work is Worth","isPartOf":{"@id":"https:\/\/3solutions.pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/#primaryimage"},"image":{"@id":"https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/#primaryimage"},"thumbnailUrl":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png","datePublished":"2026-06-16T15:23:17+00:00","dateModified":"2026-06-18T21:53:16+00:00","breadcrumb":{"@id":"https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/3solutions.pt\/jobmaps-minhas-ofertas\/#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-minhas-ofertas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/3solutions.pt\/"},{"@type":"ListItem","position":2,"name":"Minhas Ofertas"}]},{"@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\/6892","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=6892"}],"version-history":[{"count":31,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6892\/revisions"}],"predecessor-version":[{"id":7405,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6892\/revisions\/7405"}],"wp:attachment":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/media?parent=6892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}