{"slug": "my-last-38-cover-letters-all-said-something-my-resume-didn-t-so-i-built", "title": "My last 38 cover letters all said something my resume didn't. So I built HonestFit.", "summary": "A full-stack developer in Korea built HonestFit, a Mastra-based workflow running on Cloudflare Workers that checks cover letters against a resume for unsupported claims. Running the checker over his own 38 prior cover letters, all 38 cited \"13 years\" against a resume stating 12 years 8 months, 27 quoted numbers absent from the resume, and 3 named technologies the resume never mentions. The tool defaults to open-weight gpt-oss-20b at under $0.001 per letter, with Llama 4 Scout as a fallback, and a real test run against a Senior Backend posting took 6.9 seconds and $0.0008.", "body_md": "**Measured on the sample (October 15):**\n\n- gpt-oss-20b: 7 to 9 seconds per letter, 4 to 5 model calls, about 3,000 input tokens and 800 output tokens. That is **under $0.001 per letter** at Workers AI list price.\n- Every gpt-oss letter admitted the Kubernetes gap.\n- Some runs end with one flagged claim. The page shows it as a warning instead of hiding it.\n- Llama 4 Scout took about 30 seconds and left more issues, so gpt-oss is the default.\n\n**Known limit:** the checker knows technologies, numbers and role words. Adjectives still get through: one draft called a service \"high-availability\", and the resume never says that.\n\n## \n  \n  \n  Why Does Open Innovation Matter?\n\n- \n**The price makes the side hustle work.** Under a tenth of a cent per letter means $4 a month can cover heavy use with almost all of it as margin. At typical closed frontier-model prices, the same run with retries costs roughly 10 to 20 times more per letter.\n- \n**I can swap models per step.** Reading and searching use gpt-oss. When it returns an empty draft, Llama 4 Scout writes it. That fallback is one line of code, because both are open-weight models behind the same interface.\n- \n**The model is not the judge.** Open weights let me choose small, cheap models on purpose and put the trust in code I can read and test. With a closed API I'd be paying more to trust the model more, which is the opposite of what this tool needs.\n- \n**Your resume could stay on your machine.** The same weights run locally. I haven't built that mode yet (my 2019 Intel laptop can't run gpt-oss-20b at a usable speed), so for now the page sends your text only for the length of one request and stores nothing.\n\n## \n  \n  \n  My First User\n\nMe.\n\nI'm a full-stack developer in Korea. I write English through AI translation, and I apply to remote jobs where I can work in writing. Before I built this, I had sent 38 cover letters. I ran HonestFit's checker over all 38 against my own resume:\n\n- \n**38 of 38** said \"13 years\". My resume says \"12 years 8 months\".\n- \n**27** quoted numbers from side projects, like \"90 of 94 MCP servers scanned\" or \"13 marketplace extensions\", that don't appear anywhere on my resume.\n- \n**3** named a technology my resume never mentions.\n\nNone of it was a lie. But a recruiter holding both pages sees two slightly different people, and I had no idea until the checker showed me.\n\nThen I ran the full workflow with my real resume against a real Senior Backend posting from my job search (its requirements list). The first run marked \"SQL and NoSQL databases\" as missing and wrote that I had no database experience, which is wrong (that bug is in the table above). After the fix: 5 covered, 2 partly, 1 missing (working across time zones), one draft, 6.9 seconds, $0.0008.\n\nDid I pay? I'm the user, so no. But I would.\n\n## \n  \n  \n  Prize Categories\n\n- \n**Best Use of Mastra** : the whole thing is a Mastra workflow with three agents and a tool, running on Cloudflare Workers.\n\n*Code and English text were produced by an AI coding agent (Claude Code) working under my direction. The resume data, the 38 letters and the decision to publish are mine. I write in Korean.*", "url": "https://wpnews.pro/news/my-last-38-cover-letters-all-said-something-my-resume-didn-t-so-i-built", "canonical_source": "https://dev.to/globalmatchhub_b7ad9cba/my-last-38-cover-letters-all-said-something-my-resume-didnt-so-i-built-honestfit-3odl", "published_at": "2026-10-16 02:24:10+00:00", "updated_at": "2026-10-16 02:30:19.393507+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "large-language-models", "ai-infrastructure"], "entities": ["HonestFit", "Mastra", "Cloudflare Workers", "gpt-oss-20b", "Llama 4 Scout", "Claude Code"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/my-last-38-cover-letters-all-said-something-my-resume-didn-t-so-i-built", "markdown": "https://wpnews.pro/news/my-last-38-cover-letters-all-said-something-my-resume-didn-t-so-i-built.md", "text": "https://wpnews.pro/news/my-last-38-cover-letters-all-said-something-my-resume-didn-t-so-i-built.txt", "jsonld": "https://wpnews.pro/news/my-last-38-cover-letters-all-said-something-my-resume-didn-t-so-i-built.jsonld"}}