Most applications aren’t rejected. They go quiet.
Nobody followed up and nobody told you anything, so it sits at “applied” for four months. LandEarly closes both ends of that silence: it writes the nudge five business days in and hands it to you, and it moves your statuses on its own from the header fields of mail you’ve already received.
An email lands. The application moves - or pointedly doesn’t.
Never fetched. Under gmail.metadata the Gmail API rejects a full-format read - this is not a rule we keep, it is a request Google refuses. Attachments and calendar contents are never requested at all.
matched · sender is a known ATS domain
two strings in.
no sentence is quoted,
because none was read.
The application was submitted from a +le alias, so the reply came back addressed to it. This identifies the application directly rather than guessing from the sender.
The board moves and a status email goes out. What it can tell you is that the stage changed - not when the call is, or how long it runs, because those live in a body nobody read.
Nothing above asked you to forward anything. The alias in the Delivered-To line is what makes attribution exact - it was added to the address when the application was submitted, so a reply identifies its own application. Without one, matching falls back to the sender’s domain inside a 90-day window, and refuses when two employers share a host.
Day five, still nothing. Here’s the email - in your inbox, for you to send.
The design handoff for this page drew a follow-up addressed to a named recruiter, sent from your account, on the original thread. That is a good product and it is not this one. What LandEarly does is narrower and worth stating plainly: it notices the silence, writes a short draft from four facts it can verify, and puts it where you write from. The last step is yours, on purpose.
GROUNDED IN the four facts above - and nothing else
LENGTH 186 characters · a schema rejects anything outside 30–300
“Approve & send” sends it to you. The email lands in your own inbox, from LandEarly, so you have the text where you write from. Getting it to the company is the Copy button and your own mail client - which is also why the draft has no To: line to be wrong about.
Timing you can predict, because nothing about it is adaptive.
There is no send window, no local-time logic and no holiday calendar in this path - the handoff drew all three. One job runs each morning and asks a single question of every submitted application: has it been 5 business days with no reply and no outcome?
Four rules, none of which is a setting.
Each is enforced somewhere you can check rather than promised in copy - a database constraint, a query clause, a schema bound.
One draft per application, ever - a unique constraint on the application, not a counter someone could reset. There is no second nudge and no sequence.
Four facts go into the prompt and it is told to use only those. There is no résumé and no posting text in this path, so a claim about your work can’t be made up because none is made at all.
It stops writing the moment anything happens: the query skips applications that have left “submitted” or already have a recorded outcome. A reply that landed yesterday means no draft today.
Editable to the last comma before you do anything with it, and the edit is what’s saved - the text you approve is the text that’s kept, not the one the model wrote.
What has to be true before your tracker changes.
Not sentiment analysis, and not a model quietly deciding how your search is going. A subject line and a sender’s domain go in; one of three status moves, or nothing at all, comes out. The list below is the whole vocabulary - and the interesting half of it is the rows that change nothing.
Every automatic move writes a timeline row marked as email-sourced, so a status you didn’t set is always distinguishable from one you did. What that row cannot carry is a quote from the message - there is no stored sentence to show you, because none was ever read.
The honest version: this is right most of the time and wrong occasionally, and it is built to be wrong in the cautious direction. Roughly seven in ten real applicant-system emails are decided by a rule with no model involved; the rest go to a model that gets the same two strings, not the message. When it can’t tell which application a message belongs to it refuses rather than picking, which is why you’ll occasionally be asked a question instead of shown a move.
Two features that share a page and nothing else.
They’re separate in the code and separate in your settings: one is a daily job over your own applications, the other is a scan of mail you gave read access to. Neither needs the other, and turning one off leaves the other running.
Drafting a follow-up
No inbox connection- Waits 5 business days after you apply
- Writes one draft, from four facts about the application
- Delivers it to your own inbox for you to send
- Stops if the application has moved or heard back
Moving a status
Read-only inbox grant- Wakes every 30 minutes and reads headers
- Classifies from the subject and the sender's domain
- Ties it to an application by alias, or by domain within 90 days
- Moves the board only to interview, offer or rejected
Six things neither half will do.
Worth writing down as negatives, because a capability is easy to imply and hard to disprove - and because a design draft for this page implied most of them.
- Email a company on your behalf. Nothing on this page addresses a recruiter. The draft goes to you and you send it.
- Reply to anyone. Both inbox grants are read-only and there is no compose path attached to them.
- Guess a recruiter’s address. No pattern is assembled from a name and a domain, because no recipient is resolved anywhere in this flow.
- Nudge twice. One draft per application, enforced in the database rather than in the code that writes them.
- Move a finished application. Automatic moves depart only from submitted, interview, offer - nothing leaves rejected or withdrawn - they follow the same transition table a drag does, and never re-fire into a status the application is already in.
- Read the mail back to you. There is nothing stored to read - which also means no “open the original” link, because a pointer is not a link.
You’re letting software into your email. Here is the whole of it.
Four things: what gets read, what can’t be, what survives afterwards, and how to end it. Two of these cards are less flattering than the version a handoff drew - the filter runs on our side rather than the provider’s, and disconnecting doesn’t reach into your Google or Microsoft account. Both are stated here rather than in a policy PDF.
Header fields, on threads that survive a filter running on your side
Worth being exact, because the shape is unusual: under gmail.metadata Gmail disables server-side search, so it hands back recent threads and we filter here.
- Five headers, requested by name: From, Subject, Date, Delivered-To, To.
- A thread is kept if the sender is one of 37 applicant-system domains, or a company you applied to, or the subject reads as job mail.
- That third test is a subject pattern, so it can catch a thread you never applied through. The rest of the pipeline then has nowhere to file it, and it is dropped.
- gmail access ·
- gmail.metadata
- outlook access ·
- Mail.Read
The body of the message, and everything hanging off it
Not “filtered out” or “not shown to humans”. For Gmail the API refuses the request - a full-format read under this scope returns an error, not a message.
- Message bodies on Gmail, in every case, including on threads that matched.
- Attachments and calendar contents, on both providers - neither scope asks for them and no code path reads them.
- Sending mail as you, and your contacts. Both grants are read-only; nothing LandEarly sends ever leaves your address.
- The exception, stated plainly: Outlook’s Mail.Read has no headers-only equivalent, and one path does read bodies there - parsing job listings out of job-alert emails. It is off for Gmail entirely.
- bodies stored, either provider ·
- NONE
- sender names or addresses stored ·
- NONE
4 fields - and not one of them is text from your mail
The whole evidence record for a detected outcome, in full. The table has no column for a subject, a snippet or a sender.
- provider · threadId · messageId · fromDomain
- The message id is a pointer, not a copy - enough to prove which message a status came from, useless for reading it back.
- The domain is the only piece your match queue can show you, which is exactly why that screen asks which application this is rather than showing you the mail.
- Outcome rows are append-only and included in your account export, so what is held about your inbox is a file you can download and read.
- quoted sentence stored ·
- NO - NONE EXISTS
- row history ·
- APPEND-ONLY
One button, and the token is gone from our side before the page reloads
No email to support and no exit survey. What it does and doesn’t do are both worth knowing.
- The stored credential is hard-deleted, not marked inactive, and scanning halts on the same click.
- It does not call Google or Microsoft to revoke the grant - the entry stays listed in your account with them until you remove it there, and the link to do that is on the settings page.
- Your applications, statuses and outcome rows stay exactly where they are. They simply stop moving on their own. Deleting them is the account-wide delete, not this switch.
- Drafts keep coming. The two halves are genuinely separate - the draft cron never looks at whether an inbox is connected.
- connection called stale after ·
- 2 HOURS
- scan interval ·
- 30 MINUTES
Both halves start off. Neither is bundled into signup.
A new account has no inbox connected, so nothing is read and no status moves by itself. Muting an email now mutes only the email: the draft is still written and still waiting on the application - the notification toggles stopped deciding whether the work happens at all.
Access is granted through Google and Microsoft’s own consent screens, which means the scope names above are checkable against what they showed you - and revocable from their side as well as ours. The retention schedule, the subprocessor list and the per-field scope tables live on Trust & Safety.
The questions this feature deserves.
Does the follow-up actually reach the company?
Only when you send it. LandEarly writes the draft and delivers it to your own inbox - the “send” button is about approving the text, not about reaching a recruiter. A handoff for this page drew a To: line with a named recruiter on it; there is no such line, and no address is resolved anywhere in the flow.
Can I use this without connecting my inbox?
Yes, and it’s the default. Drafts need no mail access at all - the cron that writes them never checks whether an inbox is connected. Only the status-moving half needs a grant, and turning that off later leaves every status you already have.
How does it know which application an email is about?
Applications submitted for you carry a per-application alias in the address, so a reply comes back identifying itself. Without one it matches the sender’s domain against companies you applied to in the last 90 days - and refuses when two employers share a host, which is common on applicant systems, rather than guessing between them.
What if it moves a status wrongly?
Change it back from the application; the timeline keeps both the automatic move and your correction, and email-sourced moves are marked as such. What it can’t show you is the sentence it read, because none was stored - the evidence is the sender’s domain and a message id.
Will it reply to recruiters for me?
No. Both inbox grants are read-only and there is no compose path attached to either. It reads headers, files an outcome, and at most moves the board to interview, offer or rejected.
Why did my drafts stop?
Not your email settings - those govern the digest, not the draft. Either the application has left “submitted”, something already replied, or it has passed 30 days since you applied, at which point a “just following up” stops being one. All three cancel the draft by design.
What sits either side of follow-ups.
The board these statuses move on, and the event timeline that records which of them you set and which arrived by email.
Trust & SafetyThe per-field scope tables for both inbox grants, retention, deletion and export - for mail and for everything else.
NetworkingThe part of LandEarly that does email someone else - outreach to a contact, with its own review step and its own one-follow-up limit.
AI ApplyWhere the application that's now going quiet was written and filed - including the alias that makes a reply attributable.
Stop finding out in October that it ended in July.
Start with drafted nudges, which need no mail access at all. Connect an inbox later - or never - if you want the board to keep up without you.
Gmail · Outlook · read-only · scan every 30 minutes