Skip to main content
A good application answers the questions this company asked, in words that fit this role, and that is why each one takes an hour. This program sends an agent to read each posting you picked and its application form, and to draft every answer from your resume. Each draft lands in a file. You read it, change anything you like, and approve it; only then does a second run complete the form with your approved answers, attach your resume and submit. It is for a handful of roles you chose and read. It does not look for jobs, and it is not for sending one application to hundreds of postings.

What you need

  • An Outcrawl API key in OUTCRAWL_API_KEY.
  • Your resume twice: resume.md, the text the agent tailors from, and resume.pdf, the file it attaches. A run can attach a file to a page but cannot read it, so the text copy is what it works from.
  • The postings. Greenhouse, Lever and Ashby forms need no account, which is what this program expects.
  • A terminal. The program asks you about each draft.

How it works

1

Pass 1 reads the posting and drafts

An agent run reads the posting and its form without typing into it, and answers a schema: every question as the form asks it, whether it is required, a drafted answer, a cover letter if the form takes one, and the requirements your resume does not show. Two rules are enforced: Only use job-boards.greenhouse.io. (each posting’s own site) and Never send, post or upload anything.
2

You approve each draft

Every draft is saved as applications/<posting>.json. The program shows the role and the gaps, and waits while you edit the file. Type submit to approve it or press Enter to skip it. No run is waiting on you: the approval sits between two runs.
3

Pass 2 submits what you approved

A second run reads the file as you left it and completes the form with those answers, word for word. resume.pdf goes to the run as a file straight after submit; it is destroyed when the run ends. The rule Never create an account or sign up. is enforced, so a form that wants an account comes back to you unsubmitted.
4

You get the confirmation

Each run answers whether it submitted, the confirmation the site showed, or what is missing, with a replay link to watch exactly what it did.
The approval is the split between the two runs, not a rule. A button labelled “Submit application” is not one Outcrawl’s irreversible check recognises, so no rule could block it. The only run told to submit is the one that starts after you type submit.

The program

What you get back

A draft, applications/figma-jobs-5498127004.json, before you edit it:
After pass 2, one row per approved application:
Add the missing answer to that file and run pass 2 for it again.

What it costs

An agent run is billed for the model’s usage, browser time and proxy usage, per pricing. A typical run costs about 15 credits a minute all in, proxy usage included. That is an estimate: the real figure depends on the task, and a page-heavy form costs more.
  • A draft takes about 75 s: about 19 credits.
  • A submission takes about 2.5 minutes: about 38 credits.
So about 57 credits an application you send, and 19 for one you skip. Each draft’s caps.budget is 75 and each submission’s is 115. On the Free plan a run takes one file of up to 2 MiB; Builder takes 5 files of up to 4 MiB.

Make it yours

  • Watch a submission as it happens: log the watchUrl from job.submitted, open it, and press take control in the live viewer to correct a field yourself before handing back. While you hold the wheel, the run bills browser time (1 credit a minute) and proxy usage only, with no model usage.
  • Keep one resume per kind of role (resume-design.md, resume-research.md) and pick one per posting.
  • Keep a log: append each outcome, with the date and replay link, to a CSV of everything you applied to.
  • Ask pass 1 for a short note on each gap, so you can decide whether to apply at all before approving.

Files

Attach a file to a run.

Agents

Runs, caps and typed results.

Rules

Enforced rules and guidance.

Human in the loop

Take and release control of a live run.