AI resume tailor
Every saved job gets its own resume, rewritten to mirror the posting. Validator catches dropped roles. Keyword matches verified server-side. Zero fabrication.
Read onPaste a job description. The parser returns the fields you would otherwise type by hand. Company, title, experience level, required skills, salary range, and the keywords an ATS will match against. Each one lands in the correct field in the tracker, so you are not re-reading the same posting three times to remember what it asked for.
3 steps. Each one runs in seconds. Scroll in order.
Copy the full job description out of LinkedIn, Indeed, Glassdoor, or a company careers page and drop it into the box. No character limit on free or paid plans.
The posting goes to a fast extraction model configured with a tight prompt. Output is a strict JSON shape: company, title, experience level, required skills, nice-to-have, salary range if listed, ATS keywords.
The parsed record populates the job form in one pass. You can edit anything before saving. The full raw JD stays attached to the record so later steps (tailoring, keyword match, rejection analysis) can read it.
One real example, same input reshaped two ways.
Stripe is hiring a Senior Frontend Engineer on the Payments team. You will partner with product and design to turn Figma prototypes into shippable UI using React, Next.js, TypeScript, and our internal design system. You will care about Core Web Vitals, WCAG 2.1 AA, and writing Jest + Playwright tests for everything you ship. Experience in fintech or a regulated environment is a plus. Salary range: 190k to 240k plus equity.
{
"company_name": "Stripe",
"job_title": "Senior Frontend Engineer",
"experience_level": "senior",
"key_skills": ["React", "Next.js", "TypeScript"],
"nice_to_have": ["fintech", "regulated environment"],
"salary_range": "$190K to $240K + equity",
"ats_keywords": ["Core Web Vitals", "WCAG 2.1 AA", "Jest", "Playwright", "design system"]
}You should be able to tell how a feature works before you trust it with your job search.
Extraction is a classification task, not a creative one. A small, fast model handles it in roughly a second and costs pennies per parse. A larger model would be overkill and slow the paste-to-saved flow.
The prompt enforces a JSON schema so we never have to parse free-form paragraphs out of the model. If a field is not in the posting (say, salary is absent) we return null for that field instead of guessing.
The tailor, keyword match, cover letter, and interview prep all read the parsed structured fields rather than re-reading the full 2,000-word posting. The parse runs once per job and is cached so downstream calls do not re-parse.
The parser is format-agnostic. LinkedIn reels, Indeed bullet lists, company careers pages with three paragraphs of "about us" before the role. All supported. The extraction prompt is designed to surface the required skills and ATS keywords from the body of the posting, not the surrounding boilerplate.
Honest limits read as trust signals. Hiding them does the opposite.
If your question isn't here, email support and you'll hear back from the founder.
Roughly one to two seconds on a typical JD. Very long postings (3,000+ words) can push toward three seconds. Still under the threshold where you feel the wait.
A small, fast extraction model with a tight prompt. A larger general-purpose model would buy us nothing here and cost more. Free and Pro tiers use the same parser with the same prompt.
No soft limit. Very large pastes (over 20,000 characters) get truncated before parsing, but we keep the full text on the record so tailoring still sees everything.
Yes. Everything is a regular form field after parsing. If the model missed the experience level or misread the salary range, type over it before you save the job.
No. Extension saves are intentionally cheap. The popup captures company, title, and the raw posting from the page via DOM scrape, no AI call at save time. The parse runs lazily the first time you open the saved job in the dashboard, so speculative saves (when you Save 30 postings while browsing but only act on 3) do not burn AI cost. Same parser, same accuracy, just deferred to the moment you actually engage with the job.
Every feature writes to the same record. These three are the closest neighbours.
Every saved job gets its own resume, rewritten to mirror the posting. Validator catches dropped roles. Keyword matches verified server-side. Zero fabrication.
Read onMatched and missing keywords named exactly. No opaque score, no black-box percent.
Read onAnonymized outcome patterns from the whole opt-in network, not just your own history.
Read onCreate a free account in under a minute. First job tracked, first tailored resume, and first keyword breakdown all happen inside the onboarding flow.
No credit card · 2-minute setup · Cancel anytime