feat: add job_search tool plugin - #2847
Conversation
Key-less Job Search tool (search_jobs) querying the Jobicy and Remotive free public APIs. Directory: TianhuaYuan/job_search. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
crazywoola
left a comment
There was a problem hiding this comment.
✅ LGTM
Decision: Approve
Local Check Results
| Check | Status | Detail | Required action |
|---|---|---|---|
PR content language |
✅ Pass | PR title/body CJK ratio=0.0% (zh=0, en=2137, ignored_zh=0, allowed_zh<=0) | None. |
Project structure |
✅ Pass | All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. | None. |
Manifest author |
✅ Pass | author is valid. | None. |
Icon validation |
✅ Pass | icon exists: _assets/icon.png | None. |
Version check |
✅ Pass | version 0.0.1 is available. | None. |
README language |
✅ Pass | README.md CJK ratio=0.0% (zh=0, en=1696, allowed_zh<=0) | None. |
PRIVACY.md |
✅ Pass | PRIVACY.md exists and is non-empty. | None. |
Dependency install |
✅ Pass | requirements installed successfully. | None. |
dify_plugin version |
✅ Pass | dify_plugin version 0.10.1 satisfies >= 0.9.0. | None. |
Install test |
✅ Pass | plugin install test passed. | None. |
Packaging test |
✅ Pass | packaging check passed. | None. |
|
Please make sure only one difypkg is contained |
Superseded by a fresh full review of all open PRs on 2026-08-10.
crazywoola
left a comment
There was a problem hiding this comment.
✅ LGTM
Decision: Approve
Local Check Results
| Check | Status | Detail | Required action |
|---|---|---|---|
PR content language |
✅ Pass | PR title/body CJK ratio=0.0% (zh=0, en=2137, ignored_zh=0, allowed_zh<=0) | None. |
Project structure |
✅ Pass | All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. | None. |
Manifest author |
✅ Pass | author is valid. | None. |
Icon validation |
✅ Pass | icon exists: _assets/icon.png | None. |
Version check |
✅ Pass | version 0.0.1 is available. | None. |
README language |
✅ Pass | README.md CJK ratio=0.0% (zh=0, en=1696, allowed_zh<=0) | None. |
PRIVACY.md |
✅ Pass | PRIVACY.md exists and is non-empty. | None. |
Dependency install |
✅ Pass | requirements installed successfully. | None. |
dify_plugin version |
✅ Pass | dify_plugin version 0.10.2 satisfies >= 0.9.0. | None. |
Install test |
✅ Pass | plugin install test passed. | None. |
Packaging test |
✅ Pass | packaging check passed. | None. |
|
Hi @TianhuaYuan — thanks for the contribution! The package passes the full local review and is approved. The required |
|
Hi @TianhuaYuan — here is the current CI summary for commit ❌ Blocking errors
The local runtime review resolved and installed
|
Upstream pre-check requires a PR to change exactly one .difypkg file; source files are kept in the plugin package and the fork, not in the PR. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Hi maintainers 👋 — I fixed the pre-check failure (PR now contains only the single |
crazywoola
left a comment
There was a problem hiding this comment.
✅ LGTM
Decision: Approve
Local Check Results
| Check | Status | Detail | Required action |
|---|---|---|---|
PR content language |
✅ Pass | PR title/body CJK ratio=0.0% (zh=0, en=2137, ignored_zh=0, allowed_zh<=0) | None. |
Project structure |
✅ Pass | All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. | None. |
Manifest author |
✅ Pass | author is valid. | None. |
Icon validation |
✅ Pass | icon exists: _assets/icon.png | None. |
Version check |
✅ Pass | version 0.0.1 is available. | None. |
README language |
✅ Pass | README.md CJK ratio=0.0% (zh=0, en=1696, allowed_zh<=0) | None. |
PRIVACY.md |
✅ Pass | PRIVACY.md exists and is non-empty. | None. |
Dependency install |
✅ Pass | requirements installed successfully. | None. |
dify_plugin version |
✅ Pass | dify_plugin version 0.10.2 satisfies >= 0.9.0. | None. |
Install test |
✅ Pass | plugin install test passed. | None. |
Packaging test |
✅ Pass | packaging check passed. | None. |
Approval dismissed because the required pre-check-plugin CI is failing. Please resolve the CI errors before requesting re-review.
Plugin Submission
Plugin information
Submission type
What changed
A key-less Job Search tool (
search_jobs) that queries the free public Jobicy and Remotive job APIs. It accepts a keyword, location, category, job-type and result count, and returns matching jobs (title, company, location, job type, salary, description excerpt, source URL). No API key or credentials are required.Risk level
Required checks
.envfiles,.gitdirectories, virtual environments, caches, logs, or IDE files.PRIVACY.mdor a hosted privacy policy, andmanifest.yamlreferences it.Security and privacy notes
None. The tool only makes outbound HTTPS requests to the documented Jobicy and Remotive public APIs. No command/code execution, file operations, browser automation, or sensitive-data handling.
Local validation
Real API responses verified locally against both providers:
GET https://jobicy.com/api/v2/remote-jobs?count=10returned 10 jobs (title, company, location, url present).GET https://remotive.com/api/remote-jobsreturned remote jobs with keyword/location filtering applied.search_jobstool from a Dify Cloud workflow against the local debug server; invocation log showedinvoke source='jobicy' count=10→matched 10 jobs, and the workflow returned the job list successfully.Reviewer notes
dify plugin package; zipped contents contain no[],.env, caches, or junk files.