Skip to content
Automation
Skill

/job-applier

Apply to jobs from your real browser. Reads job postings, matches requirements against your resume, fills out application forms, and handles multi-step flows on Lever, Greenhouse, Workday, Indeed, LinkedIn Jobs, and other platforms. Reviews everything before submitting. Requires

From plugin
hanzi-browse
17812 skills

Claude Code

$ npx -y skills add hanzili/hanzi-browse --skill job-applier --agent claude-code

SKILL.md

job-applier.SKILL.md
name: job-applier
description: Apply to jobs from your real browser. Reads job postings, matches requirements against your resume, fills out application forms, and handles multi-step flows on Lever, Greenhouse, Workday, Indeed, LinkedIn Jobs, and other platforms. Reviews everything before submitting. Requires the hanzi browser automation MCP server and Chrome extension.
category: life

Job Application Helper

You help users apply to jobs by reading postings, matching qualifications, and filling out application forms in a real browser with their signed-in sessions.

Tool Selection Rule

  • **Prefer existing tools first**: code search, file reads, APIs, and other MCP integrations.
  • **Use Hanzi only for browser-required steps**: navigating job boards, reading authenticated postings, and filling application forms.
  • **If a platform shows a CAPTCHA, rate limit, or bot detection**, stop immediately and tell the user.

Before Starting — Preflight Check

Try calling `browser_status` to verify the browser extension is reachable. If the tool doesn't exist or returns an error:

> **Hanzi isn't set up yet.** This skill needs the hanzi browser extension running in Chrome. > > 1. Install from the Chrome Web Store: https://chromewebstore.google.com/detail/hanzi-browse/iklpkemlmbhemkiojndpbhoakgikpmcd > 2. The extension will walk you through setup (~1 minute) > 3. Then come back and run this again

---

What You Need From the User

1. **Job URL** — link to the job posting 2. **Resume / profile context** — either a file path to their resume, a pasted summary, or "use my LinkedIn profile" 3. **Additional context** — cover letter tone, salary expectations, visa status, availability, or any field-specific answers

Optional:

  • Preferred name or contact info overrides
  • Answers to common screening questions (years of experience, willing to relocate, etc.)
  • Whether to actually submit or just fill and pause for review

---

Phase 1: Gather Context BEFORE Opening the Browser

Read the user's resume

If the user provided a file path, read it. If they pasted text, use that. Extract:

  • Name, email, phone, location
  • Current title and company
  • Skills and technologies
  • Years of experience
  • Education
  • Notable achievements

Store these as structured data — you'll need them for every form field.

Read the job posting

If the job URL is publicly accessible, try fetching it with `WebFetch` or `curl` first — no browser needed for public postings.

If it requires authentication (LinkedIn Jobs behind login, internal company portals), use `browser_start` to navigate and read the posting.

Extract from the posting:

  • Job title, company, location, remote/hybrid/onsite
  • Required qualifications
  • Preferred qualifications
  • Responsibilities
  • Application deadline (if listed)

Match qualifications

Compare the user's profile against the job requirements. Present a brief match summary:

Match summary for [Job Title] at [Company]:

Strong matches:
- [Requirement] — [How the user matches]
- [Requirement] — [How the user matches]

Gaps:
- [Requirement] — [What's missing or weak]

Overall fit: [Strong / Moderate / Weak]

If the fit is weak, tell the user honestly. Ask if they want to proceed anyway.

---

Phase 2: Prepare Application Answers

Before touching the browser, prepare answers for common application fields:

**Standard fields** (auto-fill from resume):

  • Full name, email, phone, location
  • Current company, current title
  • LinkedIn URL, portfolio/website
  • Resume upload (file path)

**Screening questions** (need user input if not provided):

  • Are you authorized to work in [country]?
  • Do you require visa sponsorship?
  • Years of experience in [skill]
  • Desired salary / salary expectations
  • Earliest start date
  • Willing to relocate?
  • How did you hear about this role?

**Cover letter** (generate if needed):

  • Tailor to the specific role and company
  • Reference 2-3 specific requirements from the posting that match the user's experience
  • Keep it under 300 words
  • Match the tone the user requested (professional, conversational, etc.)

Present all prepared answers to the user. Ask them to confirm or adjust before proceeding.

---

Phase 3: Fill the Application Form

Navigate to the application page using `browser_start`. Apply **one job at a time, sequentially**.

Platform-specific patterns

**Lever** (jobs.lever.co):

  • Single-page form with resume upload, standard fields, and custom questions
  • Upload resume first — Lever sometimes auto-fills fields from it
  • Custom questions appear below the standard fields

**Greenhouse** (boards.greenhouse.io):

  • Multi-step form: personal info, resume, custom questions, voluntary self-identification
  • Each step has a "Next" or "Continue" button
  • EEOC/voluntary fields are optional — skip unless the user wants to fill them

**Workday** (*.myworkdayjobs.com):

  • Requires account creation — warn the user before proceeding
  • Multi-page flow with "Save and Continue" between sections
  • Often requires re-entering information already on the resume
  • May have autofill from LinkedIn — use it if the user is signed in

**LinkedIn Jobs** (linkedin.com/jobs):

  • "Easy Apply" is a modal overlay, not a new page
  • May have 1-3 steps within the modal
  • Can upload resume or use LinkedIn profile
  • Some postings redirect to the company's external ATS

**Indeed** (indeed.com):

  • May require an Indeed account
  • "Apply Now" sometimes redirects to external site
  • Indeed's own application flow has screening questions upfront

**Generic ATS / company career pages**:

  • Look for the application form — usually behind "Apply" or "Apply Now"
  • Fill fields based on label matching (name, email, phone, etc.)
  • For file uploads, use the resume file path from the user
  • For dropdowns, select the closest matching option

Filling strategy

1. Navigate to the application URL 2. If the platform auto-fills from resume upload, upload first and let it populate 3. Fill remaining

Read more
@hanzili
Ships withhanzi-browse

The context layer for browsing agents. Your browsing agent keeps failing on real sites — X uses Draft.js, LinkedIn hides the connect button, Gmail needs keyboard shortcuts.

Stars on GitHub

Momentum

stars in total
178
Star history of hanzili/hanzi-browse on GitHub, a chart by star-history.com

Other skills on hanzi-browse.

a11y-auditor

a11y-auditor

Audit web pages for accessibility issues in a real browser. Checks contrast, font sizes, focus indicators, keyboard navigation,…

apartment-finder

apartment-finder

Search for apartments across multiple real estate platforms, compare listings side by side, and help submit inquiries or…

competitor-monitor

competitor-monitor

Monitor competitor websites for changes. Visit a list of URLs, extract pricing, features, positioning, and key content, compare…

data-extractor

data-extractor

Extract structured data from websites into CSV or JSON. Use when the user wants to scrape a list, table, directory, or repeated…

e2e-tester

e2e-tester

Test a web app like a QA person — open it in a real browser, click through flows, and report what's broken with screenshots and…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about job-applier.

Which coding agents can use job-applier?
job-applier installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.