← 返回 Skills 市场
sazidulalam47

BDJobs Job Apply

作者 Sazidul Alam · GitHub ↗ · v1.0.5 · MIT-0
cross-platform ⚠ suspicious
155
总下载
0
收藏
0
当前安装
6
版本数
在 OpenClaw 中安装
/install bdjobs-job-apply
功能描述
BDJobs job search, matching, applying, undoing, and salary-update automation for OpenClaw. Use when the user wants to set up BDJobs credentials/preferences,...
使用说明 (SKILL.md)

BDJobs Job Apply

Use this skill to help a user manage BDJobs job searching and applying without needing to know APIs or code.

What this skill does

  • Save resume text/LaTeX into data/resume.md
  • Save credentials and preferences into data/userDetails.json
  • Log in and save auth data into data/loggedInData.json
  • Refresh applied jobs into data/appliedJobIds.json
  • Keep a not-liked list in data/notLikedJobIds.json
  • Search jobs and return raw job details for AI matching
  • Auto-apply to matched jobs when asked
  • Undo/cancel an applied job when asked
  • Update expected salary for an already applied job

Onboarding flow

When the user first sets up this skill, ask for these values in plain language:

  1. BDJobs username
  2. BDJobs password
  3. Resume text or LaTeX
  4. everyDayApplyCount (default: 2)
  5. everyDayCronTime (default: 12:00 PM)
  6. isFresher (yes/no)
  7. Experience in years
  8. Preferred jobLocation (optional, leave blank for all)

Save them in:

  • data/userDetails.json
  • data/resume.md

If the user has extra search filters or matching rules, store them in data/preferences.json.

Login flow

Before search/apply work, always ensure data/loggedInData.json exists.

If missing:

  1. run ChecKUsername
  2. take guidId
  3. run Login
  4. save token, refreshToken, encryptId, decodeId, and guidId to data/loggedInData.json

If login returns 401 at any point:

  1. run ChecKUsername again
  2. run Login again
  3. overwrite data/loggedInData.json

Search flow

When the user asks for fresh jobs:

  1. Clear data/suggestedJobs.json
  2. Run scripts/bdjobs-refresh-applied.js to update data/appliedJobIds.json from GetApplyPositionInfoV1
  3. Run scripts/bdjobs-fetch-jobs.js with --keyword, --isFresher, --postedWithin, --pg, and --jobLocation to fetch raw job lists from GetJobSearch
  4. Run scripts/bdjobs-filter-jobs.js to exclude already-applied and not-liked job IDs before Job-Details
  5. For selected job IDs, run scripts/bdjobs-job-details.js to fetch full job details
  6. Let AI compare the raw job details with data/resume.md and data/preferences.json
  7. Run scripts/bdjobs-rank-jobs.js to save the top 5 matched jobs into data/suggestedJobs.json
  8. Show the contents of data/suggestedJobs.json to the user

Recommended match threshold:

  • show apply suggestions only if match is above 40%
  • if the user asks for a looser list, show 30%+

AI matching details:

  • Compare the raw job details with data/resume.md and data/preferences.json
  • Judge fit from skills, education, age, experience, responsibilities, location, and preferences
  • Output a suggested job list with match percentages

Auto-apply flow

When the user asks to auto-apply:

  1. Ensure login exists
  2. Refresh applied jobs first
  3. Search fresh jobs
  4. Let AI score the raw job details against the resume and preferences
  5. For each approved job:
    • call JobApply
    • read MinimumSalary
    • use it as expectedSalary in JobApplyPost
    • call JobApplyPost
    • if successful, always show matchingScore
    • if successful, add the job ID to data/appliedJobIds.json
    • save result in data/lastApplyResult.json
  6. Send Telegram notification only after success

Undo/cancel flow

When the user asks to undo an application:

  1. Ensure login exists
  2. Call UndoJobApply with job ID and FormValue
  3. If successful, remove the job ID from data/appliedJobIds.json
  4. Save result in data/lastUndoResult.json

