
Um termo é uma frase de decisão que você escolhe verificar. Exemplos são a fração do vínculo, o tipo de emprego, a redação da remuneração e o local de trabalho. Fração do vínculo significa a parte de uma vaga integral, como as palavras do anúncio "100%" ou "50%".
Faça estes oito passos
- Escolha os termos que podem mudar a sua decisão.
Leia as palavras originais do anúncio para esses termos. Um título, um rótulo opcional de senioridade ou as palavras da busca não são o requisito completo. A senioridade pode estar ausente. Se a frase escolhida não estiver clara, mantenha-a sem clareza. Não suponha um valor. Estes passos cobrem somente a comparação do termo público. Eles não explicam o status do candidato, as checagens de referência nem a intenção de contratação.
- Comece pelo seu salvamento antigo e depois colete uma linha nova.
O corpo antigo já precisa estar nos seus arquivos. O Indeed Jobs Scraper é um Actor. Um Actor é um programa hospedado de coleta de dados. Ele coleta linhas públicas atuais. Ele não pode reconstruir uma descrição antiga. Ele não informa horários de edição do empregador, status do candidato nem rótulos automáticos de termos. Você faz a comparação descrita aqui.
Uma data escrita dentro do texto da vaga não é um horário de edição. Para cada salvamento, guarde a identidade da execução, a identidade da origem, a entrada, scrapedAt, descriptionStatus e o texto bruto. scrapedAt é o horário em que aquela linha foi coletada. Uma execução é uma vez em que o Actor é executado.
- Confirme que é o mesmo anúncio antes de comparar as palavras.
Antes de comparar o texto, exija a correspondência do mesmo namespace de origem e do mesmo jobId. Um namespace é o site que possui o ID. Depois, confira jobUrl, a função e a empresa. Mantenha jobId como texto. Se uma planilha gravar esse valor como número, dígitos longos podem mudar. O mesmo título, sozinho, não prova que duas linhas são uma mesma versão.
Um ID de origem diferente permanece sem resolução. Uma republicação incerta também permanece sem resolução. Use o guia de duplicatas e republicações publicado para esse pareamento. Até a relação ficar definida, não compare os textos. Guarde o conflito de identidade nas suas anotações.
- Exija texto comparável para o termo escolhido.
Leia descriptionStatus antes de procurar uma diferença de palavras. full significa que o texto de origem estava disponível e foi salvo em descriptionText. missing significa que esse texto não estava disponível. Este Actor não tem status de snippet. full não promete o documento inteiro do empregador.
Texto antigo ausente diante de texto novo full é evidência recém-disponível. Isso não é prova de que o empregador mudou um requisito. Um trecho curto diante de um corpo completo pode criar uma diferença falsa. As palavras a mais podem ter existido quando você não as tinha. Salve primeiro o estado de disponibilidade. Só então compare os trechos.
- Guarde o texto bruto e faça uma cópia de comparação.
Deixe o descriptionText bruto sem alteração. Faça uma segunda cópia somente para o espaçamento. Nessa cópia, una o espaço em branco declarado quando o sentido permanecer o mesmo. Espaço em branco significa espaços, tabulações e quebras de linha. Você pode tratar marcação que só produz essas mesmas quebras como o mesmo espaçamento. Não remova porcentagens, palavras de moeda, unidades, negação nem outros qualificadores. A palavra "não" pode inverter uma regra. Um valor percentual pode mudar a decisão.
Salve o trecho antigo exato e o trecho novo exato. Salve as posições deles no texto de origem quando você as conhecer. Se uma posição for desconhecida, escreva unknown. Não escreva zero.
- Classifique um estado para o termo escolhido.
Use um destes cinco estados:
- no_observed_change
- formatting_only
- substantive_wording_change
- newly_available_text
- unresolved
Use substantive_wording_change quando o mesmo anúncio tiver texto completo comparável e as palavras escolhidas diferirem no sentido. Use formatting_only quando só o espaçamento declarado diferir. Use no_observed_change quando esse termo escolhido for o mesmo. Esse estado não cobre campos que você não leu. Use newly_available_text quando o texto de origem antigo não estava disponível e depois passa a estar disponível. Um termo ausente não é texto ausente. Texto antigo completo e comparável sem o termo escolhido, e texto novo completo que adiciona o termo, pode ser um substantive_wording_change. Use unresolved quando a identidade não estiver definida.
Uma diferença de texto aponta para uma revisão. Ela, sozinha, não prova uma nova condição de emprego. Leia a página oficial atual do empregador antes de agir com base na redação do vínculo ou da remuneração.
- Informe o limite de tempo em palavras simples.
Escreva que a mudança foi observada entre o scrapedAt antigo e o scrapedAt novo. Não escreva que o empregador editou o anúncio no scrapedAt novo. Outro processamento da origem também pode mudar as palavras que você vê. Você não pode saber quantas edições ocorreram entre os dois salvamentos. Essa contagem é desconhecida. Desconhecido não é zero e não é um. A execução atual não fornece histórico automático.
Um anúncio que você nota pela primeira vez é uma tarefa diferente. Use o guia de novos alertas publicado para isso. Uma contagem de anúncios também é uma tarefa diferente. Use o guia de tendência de anúncios publicado para contagens.
- Entregue um registro em par.
Inclua a identidade, os trechos brutos, a disponibilidade, a regra de comparação, o estado, os dois horários e a checagem atual da origem. A checagem atual da origem é o que a página oficial do empregador diz quando você a lê, ou uma nota de que você ainda não a leu. Se um termo de emprego importante para a sua decisão ainda não estiver claro, pergunte ao contato do empregador pelo seu próprio processo. Estes passos não enviam mensagens. Eles não leem o status privado da candidatura.
Salve estes campos
Use estes campos de linha do Actor. Campos opcionais podem estar ausentes. Ausente significa que o valor não foi fornecido. Isso não significa zero e não significa que o empregador não tenha nenhum.
| Campo | O que é |
|---|---|
| jobId | Identidade da origem. Mantenha como texto. |
| title | Nome da função. Não é a identidade completa. |
| companyName | Nome do empregador, para a checagem de identidade. |
| locationRaw | Texto do lugar como a origem o mostrou. |
| descriptionText | Palavras do anúncio salvas para aquela linha. |
| descriptionStatus | full ou missing, para o texto de origem disponível. |
| jobUrl | Endereço do anúncio, para a checagem de identidade. |
| query | Palavras de busca usadas para aquela linha. |
| searchLocation | Lugar usado na busca. |
| scrapedAt | Horário em que o Actor salvou a linha. |
seniority, employmentType, salaryRaw, postedAt e postedAtRaw são opcionais. Qualquer um deles pode estar ausente. postedAt, quando presente, é um horário de publicação vindo da origem. Não é um horário de edição do empregador. Uma data dentro de descriptionText também não é um horário de edição.
Salve as linhas brutas, a entrada que foi executada e a saída da execução. Salve também a prova do teto de linhas ou de uma execução com falha. Um teto é a parada maxItems. Uma execução vazia bem-sucedida não prova que não existam vagas. Uma execução com teto não prova que você coletou todos os anúncios.
Defina uma primeira execução pequena
Uma Task é uma predefinição de entrada salva. A Task pública atual é uma entrada inicial. Ela não é prova de que a comparação rode sozinha. O build público 1.2.14 foi checado em 2026-10-13T05:55:51.545104+00:00. Ele aceita searchTerm, country, location, maxItems, maxPagesPerSearch, postedWithinDays, sortBy e saveOnlyUniqueItems.
A entrada salva da Task é:
{
"country": "us",
"searchTerm": "software engineer",
"maxItems": 100,
"postedWithinDays": "7",
"sortBy": "date",
"maxPagesPerSearch": 2,
"saveOnlyUniqueItems": true
}Para uma primeira checagem, defina uma função pretendida e um mercado. Defina country e searchTerm para esse par. Adicione location só quando você precisar de um lugar. Substitua o teto amplo de linhas por maxItems 2 e maxPagesPerSearch 1. postedWithinDays e sortBy só limitam quais anúncios atuais a execução solicita. Eles não devolvem a redação da semana passada. saveOnlyUniqueItems pode manter uma linha atual para um item. Isso não reconstrói uma redação mais antiga. Você ainda precisa do seu próprio salvamento mais antigo.
Uma checagem compatível deste build devolveu dois IDs de origem e URLs. As duas linhas tinham descriptionText full. A execução atingiu o próprio teto. Essa checagem mostra que a coleta de texto é suportada. Ela não é um achado atual para os exemplos abaixo. Ela não significa que existam só duas vagas.
Trabalhe os cinco pares fictícios
Os cinco pares abaixo são ficção original. Eles ensinam os estados. Eles não são resultados do Actor e não são achados sobre empregadores. Nenhum ano é indicado para estes horários fictícios. Não os trate como o horário da checagem do build.
| Par | Disponibilidade | Identidade | Diferença | Estado | Próxima checagem |
|---|---|---|---|---|---|
| J1 | full nas duas vezes | Mesmo ID de origem e mesma função | As palavras do vínculo diferem | substantive_wording_change | Revise os trechos. Depois leia a página oficial atual do empregador. |
| J2 | full nas duas vezes | Mesmo anúncio | Somente quebras de linha | formatting_only | Não trate o espaçamento como um termo novo. |
| J3 | missing e depois full | Mesmo anúncio | O texto passa a estar disponível | newly_available_text | Guarde o texto novo. Não afirme um termo alterado. |
| J4 | Não usado | ID de origem diferente, mesmo título | A identidade não está definida | unresolved | Pare. Use o guia de duplicatas e republicações. |
| J5 | full nas duas vezes | Mesmo anúncio | O termo escolhido coincide | no_observed_change | Informe só esse termo. Verifique os outros termos à parte. |
J1 tem texto full em 1 de outubro, 10:00 UTC: "Vínculo em tempo integral, 100%." O mesmo ID de origem e a mesma função têm texto full em 8 de outubro, 10:00 UTC: "Vínculo de carreira, 50%." Os dois salvamentos são full, então isto não é texto recém-disponível. A regra de espaçamento não explica a mudança. "Tempo integral" e "Carreira" são palavras de vínculo diferentes. "100%" e "50%" são frações diferentes. O estado é substantive_wording_change. Os dois horários estão separados por sete dias. Informe uma mudança observada entre 1 de outubro, 10:00 UTC e 8 de outubro, 10:00 UTC. Não chame 8 de outubro de horário de edição do empregador. Não explique por que as palavras mudaram. A contagem de edições entre os salvamentos é desconhecida.
Um registro em par para J1 pode ter esta forma:
identity: same fictional source jobId both times; role matches; company and jobUrl are not supplied
old scrapedAt: October 1 10:00 UTC
new scrapedAt: October 8 10:00 UTC
descriptionStatus: full / full
old passage: Full-time appointment, 100%.
new passage: Career appointment, 50%.
positions: unknown
comparison rule: raw text kept; spacing rule does not remove percentages or appointment words
state: substantive_wording_change
time reading: change observed between the two scrapedAt values
current source check: not done in the fictionVocê pode ler a página oficial atual do empregador para J1 e ver 50% no horário da observação nova. Essa leitura ainda não explica escolhas privadas de contratação. Ela não prova que a sua leitura anterior do vínculo estava certa. Você precisa do texto de origem antigo salvo para essa prova.
J2 é full nos dois horários. A única diferença são quebras de linha sob a regra de espaço em branco declarado. Os textos de ficção são:
old: "Same words stay."
new: "Same words\nstay."A cópia de comparação une a quebra de linha. As duas cópias passam a dizer "As mesmas palavras permanecem." O sentido não muda. O estado é formatting_only. Não informe uma nova condição de emprego a partir dessas quebras.
J3 tem uma descrição missing na linha antiga e uma descrição full na linha nova. O termo escolhido antigo não foi observado. O estado é newly_available_text. Você pode guardar o trecho novo como evidência nova. Você não pode dizer que o empregador mudou o termo. Uma diferença de palavras não foi calculada, porque as palavras antigas estavam ausentes.
J4 tem um ID de origem diferente e o mesmo título. O mesmo título não é a mesma identidade. Não compare os corpos como duas versões de uma vaga. O estado é unresolved até o guia de duplicatas e republicações estabelecer a relação. Se esse guia não definir o par, deixe-o sem resolução.
J5 tem texto full nos dois horários, e o termo escolhido tem as mesmas palavras. O estado é no_observed_change para esse termo. Isto não é prova de que todos os campos permaneceram iguais. Outro termo ainda pode diferir. Verifique cada termo escolhido por si.
Os cinco pares dão uma mudança substancial de redação, uma mudança de formatação, uma mudança de disponibilidade, uma identidade sem resolução e um termo sem mudança. São cinco estados, com um par cada. Nenhuma dessas contagens é uma contagem de mercado.
Fontes e leituras adicionais
Por Chronometrica · Atualizado
Voltar ao topo ↑

