apply
無料Searches for jobs on LinkedIn, filters by profile Must-haves, applies via Easy Apply, registers each application in DB.
日本語の概要は準備中です。原文の説明を表示しています。
Captures and structures the user's profile from CV + questionnaire to make decisions on their behalf. Ensures quality matching.
日本語の概要は準備中です。原文の説明を表示しています。
実行スコア 未検証
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
memory skill):
node scripts/db.js "SELECT category, key, value, confidence, source FROM preferences WHERE user_id = <user_id> AND status = 'active' ORDER BY category, key"
node scripts/db.js "SELECT data->'profile' AS profile, data->'job_preferences' AS job_preferences, data->'style_profile' AS style_profile FROM users WHERE id = <user_id>"
Step 1: CV analysis → extract experience, sector, profile, inferred seniority
Step 2: Gap questionnaire → only what the CV doesn't clarify (adaptive to inferred profile)
Step 3: Current situation + expectations → employment status, urgency, salary, work mode, availability
Step 4: Strategy → targets, sources, aggressiveness (informed by everything above)
Step 5: Polish suggestion → align CV and LinkedIn profile to the job target to maximize matches
Ask user for CV (URL or PDF). Extract:
From the CV data, infer:
| Signal from CV | Inferred field | Used for |
|---|---|---|
| Years of experience, previous roles | career_stage (intern, junior, mid, senior, staff, principal, director+) | Which questionnaire blocks to show, seniority filtering |
| Team size managed, titles with Lead/Manager/Head | has_management (bool) | Whether to show management-related questions |
| Core competencies and tools | core_skills | Step 2 gap questions on skill preferences |
| Industries of previous employers | industry_history | Step 2 gap questions on industry preferences |
| Company sizes (startup vs corporate) | company_size_history | Step 2 gap questions on company size |
| Sector or functional area | sector | Step 2 gap questions, platform tiering |
| Languages and publications/conferences | visibility_level | Outreach tone, referral strategy |
Save to users.data.profile as JSONB, including the inferred fields:
node scripts/db.js "UPDATE users SET data = jsonb_set(data, '{profile}', '<json>'::jsonb) WHERE id = <user_id>" --write
The inferred profile is preliminary. Step 2 confirms or corrects it.
Not a fixed set of blocks. The agent generates questions based on what the CV already answered clearly. Only ask about gaps.
Each answer must have a weight: Must (non-negotiable), Strong (strong preference), Nice (would be a plus).
career_stage and has_managementcareer_stage is junior/midhas_management = true or user expressed leadership aspirations)industry_history shows concentration, confirm rather than ask open-ended)Save to users.data.job_preferences as JSONB with weights:
node scripts/db.js "UPDATE users SET data = jsonb_set(data, '{job_preferences}', '<json>'::jsonb) WHERE id = <user_id>" --write
Ask the user directly. These are not inferable from a CV.
Save to users.data:
node scripts/db.js "UPDATE users SET data = jsonb_set(data, '{availability}', '{\"preferred_hours\":\"<start>-<end> AR\",\"timezone\":\"<tz>\",\"blocked\":{\"<day>\":\"<start>-<end> (<reason>)\"}}') WHERE id = <user_id>" --write
The news flow uses this to filter available slots from scheduling links without asking the user each time.
Now that the agent has the full profile (CV + gaps + situation), it can propose a strategy informed by everything above.
See the strategy skill for the full flow. Summary:
career_stage is junior/mid: "Are you open to roles above your current level, or only same-level matches?" instead of "IC or Manager?"career_stage is senior+: "Would you accept IC roles or only Manager?" (only if has_management = true)preferences.workflow.strategy_level + users.data.strategy)The strategy's relax_must_haves resolves dynamically from the user's Must-weighted preferences (see AGENTS.md "Strategy levels"). No hardcoded keys.
After the strategy is defined, the agent suggests aligning the CV and LinkedIn profile to the job target to maximize match chances.
users.data.profile and users.data.linkedin_profile) against the defined job target (role, seniority, sector, must-haves)polish skill which:
One short message, conversational (Gold Rule 7 applies):
"Ahora que sabemos que buscas <role> en <sector>, tu CV y perfil de LinkedIn tienen algunas cosas que se pueden alinear mejor para que te encuentren más fácil. Querés que haga una revisión y te proponga cambios?"
If the user says yes → run polish flow.
If the user says no or later → skip, but remind them once at the end of onboarding.
This runs as part of Step 1 or as a separate phase after Step 5. It's independent of the career stage changes.
Ask the user:
users.data.style_profile as JSONBPLATFORMS.mdusers.data.platforms as JSONBscripts/db.js (see db skill). Read-only by default, --write for savesusers.data as JSONB via jsonb_set:
node scripts/db.js "UPDATE users SET data = jsonb_set(data, '{profile}', '<json>'::jsonb) WHERE id = <user_id>" --write
node scripts/db.js "SELECT data->'profile' AS profile FROM users WHERE id = <user_id>"
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
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.
日本語の概要は準備中です。原文の説明を表示しています。
Safe Postgres CLI. Reads DATABASE_URL from .env, runs SQL, prints JSON. Read-only by default.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。