Expected salary update flow

When the user asks to update salary for an applied job:

  1. Ensure login exists
  2. Call UpdateExpectedSalary
  3. Save result in data/lastSalaryUpdateResult.json

Files used by this skill

Important files live inside this skill folder:

  • data/resume.md
  • data/userDetails.json
  • data/loggedInData.json
  • data/appliedJobIds.json
  • data/notLikedJobIds.json
  • data/preferences.json
  • data/suggestedJobs.json
  • data/lastApplyResult.json
  • data/lastUndoResult.json
  • data/lastSalaryUpdateResult.json

Script entry points

Run scripts from the skill folder, not the workspace root:

  • scripts/init-job-profile.js
  • scripts/bdjobs-login.js
  • scripts/bdjobs-refresh-applied.js
  • scripts/bdjobs-fetch-jobs.js

bdjobs-fetch-jobs.js accepts:

  • --keyword=...
  • --isFresher=true|false
  • --postedWithin=... (optional day count, any number)
  • --pg=...
  • --jobLocation=...
  • scripts/bdjobs-filter-jobs.js
  • scripts/bdjobs-job-details.js accepts --jobId=... or a positional job id
  • scripts/bdjobs-rank-jobs.js
  • scripts/bdjobs-apply.js
  • scripts/bdjobs-undo.js
  • scripts/bdjobs-update-salary.js

Matching rules

Use the resume and these signals:

  • Job title
  • Company name
  • Job description
  • Education requirements
  • Age requirement
  • Experience requirement
  • Additional job requirements
  • Suggested skills
  • Job location
  • Job nature
  • User preferences from data/preferences.json

Helpful behavior

When presenting jobs to the user:

  • keep language simple
  • explain only what matters
  • include the direct job link
  • mention whether it looks worth applying

When the user wants automation, do the work directly with the scripts.

