Automate Recruitment Agency Job Posting Reviews With Claude Code
Review job posts for vague wording, candidate anxiety, display risk, and JobPosting mismatches.
Recruitment agencies lose candidates when job postings sound attractive but fail to answer basic questions. A recruiter may hear “young team,” “great growth environment,” or “high ownership” from the client. Candidates want a more concrete page: what work starts in month one, who the customers are, what the salary range means, where the job is located, how remote work works, and why people decline.
In Japan, recruitment and job placement also sit inside a legal and display-risk workflow. From April 2024, additional items must be shown when recruiting or introducing jobs, including scope of work changes, scope of workplace changes, and renewal criteria for fixed-term contracts. MHLW also explains age-limit restrictions and equal treatment rules in recruitment.
This article shows how a recruitment agency can use Claude Code to review job postings before publication. The goal is not just prettier copy. The goal is to reduce unclear wording, risky expressions, candidate questions, client review loops, and JobPosting structured data mismatches.
Key Points
- Review labor conditions, change scope, age and gender wording, and salary before attraction copy.
- Ask Claude Code to create tables for missing fields, candidate questions, risky phrases, and JobPosting differences.
- Humans review legal judgment, salary, employment type, age exceptions, gender requirements, client approval, and confidential information.
- Better conversion comes from concrete work, evaluation, remote work, overtime, and selection flow.
- Track job-post revisions, client review loops, candidate questions, application rate, interview rate, and decline reasons.
The Failure Scene In Job Posting Review
Recruitment-agency job postings are often assembled from sales notes, client pages, past recommendation text, and verbal comments. The result may read well, but it often hides the details candidates need.
“High ownership” should become decision scope, customer count, review frequency, and evaluation criteria. “Young culture” should become team size, onboarding, tools, and role expectations. “Remote available” should become days per week, approval rules, and office location.
The agency sits between client and candidate. If the post contains risky age, gender, salary, location, contract, or structured-data errors, trust drops on both sides. Claude Code should catch gaps before it improves tone.
Workflow: From Client Intake To Candidate Application
Job posting review is information routing. Put the client job description, account-manager notes, hiring background, requirements, selection flow, decline reasons, and candidate questions into one table.
| Input | Page artifact | Human review |
|---|---|---|
| Client job post | title, duties, salary, location | labor conditions and change scope |
| Account notes | hiring background and appeal | client-confirmed facts |
| Candidate questions | anxiety and comparison points | no personal information |
| Past recommendations | winning messages | reproducibility and exaggeration |
| Job board copy | title, tags, search terms | age, gender, misleading terms |
| JobPosting JSON-LD | title, location, salary, dates | match visible text |
Before sending content to Claude Code, remove candidate names, current employer names, interview evaluations, negotiation notes, and confidential client information.
What Claude Code Handles And What Humans Review
Claude Code can find missing fields, vague phrases, candidate-question gaps, JobPosting mismatches, and client-confirmation questions. It can turn a phrase like “young team” into onboarding, required experience, and manager support.
Humans review law and fact. Does an age-related expression have a valid exception? Could a gender phrase be discriminatory? Is the salary range real? Is overtime current? Are work-location changes and contract renewal criteria confirmed by the client? These questions stay with people.
MHLW explains that from April 2024, extra labor-condition items must be shown during recruitment and job introduction. It also notes that even if a job post says age is open, rejecting applicants because of age can violate the rule. Google’s JobPosting structured data similarly expects structured data to represent the page honestly.
Three Use Cases
Use case 1: Replace vague appeal with concrete information
Input job text, candidate questions, and decline reasons. Claude Code extracts phrases that do not help a candidate decide. Output is a three-column table: vague phrase, candidate question, concrete replacement.
“High ownership” becomes customer type, decision scope, team review, and KPIs. A human keeps only client-confirmed facts.
Use case 2: Flag age, gender, and requirement wording
Input title, requirements, preferred conditions, and job-board tags. Claude Code flags phrases such as ”20s welcome,” “female-oriented,” “men only,” and “young members only.” Output is risky phrase, reason, safer alternative, and human review item.
The model should not decide legality. It raises red flags. People check MHLW guidance, exception rules, business necessity, and client context.
Use case 3: Align JobPosting with visible text
Input page text, URL, JSON-LD, and job board copy. Claude Code compares title, hiring organization, location, salary, employment type, datePosted, and validThrough. Output is a mismatch table.
Location is often where errors appear: page says Tokyo, JSON-LD says Japan, and the board says remote. Candidates and search engines both need consistency.
Copy-Paste Prompt
Act as a recruitment agency job posting reviewer.
Goal:
Find vague wording, candidate anxiety, legal/display risk, and JobPosting mismatches before publication.
Input:
- Client company:
- Role title:
- Job post text:
- Hiring background:
- Required skills:
- Preferred skills:
- Salary:
- Location:
- Scope of work changes:
- Scope of workplace changes:
- Contract renewal criteria:
- Selection flow:
- Common candidate questions:
- Past decline reasons:
- JobPosting JSON-LD:
Output:
1. Missing field table
2. Vague phrases that reduce application quality
3. Age, gender, and misleading-expression red flags
4. Information to move higher for candidates
5. JobPosting versus visible text differences
6. Questions to send back to the client
Rules:
- Do not make legal conclusions
- Do not guess age, gender, salary, location, or contract terms
- Do not include candidate names, employers, or interview evaluations
- Choose one CTA: introduce to candidate or return to client confirmation
Working Check Code
const jobPostDraft = {
clientName: "サンプルSaaS株式会社",
roleTitle: "カスタマーサクセス",
businessScope: "導入支援、利用状況の確認、更新提案",
workLocation: "東京都渋谷区 / リモート週2日",
locationChangeScope: "本社、会社が定める拠点、在宅勤務場所",
workChangeScope: "カスタマーサクセス、営業企画、サポート業務",
salaryRange: "年収 4,800,000円〜6,500,000円",
contractRenewal: "期間の定めなし",
workingHours: "9:30〜18:30 / 休憩60分",
overtime: "月平均20時間",
requiredSkills: ["法人顧客対応", "SaaSまたはITサービスの利用経験"],
preferredSkills: ["SQLの基礎", "Salesforce利用経験"],
reviewText: "B2B customer success role. The person handles onboarding, usage review, renewal proposals, and customer questions.",
ctas: ["candidateApply"],
};
const riskyPhraseExamples = ["20s welcome", "women only", "men only", "young team only", "guaranteed growth"];
const requiredFields = [
"clientName",
"roleTitle",
"businessScope",
"workLocation",
"locationChangeScope",
"workChangeScope",
"salaryRange",
"contractRenewal",
"workingHours",
"overtime",
];
const missing = requiredFields.filter((field) => !jobPostDraft[field]);
const draftText = jobPostDraft.reviewText;
const riskyHits = riskyPhraseExamples.filter((phrase) => draftText.includes(phrase));
const hasSalary = /円|年収|月給|時給/.test(jobPostDraft.salaryRange);
const hasOneCta = jobPostDraft.ctas.length === 1 && jobPostDraft.ctas[0] === "candidateApply";
if (missing.length || riskyHits.length || !hasSalary || !hasOneCta) {
console.error("求人票レビューで人が見るべき項目があります。");
console.error({ missing, riskyHits, hasSalary, hasOneCta });
process.exit(1);
}
console.log("Recruitment agency job posting review checklist is ready for human review.");
This code is a pre-review checklist, not legal review. It checks missing fields, risky phrases, salary visibility, and CTA focus.
Pitfall: Common Mistakes And Fixes
Pitfall 1: Optimizing only for application count. Split appeal, labor conditions, legal review, and JobPosting into separate tables.
Pitfall 2: Keeping “young team” because it sounds attractive. Replace age-flavored wording with work scope, onboarding, and required skills.
Pitfall 3: Highlighting only the top of the salary range. Confirm what experience, role, and evaluation level reach the top.
Pitfall 4: Updating JSON-LD while the page stays old. Review visible text, job board copy, and JSON-LD together.
ROI Metrics
For agencies, job posting review ROI is not only application count. Track revision count, client review loops, candidate follow-up questions, application rate, interview rate, decline reasons, and days to publish. If applications rise but interview rate falls, the post is attracting too broadly.
Claude Code should read weekly metrics and split what belongs in the posting from what belongs in client confirmation.
FAQ
Should all age and gender wording be removed? Treat it as a red flag, not an automatic delete. Humans check official guidance, exception rules, and business necessity.
Can salary be shown aggressively? Salary ranges need conditions. Show the experience and role level behind the upper range.
Does JobPosting matter for agencies? If the agency hosts job pages, yes. Visible text, job board copy, and JSON-LD should match.
Can Claude Code do legal review? It can extract red flags. Publication judgment stays with humans.
Consultation Path
For one team, collect recent job posts, decline reasons, candidate questions, JSON-LD, and client review comments. For multi-person standardization, use training and consultation to separate Claude Code red-flag extraction from human approval of job conditions. This connects to the care recruitment page article.
What I Actually Checked
For this article, I checked MHLW guidance on April 2024 recruitment display additions, age-limit restrictions, equal recruitment rules, and Google JobPosting structured data. I also ran the Node.js checklist locally. The first action is to split a job post into labor conditions, candidate anxiety, red-flag expressions, and JobPosting differences.
Related Posts
Use Claude Code to Compare Recruitment Job Posts and Candidate Emails Before Sending
A recruitment agency workflow for checking job posts, candidate emails, client notes, and approval gaps before sending.
Claude Code For Hiring Teams: Rewrite Job Posts, Day-in-the-Life Copy, And Applicant Emails
A hiring-team workflow for turning vague job posts and applicant emails into clearer candidate-facing pages.
Improve Care Recruitment Pages With Claude Code: Reduce Anxiety Before Applying
Build care recruitment pages with shifts, visits, photos, FAQ, and JobPosting checks.
Free PDF: Claude Code Cheatsheet
Enter your email and download the one-page Claude Code cheatsheet for commands, review habits, and safe workflows.
We handle your data with care and never send spam.
Level up your Claude Code workflow
Start with the free PDF, use Gumroad guides when you need repeatable workflows, and book consultation when rollout or revenue paths need human judgment.
About the Author
Masa
Engineer focused on practical Claude Code workflows. Runs claudecode-lab.com, a 10-language technical media site.
Related Products
50 Battle-Tested Claude Code Prompt Templates
Copy, paste, ship. 50 production-ready prompts.
Use proven prompts for code review, refactoring, testing, documentation, debugging, architecture, and incident response.
The Complete Claude Code Setup & Configuration Guide
From install to team-ready workflow.
A practical guide to installation, CLAUDE.md, hooks, MCP servers, permissions, IDE setup, and CI/CD workflows.