Feature · learn

When a rejection lands, find out why.

Hiring almost never tells you what went wrong. The rejection loop does. Mark the job as denied, pick the stage it happened at, and the AI reads the JD plus your resume plus your keyword match and gives you three things: likely gaps, specific resume issues, and edits to make next time.

In · Rejection logged
Status: denied after phone screen
Match at apply time: 18 of 22
Missing: GraphQL, Storybook
Your note: GraphQL tripped me
Analyze
Out · AI reads and reports
Likely gap: GraphQL depth
Resume: TS in JD 6x, bullets 0x
Fix: add TS section
Fix: reframe 3 bullets with exact
JD phrasing before next apply

How to use rejection analysis

4 steps. Each one runs in seconds. Scroll in order.

  1. Step 01

    Mark the job as denied

    One click from the tracker. A small form asks the stage (no response, after application, after phone screen, after interview, after offer) and lets you type a sentence about what you think happened.

  2. Step 02

    The AI reads the whole record

    JD, key skills, tailored resume, keyword match, any notes you left. It also reasons about the stage. A rejection after a phone screen means something different than a rejection after radio silence.

  3. Step 03

    Get three outputs

    Likely gaps (skills the JD hunted for that your resume did not surface). Resume issues (phrasing or framing that may have dropped you). Recommendations (concrete edits for next time, not vague advice).

  4. Step 04

    A follow-up email draft arrives with it

    Tuned to the stage you reached. A nudge after silence reads nothing like a "thanks for letting me know" after a final round. The generator writes the draft; you edit it before sending.

One real analysis, abbreviated

One real example, same input reshaped two ways.

Input
Senior Frontend role at a fintech. Stage reached: phone screen, then denied. Keyword match at time of application: 18 of 22. Missing: GraphQL (3x), Storybook (2x), micro-frontends (1x), A/B testing (1x). User note: "I think it was the GraphQL question."
Output
Likely gaps:
  1. GraphQL was the most frequent missing term (3x in JD) and you flagged it in the call. The resume lists REST APIs only; adding a bullet about GraphQL usage, even basic, would have unblocked this.
  2. Micro-frontends was a single mention but high-signal for a team explicitly rearchitecting.

Resume issues:
  - Frontend bullets mention "APIs" generically. For fintech JDs, be specific.
  - No bullet ties work to compliance or regulated context. You did ship in a regulated environment (the master says so) but the tailored version dropped that.

Recommendations:
  - Add one bullet naming GraphQL usage and the scale of it.
  - Restore the "regulated environment" line from your master.
  - For the next fintech posting, run the tailor again with these two edits baked into the master.
Takeaway: This is the feedback hiring usually refuses to give. One rejection becomes signal for the next five applications.

Under the hood

The mechanics nobody should have to guess at.

Full reasoning pass on the whole record

This is the one step where model depth matters most. The heavier model reads the full record, reasons about stage context, and writes specific recommendations instead of boilerplate.

Stage-aware prompts

A rejection after submission is filter-driven. A rejection after phone screen is usually signal-in-the-conversation. A rejection after final round is usually close-calls or fit. The prompt carries the stage as a first-class field so the output matches.

Feeds shared insights

If you have opted in to shared insights, the anonymized outcome data (job title, experience level, keywords present, stage) goes to the pool. No resume text. No company name. The opt-in is explicit on your profile page.

Counts against your Pro allowance

Free accounts get one rejection analysis per month. Pro gets unlimited.

What it deliberately does not do

Honest limits read as trust signals. Hiding them does the opposite.

  • 01We cannot tell you the real reason you were rejected. Hiring is a black box. We give you a high-probability read based on the data we have.
  • 02We do not send feedback to the company on your behalf. Everything lives in your tracker.
  • 03Interview transcripts are never sent to this analyzer or logged to shared insights. We stay out of the conversation content.

Common questions

Is this a guarantee of why I was rejected?

No. It is a probability read. The AI reasons from the JD, your resume, the keyword match, and the stage. It names the most likely causes. Real hiring decisions involve factors we cannot see.

What if I do not know the stage where I was rejected?

Mark it as "no response" if you got silence, or "after application" if you are not sure and only got the standard rejection email. The analysis adjusts its reasoning.

Do you share my data with other users?

Only if you explicitly opt in to shared insights, and even then only anonymized metadata. Job title, experience level, keywords present, stage reached. No resume text, no company names, no personal identifiers.

Can I use this without generating a tailored resume first?

You can, but the analysis is thinner. With a tailored resume the AI can reason about specific bullets. Without one it can only reason about the master vs the JD.

Does it suggest following up with the recruiter?

Sometimes. If the stage and context make a follow-up reasonable, the analysis suggests it and the draft generator writes the email. If not (final-round rejection after explicit feedback, for example) it does not push.

Try Rejection analysis inside the product

Create a free account in under a minute. First job tracked, first tailored resume, and first keyword breakdown all happen inside the onboarding flow.

Create a free accountTry the demo firstAll features