A job board where the agent on each side has a person behind it
Hiring is about to get strange in a specific way. A candidate's agent will find the role and draft the application. An employer's agent will write the posting and read what comes back. Everyone involved already half knows this, and almost nobody is saying it out loud, so the whole thing is happening by stealth: people quietly using an agent to write a cover letter, and employers quietly binning anything that reads like one.
That is a bad equilibrium. It punishes honesty, it gives the employer no signal worth having, and it gives the candidate no way to find out what any particular company actually wants.
So I built the board I think this needs. It is called agenticjobs, it is MIT licensed, and you can run your own copy in about a minute.
The two rules
Nothing is scraped. Every listing was posted to the board by the employer. That sounds like a limitation and it is the entire point: an agent cannot tell a stale aggregator entry from a real opening, so a search result is only worth something if you know a person put it there. An empty search on this board means nobody posted that job. It does not mean a crawler missed it.
Both ends have a human control point, and they are the same shape. An employer's agent writes a listing and it lands as a draft for a person to publish. A candidate's agent writes an application and it lands as a draft for a person to read and send. Neither side can be automated past its human, and neither side has to trust that the other one was not.
That symmetry is in the database, not in the marketing. A draft application is invisible to the employer until a person sends it. I checked that at the table level rather than believing my own view code.
Say what you actually want
Every listing has to declare an agent policy. Three values, no default:
-
welcome: agent-written applications are fine, nothing is asked -
disclose: fine, but say so -
human-only: the employer is asking for something a person wrote
human-only is a request, not a control. No board can tell who wrote a cover letter, and one that claims it can is selling something. Saying it plainly is worth more than pretending to enforce it, because a candidate who reads it and writes their own has at least been told what the company wants.
And disclosure is never used to filter. A board that collects the disclosure and then quietly drops those applications has broken the field for everybody, because the next candidate learns to lie.
Resumes are Markdown
A resume is a file. You can read it, diff it, keep it in a repository, and paste it anywhere. An agent can write one without being taught a schema first.
Upload a PDF or a Word document and the board converts it, then hands you the Markdown to edit before it goes anywhere. The Markdown is what gets kept and what employers read. A conversion nobody checks is a conversion nobody should trust.
The convention is written down as OpenResume.md, and the listing format as OpenJob. Both are on logicsrc.com, both are things anyone can implement, and neither needs my software:
OpenJob is not a replacement for schema.org JobPosting. It is JobPosting plus the three things it has no vocabulary for: the agent policy, the application form as data, and a description in Markdown.
Applying takes two requests
curl https://agenticjobs.work/api/v1/jobs/SLUG/apply-schema
curl -X POST https://agenticjobs.work/api/v1/jobs/SLUG/apply -d '{...}'
Read the schema, post the answers. No page to render, no form to guess, no credential needed to read anything. There is an MCP endpoint too, so an assistant can do it as a tool call.
Run your own, and let them find each other
git clone https://github.com/profullstack/agenticjobs
docker compose up -d
That is a board with its own Postgres. Web, REST, MCP, CLI, TUI, desktop and an installable PWA, all on one engine.
Instances are independent. Yours has its own database, its own domain and its own rules. If you want to be findable, point it at a directory and it announces itself:
DIRECTORY_URL=https://agenticjobs.work
ANNOUNCE=true
Your instance sends one field, its own URL. The directory then reads your descriptor from you directly, so nothing about your board is taken on trust from the announcement. A stream directory can afford to believe an announcement that says "I am playing something". A job board's announcement carries a company name and a job count, and one that could claim someone else's would be a phishing tool on the first day.
A directory can then ask one question of every listed board at once. A board that is slow or down gets named in the results rather than quietly dropped, so you never see a shorter list with no explanation.
Where it is
The board is at https://agenticjobs.work and it is empty, which is the honest state of a board that does not scrape. The code is at https://github.com/profullstack/agenticjobs.
If you are hiring and you have an opinion about how you want to be applied to, this is somewhere to say it.
Top comments (0)