---
name: peopleseek-job-application
description: Guides an agent through applying to a job found in the PeopleSeek Talent index, honestly and with the user's explicit consent, using the index's application-options and job-status endpoints (MCP tools get_application_options and check_job_status, or REST at https://jobs.peopleseek.ai/api/v1). It fetches the application method for a job and branches on it: external_apply (open the employer's destination for the user and follow that site's own rules), assisted_apply (use the structured requirements to prepare answers with the user), authorized_direct_submit (not available for any job in V1; the submit endpoint answers 409) and unsupported. Use it whenever a user wants to apply to, prepare an application for, or check whether a PeopleSeek job is still open ("apply to this job", "help me apply", "is this still open", "what does this application need"). Never used to submit without confirmation, to bypass a login or CAPTCHA, or to invent qualifications.
metadata:
  version: 1.1.0
---

# PeopleSeek Job Application

PeopleSeek is an index, not the employer and not an applicant-tracking system. It knows,
per job, **how** an application can be made and **where**; it never submits one in V1,
stores no candidate data and holds no account for the user. This skill turns that into a
safe procedure. For finding jobs use `peopleseek-jobs`; for pay comparison use
`peopleseek-career-research`.

## 1. Before anything: the three facts

1. **The job id** (UUID or slug) from a search or from the user.
2. **The user's explicit authorisation for this employer and this job.** A general
   "apply to jobs for me" is not authorisation for a specific submission: confirm the job,
   the employer and what will be sent, every time. See
   [references/consent-and-honesty.md](references/consent-and-honesty.md).
3. **The job's current status**: `check_job_status` / `GET /jobs/{id}/status`. Proceed
   only when `active` is `true`; otherwise state the status (`closed`, `stale`,
   `expired`, `unverified`, `removed`) and the `canonicalUrl` the user can check
   themselves.

## 2. Get the application options

MCP: `{"name":"get_application_options","arguments":{"id":"<uuid-or-slug>"}}`
REST: `GET https://jobs.peopleseek.ai/api/v1/jobs/{id}/application-options`

The result (`ApplicationOptionsView`) carries `method`, `open`, `destination`
(`url`, `system`, `requiresExternalAccount`), `requirements` (structured fields,
questions, resume rules; every member optional, absent means "not stated"),
`directSubmitSupported` (always `false` in V1), `candidateReviewRequired` and
`instructions` (plain-language guidance to relay). Field meanings and examples:
[references/methods.md](references/methods.md).

If `open` is `false`, stop: tell the user the job is no longer known to be open, give
the status and the canonical link, and offer `find_similar_jobs`.

## 3. Branch on `method`

### `external_apply` — the employer's own application page is known

1. Give the user `destination.url` and say which system it runs on when
   `destination.system` is known. Say whether an account is needed when
   `requiresExternalAccount` is `true` (or that it is not stated when `null`).
2. If the user asks you to proceed and you have a browser tool: open the destination
   **for the user**, then follow that site's own rules. Fill only what the user has
   provided or confirmed. Stop at any login, CAPTCHA, identity check, payment or consent
   step and hand control to the user. Never bypass, automate or guess your way through
   one.
3. Do not press the final submit control without the user's explicit go-ahead for that
   exact submission, after they have reviewed every field.
4. Report **only what actually happened**: "I opened the page and filled sections A and
   B; you submitted it" or "the page required a login, I stopped there". Say "applied"
   only when the destination itself confirmed receipt (a confirmation page, email or
   reference number the user can see).

### `assisted_apply` — structured requirements are available as well

1. Read `requirements`: `requiredFields`, `optionalFields`, `questions` (each with
   `name`, `label`, `type`, `required`, optional `options`), `resumeRequired`,
   `acceptedFileTypes`, `requiresExternalAccount`, `destinationSystem`, `notes`.
2. Prepare the answers **with** the user: ask for anything required you do not have,
   draft free-text answers from facts the user supplied and show them for approval. Do
   not infer qualifications, dates, degrees, visas, salaries or availability.
3. Flag mismatches honestly (a required certification the user has not mentioned, a
   file type not accepted).
4. Then continue exactly as `external_apply`: the submission still happens on the
   employer's destination, by the user or with their explicit go-ahead.

### `authorized_direct_submit` — not available in V1

No employer has authorised PeopleSeek to submit on a candidate's behalf, so no job has
this method and `directSubmitSupported` is `false` for every job. If anything calls
`POST /applications/submit`, the answer is always `409` with
`error.code = "direct_submit_not_supported"` and the job's application options in
`error.details`. Do not retry; use the options returned and explain: "PeopleSeek cannot
submit this for you; the employer's own application page is <destination.url>."

### `unsupported` — no permitted application path is known

Say so. Offer the `canonicalUrl` so the user can read the original posting, and
`find_similar_jobs` for alternatives. Do not search the web for a back-channel, do not
email the company on the user's behalf unless the user explicitly provides the address
and the text and asks for it.

## 4. After the attempt

- Run `check_job_status` again if time has passed or the destination reported the role
  as filled; report any change.
- Summarise: job (title, company, canonical link), what was prepared, what was
  submitted and by whom, what the destination confirmed, what remains for the user.
- Keep nothing: PeopleSeek stores no candidate data, and this skill does not either
  unless the user asked for a local record.

## 5. Rules that never bend

- Explicit authorisation per employer and per submission; no bulk, silent or assumed
  applications.
- No fabricated or embellished qualifications, experience, documents or answers; no
  answers to questions the user has not answered.
- Never bypass logins, CAPTCHAs, bot checks, paywalls or terms; never create accounts
  on the user's behalf; never enter credentials or payment details.
- Never say "applied" without confirmation from the destination.
- Always show the job's source attribution and canonical link when presenting it.
- Do not describe PeopleSeek as the employer, as a recruiter, or as acting for one.
