Add generic external ATS applier

Best-effort form filler for any career page with standard HTML forms.
Handles single-page and multi-step flows, resume upload, login wall
and CAPTCHA detection. All ATS stub handlers now delegate to generic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 20:02:55 -08:00
parent b19c1ee77e
commit 260f996ebc
8 changed files with 177 additions and 18 deletions

View File

@@ -33,7 +33,11 @@ import {
APPLY_RUN_TIMEOUT_MS, PER_JOB_TIMEOUT_MS, RATE_LIMIT_COOLDOWN_MS
} from './lib/constants.mjs';
const DEFAULT_ENABLED_APPLY_TYPES = ['easy_apply', 'wellfound'];
const DEFAULT_ENABLED_APPLY_TYPES = [
'easy_apply', 'wellfound',
'greenhouse', 'lever', 'ashby', 'workday', 'jobvite',
'unknown_external',
];
const isPreview = process.argv.includes('--preview');
@@ -387,7 +391,9 @@ async function handleResult(job, result, results, settings, profile, apiKey) {
break;
case 'skipped_honeypot':
console.log(` ⏭️ Skipped — honeypot`);
case 'skipped_login_required':
case 'skipped_captcha':
console.log(` ⏭️ Skipped — ${status.replace('skipped_', '')}`);
updateJobStatus(job.id, status, { title, company });
appendLog({ ...job, title, company, status });
results.skipped_other++;