# Job Post Desk: agent fixes for your job ads and applicant replies, pay range shown, fair wording, owner approved

> Let an agent tidy your job ads, check where each ad is still up and review draft replies to applicants, without dropping the pay range, inventing a bonus, asking for pay history or telling anyone they got the job. It writes fixed copies and never posts, takes down, rejects or replies. A fix check refuses a removed range, a deleted line, a new perk or a new email. You approve at your terminal and post it yourself.

- URL: https://paperchasewebb.ai/bots/marketplace/items/job-post-desk-pay-range-shown-fair-wording-owner-approved/
- Type: Prompt pack
- Category: Solo business
- By: PaperChaseWebb
- Works with: Claude Code, Codex, Grok Bot, Hermes (named in the listing); Plain Markdown files, a small Python checker, and rules for AGENTS.md and CLAUDE.md, Claude Code and Codex notes, Hermes notes and a Grok Bot standing order. The agent files were checked by the checker on Linux; they were not loaded inside each agent for this release
- Price: $29 USD
- Difficulty: Intermediate
- Setup time: 45 min
- Time to result: The worked example in 5 minutes; your own ads and boards checked in about an hour
- Format: Markdown (.md) file, job-post-desk-pay-range-shown-fair-wording-owner-approved.md
- Version: 1.0, updated 2026-11-01
- License: Use inside your own business or for your clients. Do not resell or republish the kit itself.

## What you end up with

Each job ad shows the range you set, describes benefits, gives a close date and one way to apply, and drops pay history questions and age, gender, health and origin wording; you know which board ads are stale or show the wrong pay, one approved change at a time, with nothing deleted and no claim that anything is compliant.

## What you get

- 21 sections and an appendix in one .md file, with a one-line unpack for all 73 files
- jobpost_check.py posts: 21 checks on each job ad against your own settings and a dated state table, from no range or "up to $45 DOE" and no benefits or close date to pay history questions, "digital natives", "He must", "able-bodied", an unpaid trial day and no software screening notice
- jobpost_check.py postings: 9 checks on where each ad is up, so you see ads still up after the role was filled or the close date, boards with no pay or the wrong range and duplicates
- jobpost_check.py replies: 13 checks on draft replies to applicants, such as pay history, age or family questions, a fee, an ID number before any offer, a job offer the owner did not make and "our system rejected you"
- jobpost_check.py fix: 12 checks that compare the agent's copy with the original, so a deleted line, a removed range or apply link, a new perk, email or figure fails
- A claims check that stops reports saying an ad is compliant or that the agent posted, hired, rejected or replied
- The owner step: approve.py needs a real terminal and part of the file hash, refuses agent sessions and piped input, and checks the original has not changed before you mark it posted
- An eval set for a made-up dental group with 3 ads, a postings list and 12 reply threads, rules and two skills for Grok Bot, Claude Code, Codex and Hermes, six prompts and templates
- The test harness: 62 unit tests and 779 planted faults you can repeat

## Who it is for

Small businesses and agencies who want an agent to tidy job ads and draft applicant replies, with a person approving every change and making every hiring decision.

## Tools needed

- Python 3.8 or newer: runs the post, postings list, reply, fix, report, rules and settings checks and the owner approval script; standard library only
- Grok Bot, Claude Code, Codex or Hermes: writes fixed copies of your job ads and reviews draft replies to applicants under the AGENTS.md rules or the Grok Bot standing order; never posts, takes down, rejects, offers, hires or replies, and never approves
- Text and a list saved from your job boards: each job ad pasted into site/jobs, a postings list as CSV and saved draft replies to applicants; the kit never logs in to a board or applicant tracking system
- You need: Python 3.8 or newer
- You need: Your job ads as text
- You need: A list of where each ad is up, as CSV
- You need: Each role's pay range, place or remote states and close date written down once
- You need: Someone who approves each change, posts it, and makes every hiring decision

Cost to run: The kit is the only purchase. Everything runs locally with Python; the checker makes no network calls, logs in to nothing and changes nothing on any job board.

## How it works

1. **Unpack and test.** Save the kit as pack.md in an empty folder, run the unpack line from Appendix A, then sh test_all.sh. Expected: 73 files written; 62 tests OK; 779 of 779 planted faults caught.
2. **Watch the flow.** Run sh example/run_example.sh and read it next to section 17. Expected: A plumbing company's three ads with 23 findings, a postings list with 7, a bad reply with 8, the agent's first-try fixes caught with 11, the second tries clean, a first-try report with 5 findings and a piped approval refused.
3. **Put in your roles.** Fill in site/settings.json and site/facts.md from the templates, paste your ads into site/jobs/, list your boards in site/postings.csv, then run python3 desk/jobpost_check.py site and python3 desk/jobpost_check.py posts. Expected: A short list of settings and ad lines to fix first.
4. **Fix and sweep the boards.** Have your agent follow skills/job-post-fix and skills/applicant-reply-review, then run jobpost_check.py fix queue/fixes and approve each file at your terminal. Expected: Fixed ads in queue/fixes with 0 high findings, and a list of board ads to take down or correct yourself.

## Sample prompt: First pass (Grok Bot, Claude Code, Codex, Hermes)

```
Follow skills/job-post-fix for every post in site/jobs. Do not post anything. List the codes fixed and the codes left for me, with the reason for each.
```

Prompt 1 of 6.

## Sample prompt: Board sweep (Grok Bot, Claude Code, Codex, Hermes)

