;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Logo Pagbenk Seu dinheiro rende mais
Topo

País abre 249 mil vagas com carteira em agosto; no ano, fecha 849 mil vagas

Matheus Sciamana/PhotoPress/Estadão Conteúdo
Imagem: Matheus Sciamana/PhotoPress/Estadão Conteúdo

Do UOL, em São Paulo

30/09/2020 14h33Atualizada em 30/09/2020 15h53

O Brasil abriu 249.388 vagas de emprego com carteira assinada em agosto, segundo dados do Caged (Cadastro Geral de Empregados e Desempregados) divulgado hoje pelo Ministério da Economia. É o segundo mês seguido de saldo positivo, depois dos mais de 131 mil postos de trabalho formais criados em julho.

Em 2020, porém, o saldo ainda é negativo: nos oito primeiros meses do ano, foram perdidos 849.387 empregos.

"O Brasil gerou 250 mil empregos neste mês de agosto. É algo que não acontecia desde agosto de 2010. Nós estamos realmente voltando em 'V', o mercado de trabalho registra isso", comemorou o ministro da Economia, Paulo Guedes, durante coletiva.

O balanço é resultado de 1.239.478 contratações e 990.090 demissões registradas no mês. Com isso, o estoque de empregos formais no Brasil chegou a 37.960.236.

Os números de agosto também ficaram acima do registrado no mesmo mês de 2019, quando foram criadas 121.387 vagas formais.

Setores

Os cinco setores de atividade econômica tiveram saldo positivo em agosto. Impulsionado pela Indústria de Transformação, o setor econômico da Indústria liderou a geração de empregos formais, com saldo positivo de 92.893 empregos com carteira assinada.

Depois, vieram os setores de Construção, com 50.489, e Comércio, que registrou 49.408 novas vagas. Completam a lista os Serviços (45.412) e a Agropecuária (11.213).

Modalidades

O mês de agosto registrou 15.581 contratações e 7.335 demissões na modalidade de trabalho intermitente, gerando saldo de 8.246 empregos formais. Ao todo, 132 empregados am mais de um contrato na condição de trabalhador intermitente.

Já a jornada em regime de tempo parcial teve saldo negativo de -1.501 vagas no mês, resultado de 11.136 issões e 12.637 desligamentos. Nesta modalidade, 63 trabalhadores celebraram mais de um contrato.

Regiões e estados

Todas as cinco regiões do país tiveram resultado positivo em agosto. Em números absolutos, o melhor saldo é do Sudeste, com a criação de 104.702 (aumento de 0,54%) postos de trabalho, mas a maior variação relativa coube ao Norte, com crescimento de 1,26% — ou 22.272 novas vagas de emprego com carteira assinada.

O Nordeste teve saldo positivo de 62.085 postos (+1,02%); o Sul, de 42.664 (+0,60%); e o Centro-Oeste, de 17.684 (+0,54%).

Entre os estados, São Paulo, com 64.552 novas vagas (+0,55%), Minas Gerais, com 28.339 (+0,71%), e Santa Catarina, com 18.375 (+0,90%), tiveram o maior saldo positivo. Já o melhor desempenho em comparação ao mês anterior ficou com Paraíba (9.753 empregos, +2,46%), Amazonas (7.019, +1,74%); e Rio Grande do Norte (5.955, +1,45%).

Nenhum estado terminou o mês com saldo negativo.

Influência do BEm

O governo atribui o resultado positivo dos últimos dois meses ao BEm (Programa Emergencial de Manutenção do Emprego e da Renda), que prevê o pagamento de um benefício mensal a trabalhadores que tiveram seu contrato suspenso ou jornada e salário reduzidos.

Segundo dados atualizados até 18 de setembro, o BEm permitiu mais de 18,3 milhões de acordos entre empregados e empregadores no Brasil. Até o momento, o programa pagou R$ 25,5 bilhões.