Install
openclaw skills install bdjobs-job-applyBDJobs job search, matching, applying, undoing, and salary-update automation for OpenClaw. Use when the user wants to set up BDJobs credentials/preferences, search fresh non-applied jobs, inspect job details, auto-apply to matched jobs, cancel an application, or update expected salary.
openclaw skills install bdjobs-job-applyUse this skill to help a user manage BDJobs job searching and applying without needing to know APIs or code.
data/resume.mddata/userDetails.jsondata/loggedInData.jsondata/appliedJobIds.jsondata/notLikedJobIds.jsonWhen the user first sets up this skill, ask for these values in plain language:
everyDayApplyCount (default: 2)everyDayCronTime (default: 12:00 PM)isFresher (yes/no)Experience in yearsjobLocation (optional, leave blank for all)Save them in:
data/userDetails.jsondata/resume.mdIf the user has extra search filters or matching rules, store them in data/preferences.json.
Before search/apply work, always ensure data/loggedInData.json exists.
If missing:
ChecKUsernameguidIdLogintoken, refreshToken, encryptId, decodeId, and guidId to data/loggedInData.jsonIf login returns 401 at any point:
ChecKUsername againLogin againdata/loggedInData.jsonWhen the user asks for fresh jobs:
data/suggestedJobs.jsonscripts/bdjobs-refresh-applied.js to update data/appliedJobIds.json from GetApplyPositionInfoV1scripts/bdjobs-fetch-jobs.js with --keyword, --isFresher, --postedWithin, --pg, and --jobLocation to fetch raw job lists from GetJobSearchscripts/bdjobs-filter-jobs.js to exclude already-applied and not-liked job IDs before Job-Detailsscripts/bdjobs-job-details.js to fetch full job detailsdata/resume.md and data/preferences.jsonscripts/bdjobs-rank-jobs.js to save the top 5 matched jobs into data/suggestedJobs.jsondata/suggestedJobs.json to the userRecommended match threshold:
AI matching details:
data/resume.md and data/preferences.jsonWhen the user asks to auto-apply:
JobApplyMinimumSalaryexpectedSalary in JobApplyPostJobApplyPostmatchingScoredata/appliedJobIds.jsondata/lastApplyResult.jsonWhen the user asks to undo an application:
UndoJobApply with job ID and FormValuedata/appliedJobIds.jsondata/lastUndoResult.jsonWhen the user asks to update salary for an applied job:
UpdateExpectedSalarydata/lastSalaryUpdateResult.jsonImportant files live inside this skill folder:
data/resume.mddata/userDetails.jsondata/loggedInData.jsondata/appliedJobIds.jsondata/notLikedJobIds.jsondata/preferences.jsondata/suggestedJobs.jsondata/lastApplyResult.jsondata/lastUndoResult.jsondata/lastSalaryUpdateResult.jsonRun scripts from the skill folder, not the workspace root:
scripts/init-job-profile.jsscripts/bdjobs-login.jsscripts/bdjobs-refresh-applied.jsscripts/bdjobs-fetch-jobs.jsbdjobs-fetch-jobs.js accepts:
--keyword=...--isFresher=true|false--postedWithin=... (optional day count, any number)--pg=...--jobLocation=...scripts/bdjobs-filter-jobs.jsscripts/bdjobs-job-details.js accepts --jobId=... or a positional job idscripts/bdjobs-rank-jobs.jsscripts/bdjobs-apply.jsscripts/bdjobs-undo.jsscripts/bdjobs-update-salary.jsUse the resume and these signals:
data/preferences.jsonWhen presenting jobs to the user:
When the user wants automation, do the work directly with the scripts.