Fix critical import bugs in linkedin.mjs and wellfound.mjs, clean up status/setup

- linkedin.mjs: LINKEDIN_LINKEDIN_MAX_SEARCH_PAGES → LINKEDIN_MAX_SEARCH_PAGES
  (typo would crash searcher at module load — constant doesn't exist)
- wellfound.mjs: WELLFOUND_WELLFOUND_MAX_INFINITE_SCROLL → WELLFOUND_MAX_INFINITE_SCROLL
  (same — doubled prefix crashes at import)
- status.mjs: remove double-counting ATS from both queue and log
- setup.mjs: replace PM2 instructions with OpenClaw crons

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 12:15:52 -08:00
parent 51ca354c52
commit a498f49b95
4 changed files with 4 additions and 15 deletions

View File

@@ -5,7 +5,7 @@
import { import {
LINKEDIN_BASE, NAVIGATION_TIMEOUT, FEED_NAVIGATION_TIMEOUT, LINKEDIN_BASE, NAVIGATION_TIMEOUT, FEED_NAVIGATION_TIMEOUT,
PAGE_LOAD_WAIT, SCROLL_WAIT, CLICK_WAIT, PAGE_LOAD_WAIT, SCROLL_WAIT, CLICK_WAIT,
EXTERNAL_ATS_PATTERNS, LINKEDIN_LINKEDIN_MAX_SEARCH_PAGES, LINKEDIN_SECONDS_PER_DAY EXTERNAL_ATS_PATTERNS, LINKEDIN_MAX_SEARCH_PAGES, LINKEDIN_SECONDS_PER_DAY
} from './constants.mjs'; } from './constants.mjs';
export async function verifyLogin(page) { export async function verifyLogin(page) {

View File

@@ -5,7 +5,7 @@
import { import {
WELLFOUND_BASE, NAVIGATION_TIMEOUT, SEARCH_NAVIGATION_TIMEOUT, WELLFOUND_BASE, NAVIGATION_TIMEOUT, SEARCH_NAVIGATION_TIMEOUT,
SEARCH_LOAD_WAIT, SEARCH_SCROLL_WAIT, LOGIN_WAIT, SEARCH_LOAD_WAIT, SEARCH_SCROLL_WAIT, LOGIN_WAIT,
SEARCH_RESULTS_MAX, WELLFOUND_WELLFOUND_MAX_INFINITE_SCROLL SEARCH_RESULTS_MAX, WELLFOUND_MAX_INFINITE_SCROLL
} from './constants.mjs'; } from './constants.mjs';
export async function verifyLogin(page) { export async function verifyLogin(page) {

View File

@@ -95,13 +95,9 @@ async function main() {
} }
console.log('\n🎉 Setup complete. claw-apply is ready.'); console.log('\n🎉 Setup complete. claw-apply is ready.');
console.log('\nNext: start the scheduler with PM2:'); console.log('\nScheduling is managed by OpenClaw crons. Run manually:');
console.log(' npm install -g pm2');
console.log(' pm2 start ecosystem.config.cjs');
console.log(' pm2 stop claw-applier # keep off until ready to apply');
console.log(' pm2 save && pm2 startup # survive reboots');
console.log('\nRun manually:');
console.log(' node job_searcher.mjs — search now'); console.log(' node job_searcher.mjs — search now');
console.log(' node job_filter.mjs — filter/score jobs');
console.log(' node job_applier.mjs — apply now'); console.log(' node job_applier.mjs — apply now');
console.log(' node status.mjs — queue + run status'); console.log(' node status.mjs — queue + run status');
} }

View File

@@ -82,13 +82,6 @@ function buildStatus() {
} }
} }
// From log too
for (const entry of log) {
if (entry.status === 'skipped_external_unsupported' && entry.ats_platform) {
atsCounts[entry.ats_platform] = (atsCounts[entry.ats_platform] || 0) + 1;
}
}
// Last applied // Last applied
const applied = [...queue, ...log].filter(j => j.status === 'applied') const applied = [...queue, ...log].filter(j => j.status === 'applied')
.sort((a, b) => (b.applied_at || 0) - (a.applied_at || 0)); .sort((a, b) => (b.applied_at || 0) - (a.applied_at || 0));