安全使用建议
This skill largely does what it says — automating BDJobs searches and applications — but there are a few red flags to consider before installing or providing real credentials: - Endpoints: The code calls non-production/test-looking endpoints (bdjobs-auth-dev, testmongo.bdjobs.com, and a Cloud Run URL useractivitysubsystem-odcx6humqq-as.a.run.app). These could route your login data outside the official production systems. Ask the author which endpoints are intended and why dev/test hosts are used. - Credentials storage: You will be asked to provide your BDJobs username and password and the skill stores them and returned tokens in plaintext JSON files under the skill's data/ folder. If an attacker or another process can access that folder, your credentials/tokens could be stolen. Prefer a skill design that does not store raw passwords or that encrypts tokens. - Use a throwaway/test account first: If you want to try it, create a separate BDJobs account (or a limited test account) rather than supplying your primary credentials. - Review endpoints and network traffic: If you can, review or proxy the network calls to verify they go to legitimate BDJobs servers. Request that the developer replace any dev/test endpoints with production endpoints or document why those hosts are used. - File/name inconsistencies and missing features: The SKILL.md mentions Telegram notifications but the repository lacks Telegram-sending code; there are small filename mismatches that may cause logic errors. Expect some rough edges and test carefully. If you don't trust the endpoints or can't verify where credentials are sent, do not supply your real BDJobs password. Ask the skill author to document the endpoints, avoid storing plaintext credentials, and explain why dev/test hosts are used. If you proceed, restrict file permissions on the skill folder and consider using a separate account.
功能分析
Type: OpenClaw Skill Name: bdjobs-job-apply Version: 1.0.5 This skill bundle automates job applications on BDJobs but is classified as suspicious because it requires and stores the user's plaintext credentials (username and password) in 'data/userDetails.json'. It interacts with several non-standard or internal-looking endpoints, such as 'testmongo.bdjobs.com' and a Google Cloud Run instance ('useractivitysubsystem-odcx6humqq-as.a.run.app'), likely reverse-engineered from the platform's mobile API. While the logic in scripts like 'bdjobs-login.js' and 'bdjobs-apply.js' aligns with the stated purpose, the insecure storage of sensitive credentials and the reliance on these specific endpoints present significant security risks.
能力评估
Purpose & Capability
Name/description align with the code and SKILL.md: fetching job listings, ranking, applying, undoing, and updating salary on BDJobs. The scripts implement the flows described (login, search, details, apply, undo, update salary). No unrelated binaries or env vars are requested.
Instruction Scope
Instructions and scripts perform the declared tasks but also read/write plaintext credentials and tokens to local files (data/userDetails.json, data/loggedInData.json). The code calls several external endpoints beyond api.bdjobs.com and gateway.bdjobs.com (notably useractivitysubsystem-odcx6humqq-as.a.run.app and testmongo.bdjobs.com) and bdjobs-auth-dev endpoints. These non-production/test endpoints may route sensitive credentials to unexpected hosts. SKILL.md promises Telegram notifications after successful apply, but no Telegram sending code is present. There are minor file-name inconsistencies (SKILL.md lists data/notLikedJobIds.json; scripts reference not-liked-job-list.json), which could cause incorrect behavior.
Install Mechanism
No install spec — instruction-only from the platform perspective — and all code is included in the package. No external downloads or package installation steps are declared. This reduces supply-chain install risk.
Credentials
The skill requests user BDJobs username and password and stores them in data/userDetails.json; it also stores tokens/encryptId/decodeId in data/loggedInData.json. While these are needed to log in and apply on behalf of the user, storing raw credentials and tokens in skill-local JSON files is risky. No environment variables are requested, but the storage practices and use of 'dev'/'test' endpoints (bdjobs-auth-dev, testmongo.bdjobs.com, a run.app URL) make credential exposure more likely.
Persistence & Privilege
always is false and the skill does not request permanent system-wide presence. It writes and updates files only within its own data/ folder. It spawns local scripts (bdjobs-login) to perform login flows, which is expected for this functionality.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install bdjobs-job-apply
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /bdjobs-job-apply 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.5
- enhance job details retrieval and search functionality with postedWithin parameter
v1.0.4
- Always display the matching score after each successful auto-apply to a job. - No other functional changes.
v1.0.3
- Added --postedWithin option to job search for filtering by how recent jobs are. - Updated documentation for bdjobs-fetch-jobs.js to include new command-line parameters. - No code changes; documentation only.
v1.0.2
- update file paths in SKILL.md for clarity
v1.0.1
No functional changes; minor documentation update only. - Updated the "Files used by this skill" section in SKILL.md to show full file paths for clarity. - No changes to code or functionality.
v1.0.0
Initial release of bdjobs-job-apply skill for OpenClaw: - Automates BDJobs job search, matching, applying, undoing applications, and updating expected salary. - Onboards users by saving BDJobs credentials, resume, and job preferences. - Performs intelligent job matching against user resume and preferences for auto-apply suggestions. - Supports cancellation of previously applied jobs and salary updates for applied positions. - Manages user data and job history within dedicated workspace files.
元数据
Slug bdjobs-job-apply
版本 1.0.5
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 6
常见问题

BDJobs Job Apply 是什么?

BDJobs job search, matching, applying, undoing, and salary-update automation for OpenClaw. Use when the user wants to set up BDJobs credentials/preferences,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 155 次。

如何安装 BDJobs Job Apply?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install bdjobs-job-apply」即可一键安装,无需额外配置。

BDJobs Job Apply 是免费的吗?

是的,BDJobs Job Apply 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

BDJobs Job Apply 支持哪些平台?

BDJobs Job Apply 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 BDJobs Job Apply?

由 Sazidul Alam(@sazidulalam47)开发并维护,当前版本 v1.0.5。

💬 留言讨论