```
Follow skills/applicant-reply-review for site/postings.csv. Take nothing down. List each board, the posting id and what I should do there: take it down, fix the pay or add benefits.
```

Prompt 2 of 6.

## Sample prompt: Facts gap (Grok Bot, Claude Code, Codex, Hermes)

```
Run jobpost_check.py posts and replies. For each J10, J19 and C06, tell me the benefit, perk or number so I can add it to facts.md or take it out.
```

Prompt 4 of 6.

## Free preview of job-post-desk-pay-range-shown-fair-wording-owner-approved.md

````markdown
# Job Post Desk: agent fixes for your job ads and applicant replies, pay range shown, fair wording, owner approved

Version 1.0, 2026-11-01. By PaperChaseWebb. For small businesses that hire (trades, clinics, restaurants, shops, offices, home services) and the agencies that run their hiring pages, who want an AI agent to tidy job ads, keep track of where each ad is up and draft replies to applicants, without inventing pay, a bonus or a perk, asking what nobody should ask, or telling an applicant they got the job. Works with Grok Bot, Claude Code, Codex and Hermes. Python 3.8 or newer, standard library only, no API keys, no logins. The kit and the agent never post or take down an ad, never decide on an applicant and never send anything. Tested with 62 unit tests and 779 planted faults on Linux with Python 3.13, 3.12, 3.11, 3.9 and 3.8. All business, contact and applicant data in this kit is made up. Not legal advice.

Job ads now carry rules. In the table this kit reads, 14 states and DC ask covered employers to put a pay range in job posts, and Delaware joins in September 2027. Colorado, Connecticut, Illinois, Maryland, Minnesota, New Jersey and Washington also ask for a general description of benefits, and Colorado asks for the date applications close. Many states and cities bar asking for pay history. New York City and Illinois ask employers to tell applicants when software is used to screen them. Federal rules limit ads that show a preference by age, sex, religion, nationa
````

## Test record

- Date: Nov 1, 2026
- What was run: tests/test_lib.py (8), test_site.py (3), test_posts.py (12), test_postings.py (7), test_replies.py (6), test_fix.py (8), test_claims.py (2), test_modes.py (6), test_mini.py (2) and test_approve.py (8, on a real pseudo terminal); tests/mutate.py with 713 planted faults across posts, postings lists, replies, bad fixes, reports, agent rules and settings, plus 66 against jobpost_mini.py; jobpost_check.py set on the eval set; example/run_example.sh end to end; and the unpack line with test_all.sh. Linux, Python 3.13, 3.12, 3.11, 3.9 and 3.8.
- Result: 62 passed, 0 failed on all five versions; 779 of 779 planted faults caught and all clean baselines clean; the eval set matched its 35 expected codes and every fixed ad had 0 high findings; the example caught the first-try fixes with 11 findings and the first-try report with 5, and refused piped approval; the unpack line wrote every file and test_all.sh passed there.
- Not run: A live Grok Bot, Claude Code, Codex or Hermes session. Job boards and applicant tracking systems. City rules other than the NYC software notice, and laws outside the US. Languages other than English. macOS or Windows. Legal review.

Copied from this item's dated test notes. What was not run stays in.

## Worth knowing

- The agent rules were checked by the checker but not loaded inside a live Grok Bot, Claude Code, Codex or Hermes session for this release. The eval fixes were written by hand to the rules. Give your agent the entrance exam in section 15 before you rely on it.
- Not legal advice. Nothing in the kit says an ad, a reply or a business meets any law. The state table is dated 2026-11-01; check it against the sources in section 20. City rules other than the NYC software notice and laws outside the US were not checked, and every state a remote role hires from is treated as asking.
- The checker reads the ads, postings list and replies you save. It does not read job boards or applicant tracking systems and cannot post or take anything down, so open each live ad on a phone after each change. English only.
- The owner step assumes the agent cannot run approve.py at a terminal. Run it as a separate user; agent rules alone are not a hard boundary.
- All businesses, people, roles and numbers in the kit are made up. Tested on Linux only; macOS and Windows were not tested.
- On 2026-11-01 on Linux: 62 unit tests and 779 of 779 planted faults passed on Python 3.13, 3.12, 3.11, 3.9 and 3.8; the eval set matched its 35 expected codes; the unpack line wrote every file and test_all.sh passed in that folder.

## Questions

**Which agents does it work with?** Any agent that can read files and run a script. The kit has rules for AGENTS.md and CLAUDE.md, Claude Code and Codex notes, Hermes notes and a Grok Bot standing order. Those were checked by the checker, not loaded in each agent for this release.

**Will it post ads, reject applicants or reply for me?** No. The agent writes fixed copies into a queue folder and a list of board ads to correct. You approve each file at a terminal, post it yourself, and make and send every hiring decision.

**Which job boards does it work with?** Any board or careers page you can copy an ad from. You list where each ad is up in a CSV; the kit never logs in anywhere.

**Can I keep a record check or a citizen requirement?** Yes, if the role needs it and your settings say so. A citizen line passes when the role is marked as needing it; a blanket record screen is a medium finding left for you to decide.

**Can you set it up for us?** Yes. Our Install sprint maps your roles, ranges and boards, writes your facts file and builds an eval set from your own ads, or Managed Ops runs the checks, fixes and board sweeps for you each week. Book a call or write to mgmt@paperchasewebb.com.

## How to buy

$29 one time at https://paperchasewebb.ai/bots/marketplace/items/job-post-desk-pay-range-shown-fair-wording-owner-approved/. Stripe checkout, then an instant download page; the download link is also in your emailed receipt.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
