Skip to content

Free · Open source · macOS, Windows, Linux

Every application,ready for takeoff.

Paste a job description. Get a resume and cover letter written for that posting: matched to its keywords, checked for the requirements that quietly reject you, and edited by you before any of it leaves your machine.

Free forever · your own API key (a few cents per resume) or Ollama, fully offline

tailoring resume.pdf → senior-frontend-engineer
Example of tailoring: a generic resume line is removed and replaced with a line written for the specific job, with matched keywords listed underneath.
254 downloads24 releasesMIT licensedOpen source

@@ features @@

Everything between paste and send.

Edit the document, not a form

The inline editor is the resume. Click any line on the rendered page and type; what you see on screen is exactly what exports to PDF.

The inline WYSIWYG resume editor showing a tailored resume with the toolbar for PDF export, customization, sections, recruiter skim, humanizing, and chat

An editor you can talk to

Ask the built-in assistant to rewrite a bullet, tighten your summary, or map the job's keywords onto your experience. It runs client-side through whichever provider you picked.

Sounds like you, not like a model

Spearheaded, leveraged, orchestrated, utilized, championed. Humanize hunts down the verbs that give an AI-written resume away, proposes a rewrite for each line, and waits for you to approve it. Nothing gets swapped without your say.

Your keys. Your machine. Your choice of AI.

Bring an API key for any major provider, or point the app at a local Ollama model and skip keys entirely. Every AI call runs client-side and keys sit in encrypted local storage.

  • OpenAI
  • Anthropic
  • Gemini
  • Grok
  • Groq
  • DeepSeek
  • Mistral
  • Perplexity
  • OpenRouter
  • + Ollama, fully local

Every application, tracked

Each job keeps its own tailored resume, cover letter, and status from first draft to signed offer.

  • draft
  • applied
  • interview
  • + offer
  • - rejected
Application tracker table showing jobs across Draft, Applied, Interview, Offer, and Rejected

13 templates, restyled per job

Swap color, font, and layout per application: the same content, formatted for a startup or a bank.

Tech Sidebar resume templateModern Minimal resume templateCreative Modern resume template
Customization drawer open on a resume template, mid-restyle

export

PDF or TXT, one click

Already formatted for the portal it lands in, no copy-paste cleanup.

startup

Opens instantly

A native Tauri window, not a bundled browser: no splash screen, no loading spinner.

runs offline

No account, no cloud

Point it at a local Ollama model and the whole pipeline runs on your machine.

@@ fit check @@

Know if you're a fit, before you apply.

No algorithm scores your resume. Fit Check reads it against the job the way a hiring manager would, then says plainly whether you're a strong fit, a stretch, a reach, or a mismatch.

01

The verdict. Strong, stretch, reach, or mismatch. A straight answer on whether to apply, not a percentage.

02

Knockout risks. Work authorization, a required license, a location you can't work from — the things that end an application outright, rated by how likely each one is.

03

Gaps, then strengths. Missing experience, a seniority stretch, a domain mismatch, each with a next step. It closes with what you can actually back up.

@@ deep analysis @@

Then fix what's fixable.

Fit Check answers whether to apply. Deep Analysis goes at the document itself, and every finding it returns points at the exact line that caused it.

correctness

Grammar, tense, punctuation

impact

"Improved performance," with no number behind it

keyword

A requirement the posting names and your resume never says

duplication

The same win claimed in two places

provenance

A line your base profile doesn't back up

title

Your latest title against the one they posted

The deterministic checks need no AI call and apply themselves. The rest arrive as a suggested rewrite, sitting on the line it replaces, waiting for you to take it or leave it.

@@ market conventions @@

Written for the market you're applying into.

A German Lebenslauf and a US résumé disagree about length, pronouns, photos, and how you state a language level. Udaan reads where the job is and follows that market's rules.

US posting+ EU posting
LengthOne page, cram to fitTwo pages, never crammed
VoiceI led the billing rewriteLead of the billing rewrite
LanguagesGerman: fluentGerman: B2
ProficiencyBars, dots, five starsWords only
TimelineGaps left unexplainedEvery gap accounted for
PhotoNeverIf the ad asks for one

