Executivo de Contas Hoteleiro

BuscarVagas - Empregos e Consultoria Brasil · Salvador, Bahia · Ver no mapa

PUBLICADA EM
ago 13, 2026

Sobre esta vaga

Here’s a thinking process:

1. **Analyze the Request:**
– **Role:** Professional job ad writer in Brazilian Portuguese.
– **Task:** Expand a short, truncated job snippet into a complete, well-organized HTML description.
– **Constraints:**
– Use only `

` and `

    /

  • ` tags (no headings, no markdown, no other tags).
    – Do NOT invent specific facts not implied in the snippet or given fields.
    – CAN use general sector-appropriate language, but treat suppositions as natural descriptions, not confirmed facts.
    – Keep text truthful, professional, legible.
    – Write entirely in Brazilian Portuguese, natural, clear, no unnecessary anglicisms.
    – Target size: ~700 words.
    – Output ONLY the HTML, no title, no intro, no code block markers.

    2. **Analyze the Input Data:**
    – **Job Title:** Executivo de Contas Hoteleiro
    – **Company:** BuscarVagas – Empregos e Consultoria Brasil
    – **Location:** Salvador, Bahia
    – **Truncated Snippet:**
    “Realizar visitas aos principais clientes da carteira. Identificar novas oportunidades de negócios para hospedagem, grupos e eventos. Elaborar cronograma de visitas comerciais focadas na divulgação da empresa e na obtenção de receita para hospedagem, grupos e eventos. Prospectar novos clientes. Acompanhar as metas e diretrizes de vendas da empresa. Atender as demandas dos clientes. Manter network com potenciais clientes. Realizar visitas de inspeção. Levantar informações sobre a concorrência. Or…”

    3. **Identify What’s Given vs. What Can Be Generalized:**
    – Given: Title, company, location, and 8 specific bullet-point-like tasks from the snippet.
    – Not given: Salary, specific years of experience, specific certifications, exact number of clients, specific software, exact metrics, etc.
    – Must avoid inventing those. Can use standard, generic industry language that describes the *nature* of the role without claiming specifics.

    4. **Determine the Structure (HTML only,

    and

      /

    • ):**
      – Need to expand each bullet into a full paragraph or list item, using natural Portuguese.
      – Must stay within ~700 words.
      – Must not use headings (h1-h6), so I’ll just use paragraphs and lists.
      – The HTML should be clean, valid, using only `

      ` and `

        /

      • `.

        Plan for structure:
        – Maybe start with a paragraph introducing the role (general, not invented).
        – Then use an unordered list for responsibilities, expanding each point from the snippet into a full sentence/phrase, keeping it general and professional.
        – Maybe add a closing paragraph about the company or application (but carefully, without inventing facts).
        – Actually, the prompt says “without headings, without markdown”, and “produz apenas o HTML da descrição, nada além disso (sem título, sem introdução, sem marcação de bloco de código)”. Wait, “sem introdução” might mean no separate intro section, but I can have opening paragraphs. Let me re-read: “Produza SOMENTE o HTML da descrição, nada além disso (sem título, sem introdução, sem marcação de bloco de código).” This likely means: no ``, no “ label, no “`markdown“` fences. I can still have `</p> <p>` and `</p> <ul>` content. I just shouldn’t wrap it in a code block or add a title/intro section marker. I’ll just output the HTML content directly.</p> <p> Let’s plan the content carefully, staying true to the snippet, expanding each point with standard professional language, no invented specifics.</p> <p> Snippet points expanded (general, professional, Brazilian Portuguese):<br /> 1. “Realizar visitas aos principais clientes da carteira.” -> Visitar clientes existentes da carteira, visando fortalecer relacionamentos e garantir satisfação.<br /> 2. “Identificar novas oportunidades de negócios para hospedagem, grupos e eventos.” -> Buscar e identificar potenciais oportunidades de vendas nas áreas de hospedagem, reservas de grupos e organização de eventos.<br /> 3. “Elaborar cronograma de visitas comerciais focadas na divulgação da empresa e na obtenção de receita para hospedagem, grupos e eventos.” -> Planejar e executar rotas de visitas comerciais, com foco na divulgação da marca e na geração de receita nas categorias de hospedagem, grupos e eventos.<br /> 4. “Prospectar novos clientes.” -> Prospecionar e atrair novos clientes para a carteira da empresa, expandindo a base de contato comercial.<br /> 5. “Acompanhar as metas e diretrizes de vendas da empresa.” -> Alinhar atividades diárias e resultados às metas e diretrizes de vendas estabelecidas pela empresa.<br /> 6. “Atender as demandas dos clientes.” -> Atender às necessidades e demandas dos clientes, assegurando um serviço de qualidade e resolução de eventuais solicitações.<br /> 7. “Manter network com potenciais clientes.” -> Manter e expandir networking com potenciais clientes e parceiros de negócio.<br /> 8. “Realizar visitas de inspeção.” -> Executar visitas de inspeção a propriedades ou locais, verificando condições e adequação para hospedagem ou eventos.<br /> 9. “Levantar informações sobre a concorrência.” -> Coletar e analisar informações sobre o mercado e concorrência, visando apoiar decisões estratégicas de vendas.</p> <p> I need to make sure I don’t invent specifics like “visitas a 50 clientes por mês” or “usando CRM X”. I’ll keep it general.</p> <p> Word count target: ~700 words. That’s quite a lot for just expanded bullet points. I’ll need to add some natural introductory/closing context that’s generic but professional, all in Portuguese, no headings. I’ll structure it as a few paragraphs and a list, making sure the total is around 700 words.</p> <p> Let’s calculate: ~700 words in Portuguese is roughly 35-40 lines of normal text, or a couple of paragraphs + a list. I need to be careful not to invent facts, but I can add general descriptions of the role’s context, typical responsibilities that are standard for an “Executivo de Contas Hoteleiro”, as long as I don’t present them as facts from the snippet, but as general industry language. The prompt says: “Você PODE usar linguagem geral e padrão do setor, apropriada ao cargo (ex.: responsabilidades típicas de um ‘Operador de Empilhadeira’), desde que apresente isso de forma natural e não trate suposições como fatos confirmados.” So I can describe typical duties of this role, but I must be careful not to say “this job requires 3 years of experience” unless it’s implied or I phrase it as general. I’ll avoid year requirements entirely.</p> <p> Actually, re-reading: “NÃO invente fatos específicos que não estejam implícitos no trecho fornecido ou nos campos dados — sem valores de salário fabricados além do que foi informado, sem certificações falsas, sem benefícios inventados, sem exigências de anos de experiência inventadas.” So I must not invent experience requirements, salary, benefits, certifications. I can talk about the role’s functions generally.</p> <p> I’ll create an HTML structure with:<br /> – A paragraph introducing the company and location (using given info, no invented details).<br /> – An unordered list expanding each of the snippet’s points, plus maybe a couple of standard industry-typical responsibilities for an hotel accounts executive, phrased generally.<br /> – A closing paragraph about the opportunity (again, general, no invented salary/benefits).</p> <p> Let’s draft the content in Portuguese, aiming for ~700 words. I’ll count roughly as I go.</p> <p> Draft structure (Mental):</p> <p>…intro about the role and company…</p> <ul> <li>…expanded point 1…</li> <li>…expanded point 2…</li> <p> … etc … </ul> <p>…closing…</p> <p> Wait, the prompt says “sem título, sem introdução, sem marcação de bloco de código”. It might mean I shouldn’t have a separate “introdução” section label, but having a starting `</p> <p>` is fine as part of the description. I’ll just produce the HTML content directly.</p> <p> Let’s write the content. I’ll be very careful with word count and not inventing things.</p> <p> I’ll start writing the HTML in my mind, then output.</p> <p> Let’s aim for about 700 words. I’ll write each list item as a fairly detailed sentence, and add some contextual paragraphs. I’ll make sure every statement is either from the snippet or a very general, standard description that can’t be “wrong” or “invented fact”.</p> <p> Key: No “3 anos de experiência”, “R$ 5.000 de salário”, “VR de R$ 200”, etc.</p> <p> Let’s draft:</p> <p>BuscarVagas – Empregos e Consultoria Brasil apresenta oportunidade para a posição de Executivo de Contas Hoteleiro, localizada em Salvador, Bahia. O profissional atuará na gestão e no desenvolvimento da carteira de clientes do setor hoteleiro, com foco na geração de receita por meio de hospedagem, reservas de grupos e organização de eventos. A</p> <p><!-- ojcjm:auto-details:start --></p> <ul class="ojcjm-job-meta-block"> <li><strong>Empresa:</strong> BuscarVagas – Empregos e Consultoria Brasil</li> <li><strong>Localização:</strong> <a href="https://www.google.com/maps?q=-13.198315%2C-38.686774" target="_blank" rel="noopener nofollow">Salvador, Bahia</a></li> <li><strong>Categoria da Vaga:</strong> <a href="https://vagasdeempregobahia.com.br/categoria-vaga/unknown/">Unknown</a></li> <li><strong>Tags da Vaga:</strong> <a href="https://vagasdeempregobahia.com.br/tag-vaga/salvador/">Salvador</a></li> </ul> <p><!-- ojcjm:auto-details:end --></p> <div class="tvbr-ad tvbr-ad-post-bottom"><div joinadscode="Content2"></div></div> </div> </div> </div> <!-- Sidebar --> <div style="position:sticky;top:96px;"> <div style="background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:28px;box-shadow:var(--shadow-sm);margin-bottom:20px;"> <h3 style="font-size:1.1rem;margin-bottom:20px;">Candidatar-se</h3> <button class="btn btn-primary tvbr-candidatar" style="width:100%;justify-content:center;font-size:1rem;padding:16px;gap:8px;" data-url="https://www.adzuna.com.br/details/5840903877?utm_medium=api&utm_source=a468927b" > <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2l6 6-8.5 8.5-6.5 2 2-6.5z"/><path d="M14 2l6 6"/></svg> Candidatar-se </button> <button class="btn btn-secondary tvbr-save-btn" style="width:100%;justify-content:center;margin-top:12px;gap:8px;"> <svg class="save-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg> <span class="save-label">Salvar Vaga</span> </button> <p style="font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:14px;"> Processo seletivo conduzido pelo empregador </p> </div> <!-- Related Jobs --> <div style="background:var(--light);border-radius:var(--radius-md);padding:24px;"> <h4 style="font-size:.9rem;margin-bottom:16px;color:var(--navy);">Vagas Similares</h4> <a href="https://vagasdeempregobahia.com.br/vagas/supervisor-de-vendas-externas/" style="display:block;padding:12px 0;border-bottom:1px solid var(--border);"> <div style="font-size:.87rem;font-weight:600;color:var(--navy);margin-bottom:2px;">Supervisor De Vendas Externas</div> <div style="font-size:.77rem;color:var(--text-muted);">Rhema Service</div> </a> <a href="https://vagasdeempregobahia.com.br/vagas/analista-de-controladoria-4/" style="display:block;padding:12px 0;border-bottom:1px solid var(--border);"> <div style="font-size:.87rem;font-weight:600;color:var(--navy);margin-bottom:2px;">Analista de Controladoria</div> <div style="font-size:.77rem;color:var(--text-muted);">RecriaRH</div> </a> <a href="https://vagasdeempregobahia.com.br/vagas/ba-camacari-caixa-outlet-premium-salvador-camacari/" style="display:block;padding:12px 0;border-bottom:1px solid var(--border);"> <div style="font-size:.87rem;font-weight:600;color:var(--navy);margin-bottom:2px;">Caixa – Outlet Premium Salvador – Camaçari</div> <div style="font-size:.77rem;color:var(--text-muted);">AREZZO&CO</div> </a> <a href="https://vagasdeempregobahia.com.br/vagas/estagio-licenciatura-em-quimica-salvador/" style="display:block;padding:12px 0;border-bottom:1px solid var(--border);"> <div style="font-size:.87rem;font-weight:600;color:var(--navy);margin-bottom:2px;">Estágio – Licenciatura em Química / Salvador</div> <div style="font-size:.77rem;color:var(--text-muted);">COLEGIO SALESIANO NOSSA SENHORA AUXILIADORA</div> </a> </div> </div> </div> </div> </main> <div class="tvbr-ad tvbr-ad-above-footer"><!-- =================================================================== BLOCO DE ANÚNCIO NATIVO — Próximo Nível 360 3 partes abaixo. Cole cada uma no lugar indicado. =================================================================== --> <!-- =================================================================== PARTE 1 — vai no <head> do site Só precisa se o site AINDA NÃO carrega Fraunces/Inter. No nivel360.com.br isso já existe no index.html — pode ignorar. =================================================================== --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,600;0,9..144,900;1,9..144,500&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"> <!-- =================================================================== PARTE 2 — vai UMA VEZ SÓ no CSS do site (style.css do tema, ou dentro de uma tag <style> no header.php/footer.php) Não precisa repetir a cada vez que usar o card. =================================================================== --> <style> :root{ --navy: #0b1220; --navy2: #0e1b33; --navy3: #16233f; --gold: #f2b90c; --gold2: #c9930a; --white: #ffffff; --grey: #b8c0cc; } .ad-slot{ max-width: 640px; margin: 0 auto 28px; font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; } .ad-slot__divider{ display:flex; align-items:center; gap: 14px; margin: 0 0 14px; color: #9aa0aa; font-size: 12px; letter-spacing: .06em; } .ad-slot__divider::before, .ad-slot__divider::after{ content:""; flex:1; height:1px; background: #dfe2e8; } .ad-card{ position: relative; background: linear-gradient(165deg, var(--navy2) 0%, var(--navy) 55%, var(--navy3) 100%); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 24px rgba(11,18,32,.18); } .ad-card__link{ display:block; color: inherit; text-decoration: none; } .ad-card__media{ position: relative; width: 100%; aspect-ratio: 16 / 9; overflow:hidden; display:flex; align-items:center; justify-content:center; background: radial-gradient(70% 90% at 80% 15%, rgba(242,185,12,.18) 0%, transparent 60%), linear-gradient(155deg, var(--navy2) 0%, var(--navy) 60%, var(--navy3) 100%); } .ad-card__media img{ width:100%; height:100%; object-fit: cover; display:block; } .ad-card__mark{ width: 74px; height: 74px; opacity: .9; } .ad-card__badge{ position:absolute; top:12px; left:12px; background: rgba(255,255,255,.94); color:#111; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 5px; line-height:1.4; } .ad-card__info{ position:absolute; top:12px; right:12px; width: 22px; height: 22px; border-radius:50%; border:none; background: rgba(255,255,255,.16); color:#fff; font-size: 12px; font-style: italic; font-family: Georgia, serif; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index: 2; } .ad-card__info:hover{ background: rgba(255,255,255,.28); } .ad-card__body{ padding: 18px 18px 14px; } .ad-card__title{ margin: 0 0 8px; font-family: "Fraunces", Georgia, serif; font-weight: 700; font-size: clamp(17px, 4vw, 20px); line-height: 1.3; color: var(--white); white-space: nowrap; overflow:hidden; text-overflow: ellipsis; } .ad-card__desc{ margin:0; font-size: 14px; line-height: 1.5; color: var(--grey); display:-webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-clamp: 2; overflow:hidden; text-overflow: ellipsis; } .ad-card__footer{ display:flex; align-items:center; justify-content:space-between; gap: 10px; padding: 14px 18px 18px; border-top: 1px solid rgba(242,185,12,.25); margin-top: 10px; } .ad-card__advertiser{ display:flex; align-items:center; gap:9px; min-width:0; } .ad-card__logo{ width: 28px; height: 28px; flex-shrink:0; } .ad-card__advertiser-name{ font-size: 13px; font-weight: 600; color: var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .ad-card__cta{ flex-shrink:0; display:inline-flex; align-items:center; gap:6px; font-size: 14px; font-weight: 700; color: var(--gold); } /* telas mais largas: imagem+texto lado a lado. Apague este bloco se quiser sempre empilhado */ @media (min-width: 700px){ .ad-card__link{ display:flex; align-items:stretch; } .ad-card__media{ width: 40%; aspect-ratio: auto; flex-shrink:0; } .ad-card__body-wrap{ display:flex; flex-direction:column; justify-content:space-between; flex:1; min-width:0; } .ad-card__footer{ margin-top:0; border-top:none; } .ad-card__body{ padding-bottom:4px; } } @media (prefers-reduced-motion: no-preference){ .ad-card__link:hover .ad-card__title{ text-decoration: underline; text-decoration-color: var(--gold); } } </style> <!-- =================================================================== PARTE 3 — o card em si. Cola essa tag <section> em quantos lugares quiser mostrar o anúncio. Antes de publicar: troque "SUBSTITUIR_PELO_SITE" no href pelo nome do site onde essa cópia está entrando (ex: nivel360, temosvagasbr...). =================================================================== --> <section class="ad-slot" aria-label="Conteúdo patrocinado"> <div class="ad-slot__divider">Publicidade</div> <div class="ad-card"> <a class="ad-card__link" href="https://proximonivel360.com.br/?utm_source=native_ad&utm_medium=display&utm_campaign=analise_carreira_ia&utm_content=SUBSTITUIR_PELO_SITE" target="_blank" rel="sponsored noopener" aria-label="Anúncio: Análise de Carreira Grátis, feita por IA — Próximo Nível 360. Fazer análise grátis."> <div class="ad-card__media"> <svg class="ad-card__mark" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path d="M 20.2 83 A 46 46 0 1 1 60 106" fill="none" stroke="#F2B90C" stroke-width="6" stroke-linecap="round"/> <rect x="28" y="82" width="14" height="10" fill="#F2B90C"/> <rect x="42" y="74" width="14" height="18" fill="#F2B90C"/> <rect x="56" y="66" width="14" height="26" fill="#F2B90C"/> <rect x="70" y="58" width="14" height="34" fill="#F2B90C"/> <circle cx="84" cy="50" r="7" fill="#F2B90C"/> </svg> <span class="ad-card__badge">Anúncio</span> </div> <div class="ad-card__body-wrap"> <div class="ad-card__body"> <h3 class="ad-card__title">Análise de Carreira, </h3> <p class="ad-card__desc">Descubra em 2 minutos qual pilar está travando sua evolução: Aprender, Evoluir ou Liderar.</p> </div> <div class="ad-card__footer"> <div class="ad-card__advertiser"> <svg class="ad-card__logo" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path d="M 20.2 83 A 46 46 0 1 1 60 106" fill="none" stroke="#F2B90C" stroke-width="8" stroke-linecap="round"/> <rect x="28" y="82" width="14" height="10" fill="#F2B90C"/> <rect x="42" y="74" width="14" height="18" fill="#F2B90C"/> <rect x="56" y="66" width="14" height="26" fill="#F2B90C"/> <rect x="70" y="58" width="14" height="34" fill="#F2B90C"/> <circle cx="84" cy="50" r="7" fill="#F2B90C"/> </svg> <span class="ad-card__advertiser-name">Próximo Nível 360</span> </div> <span class="ad-card__cta">Fazer análise Agora →</span> </div> </div> </a> <button type="button" class="ad-card__info" aria-label="Por que este anúncio?" onclick="alert('Conteúdo promovido por Próximo Nível 360.')">i</button> </div> </section></div> <footer class="site-footer" id="site-footer"> <div class="container"> <div class="footer-grid"> <!-- Brand --> <div class="footer-brand"> <a href="https://vagasdeempregobahia.com.br/" aria-label="Vagas de Emprego Bahia — Início"> <img src="https://vagasdeempregobahia.com.br/wp-content/themes/vagasdeempregobahia-theme/images/logo.png" alt="Vagas de Emprego Bahia" style="height:48px;width:auto;display:block;filter:brightness(0) invert(1);margin-bottom:12px;" loading="lazy" > </a> <p>Conectando talentos a oportunidades na Bahia — vagas remotas e presenciais em empresas de todo o estado.</p> <div class="footer-social"> <a href="https://www.instagram.com/vagasdeempregobahia.oficial" class="social-icon" aria-label="Instagram" target="_blank" rel="noopener"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="20" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1" fill="currentColor" stroke="none"/></svg> </a> <a href="https://www.linkedin.com/company/vagas-de-empregos-bahia/" class="social-icon" aria-label="LinkedIn" target="_blank" rel="noopener"> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zM8.339 18.337H5.667v-8.59h2.672v8.59zM7.003 8.574a1.548 1.548 0 1 1 0-3.096 1.548 1.548 0 0 1 0 3.096zm11.335 9.763h-2.669V14.16c0-.996-.018-2.277-1.388-2.277-1.39 0-1.601 1.086-1.601 2.207v4.248h-2.667v-8.59h2.56v1.174h.037c.355-.675 1.227-1.387 2.524-1.387 2.704 0 3.203 1.778 3.203 4.092v4.71z"/></svg> </a> </div> </div> <!-- Vagas --> <div class="footer-col"> <h5>VAGAS</h5> <ul> <li><a href="https://vagasdeempregobahia.com.br/vagas">Todas as Vagas</a></li> <li><a href="https://vagasdeempregobahia.com.br/vagas?remote=1">Vagas Remotas</a></li> <li><a href="https://vagasdeempregobahia.com.br/vagas?s=entry-level">Vagas de Nível Inicial</a></li> <li><a href="https://vagasdeempregobahia.com.br/vagas?s=full-time">Vagas de Tempo Integral</a></li> <li><a href="https://vagasdeempregobahia.com.br/vagas?s=part-time">Vagas de Meio Período</a></li> </ul> </div> <!-- Carreira --> <div class="footer-col"> <h5>CARREIRA</h5> <ul> <li><a href="https://vagasdeempregobahia.com.br/dicas-de-curriculo">Dicas de Currículo</a></li> <li><a href="https://vagasdeempregobahia.com.br/entrevistas">Entrevistas</a></li> <li><a href="https://vagasdeempregobahia.com.br/salarios">Salários</a></li> <li><a href="https://vagasdeempregobahia.com.br/recursos-de-carreira">Recursos de Carreira</a></li> </ul> </div> <!-- Support --> <div class="footer-col"> <h5>SUPORTE</h5> <ul> <li><a href="https://vagasdeempregobahia.com.br/quem-somos">Sobre Nós</a></li> <li><a href="https://vagasdeempregobahia.com.br/contato">Contato</a></li> <li><a href="https://vagasdeempregobahia.com.br/politica-de-privacidade">Política de Privacidade</a></li> <li><a href="https://vagasdeempregobahia.com.br/termos-de-uso">Termos de Uso</a></li> </ul> </div> </div><!-- /.footer-grid --> <div class="footer-bottom"> <p>© 2026 <a href="https://vagasdeempregobahia.com.br/">Vagas de Emprego Bahia</a>. Todos os direitos reservados.</p> <div class="footer-bottom-links"> <a href="https://vagasdeempregobahia.com.br/politica-de-privacidade">Política de Privacidade</a> <a href="https://vagasdeempregobahia.com.br/termos-de-uso">Termos de Uso</a> <a href="https://vagasdeempregobahia.com.br/sitemap">Sitemap</a> </div> </div> </div> </footer> <div class="tvbr-ad tvbr-ad-below-footer"><div joinadscode="Content3"></div></div> <!-- ════════════════════════════════ BANNER DE COOKIES (LGPD) ════════════════════════════════ --> <div id="tvbr-cookies" role="dialog" aria-live="polite" aria-label="Aviso de cookies" style=" position:fixed;bottom:0;left:0;right:0;z-index:9998; background:#fff;border-top:3px solid #C8110F; box-shadow:0 -4px 32px rgba(6,11,110,0.15); display:none; transform:translateY(100%); transition:transform .35s cubic-bezier(.4,0,.2,1); "> <div style="max-width:1200px;margin:0 auto;padding:18px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;"> <!-- Ícone --> <div style="flex-shrink:0;width:40px;height:40px;background:#FDEBEA;border-radius:10px;display:flex;align-items:center;justify-content:center;"> <svg width="20" height="20" fill="none" stroke="#C8110F" stroke-width="2" viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z"/><circle cx="12" cy="12" r="1" fill="#C8110F"/><line x1="12" y1="8" x2="12" y2="12"/></svg> </div> <!-- Texto --> <p style="flex:1;min-width:220px;font-size:.85rem;color:#374151;line-height:1.6;margin:0;"> Usamos cookies para melhorar sua experiência, analisar o tráfego e personalizar conteúdo, de acordo com nossa <a href="https://vagasdeempregobahia.com.br/privacy-policy" style="color:#C8110F;font-weight:600;">Política de Privacidade</a>. Ao continuar, você concorda com o uso de cookies. </p> <!-- Ações --> <div style="display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap;"> <button id="tvbr-cookies-config" style="background:none;border:1px solid #E5E7EB;color:#6B7280;padding:9px 16px;border-radius:8px;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;"> Gerenciar </button> <button id="tvbr-cookies-reject" style="background:#F2F4F7;border:none;color:#374151;padding:9px 16px;border-radius:8px;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;"> Recusar </button> <button id="tvbr-cookies-accept" style="background:#0A14C8;border:none;color:#fff;padding:9px 20px;border-radius:8px;font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap;"> Aceitar Todos </button> </div> </div> </div> <!-- Modal de configuração de cookies --> <div id="tvbr-cookies-modal" style=" display:none;position:fixed;inset:0;z-index:10000; background:rgba(6,11,110,.6);backdrop-filter:blur(4px); align-items:center;justify-content:center;padding:20px; "> <div style="background:#fff;border-radius:20px;padding:32px;max-width:500px;width:100%;box-shadow:0 24px 64px rgba(0,0,0,.2);"> <h2 style="font-size:1.1rem;color:#060B6E;margin-bottom:16px;">Preferências de cookies</h2> <div style="display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid #F2F4F7;"> <label style="position:relative;width:44px;height:24px;flex-shrink:0;margin-top:2px;"> <input type="checkbox" class="tvbr-cookie-toggle" data-type="necessary" checked disabled style="opacity:0;width:0;height:0;"> <span style="position:absolute;inset:0;background:#9CA3AF;border-radius:24px;cursor:not-allowed;transition:.2s;"> <span style="position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s;transform:translateX(20px)"></span> </span> </label> <div> <strong style="font-size:.9rem;color:#060B6E;">Essenciais</strong> <span style="font-size:.7rem;color:#9CA3AF;font-weight:400;">Sempre ativo</span> <p style="font-size:.8rem;color:#6B7280;margin:4px 0 0;line-height:1.5;">Necessários para o funcionamento correto do site. Não podem ser desativados.</p> </div> </div> <div style="display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid #F2F4F7;"> <label style="position:relative;width:44px;height:24px;flex-shrink:0;margin-top:2px;"> <input type="checkbox" class="tvbr-cookie-toggle" data-type="analytics" checked style="opacity:0;width:0;height:0;"> <span style="position:absolute;inset:0;background:#0A14C8;border-radius:24px;cursor:pointer;transition:.2s;"> <span style="position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s;transform:translateX(20px)"></span> </span> </label> <div> <strong style="font-size:.9rem;color:#060B6E;">Analíticos</strong> <p style="font-size:.8rem;color:#6B7280;margin:4px 0 0;line-height:1.5;">Nos ajudam a entender como você usa o site (dados de análise anonimizados).</p> </div> </div> <div style="display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid #F2F4F7;"> <label style="position:relative;width:44px;height:24px;flex-shrink:0;margin-top:2px;"> <input type="checkbox" class="tvbr-cookie-toggle" data-type="functional" checked style="opacity:0;width:0;height:0;"> <span style="position:absolute;inset:0;background:#0A14C8;border-radius:24px;cursor:pointer;transition:.2s;"> <span style="position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s;transform:translateX(20px)"></span> </span> </label> <div> <strong style="font-size:.9rem;color:#060B6E;">Funcionais</strong> <p style="font-size:.8rem;color:#6B7280;margin:4px 0 0;line-height:1.5;">Lembram suas preferências e personalizam sua experiência.</p> </div> </div> <div style="display:flex;gap:10px;margin-top:20px;justify-content:flex-end;flex-wrap:wrap;"> <button id="tvbr-cookies-modal-close" style="background:#F2F4F7;border:none;color:#374151;padding:10px 18px;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;"> Cancelar </button> <button id="tvbr-cookies-save" style="background:#C8110F;border:none;color:#fff;padding:10px 22px;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;"> Salvar preferências </button> </div> </div> </div> <!-- ════════════════════════════════ PWA — BANNER "INSTALAR APP" ════════════════════════════════ --> <div id="tvbr-pwa-banner" style=" display:none;position:fixed;bottom:80px;left:50%;transform:translateX(-50%); z-index:9997;max-width:360px;width:calc(100% - 40px); background:#060B6E;border-radius:16px; padding:16px 18px;box-shadow:0 8px 32px rgba(0,0,0,.35); animation:tvbrSlideUp .3s ease; "> <button id="tvbr-pwa-close" style="position:absolute;top:10px;right:12px;background:none;border:none;color:rgba(255,255,255,.5);font-size:1.1rem;cursor:pointer;line-height:1;" aria-label="Fechar"> <svg width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> <div style="display:flex;align-items:center;gap:14px;"> <img src="https://vagasdeempregobahia.com.br/wp-content/themes/vagasdeempregobahia-theme/images/apple-touch-icon.png" alt="Vagas de Emprego Bahia" style="width:48px;height:48px;border-radius:12px;flex-shrink:0;"> <div style="flex:1;"> <p style="color:#fff;font-weight:700;font-size:.92rem;margin-bottom:2px;">Instalar Vagas de Emprego Bahia</p> <p style="color:rgba(255,255,255,.6);font-size:.78rem;margin-bottom:10px;">Acesse as vagas direto da tela inicial</p> <button id="tvbr-pwa-install" style="background:#0A14C8;border:none;color:#fff;padding:8px 18px;border-radius:100px;font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;"> Instalar agora </button> </div> </div> </div> <!-- PWA: iOS instruction (Safari não suporta beforeinstallprompt) --> <div id="tvbr-ios-banner" style=" display:none;position:fixed;bottom:80px;left:50%;transform:translateX(-50%); z-index:9997;max-width:360px;width:calc(100% - 40px); background:#060B6E;border-radius:16px; padding:16px 18px;box-shadow:0 8px 32px rgba(0,0,0,.35); "> <button id="tvbr-ios-close" style="position:absolute;top:10px;right:12px;background:none;border:none;color:rgba(255,255,255,.5);font-size:1.1rem;cursor:pointer;" aria-label="Fechar"> <svg width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> <div style="display:flex;align-items:flex-start;gap:14px;"> <img src="https://vagasdeempregobahia.com.br/wp-content/themes/vagasdeempregobahia-theme/images/apple-touch-icon.png" alt="Vagas de Emprego Bahia" style="width:44px;height:44px;border-radius:10px;flex-shrink:0;"> <div> <p style="color:#fff;font-weight:700;font-size:.9rem;margin-bottom:6px;">Instalar no iPhone</p> <p style="color:rgba(255,255,255,.7);font-size:.78rem;line-height:1.6;margin:0;"> Toque em <span style="display:inline-flex;align-items:center;gap:3px;background:rgba(255,255,255,.15);padding:1px 6px;border-radius:5px;"> <svg width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> Compartilhar </span> depois em <strong style="color:#fff;">"Adicionar à Tela de Início"</strong> </p> </div> </div> </div> <style> /* ============================== ANÚNCIO FIXO ATSCHECK MOBILE ============================== */ .atscheck-sticky{ position:fixed; left:0; right:0; bottom:-260px; width:100%; padding:0 10px calc(env(safe-area-inset-bottom,0px) + 10px); box-sizing:border-box; z-index:999999; transition:bottom .45s cubic-bezier(.22,.61,.36,1); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; pointer-events:none; } .atscheck-sticky.show{ bottom:0; pointer-events:auto; } .atscheck-box{ position:relative; display:flex; flex-direction:column; gap:10px; background:#141110; border:1px solid #2b2118; border-radius:16px; padding:14px 16px 16px; box-shadow:0 10px 30px rgba(0,0,0,.4); } /* ============================== LINHA SUPERIOR (logo + fechar) ============================== */ .atscheck-top{ display:flex; align-items:center; justify-content:space-between; } /* ============================== LOGO ============================== */ .atscheck-logo{ font-size:14px; font-weight:800; color:#fff; white-space:nowrap; letter-spacing:.2px; } .atscheck-logo span{ color:#d8b04b; } /* ============================== BOTÃO DE FECHAR ============================== */ .atscheck-close{ width:24px; height:24px; background:rgba(255,255,255,.06); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#888; font-size:12px; line-height:1; cursor:pointer; user-select:none; transition:.2s; flex-shrink:0; } .atscheck-close:hover{ color:#fff; background:rgba(255,255,255,.14); } /* ============================== TEXTO ============================== */ .atscheck-headline{ color:#fff; font-size:15px; font-weight:700; line-height:1.3; margin:0; } .atscheck-sub{ color:#a9a29a; font-size:12.5px; line-height:1.4; margin:2px 0 0; } .atscheck-sub strong{ color:#d8b04b; font-weight:700; } /* ============================== BOTÃO ============================== */ .atscheck-btn{ display:flex; align-items:center; justify-content:center; text-decoration:none; background:#d8b04b; color:#171310; padding:13px 16px; border-radius:10px; font-size:13px; font-weight:800; letter-spacing:.3px; white-space:nowrap; width:100%; box-sizing:border-box; transition:.2s; animation:atsPulse 2s infinite; } .atscheck-btn:hover{ transform:scale(1.02); } @keyframes atsPulse{ 0%{ box-shadow:0 0 0 0 rgba(216,176,75,.4); } 70%{ box-shadow:0 0 0 9px rgba(216,176,75,0); } 100%{ box-shadow:0 0 0 0 rgba(216,176,75,0); } } /* ============================== MOBILE ============================== */ @media(max-width:480px){ .atscheck-box{ padding:12px 14px 14px; gap:8px; } .atscheck-headline{ font-size:14px; } .atscheck-sub{ font-size:12px; } .atscheck-btn{ font-size:12.5px; padding:12px 14px; } } /* ============================== DESKTOP ============================== */ @media(min-width:768px){ .atscheck-sticky{ display:none !important; } } </style> <div class="atscheck-sticky" id="atsSticky"> <div class="atscheck-box"> <div class="atscheck-top"> <div class="atscheck-logo"> ATSCheck<span>.pro</span> </div> <div class="atscheck-close" id="atsStickyClose" aria-label="Fechar"> ✕ </div> </div> <p class="atscheck-headline">Seu currículo vai passar na triagem do ATS?</p> <p class="atscheck-sub">Verifique com <strong>IA</strong> e descubra como os recrutadores realmente veem o seu currículo.</p> <a class="atscheck-btn" href="https://br.atscheck.pro/?utm_source=article&utm_medium=anchor_mobile&utm_campaign=atscheck_articles" target="_blank" rel="noopener sponsored"> ANALISAR CURRÍCULO </a> </div> </div> <script> (() => { const sticky = document.getElementById("atsSticky"); const closeBtn = document.getElementById("atsStickyClose"); if (!sticky || !closeBtn) return; const STORAGE_KEY = "atscheck_anchor_daily"; const today = new Date().toISOString().slice(0,10); let state = JSON.parse(localStorage.getItem(STORAGE_KEY) || "{}"); if(state.date !== today){ state = { date: today, views: 0, closed: false }; saveState(); } function saveState(){ localStorage.setItem(STORAGE_KEY, JSON.stringify(state)); } let scheduled = false; function showBanner(){ if(state.closed) return; if(state.views >= 2) return; state.views++; saveState(); sticky.classList.add("show"); // Esconde automaticamente após 15 segundos setTimeout(()=>{ sticky.classList.remove("show"); },15000); } function scheduleBanner(){ if(scheduled) return; scheduled = true; // Espera 10 segundos após o usuário começar a navegar setTimeout(showBanner,10000); } // Só agenda quando o usuário rolar a página window.addEventListener("scroll",function(){ if(window.scrollY > 300){ scheduleBanner(); } },{passive:true}); // Botão fechar closeBtn.addEventListener("click",function(){ state.closed = true; saveState(); sticky.classList.remove("show"); }); // Segunda exibição 3 minutos depois (se ainda puder) setTimeout(function(){ if(!state.closed && state.views < 2){ showBanner(); } },190000); })(); </script> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/vagasdeempregobahia-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script> if ('serviceWorker' in navigator) { window.addEventListener('load', function () { navigator.serviceWorker.register('/sw.js', { scope: '/' }) .catch(function (err) { console.warn('Falha ao registrar o Service Worker:', err); }); }); } </script> <script id="ojc-analytics-tracking-js-after"> (function() { document.addEventListener('click', function(e) { var btn = e.target.closest('.tvbr-candidatar'); if (!btn) return; var data = new URLSearchParams(); data.set('action', 'ojcb_track_apply'); data.set('post_id', '39503'); data.set('nonce', '369ea20db6'); if (navigator.sendBeacon) { navigator.sendBeacon('https://vagasdeempregobahia.com.br/wp-admin/admin-ajax.php', data); } else { fetch('https://vagasdeempregobahia.com.br/wp-admin/admin-ajax.php', { method: 'POST', body: data, keepalive: true }); } }, true); })(); //# sourceURL=ojc-analytics-tracking-js-after </script> <script id="tvbr-main-js-extra"> var TVBR = {"ajaxUrl":"https://vagasdeempregobahia.com.br/wp-admin/admin-ajax.php","nonce":"dc5f454d33","hcaptchaSiteKey":"5fb019be-bba8-4706-b49c-764cf5566f26"}; //# sourceURL=tvbr-main-js-extra </script> <script id="tvbr-main-js" defer src="https://vagasdeempregobahia.com.br/wp-content/themes/vagasdeempregobahia-theme/js/main.js?ver=1785119087"></script> <script id="googlesitekit-events-provider-wpforms-js" defer src="https://vagasdeempregobahia.com.br/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-wpforms-063cb453c64ecfd3dafe.js"></script> <script> /* ════════ COOKIES ════════ */ (function(){ const COOKIE_KEY = 'tvbr_cookies_consent'; const banner = document.getElementById('tvbr-cookies'); const modal = document.getElementById('tvbr-cookies-modal'); function getConsent(){ try{ return JSON.parse(localStorage.getItem(COOKIE_KEY)); } catch(e){ return null; } } function setConsent(obj){ localStorage.setItem(COOKIE_KEY, JSON.stringify({...obj, ts: Date.now()})); } function hideBanner(){ banner.style.transform = 'translateY(100%)'; setTimeout(function(){ banner.style.display = 'none'; }, 400); } function showBanner(){ banner.style.display = 'block'; // Forçar reflow para a transição funcionar após display:block banner.getBoundingClientRect(); requestAnimationFrame(function(){ banner.style.transform = 'translateY(0)'; }); } // Mostrar se não consentiu ainda (ou consentimento > 180 dias) const consent = getConsent(); const expired = consent && (Date.now() - consent.ts) > 180 * 86400000; if (!consent || expired) { setTimeout(showBanner, 1200); } document.getElementById('tvbr-cookies-accept').addEventListener('click', function(){ setConsent({necessary:true, analytics:true, functional:true}); hideBanner(); }); document.getElementById('tvbr-cookies-reject').addEventListener('click', function(){ setConsent({necessary:true, analytics:false, functional:false}); hideBanner(); }); document.getElementById('tvbr-cookies-config').addEventListener('click', function(){ modal.style.display = 'flex'; // Sincronizar toggles com estado atual const c = getConsent() || {}; document.querySelectorAll('.tvbr-cookie-toggle').forEach(function(t){ if (!t.disabled) t.checked = c[t.dataset.type] !== false; }); }); document.getElementById('tvbr-cookies-modal-close').addEventListener('click', function(){ modal.style.display = 'none'; }); document.getElementById('tvbr-cookies-save').addEventListener('click', function(){ const prefs = {necessary:true}; document.querySelectorAll('.tvbr-cookie-toggle').forEach(function(t){ prefs[t.dataset.type] = t.checked; }); setConsent(prefs); modal.style.display = 'none'; hideBanner(); }); // Toggle visual nos switches do modal document.querySelectorAll('.tvbr-cookie-toggle').forEach(function(chk){ if (chk.disabled) return; chk.addEventListener('change', function(){ const span = this.parentElement.querySelector('span'); const knob = span.querySelector('span'); span.style.background = this.checked ? '#0A14C8' : '#D1D5DB'; knob.style.transform = this.checked ? 'translateX(20px)' : 'translateX(0)'; }); // Estado inicial const span = chk.parentElement.querySelector('span'); const knob = span.querySelector('span'); span.style.background = chk.checked ? '#0A14C8' : '#D1D5DB'; knob.style.transform = chk.checked ? 'translateX(20px)' : 'translateX(0)'; }); })(); /* ════════ PWA ════════ */ (function(){ const PWA_DISMISSED_KEY = 'tvbr_pwa_dismissed'; let deferredPrompt = null; // Detectar iOS const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); const isStandalone = window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone; if (isStandalone) return; // Já instalado const dismissed = sessionStorage.getItem(PWA_DISMISSED_KEY); if (dismissed) return; // Android / Chrome — evento beforeinstallprompt window.addEventListener('beforeinstallprompt', function(e){ e.preventDefault(); deferredPrompt = e; const banner = document.getElementById('tvbr-pwa-banner'); setTimeout(() => banner.style.display = 'block', 3000); document.getElementById('tvbr-pwa-install').addEventListener('click', function(){ banner.style.display = 'none'; deferredPrompt.prompt(); deferredPrompt.userChoice.then(function(result){ if (result.outcome === 'accepted') sessionStorage.setItem(PWA_DISMISSED_KEY, '1'); deferredPrompt = null; }); }); document.getElementById('tvbr-pwa-close').addEventListener('click', function(){ banner.style.display = 'none'; sessionStorage.setItem(PWA_DISMISSED_KEY, '1'); }); }); // iOS Safari if (isIOS && isSafari) { const iosBanner = document.getElementById('tvbr-ios-banner'); setTimeout(() => iosBanner.style.display = 'block', 3000); document.getElementById('tvbr-ios-close').addEventListener('click', function(){ iosBanner.style.display = 'none'; sessionStorage.setItem(PWA_DISMISSED_KEY, '1'); }); } })(); </script> <!-- Modal de confirmação de candidatura — usado por .tvbr-candidatar em single-job_listing.php via main.js (openModal/closeModal). Fica aqui no footer (global) porque main.js é compartilhado por todo o site, mesmo o botão só existindo na página de vaga individual. Antes desse fix, o JS procurava #modal-candidatura, não encontrava nada, e o clique no botão de candidatura não fazia absolutamente nada. --> <div id="modal-candidatura" class="tvbr-modal" hidden> <div class="tvbr-modal__backdrop"></div> <div class="tvbr-modal__box" role="dialog" aria-modal="true" aria-labelledby="modal-candidatura-title"> <h3 id="modal-candidatura-title">Você está saindo do Vagas de Emprego Bahia</h3> <p>A candidatura para essa vaga é feita no site do próprio empregador. Você será redirecionado para concluir sua candidatura lá.</p> <div class="tvbr-modal__actions"> <button type="button" id="modal-cancel" class="btn btn-secondary">Cancelar</button> <a href="#" id="modal-confirm" class="btn btn-primary" target="_blank" rel="noopener nofollow">Continuar para a Candidatura</a> </div> </div> </div> </body> </html> <style> .job-description h2,.job-description h3{margin:24px 0 12px} .job-description ul,.job-description ol{padding-left:20px;margin:12px 0} .job-description li{margin-bottom:6px} .job-description p{margin-bottom:16px} @media(max-width:768px){ .container>div[style*="grid"]{display:block!important} .container>div[style*="grid"]>div:last-child{margin-top:24px;position:static!important} } </style>