Live on the Chrome Web Store ↗

Never fill the same job application twice.

AppStride is a browser extension that fills job applications from your real resume, while you watch.

It stops at the questions only you can answer. And it never clicks Submit. That's yours.

boards.greenhouse.io/northwind/apply
Senior UX Researcher
Northwind · Application
Attach file
Attach file
Northwind · Senior UX Researcher
BROWSER EXTENSION
READY
7 fields detected · ready to fill
Full name
Email
Phone
Resume/CV
Work history
Notice period
Desired salary
the browser extension, filling a real application · it pauses where only you can answer
scroll

The extension is half of it.

Everything it fills lands in one home: your applications, your responses, your pace.

Home
56
applications sent
14%
Response Rate
10
this week · 1.8× your average
5
weeks applying, current streak
Application velocity
56 sent all time · 27 drafts started but never sent
Applications
56 applications sent · 8 responses · 18 this week
Kyndryl · Senior Experience Designer
Extension · Workday
Submitted
Sigma Computing · Customer Success Architect
Extension · Greenhouse
Interview
Peloton · User Researcher
Extension
No Response
7 applications have gone quiet
No reply after 21+ days — that's normal. Tidy them into "No response" so they stop cluttering your pipeline.
representative data · real UI
The why

This exists because of one bad night with a form.

01

I uploaded my resume. Then it asked me to type it back in.

02

New company, new Workday account, new password. Nothing carried over. I typed it all in, again.

03

It was mind-numbing.

04

But I did it anyway, carefully, every time. Because I care what goes out with my name on it.

05

The system doesn't. It wastes your time and never once respects it.

06

So I built one that does. It takes the mindless part. You keep the part that's actually you.

Why nothing else fit

Three kinds of tools already existed. None of them were doing the job.

Mass-apply bots
LazyApply · UseMassive

Fire off applications while you sleep. You're along for the ride.

Passive autofill
Simplify

Fills the form in front of you, then walks away. Nothing tracks what happened next.

A co-pilot
AppStride

Fills in front of you, tracks everything, helps you write in your voice, and never sends anything for you.

AppStride is a co-pilot, not an autopilot. You stay in the seat. The tool moves the work forward, and you decide what goes out.

Every decision that follows started from a real moment in a real person's job search.

The three rules

Before any feature was built, three rules were written. Everything the product does, and refuses to do, follows from them.

I
Nothing leaves without me seeing it.
The extension fills the form. Only you click Submit.
II
It has to sound like me, not like a tool.
Cover letters built from your own writing, never template prose.
III
It has to give the time back, not steal it.
The busywork disappears. The choices stay yours.

The rest of this site shows each rule built into the product: what it refuses to do, how it keeps your voice, and what it hands back.

Rule one

Nothing leaves without me seeing it.

The fear was never a missed field. It was your name on something you never read. So auto-submission, the category leader's entire premise, was cut. The extension fills, attaches, and flags. It cannot send.

The demo
Try it yourself.
Drive the real fill on a real Greenhouse form. Three clicks, start to finish.
1Click Fill this page2Answer the one question it refuses to guess3Submit stays yours
boards.greenhouse.io/glean/jobs/ai-outcomes-manager-east
AI Outcomes Manager, East
Glean · Application
Attach file
Attach file
("negotiable" "market" and similar responses will not be reviewed)
← pressed by you, never by AppStride
Glean · AI Outcomes Manager
13 fields detected · ready to fillREADY
RésuméReyes_Resume_2026.pdf
We never fill password fields.
We never submit anything. You click Submit yourself.
Nothing is read until you click Fill.
13 fields detected · ready to fill
a faithful replay of a real session. the real extension is on the Chrome Web Store.

It filled twelve things and declined the thirteenth: the one where a wrong answer, sent under your name, would have cost you. That's why a human stays in the seat.

Rule two

It has to sound like me, not like a tool.

When I show up to an interview, I want to know they invited me because I'm a great candidate on my real credentials.

Generic tools write everyone the same cover letter. This one assembles yours from lines you already wrote, and holds itself to one test: did I write this? Like rule one, the promise is backed by hard checks you can look at. Here are four real pieces of the product:

How this was composed
real UI · composition-view.tsx:1995
P1Written fresh · the opening hookGENERATED
P2Written fresh · why this companyGENERATED
P3Adapted from your own saved writing · you starred this paragraphYOUR WRITING
P4Drew on your past answer · From Meridian Labs · 45% match · You confirmed thisPAST ANSWER
P5Adapted from your own saved writing · the closingYOUR WRITING

Every paragraph of a cover letter, labeled with where it came from. The letter shows its own seams. Synthetic sample; real UI.

"Sounds like you," written as actual code
Two checks from the shipped product. They run every time it writes anything for you.
def _check_anti_echo(rewritten, jd_text=None):
    """Check for 5+ word verbatim matches
    against JD text (rule 8)."""
    if not jd_text:
        return True
    jd_words = jd_text.lower().split()
    words = rewritten.lower().split()
    for i in range(len(words) - 4):
        chunk = " ".join(words[i : i + 5])
        if chunk in " ".join(jd_words):
            return False
    return True
In plain English

If five words in a row match the job posting, the sentence does not ship. "Sounds like me" is a check that runs on every generation, not a promise.

def _check_anti_fabrication(original, rewritten):
    """Check that the rewrite doesn't
    introduce new metrics (rule 9)."""
    o = set(re.findall(r"\d+[\d,.]*%?", original))
    r = set(re.findall(r"\d+[\d,.]*%?", rewritten))
    return len(r - o) == 0