Your resume stays in whatever language you wrote it in. Only the conventions change, so an English CV aimed at Berlin reads as a Lebenslauf without being translated into one. There's a Euro Sidebar template and an Anschreiben cover-letter style to match.

@@ cover letters @@

A cover letter that read the job post.

Generated from the same job and profile as the resume, with a tone and style you pick instead of the one paragraph everyone else pastes in.

A generated cover letter with tone and style preset controls

@@ mcp server @@

Or drive it from Claude Desktop.

Udaan also runs as an MCP server, so Claude Desktop or any MCP host can parse jobs, tailor resumes, and export files on the subscription you already pay for. No separate API key. Edits to your base profile go through a diff you approve first, so a model driving the app can't quietly rewrite your history.

available tools

  • list_flows()
  • get_prompt()
  • submit()
  • apply_resume_ops()
  • align_resume_terms()
  • list_profiles()
  • get_profile()
  • list_jobs()
  • get_job_state()
  • preview_profile_edit()
  • apply_profile_edit()
  • fetch_url()

claude_desktop_config.json

{
  "mcpServers": {
    "resume-builder": {
      "command": "<install>/resources/next/node-bin/node",
      "args": ["<install>/resources/next/mcp/stdio.js"]
    }
  }
}

The app's Settings page generates this snippet for your own install path.

Read the setup docs

@@ how it works @@

From job post to sent.

  1. 01

    Paste the job description

    Your chosen model parses it client-side into structured requirements: skills, keywords, responsibilities.

  2. 02

    Get a tailored draft

    The app rewrites your base profile into a resume and cover letter aimed at that specific role.

  3. 03

    Refine it your way

    Chat with the assistant, "make this bullet about leadership," or click any line and edit it inline.

  4. 04

    Export and track

    Download the PDF or TXT, send it off, and move the application from Applied toward Offer.

@@ comparison @@

Why not just paste it into ChatGPT?

You can, plenty of people do. Here's what that costs you against a purpose-built tool.

+ udaanchatgpt copy-pasteonline builders
Tailored per job+ Yes- Yes, manually, every time- Mostly templates
Knockout risks flagged+ Yes- No- Often paywalled
German/EU CV conventions+ Yes, by default- You have to know to ask- US format only
Your data+ Stays on your machine- Sent to OpenAI- Stored on their servers
Tracks applications+ Yes- No- Paid tiers only
Cost+ Free + your own API key- Subscription- $10 to $30 a month
Formatting+ PDF/TXT, WYSIWYG editor- You rebuild it by hand- Locked to their templates

@@ faq @@

The questions you're actually asking.

Does the API key actually cost anything?

A few cents per resume with most providers, paid directly to them at their rates. Or skip keys entirely and run a local Ollama model for free.

Can it run fully offline?

Yes. Point it at a local Ollama model and every AI call happens on your machine, with no network request and no account.

Does my data ever leave my machine?

Only the text you send to whichever AI provider you chose, the same as pasting into ChatGPT. Your profile, jobs, and resumes live in a local SQLite database that Udaan never uploads.

Will an ATS actually parse the exported PDF?

Yes. The PDF export uses standard text layout instead of images or exotic fonts, which is what most ATS parsers choke on.

Will it write things I didn't actually do?

It rewrites your base profile rather than inventing one. Every AI edit is a suggested change you review before it's applied, so nothing exports without you seeing it first.

Why does my OS show a scary warning on first launch?

Udaan is self-signed rather than paid-publisher signed, so macOS and Windows show a one-time warning for any app outside their stores. See the note below the download button for the two-click fix.

See all questions →

@@ download @@

Your next role is one udaan away.

Free forever · MIT licensed · no subscription, no sign-up, no cloud storage

First launch: Udaan is open-source and self-signed, not paid-publisher signed, so macOS says "cannot be verified" and Windows shows SmartScreen once. On macOS right-click the app → Open; on Windows clickMore infoRun anyway.More info