Pular para o conteúdo principal
As vagas funcionam de três formas. Qualquer parceiro com jobs.read busca as vagas abertas. Uma empresa com jobs.write publica as próprias. Um app de piloto com um grant que tem jobs.match pergunta quais vagas abertas combinam com esse piloto.

Busque as vagas abertas

A lista traz vagas ativas e não expiradas, primeiro as em destaque, depois as mais novas. page_size vai até 50. GET /v1/partner/jobs/{job_id} lê uma vaga; uma vaga que não está ativa responde 404 not_found.

Publique uma vaga

O MyPilotIndex vincula o seu parceiro à sua empresa, e a vaga é publicada em nome dessa empresa. Sem o vínculo, a resposta é 403 forbidden com o motivo partner_not_bound.
title e position_type são obrigatórios. status é active, e a vaga entra no ar na hora, ou draft, e ninguém a lê até que uma alteração a torne ativa. A referência da API lista cada campo; um membro fora dessa lista, como company_id ou featured, responde 400 invalid_request. client_ref funciona como na publicação: uma repetição com o mesmo corpo responde 200 com replayed: true e não publica nada. Um parceiro publica no máximo 50 vagas em 24 horas; passado isso, a resposta é 429 rate_limited com o motivo publication_throttled e Retry-After.

Altere ou encerre uma vaga

PATCH /v1/partner/jobs/{job_id} altera os membros que você envia e responde com a vaga. POST /v1/partner/jobs/{job_id}/close arquiva a vaga, e encerrar uma vaga já encerrada responde 200. Você altera apenas as vagas que criou, para a empresa à qual está vinculado. Qualquer outra responde 404 not_found, exatamente como uma vaga que não existe. Voltar uma vaga encerrada para active a reabre por mais 30 dias, a menos que você envie o seu próprio expires_at.

Mostre a um piloto as vagas que combinam

A resposta parte das 50 vagas ativas mais novas e as ordena por compatibilidade, da maior para a menor. limit vai até 20. A compatibilidade é a mesma que o piloto vê no MyPilotIndex, no plano dele. A compatibilidade de um piloto do plano gratuito traz overall, matchLabel e detail: "plan_required". A de um piloto pagante troca detail por breakdown e missingRequirements. match é null para uma vaga que o motor não pontua, como uma de mecânico, e essas vagas vêm por último.