In plain English

Any number you never claimed gets stripped before it ships. It cannot invent a "40% improvement" for you, so everything on the page is defensible in the room.

bullet_rewriter.py · real shipped code
You never classify your own correctionsreal behavior · correction learning

When you fix a field, the system infers why it was wrong and routes the fix to the right memory on its own. Five causes, five destinations:

You do one thing
Fix a field the agent got wrong
Wrong answer for this platform's field→ FIELD MAPPING
Your saved answer went stale→ SAVED ANSWERS
A question it had never seen→ Q&A BASE
It picked the wrong resume bullet→ TAILORING SIGNAL
The bullet itself needs a rewrite→ RESUME CONTENT

The agent's confidence also recalibrates to your history: it asks more where it's been wrong, less as it earns trust. Fix it once, and the next application already knows.

Evidence, not self-ratingsanalytics.py:434
MissingThinStrong

Your skills are graded by how much of your real history backs them, never by a self-rated slider. Nothing lands on a resume you couldn't defend in an interview. Every status pairs an icon with its color, a rule that comes from the founder's own color blindness and holds across the product.

Honest, even here

Everything above is real and shipped. It also has limits, and a page about honest self-representation should name them:

The "How this was composed" panel is collapsed by default. Most people may never open it.

The Missing / Thin / Strong skill grades live in the analytics view, not yet on the main skills page.

And there's no score for how much a letter sounds like you. The writing is built from yours; it isn't graded against it.

Rule three

It has to give the time back, not steal it.

Speed is the easy promise. Auto-apply tools are fast because they send applications you've never seen. AppStride makes a different trade: the busywork takes seconds, and every real decision still passes through your hands.

The same Workday application, twice · every block is a minute
By hand0 min
One application, by hand. New account, new password, every field retyped.
With AppStride0 min
The same form. AppStride fills, you review, you submit.

Josué's own applications, timed. Industry guides put a manual Workday run at 20 to 45 minutes, and an Appcast survey found 73% of applicants abandon any application that passes 15 minutes. Source ↗

And it compounds
Application #14 min · asks you 1 thingApplication #53 min · asks nothingApplication #202 min · mostly review

Every answer you give it once is answered forever. The compensation question you just typed in the demo? It never asks it again. Application #20 is twice as fast as #1, and by then the form is a formality.

And the hours are only half of it. The hardest part of a job search is what comes after: 25 applications over three weeks, 3 rejections, 22 that never answered at all. Every morning you check, and there's nothing.

say searching hurt their mental health72%
Resume Genius survey, via Forbes, 2024 ↗
replies the average seeker gets from 30 applications4
Insight Global survey, 2023 ↗

Every number links to its source. The point of the last one: 22 silences out of 25 is normal, and no tracker tells you that.

25 applied · 3 rejected · 22 —
no framing. no context. the silence, as every tracker renders it.

Silence is a named, normal state here, never a personal failure. And no cheerleading: hollow "Success!" at someone who's struggling is its own kind of disrespect. Context, not confetti.

The design system

A leather notebook, not a dashboard.

Every tool in this category is cold blue software. This one is warm charcoal, cream paper, and a single line of copper, because looking for work is personal, repetitive, and high-stakes, and it deserves warmth.

01 · One palette
warm charcoal · the ink
warm cream · the paper
copper · the one accent
the ascent

No blue-gray anywhere. Copper appears at most three times a screen, because an accent that shows up everywhere stops being an accent and becomes a background. The gradient appears exactly once: in the mark.

02 · Three typefaces, three jobs
Your application is readyDM Serif Display · the warm moments
Review the form, then click Submit when you're happy with it.DM Sans · everything you read
9 of 12 filled · 1 needs youJetBrains Mono · the numbers

The mark: a stride upward, a small kickback. Copper to gold to teal, drawn once, used everywhere.

03 · The real components, rendered live
SubmittedInterviewOfferNo Response

Not screenshots. Everything in this row is the product's real component library, rendered live on this page. Copper is reserved for the one action that matters most on a screen; presses settle 1px down, like a real button.

04 · The states nobody photographs
No applications yet
When you apply to your first role, it lands here.
Empty
Reading the form…
Loading
Something went wrong. You can retry.
Error

Empty, loading, error: the unglamorous majority of real design. And the same restraint as the rules: one bounce, saved for completion. No confetti, ever.

Where it stands

Shipped. Live. Moving.

Shipped
Live in the wild

The extension is on the Chrome Web Store. The web app is live at appstride.io. Real applications run through both every week, starting with the founder's own search.

In motion
Being tested on real people

A five-user usability study is running right now, led by the founder, a UX researcher by trade. Findings ship straight into the extension.

Next
Finding its people

Growth starts where job seekers already are: Reddit, TikTok, Product Hunt. Organic first, paid when the numbers earn it.

Live on the Chrome Web Store

Never fill the same application twice. Starting with your very next one.

Free to install. It reads nothing until you click Fill, and Submit stays yours.

Add AppStride to Chrome
free · installs in under a minute · or start in the web app ↗

Built, researched, and told by Josué, a senior UX researcher: eight years across Meta, Accenture, The Home Depot, and federal consulting, with an M.S. in human-computer interaction.

You just read this the way the product works.

You set the pace. You skipped what you didn't need. Nothing was pushed on you. Because you're a researcher, a designer, an engineer. Not a Workday operator.

It takes the mindless part. You keep the part that's actually you.

contactportfolio ↗get the extension ↗try the live product ↗
appstride.io/story · the working product lives at appstride.io