AI Tools

Inside Auto-Apply: How We Rank, Tailor, and Refuse to Send Your Applications

Uma Mahesh Bandaru Uma Mahesh Bandaru August 13, 2026 6 min read
Inside Auto-Apply: How We Rank, Tailor, and Refuse to Send Your Applications

Every tool in the auto-apply category makes the same promise and splits into two camps on how it keeps it. The first camp – Simplify, Teal, Careerflow – tailors your application well and then stops, because submitting on your behalf is where the risk lives. The second camp submits, and their review pages are full of people whose LinkedIn accounts got restricted.

We built Auto-Apply to sit in the gap, and the design decisions that put it there are mostly decisions about what not to automate. This is the walkthrough of the actual pipeline: where the jobs come from, how the ranking works, what the AI is allowed to write, and the two places where the system deliberately stops and refuses to continue without you.

If you want the strategic question rather than the mechanical one, we covered whether auto-applying is worth it at all separately. This post assumes you’ve decided it might be.

Where the jobs come from

Most of the queue comes from applicant tracking systems directly, not from an aggregator. Greenhouse, Lever, and Ashby all expose their job boards through public APIs (Greenhouse documents theirs here, Lever’s postings API is on GitHub, Ashby publishes theirs too), which means a crawler can read the company’s own board rather than a copy of it.

The practical difference shows up in staleness. A posting on a company’s Greenhouse board exists as long as that company’s recruiting team says it does. The same posting on an aggregator can outlive the role by weeks, which is how volume tools end up applying to jobs that closed in March.

An aggregator does get used, but only as a top-up, and only when a search returns fewer than 12 results from the ATS crawl. If the direct sources cover your search, the aggregator never gets called.

How ranking works, and why it’s a cheap model

Every discovery run scores each candidate job against your resume and returns a number from 0 to 100 plus a short reason. Only jobs at or above your minimum score get queued. You set that threshold.

The scoring runs in parallel chunks of 50 jobs on a deliberately small, fast model. That choice gets questioned, so here is the reasoning: ranking is roughly 80% of a discovery run’s total latency, and the task itself isn’t hard. You are comparing a short job snippet against a resume summary and producing a number. A frontier model is slower, costs more, and doesn’t produce a meaningfully better ordering on a task that simple. We save the expensive model for the writing.

A run defaults to 30 jobs and caps at 200. Nobody needs a 200-job queue, and a queue you don’t read is the same as no queue.

The location logic is fussier than you’d expect

Location matching is where most tools quietly fail, and the failure is invisible until you notice you’ve applied to three roles in a city you can’t work in.

Matching happens at city level, with alias handling, because job boards are inconsistent about names. Bangalore and Bengaluru are the same place. So is a posting that spells it “Bagaluru”, which is a real thing that appears in real listings. Beyond aliases:

  • Bare country strings pass. “United States” is a legitimate scope.
  • Unknown specific cities don’t pass. “Fort Walton Beach, FL” isn’t a fuzzy match for anything, and treating it as one is how wrong-country applications happen.
  • Region-scoped remote roles stay in their region. “Remote / Berlin” never leaks into a search for remote roles in Canada.

Seniority is multi-select, and titles that carry no seniority marker are treated as ambiguous and kept rather than dropped. Dropping them would filter out a large share of real postings, since plenty of companies just say “Software Engineer” and sort it out in the screen.

What the AI is allowed to write

Three separate generation steps run before an application is ready, and each one has a different rule about invention.

Cover letter and screening answers. Grounded only in your resume. The model reads the job description to decide what to emphasize and which experience to lead with, and it writes from what’s already in your document. It doesn’t get to decide you have Kubernetes experience because the job description mentions Kubernetes.

Resume tailoring. This one rewrites existing content toward the job description: the headline, the summary, the phrasing of bullets. Rewrites, not additions. If a bullet would be stronger with a number and no number exists in your resume, the system doesn’t invent one. It inserts an [ADD METRIC] marker instead, and that marker blocks submission until you fill it in.

That last mechanism is the piece I’d point at if someone asked what actually separates this from the volume tools. Fabrication in this category isn’t usually a model failing. It’s a product decision to let the model fill gaps, because a fabricated metric makes a better-looking application and nobody checks until an interview. Making the gap a hard blocker means the tool can’t ship a lie on your behalf, even when that would improve the output. It also means the tool sometimes refuses to finish, which is worse UX and the right call.

Form filling. A stronger model handles the actual form, because ATS forms are a mess of inconsistent field labels and custom screening questions, and instruction-following on messy DOM is exactly the task where a bigger model earns its cost. If it returns unusable output, the request falls back to a model from a different provider rather than retrying the same one.

The two places it stops

It stops before sending. Every prepared application lands in a review queue with the generated fields visible. Nothing is submitted until you read it and approve it. This is the whole product stance in one sentence, and it’s also why we will never win a comparison on raw volume.

It stops at your login. Auto-Apply doesn’t drive your LinkedIn or Indeed session. Tools that do get accounts restricted, and the restriction lands on you, not on the vendor. If you want the detail on why Easy Apply specifically is a trap, we wrote the LinkedIn Easy Apply truth.

Related, and worth reading before you worry about it: whether ATS platforms detect AI-written applications. Briefly: the major vendors are building identity verification, not prose classifiers, and the two get conflated constantly.

What it costs

Auto-applies are metered per month and sit alongside the shared credit pool that the rest of the toolkit draws from.

Plan Price Auto-applies / month
Free $0 10
Starter $19 50
Professional $49 150
Ultimate $99 400

Four hundred a month at the top plan is a deliberate ceiling. Competitors advertise 1,500 a day. If you want the argument about why that number is bad for you rather than good, how to apply to 100 jobs a week has it, and the summary is that response rate falls faster than volume rises.

What I’m not sure about

Two honest gaps.

The first is that I don’t know where the quality-versus-volume line actually sits, and I distrust anyone who claims a precise number for it. Tailored applications do better than blasted ones. How much better, for which roles, at what seniority, isn’t something we have clean data on, and the numbers floating around this industry mostly trace back to vendor marketing.

The second is ghost jobs. Reading a company’s own board removes the stale-repost category, and it doesn’t remove postings a company leaves open with no intent to hire. Nobody in this space filters those well, us included. We have written about the problem without solving it, which is an uncomfortable position to publish from and an accurate one.

If you want to see the queue on your own resume, the free plan includes 10 auto-applies a month, which is enough to read a few tailored drafts and decide whether the tailoring is any good. Reading three of them will tell you more than this post did.

Uma Mahesh Bandaru

Written by

Uma Mahesh Bandaru

Writes about live interviews, sales calls and meetings, and how real-time AI assistance changes each of them.