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.
日本語の概要は準備中です。原文の説明を表示しています。