apply
무료Searches for jobs on LinkedIn, filters by profile Must-haves, applies via Easy Apply, registers each application in DB.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Safe Postgres CLI. Reads DATABASE_URL from .env, runs SQL, prints JSON. Read-only by default.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
scripts/db.js is the single entry point to the database. Use it instead of psql or inline pg scripts.
DATABASE_URL from .env automatically. No manual sourcing, no leaked credentials.--write. Prevents accidental destructive SQL.psql in PATH required).--ping shows masked user@host/db only.# Read (default, JSON array out)
node scripts/db.js "SELECT * FROM users WHERE id = <user_id>"
node scripts/db.js "SELECT data->'profile' AS profile FROM users WHERE id = <user_id>"
# Write (requires --write)
node scripts/db.js "INSERT INTO applications (user_id, platform, company, role, url, status, data) VALUES (<user_id>, 'linkedin', 'Acme', 'Eng Manager', 'https://...', 'applied', '{}'::jsonb)" --write
node scripts/db.js "UPDATE users SET data = jsonb_set(data, '{linkedin_profile}', '\"https://...\"') WHERE id = <user_id>" --write
# Introspection
node scripts/db.js --tables
node scripts/db.js --schema applications
node scripts/db.js --ping
pg scripts in skills, never call psql directly.SELECT/WITH/SHOW/EXPLAIN/VALUES/DESCRIBE is refused without --write.[{...}, ...]. Writes print {rowCount, command}.DATABASE_URL. If you need to confirm connectivity, use --ping (masked).' -> '').data->'key' (jsonb) or data->>'key' (text). Use jsonb_set for updates.Tables live in public. Discover with --tables and --schema <table>. Known tables:
users — single row (repo owner). data JSONB holds profile, job_preferences, style_profile, platforms, linkedin_profile.applications — user_id, platform, company, role, url, status, applied_at, data.messages — recruiter / contact messages.applications tableColumns: id, user_id, platform, company, role, url, status, applied_at, data
Platforms used:
linkedin = Easy Apply jobslinkedin_invite = connection requestsemail = direct emails to recruitersteamtailor = applications via Teamtailor (with LinkedIn auth, email verification, Connect)humand = applications via Humand.co<company>_career_site, etc. = specific career sitesStatus values (pipeline stages, canonical):
Active stages (left to right in the kanban):
discovered = found but no action takencontacted = invite/email sent, no formal applicationapplied = application submittedin_review = company reviewing, no responsescreening = screening call scheduled/doneinterview = technical interview in progressoffer = offer received, negotiatinghired = accepted, startingClosed stages (shown with --closed):
rejected = company rejectedwithdrawn = user withdrewskipped = decided not to apply / not a fitdata JSONB: include source, match (high/medium/low), location, tech array, stage_history array (audit trail of status changes), and any relevant metadata.
lib/browser-helpers.js provides atomic helpers that prevent session death between browser calls:
const {
goto, evalJS, evalJSON, clickByText,
waitFor, waitForSelector, waitForText,
snapshotReliable, dismissModals,
dbQuery, dbWrite,
// Atomic helpers (prevent session death between calls)
openAndEval, openAndEvalJSON,
gotoAndEval, gotoAndEvalJSON,
} = require('./lib/browser-helpers');
Atomic helpers chain open/goto + eval in a single shell command to prevent session death between calls:
// Open browser + extract in one call (no session death risk)
const jobs = openAndEvalJSON(
'https://www.linkedin.com/jobs/search/?keywords=...',
`(function(){ ... return JSON.stringify(...); })()`,
{ session: 'my-session', headed: true }
);
// Navigate + extract in one call (browser already open)
const emails = gotoAndEvalJSON(
'https://mail.google.com/mail/u/0/#all',
`(function(){ ... return JSON.stringify(...); })()`,
{ session: 'my-session' }
);
onboarding (.env + DB must exist).profile, apply, news, daily.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Searches for jobs on LinkedIn, filters by profile Must-haves, applies via Easy Apply, registers each application in DB.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Control a dedicated browser via agent-browser (Vercel). Use when automating web apps, scraping authenticated sites, filling forms, or navigating SPAs. Do NOT use for desktop apps or API-only integrations.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Periodic routine that runs news, cleans up inbox and applies if there's no recent activity. Designed to run 1-2 times per day.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Opens a local web dashboard that visualizes the job application pipeline, funnel stats, recent messages, and target company status. The agent opens it at the end of a round so the user can visually review the pipeline.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Autonomous user preference detection, storage and injection. The agent detects preferences from conversation, saves them to Postgres, and loads active ones at the start of every flow.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Reviews job application updates from Gmail, LinkedIn and platforms. Prepares drafts, presents executive summary by priority, validates with the user and sends replies.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.