Files
claw-apply/test_linkedin_login.mjs
Matthew Jackson 8212f97aba refactor: normalize apply statuses, remove dead code, fix signal handler
- lib/apply/index.mjs: add STATUS_MAP to normalize platform-specific statuses
  to generic ones (no_button/no_submit/no_modal → skipped_no_apply).
  Documented all generic statuses for AI/developer reference.
- job_applier.mjs: handleResult now handles skipped_no_apply, default case
  logs + saves instead of silently dropping
- lib/linkedin.mjs: remove dead applyLinkedIn() and detectAts(), clean imports
  (~110 lines removed). Search-only module now.
- lib/wellfound.mjs: remove dead applyWellfound(), clean imports.
  Search-only module now.
- lib/lock.mjs: fix async signal handler — shutdown handlers now actually
  complete before process.exit()
- test_linkedin_login.mjs: add try/catch/finally with proper browser cleanup
- README: update status table with all current statuses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:39:48 -08:00

25 lines
839 B
JavaScript

import { createBrowser } from './lib/browser.mjs';
import { verifyLogin } from './lib/linkedin.mjs';
import { loadConfig } from './lib/queue.mjs';
import { dirname, resolve } from 'path';
import { fileURLToPath } from 'url';
const __dir = dirname(fileURLToPath(import.meta.url));
const settings = loadConfig(resolve(__dir, 'config/settings.json'));
let browser;
try {
console.log('Creating Kernel browser with LinkedIn profile...');
browser = await createBrowser(settings, 'linkedin');
console.log('Browser created, checking login...');
const loggedIn = await verifyLogin(browser.page);
console.log('Logged in:', loggedIn);
console.log('URL:', browser.page.url());
} catch (e) {
console.error('Error:', e.message);
process.exit(1);
} finally {
await browser?.browser?.close().catch(() => {});
console.log('Done.');
}