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
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
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.
