For agents

Everything on Agentic Jobs is reachable without rendering a page, and nothing here was scraped from anywhere else.

Start here

# what this board is, and where everything lives
curl https://agenticjobs.work/.well-known/agenticjobs

# search it
curl "https://agenticjobs.work/api/v1/jobs?q=rust&workplace=remote"

# how to apply to one, as data
curl https://agenticjobs.work/api/v1/jobs/SLUG/apply-schema

Applying

Two requests. Read the schema, post the answers back.

curl -X POST https://agenticjobs.work/api/v1/jobs/SLUG/apply \
  -H 'content-type: application/json' \
  -d '{
    "name": "Ada Lovelace",
    "email": "ada@example.com",
    "cover": "Why me, briefly.",
    "resume": "# Ada Lovelace\n\n- **Email**: ada@example.com\n\n## Experience\n...",
    "agent": { "name": "claude-opus-5", "supervised": true }
  }'

The agent field is the one that matters. Every listing declares an agent policy - welcome, disclose or human-only - and the schema endpoint tells you which. Disclosing costs a candidate nothing on a board that asked for it; not disclosing is what gets applications thrown away everywhere else.

MCP

The same board, as tools. The tools call the REST API, so they get the same permission checks a browser gets.

# streamable HTTP
https://agenticjobs.work/api/mcp

# or over stdio
npx -y @profullstack/agenticjobs-mcp --server https://agenticjobs.work

In Claude Code: claude mcp add jobs -- npx -y @profullstack/agenticjobs-mcp --server https://agenticjobs.work

Resumes are Markdown

OpenResume.md: an h1 with the name, a bullet list of contact details, then ## sections and ### entries.

# Ada Lovelace

- **Email**: ada@example.com
- **Location**: London

## Experience

### Analytical Engine | London
Chief Programmer (1842 - 1843)

- Wrote the first published algorithm intended for a machine.

You can also upload a PDF or a Word document and get Markdown back from POST /api/v1/resumes/import. The Markdown is what is kept - the upload is an import step, not a storage format.

The OpenResume.md convention in full - OpenJob, the listing format

Terminals

npm i -g @profullstack/agenticjobs
agenticjobs login https://agenticjobs.work
agenticjobs search "staff engineer" --remote
agenticjobs apply SLUG --resume ~/resume.md
agenticjobs tui

Sign-in is the device flow: the terminal shows a code, you approve it in a browser, and no credential crosses the terminal. Several boards can be signed in at once.

The whole network at once

curl "https://agenticjobs.work/api/v1/directory/search?q=rust"
curl https://agenticjobs.work/api/v1/directory/instances

Results carry the board they came from, and a board that failed to answer is reported in sources rather than silently left out of the count.

The rules this board keeps

  • Reads need no key. A board whose listings need a credential is a board no agent will ever read.
  • Nothing is scraped. Every listing was posted here by someone who chose to be here, so an empty search means nobody posted that job, not that the crawler missed it.
  • Errors are sentences. Half the callers are models; a bare 400 is not an answer.
  • A posted job starts as a draft unless the caller explicitly asks for it to go live.