agentleFS
Jawahars07Jawahars07/ballast/skills/apply-prefill/SKILL.md

apply-prefill

Skill1 starsChanged 2 months agoMITView on GitHub

Drive a browser to pre-fill a job application - form fields, screening answers, the tailored CV - then stop and hand the keyboard back for human review. Never clicks Submit, Apply, or Send under any circumstances. Halts rather than guessing on any field it cannot answer from verified facts.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Write screening answers and any motivation field in the human's voice, per human-voice Part 1.

    line 54
  2. Distinctive:

    Leave the completed form on screen.

    line 78
  3. Very specific:

    Add the tracker row with status Applied only after the human confirms they sent it.

    line 83
  4. Distinctive:

    Never create a credentials file: Use the user's existing logged-in browser profile.

    line 88
  5. Very specific:

    If a persistent browser profile directory is used to keep sessions alive between runs, it must be in .gitignore before the first run, not …

    line 92

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Apply Prefill

Fills the form. Never sends it.

HARD RULE

Never click Submit, Apply, Send, or Postuler. Ever.

This skill fills forms, prepares everything, and then stops with the completed form on screen for the human to review and send. No exceptions, even when asked to "just submit them all".

This protects against terms-of-service bans, corrupted CAPTCHAs, and burned relationships with schools and partners that took years to build. An auto-submit path was added to an earlier version of this system once and removed the following day. It stays removed.

Why halting matters more than filling

An agent that guesses on a form field is worse than no agent. A wrong self-assessed language level, a fabricated salary expectation, or a fuzzy-matched dropdown becomes a written claim on a real application, under a real person's name.

So this skill is built around the halts, not the fills.

Load first

  • facts.md — identity, education, experience. Never invent a metric.
  • profile.yml — target roles, work authorisation wording, comp expectations
  • The human-voice skill — any free-text the human "writes" must sound like them
  • The jd-analyser positioning brief for this specific role

Steps

1. Confirm the posting is live

Open the apply page in the user's real browser session, so their existing logins are used. A page with only a navbar and footer means the role is closed. Stop and mark it discarded.

2. Read the whole form before typing anything

Enumerate every field, its type, whether it is required, and what would satisfy it. Produce a plan. Show the plan before filling. A form read end-to-end first produces far fewer halts than one filled top to bottom.

3. Fill what you can answer from verified facts

Standard fields come from profile.yml: name, email, phone, location, work authorisation, languages, school. Attach the tailored CV built by cv-tailor.

Write screening answers and any motivation field in the human's voice, per human-voice Part 1. Surface every drafted answer to the user inline before typing it into the form.

4. Halt on anything you cannot answer honestly

These halts exist to prevent fabrication. Do not weaken them.

HaltFires when
language_self_assessmentA language level field. Never let a bot round A1 up to B2
salary_requiredA compensation field. The human's number, not an estimate
low_confidence_answerA required question with no confident answer in facts.md
photo_requestedA photo upload. A photo is not a CV
unclassified_uploadA file field whose purpose is unclear
ambiguous_selectA dropdown with no exact match. Never take a fuzzy first hit
unclassified_checkboxA checkbox whose meaning is not certain
fill_verification_failedWrote a value, read it back, got something else
no_form_foundNo form on the page
long_freetextA long motivation field. That is the human's voice, not the bot's

On a halt: stop, name the halt, say exactly what you need, and wait.

5. Stop and hand over

Leave the completed form on screen. Tell the user precisely what is filled, what is not, and what needs their input. They review. They send.

6. Log only after they confirm

Add the tracker row with status Applied only after the human confirms they sent it. Never mark something applied because the form was filled.

Credentials

Never create a credentials file. Use the user's existing logged-in browser profile. A YAML of portal passwords sitting in a project directory is a worse answer than typing a password once, and a far worse answer if that directory is ever committed.

If a persistent browser profile directory is used to keep sessions alive between runs, it must be in .gitignore before the first run, not after.

Honest limits

  • Anti-bot protection on major boards can block automated fill entirely. Fall back to guiding the user click by click rather than forcing it.
  • CAPTCHAs mean immediate hand-off. Do not attempt them.
  • Quality beats volume. Five sharp applications beat fifty generic ones, and the part that converts is the fit narrative, which is the human's job.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.