Vendedor de Loja – Kopenhagen Aeroporto de Salvador

Grupo CRM · Salvador, Bahia · Ver no mapa

PUBLICADA EM
set 29, 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)
    – Do NOT invent specific facts not implied in the snippet or provided fields
    – Can use general/standard sector language appropriately, but treat assumptions 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 description (no title, no intro, no code block markers)

    2. **Analyze the Input Data:**
    – Job Title: Vendedor de Loja – Kopenhagen Aeroporto de Salvador
    – Company: Grupo CRM
    – Location: Salvador, Bahia
    – Truncated snippet content:
    – Atendimento ao público nas lojas
    – Auxilio no caixa
    – Assegurar limpeza e conservação da loja
    – Exposição de mercadorias
    – Verificar data de validade dos produtos
    – Recebimento de mercadorias e organização do estoque
    – Preparo de bebidas na cafeteria e degustação dos produtos da rede clientes
    – Remuneração Benefícios (note: seems like “Remuneração Benefícios” might be a heading or combined, but no specific values given)
    – Escolaridade Mínima: Ensino Médio (2º Grau)
    – Benefícios listed: convênio farmácia, convênio médico, seguro de vida, vale refeição, vale alimentação, vale transporte

    Important: I must NOT invent salary values, specific certifications, extra benefits, or years of experience. I can use general standard language for the role, but must stay true to what’s given. The benefits are listed, so I can mention them. The educational requirement is given. The tasks are given, I can expand them using standard but generic descriptions appropriate for a “Vendedor de Loja” at a premium brand like Kopenhagen in an airport, but without making up specifics.

    3. **Determine the Strategy:**
    – I need to produce ~700 words of HTML using only `

    ` and `

      `/`

    • `.
      – No headings (so no `<h1`-`

      `).
      – No markdown formatting.
      – Only the HTML description.
      – Must be in Brazilian Portuguese.
      – Must not invent facts. I can describe the responsibilities in a general, standard way that fits the role, but I should not state invented salaries or fake certifications. The benefits listed are real from the snippet, so I can include them.
      – I need to stretch the content to ~700 words while staying truthful and professional. This is the tricky part. I need to elaborate on the listed duties using generic, standard language for a retail sales associate, especially in a high-end chocolate/confectionery brand at an airport. I can talk about customer service, product knowledge, maintaining standards, etc., but I must be careful not to present assumptions as facts. 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 use standard sector language, but I need to frame it carefully, maybe using phrases like “entre outras atividades”, “participação em”, etc., without claiming specific metrics or invented details.

      – Let’s list what I have definitively:
      * Cargo: Vendedor de Loja – Kopenhagen Aeroporto de Salvador
      * Empresa: Grupo CRM
      * Local: Salvador, BA
      * Atividades do trecho:
      – Atendimento ao público nas lojas
      – Auxílio no caixa
      – Assegurar limpeza e conservação da loja
      – Exposição de mercadorias
      – Verificar data de validade dos produtos
      – Recebimento de mercadorias e organização do estoque
      – Preparo de bebidas na cafeteria e degustação dos produtos da rede clientes
      * Escolaridade mínima: Ensino Médio
      * Benefícios: convênio farmácia, convênio médico, seguro de vida, vale refeição, vale alimentação, vale transporte
      * Remuneração: mentioned but no values → I should not invent them. I can say “Remuneração compatível com o mercado e benefícios” or just not mention salary details if not provided, but the snippet says “Remuneração Benefícios” – I’ll treat it as part of the description but without inventing numbers.

      – I need to expand each duty into a paragraph or list item, using standard Portuguese retail language, keeping it around 700 words total in HTML. Only `

      ` and `

        `/`

      • ` allowed. No headings. So I’ll structure it as a series of `

        ` and `

          `/`

        • ` blocks. I need to count words mentally or aim for the right length. 700 words in HTML with only p and ul/li is doable if I write substantial paragraphs and lists.

          – Let’s outline the HTML structure:
          Maybe start with a `

          ` introducing the role and company, then list responsibilities, then benefits/requirements. But no headings. I can just have flowing text.

          – I need to be very careful not to invent. I’ll refer to “atividades inerentes ao cargo de vendedor de loja em ambiente varejista de alto padrão” but keep it generic. I can say “entre outras tarefas relacionadas ao ponto de venda” etc.

          – Let’s draft the content in Portuguese, then convert to HTML, ensuring only allowed tags.

          – Word count target: ~700 words. I’ll need to produce quite a bit. Let’s plan paragraphs of ~80-100 words each, maybe 7-8 paragraphs, plus list items. I’ll have to be meticulous.

          – Let’s start drafting the text (mentally, in Portuguese, then translate to HTML structure):

          Approach: I’ll create an HTML block with `

          ` sections describing the company, the role, the daily tasks, requirements, and benefits. I’ll use `

            `/`

          • ` for the list of duties and benefits, but since the snippet already lists them, I might just reference them in paragraphs or use lists to itemize what’s given. The prompt says “use only

            and

              /

            • “, so I can use lists for the duties/benefits, but I need to be careful not to invent new ones. I’ll stick to the ones provided.

              Actually, re-reading: “use only

              and

                /

              • , without headings, without markdown”. So I can have `

                ` and `

                • …

                `. I should avoid `

                `-`

                `. I can have a `

                ` at the very start with the job title maybe? But the prompt says “sem título” in the output rules: “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).” Wait: “sem título, sem introdução” – does that mean I shouldn’t have a title tag or a heading saying “Descrição da Vaga”? It says “sem título”, probably meaning no title at the top, no ``, no heading announcing the description. I’ll just start directly with the content paragraphs. Probably best to just have `</p> <p>` and `</p> <ul>` blocks without any preceding title text. But I need to include the job info somehow. I can embed it in the first paragraph.</p> <p> Let’s re-read the prompt’s output requirements: “6) 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).” So I should output just the HTML description body. I’ll start with `</p> <p>` content immediately. No “ or “ tags? It says “HTML da descrição”, probably just the description markup, not a full HTML document. I’ll assume I can use `</p> <p>` and `</p> <ul>` directly. To be safe, I’ll just output the description content using those tags, no “, no “, no “, no “. Just the description blocks. The prompt says “use only </p> <p> and </p> <ul>/</p> <li>“, so I’ll comply. <p> Now, content planning (~700 words). I’ll write in Brazilian Portuguese, professional, natural.</p> <p> Let’s draft the text content first, then format into HTML.</p> <p> Draft text (mental):<br /> “A Kopenhagen, marca icônica do segmento de chocolates finos e produtos gourmet, opera no Aeroporto Internacional de Salvador com loja dedicada à experiência do cliente e à apresentação de seus produtos. O Grupo CRM, responsável pela gestão da operação, busca um vendedor de loja que atue como ponto de contato principal entre a marca e os viajantes, garantindo um atendimento exemplar e a manutenção dos mais altos padrões de apresentação e operação.”</p> <p> Then describe duties:<br /> – Atendimento ao público: receber clientes, entender necessidades, orientar sobre produtos, fechar vendas, manter postura educada e solucionar dúvidas. Em ambiente aeroportuário, o contato</p> <p><!-- ojcjm:auto-details:start --></p> <ul class="ojcjm-job-meta-block"> <li><strong>Empresa:</strong> Grupo CRM</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/5903139698?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/estagio-em-fisioterapia-ensino-superior/" 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 em Fisioterapia – Ensino Superior</div> <div style="font-size:.77rem;color:var(--text-muted);">Animaserv Recursos Humanos</div> </a> <a href="https://vagasdeempregobahia.com.br/vagas/business-development-representative-bdr-2/" 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;">BUSINESS DEVELOPMENT REPRESENTATIVE (BDR)</div> <div style="font-size:.77rem;color:var(--text-muted);">Top Trans Distribuicao E Logistica</div> </a> <a href="https://vagasdeempregobahia.com.br/vagas/analista-de-suprimentos-i-comprador-a/" 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 Suprimentos I – Comprador (a)</div> <div style="font-size:.77rem;color:var(--text-muted);">Engepack Embalagens</div> </a> <a href="https://vagasdeempregobahia.com.br/vagas/vendedor-casa-mais-facil-santo-antonio-de-jesus-ba/" 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;">Vendedor – Casa Mais Fácil – Santo Antônio de Jesus/ba</div> <div style="font-size:.77rem;color:var(--text-muted);">Grupo Ramiro Campelo</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', '61367'); data.set('nonce', 'f72065bac4'); 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":"9819ad570b","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-content-events-js-before"> window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.contentEvents = {"postID":61367,"isReadableSinglePost":false,"hasVimeoEmbed":false,"wordCount":0,"estimatedReadTimeSeconds":0,"isLastPageOfMultiPagePost":false,"readTimeThresholdPercent":85,"minimumReadTimeSeconds":5}; //# sourceURL=googlesitekit-events-provider-content-events-js-before </script> <script id="googlesitekit-events-provider-content-events-js" defer src="https://vagasdeempregobahia.com.br/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-content-events-6b04077d00f0d606ba42.js"></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-fdbd42f50702ca1e0c36.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>