首次启动需联网下载约 100MB 安装包之外的运行时包(浏览器、向量库、嵌入模型),之后才可离线使用;macOS 安装包仅 ad-hoc 签名未公证,可能需在系统设置里选「仍要打开」;浏览器自动化与自动投递属实验功能,默认关闭且不在稳定支持范围内。
JustHireMe
vasu-devsAGPL-3.0活跃维护本地优先的求职智能工作台,自动抓取招聘岗位、按匹配度排序,并生成定制化的申请材料。
Local-first AI job intelligence workbench for scraping roles, ranking fit, and generating tailored application materials.
git clone https://github.com/vasu-devs/JustHireMe.git
cd JustHireMe
npm ci
cd backend
uv sync --dev
cd ..
npm run tauri devREADME 未说明显存或 GPU 要求;本地嵌入使用内置 ONNX 模型 all-MiniLM-L6-v2,可完全离线运行,无需 API key。
本地优先的 AI 求职工作台,抓取职位、按匹配度排序并生成定制申请材料
本地优先的求职智能工作台,自动抓取招聘岗位、按匹配度排序,并生成定制化的申请材料。
核心能力
- 从 ATS 看板、订阅源、社区和 API 多源抓取职位线索
- 用确定性规则加反馈学习对职位质量与匹配度打分
- 基于 Kuzu 技能图谱与 LanceDB 向量做画像感知匹配
- 生成定制简历 PDF、求职信 PDF 和外联草稿
- 内置 ONNX 本地嵌入模型,离线也能做语义匹配
容易踩的坑
- v1.7.0JustHireMe v1.7.0最新正式版2026-09-01 · 2026-09-01 07:37 UTC
JustHireMe v1.7.0
Installation
- Windows: download JustHireMe_1.7.0_x64-setup.exe, run it, and use More info -> Run anyway if SmartScreen appears.
- Linux: download the .AppImage, run chmod a+x on it, then launch it; or install the .deb on Debian/Ubuntu-based systems.
- macOS: download the .dmg and drag JustHireMe into Applications. If the build is not notarized, macOS may require Privacy & Security -> Open Anyway.
Your data stays on your machine. JustHireMe is local-first: no hosted backend, no tracking, and no app data leaves your computer by default.
SHA256 checksums
88940d5fe2bda475e7e5466e9408a3883371a4438d27740a2cd95d762fb0f5cc JustHireMe-browser-runtime-linux.zip b2c5eb31195f50783278a3795c87c752eae19774ccae1b6734d0500f8ca90a93 JustHireMe-browser-runtime-macos.zip 3bbbcf2150eb032fd4fd924bc1f4c21b5b8cd77f0e257babd93e5a31e467a9b8 JustHireMe-browser-runtime-windows.zip 8000a0468b34c2f162ca34f69016f940f16e3fbd398b00d9401255f6aca6aa4d JustHireMe-runtime-pack-linux.zip ba3c381fee678fe7baceb0fabd0b89fbf72fed33bc298cc49de8801aa339dde9 JustHireMe-runtime-pack-macos.zip b036b77dd2a21681fd66a036197d8e7f3ceaeeb870d18b1ab62671ed92070ec6 JustHireMe-runtime-pack-windows.zip ead394b985741173e58c00ea11e4da2fad83b4f00054c1dfcc35d578122419a0 JustHireMe-vector-runtime-linux.zip 084f89dcc347d4b91c0d9b2b68cc3028fbf47ad7f3120df8d3d9048e13abb39b JustHireMe-vector-runtime-macos.zip 614d1db154aa4f0488a16c5f9c531fcfe8a5a3e989fd9e3a0f0b9c4f7fbed62a JustHireMe-vector-runtime-windows.zip 0dff3b40a765a68581f9a79c88342d8c3ed40bc721a2e55b3678d7e6bbd04048 JustHireMe.app.tar.gz 22a4744949f9ca6031e3c47ac3fd87df0cc367f4513482b2313769cc7eb20420 JustHireMe.app.tar.gz.sig 42adc040bf90d3195192d727bb546ea350ab171995a7ae60288491e94012e4dd JustHireMe_1.7.0_aarch64.dmg 395d6cd9244f5cc376f446e9347f2c5d4bf05875b374053d23ce410464069413 JustHireMe_1.7.0_amd64.AppImage d6e1ab1d714c7187fd56e486cdba41e402aab5aaa26ccd831d2531870860f60e JustHireMe_1.7.0_amd64.AppImage.sig 9ba129c40c341f3e127cf977d4a363f94c4460937e87a34e4871f8dff866641d JustHireMe_1.7.0_amd64.deb 0676055f55406096a8b5aa2edd14b01180c0d0681db809a35b3a74c8acd01e89 JustHireMe_1.7.0_amd64.deb.sig 9b12e8b3e78baab9827965f451b3f6bfe149a974d2e2e945d68a9f71fd5c623d JustHireMe_1.7.0_x64-setup.exe 041488780d17dcd148220f4e54537495ac5d57840c19792a3af9113ccf0719d4 JustHireMe_1.7.0_x64-setup.exe.sigAsset sizes
268.6 MB JustHireMe-browser-runtime-linux.zip 563.0 MB JustHireMe-browser-runtime-macos.zip 298.7 MB JustHireMe-browser-runtime-windows.zip 363.5 MB JustHireMe-runtime-pack-linux.zip 644.4 MB JustHireMe-runtime-pack-macos.zip 362.8 MB JustHireMe-runtime-pack-windows.zip 121.4 MB JustHireMe-vector-runtime-linux.zip 90.6 MB JustHireMe-vector-runtime-macos.zip 99.9 MB JustHireMe-vector-runtime-windows.zip 108.7 MB JustHireMe.app.tar.gz 0.0 MB JustHireMe.app.tar.gz.sig 109.0 MB JustHireMe_1.7.0_aarch64.dmg 223.6 MB JustHireMe_1.7.0_amd64.AppImage 0.0 MB JustHireMe_1.7.0_amd64.AppImage.sig 152.5 MB JustHireMe_1.7.0_amd64.deb 0.0 MB JustHireMe_1.7.0_amd64.deb.sig 106.5 MB JustHireMe_1.7.0_x64-setup.exe 0.0 MB JustHireMe_1.7.0_x64-setup.exe.sigWhat's inside
- Local-first job intelligence workbench
- Internship and early-career opportunity workspace for CSE, software, data, and AI candidates
- One-click Elite AI Internship campaign for paid India and worldwide-remote opportunities
- Configurable INR and USD compensation floors and targets with truthful range handling
- Broad first-party source adapters, canonical deduplication, liveness checks, and India/remote applicability gates
- Transparent apply, stretch, review, and skip decisions with source provenance and rejection reasons
- Built-in CRM for your job pipeline
- Profile-aware graph and vector matc
- v1.6.2JustHireMe v1.6.22026-08-27 · 2026-08-27 00:57 UTC
查看更新说明
JustHireMe v1.6.2
Installation
- Windows: download JustHireMe_1.6.2_x64-setup.exe, run it, and use More info -> Run anyway if SmartScreen appears.
- Linux: download the .AppImage, run chmod a+x on it, then launch it; or install the .deb on Debian/Ubuntu-based systems.
- macOS: download the .dmg and drag JustHireMe into Applications. If the build is not notarized, macOS may require Privacy & Security -> Open Anyway.
Your data stays on your machine. JustHireMe is local-first: no hosted backend, no tracking, and no app data leaves your computer by default.
SHA256 checksums
9d84fceb5f0ea7fb0e07e267e22dc86b833e900aba0c054e75372114d7cc06ee JustHireMe-browser-runtime-linux.zip eb668d7fd554f2b3ef6cc6ea741a4125314b678e13c45aa6de563cdc568eb002 JustHireMe-browser-runtime-macos.zip 5ceb197bb97592d826dc54ed4687769dd7bd3c42902e34c4a43add94b9594804 JustHireMe-browser-runtime-windows.zip 95dfe2b74922ffa33b7b58a2a522203a2b87a13b8e7c95614a904ff19a3cd28b JustHireMe-runtime-pack-linux.zip e2932b920ec7c3a2df9dc1a5af579e514cc9d9b9c8bab64a6a3bf363a9bfc888 JustHireMe-runtime-pack-macos.zip 6f72072ebfd91ff3484a7f75e6f541889afe4f1d0309857e3a2da495a1ddae0c JustHireMe-runtime-pack-windows.zip c9e2a09ec68bcd7c9480a02a5cbe66524cf1ca639b00c114dd523fb0150c79b2 JustHireMe-vector-runtime-linux.zip 2b84b12d8d3eea81504b339ccf3596516d7e6ecc2aeccae6befa47a5602fb1c3 JustHireMe-vector-runtime-macos.zip 7651ecb4ab27ce2cad7ea2042e2df39a34febd428bf7e4a31ca91009116c841e JustHireMe-vector-runtime-windows.zip 5dd8eb3f7294989047898fcadb7bd6945aceba8993088a29ada3e4be00b3e552 JustHireMe.app.tar.gz 2b7139c9fdf627b27ef65f7335c67eca4e559a28ea4184f4d6f2445fe85dce04 JustHireMe.app.tar.gz.sig 912ec158efaf5bfa31824bb8bba89c81e9f59f17bea5806e3f0780e2dee02ebe JustHireMe_1.6.2_aarch64.dmg b9dd3bd6d053e224411b700b12e22b8670eba361fe0fe2ca2b48fc0ffd995eb4 JustHireMe_1.6.2_amd64.AppImage 999e95408229ee8b5d8f78f832ec480f4198e55c645783d2740689610e692d69 JustHireMe_1.6.2_amd64.AppImage.sig 812cc4e37575d4f5deac0786184569d56a08dda969d02fd2164ddbadbac20c69 JustHireMe_1.6.2_amd64.deb 98c94a25d55ac26a0da84c54f851b0d1bbd2e7ac40cb582ccc1e5a2e6054c9c7 JustHireMe_1.6.2_amd64.deb.sig cdf9f39c736d72e808bea4a0f1bf1b11f0f7ecc16a79a6930027067a826089c1 JustHireMe_1.6.2_x64-setup.exe b2738181dd396c0342b61cfa94a52243484f36a88a0cacc4d9762bc8f306ac55 JustHireMe_1.6.2_x64-setup.exe.sigAsset sizes
268.6 MB JustHireMe-browser-runtime-linux.zip 563.0 MB JustHireMe-browser-runtime-macos.zip 298.7 MB JustHireMe-browser-runtime-windows.zip 363.5 MB JustHireMe-runtime-pack-linux.zip 644.4 MB JustHireMe-runtime-pack-macos.zip 362.8 MB JustHireMe-runtime-pack-windows.zip 121.4 MB JustHireMe-vector-runtime-linux.zip 90.6 MB JustHireMe-vector-runtime-macos.zip 99.9 MB JustHireMe-vector-runtime-windows.zip 108.7 MB JustHireMe.app.tar.gz 0.0 MB JustHireMe.app.tar.gz.sig 108.9 MB JustHireMe_1.6.2_aarch64.dmg 223.2 MB JustHireMe_1.6.2_amd64.AppImage 0.0 MB JustHireMe_1.6.2_amd64.AppImage.sig 152.5 MB JustHireMe_1.6.2_amd64.deb 0.0 MB JustHireMe_1.6.2_amd64.deb.sig 106.4 MB JustHireMe_1.6.2_x64-setup.exe 0.0 MB JustHireMe_1.6.2_x64-setup.exe.sigWhat's inside
- Local-first job intelligence workbench
- Internship and early-career opportunity workspace for CSE, software, data, and AI candidates
- One-click Elite AI Internship campaign for paid India and worldwide-remote opportunities
- Configurable INR and USD compensation floors and targets with truthful range handling
- Broad first-party source adapters, canonical deduplication, liveness checks, and India/remote applicability gates
- Transparent apply, stretch, review, and skip decisions with source provenance and rejection reasons
- Built-in CRM for your job pipeline
- Profile-aware graph and vector matc
- v1.6.1JustHireMe v1.6.12026-08-26 · 2026-08-26 18:01 UTC
查看更新说明
JustHireMe v1.6.1
Installation
- Windows: download JustHireMe_1.6.1_x64-setup.exe, run it, and use More info -> Run anyway if SmartScreen appears.
- Linux: download the .AppImage, run chmod a+x on it, then launch it; or install the .deb on Debian/Ubuntu-based systems.
- macOS: download the .dmg and drag JustHireMe into Applications. If the build is not notarized, macOS may require Privacy & Security -> Open Anyway.
Your data stays on your machine. JustHireMe is local-first: no hosted backend, no tracking, and no app data leaves your computer by default.
SHA256 checksums
3703cddae36cbb1acaa618e9276390adbafa9e552d5e06000b31eccaf67c1099 JustHireMe-browser-runtime-linux.zip 076a6bd141cd622f775b6384de25715217787e586b2d958aa23fcf272b449f83 JustHireMe-browser-runtime-macos.zip 1d1c177a6cbd295a357d24e17a4984f7327b047edcbce00f21dc4626ade9cf4c JustHireMe-browser-runtime-windows.zip fcfbac4470ee584ac9e3ed6d85c760d2ef58d365621bfa6f349c5621968f8d6a JustHireMe-runtime-pack-linux.zip 2c76054c08a8bd24ef74555b7e4e712a742f566df57d0c931335cac44f7001ce JustHireMe-runtime-pack-macos.zip 31a56d7d9bfa2b947759dfe0730f88edef1f7a184c425a08e00def9eb422c226 JustHireMe-runtime-pack-windows.zip 7476b66126b862928d09a5a4c2d7ade6f027b75781ca997b2729d4bf0894d454 JustHireMe-vector-runtime-linux.zip 326898135dbc69657f2da04d38e0d6caa328e22c0f34143554d4a0727fa59ca6 JustHireMe-vector-runtime-macos.zip af366b12809bc3cb353a23213bfdf94a045dbc73fd5e412d8a76a3cefac35536 JustHireMe-vector-runtime-windows.zip 8998a377e05e64e08b4a5a0606d81afb28c03e9dbe5e3fd2b426b921c3f43f6b JustHireMe.app.tar.gz e6116e233c37fa9f09354d17616395bce47e347e4cd0fccbd545546ebd1c9f80 JustHireMe.app.tar.gz.sig 3b37fbb2fcb76d549f4fe86edb5c3c719ab5819ba2cf3e056a59e76cd9566ad8 JustHireMe_1.6.1_aarch64.dmg 42edde3a8d86b27d1d080054e37b171d3e37be3962adfad4c8b4646782875915 JustHireMe_1.6.1_amd64.AppImage a410c55be449dc46ed17d3644c3e03a7a98dde03e330d854fc86fa6c34bbc89d JustHireMe_1.6.1_amd64.AppImage.sig e1c42ba24ec903d12c4dc53fa71ad892ed53a45933a5cd12bce4f164100fc141 JustHireMe_1.6.1_amd64.deb 68a75b2ad65e75b186798d6caedff949acd6a350f008251ef07e327fa9774a42 JustHireMe_1.6.1_amd64.deb.sig 6ce06af5f882b686155862f01aa807f183019cdae82e271f41c97e346aadf618 JustHireMe_1.6.1_x64-setup.exe db817189fa077e5145c17bd670925f5b24e4d0ab211407856acdd455fdb753c9 JustHireMe_1.6.1_x64-setup.exe.sigAsset sizes
268.6 MB JustHireMe-browser-runtime-linux.zip 563.0 MB JustHireMe-browser-runtime-macos.zip 298.7 MB JustHireMe-browser-runtime-windows.zip 363.5 MB JustHireMe-runtime-pack-linux.zip 644.4 MB JustHireMe-runtime-pack-macos.zip 362.8 MB JustHireMe-runtime-pack-windows.zip 121.4 MB JustHireMe-vector-runtime-linux.zip 90.6 MB JustHireMe-vector-runtime-macos.zip 99.9 MB JustHireMe-vector-runtime-windows.zip 108.7 MB JustHireMe.app.tar.gz 0.0 MB JustHireMe.app.tar.gz.sig 108.9 MB JustHireMe_1.6.1_aarch64.dmg 223.2 MB JustHireMe_1.6.1_amd64.AppImage 0.0 MB JustHireMe_1.6.1_amd64.AppImage.sig 152.5 MB JustHireMe_1.6.1_amd64.deb 0.0 MB JustHireMe_1.6.1_amd64.deb.sig 106.4 MB JustHireMe_1.6.1_x64-setup.exe 0.0 MB JustHireMe_1.6.1_x64-setup.exe.sigWhat's inside
- Local-first job intelligence workbench
- Internship and early-career opportunity workspace for CSE, software, data, and AI candidates
- One-click Elite AI Internship campaign for paid India and worldwide-remote opportunities
- Configurable INR and USD compensation floors and targets with truthful range handling
- Broad first-party source adapters, canonical deduplication, liveness checks, and India/remote applicability gates
- Transparent apply, stretch, review, and skip decisions with source provenance and rejection reasons
- Built-in CRM for your job pipeline
- Profile-aware graph and vector matc
- v1.5.0JustHireMe v1.5.02026-08-26 · 2026-08-26 08:20 UTC
查看更新说明
JustHireMe v1.5.0
Installation
- Windows: download JustHireMe_1.5.0_x64-setup.exe, run it, and use More info -> Run anyway if SmartScreen appears.
- Linux: download the .AppImage, run chmod a+x on it, then launch it; or install the .deb on Debian/Ubuntu-based systems.
- macOS: download the .dmg and drag JustHireMe into Applications. If the build is not notarized, macOS may require Privacy & Security -> Open Anyway.
Your data stays on your machine. JustHireMe is local-first: no hosted backend, no tracking, and no app data leaves your computer by default.
SHA256 checksums
38280dc04a4548d4710c25f304e6206f3e0770f0565c7559b242ec6654b94928 JustHireMe-browser-runtime-linux.zip 66989fe46b29358ca2a67c3edce87a71382fc805d70c277401253c11013b9bec JustHireMe-browser-runtime-macos.zip 131db09d4f44bb47a3502d67ad26886b4ef045cc28378439831c88f36e018e87 JustHireMe-browser-runtime-windows.zip e70ee30b50ae35041cbb7e7e113b3ec809d3c07f4b8847108889e30d9f903441 JustHireMe-runtime-pack-linux.zip d1444c116a7fd5cc8fb3773d2d34a6e18bccc25c24c25d83435ef174b90a45b1 JustHireMe-runtime-pack-macos.zip 48a308905102e6bcc09efb99d255309956363d134e933f3c3b4d272388244dd4 JustHireMe-runtime-pack-windows.zip 38264166f357d6afd8326e354f498bcd6ba57a9c86971f4a6859e9709571c14c JustHireMe-vector-runtime-linux.zip d5154c82c6a3cfeb5a4357ee16f2cdf474930682a2a1c068cd919287a01ee6f1 JustHireMe-vector-runtime-macos.zip a5d03dd28ac69fc830363e1eeb4f88950d481f4abe883078b15ef45c7fc0d852 JustHireMe-vector-runtime-windows.zip 1806dead6618ac1e1f17317b0ab88f87c0890cff5d20452f261a88a48ab44298 JustHireMe.app.tar.gz e90ce5dbae989855e297c5679826b32c035b5218d0c09771944ea7a0a8f76444 JustHireMe.app.tar.gz.sig e9b1e585d4ccb3c04bb0b7fb306f44a0cc11709b4493ddc5ba84db541ef6935a JustHireMe_1.5.0_aarch64.dmg 645f090581b768b7046062db041c8c6ba1a15bbbdc99551848329b0d2f671d02 JustHireMe_1.5.0_amd64.AppImage f3d6daadb4de97664d5cab6e8f17c9d763798c8f581584f07268ec8926f51a6f JustHireMe_1.5.0_amd64.AppImage.sig f2294edb4204a4c5b4589a12a7111765ca207b5937890997bc3465ad9dcb7eab JustHireMe_1.5.0_amd64.deb bfd82be0dfc24f7a14a469e2a9196ce00183189d42abae1c7c3be882fd3cddfa JustHireMe_1.5.0_amd64.deb.sig c7e0f4c77f59e3b07ea3b8c8c8d6073fcc091cde7ac10ac12f12ad5612028ccd JustHireMe_1.5.0_x64-setup.exe 63a55819d174e1c7f6ee44b410d6b239eaaac9f805592f2848ce08a20c4a79fb JustHireMe_1.5.0_x64-setup.exe.sigAsset sizes
268.6 MB JustHireMe-browser-runtime-linux.zip 563.0 MB JustHireMe-browser-runtime-macos.zip 298.7 MB JustHireMe-browser-runtime-windows.zip 363.5 MB JustHireMe-runtime-pack-linux.zip 644.4 MB JustHireMe-runtime-pack-macos.zip 362.8 MB JustHireMe-runtime-pack-windows.zip 121.4 MB JustHireMe-vector-runtime-linux.zip 90.6 MB JustHireMe-vector-runtime-macos.zip 99.9 MB JustHireMe-vector-runtime-windows.zip 108.7 MB JustHireMe.app.tar.gz 0.0 MB JustHireMe.app.tar.gz.sig 108.9 MB JustHireMe_1.5.0_aarch64.dmg 223.2 MB JustHireMe_1.5.0_amd64.AppImage 0.0 MB JustHireMe_1.5.0_amd64.AppImage.sig 152.5 MB JustHireMe_1.5.0_amd64.deb 0.0 MB JustHireMe_1.5.0_amd64.deb.sig 106.4 MB JustHireMe_1.5.0_x64-setup.exe 0.0 MB JustHireMe_1.5.0_x64-setup.exe.sigWhat's inside
- Local-first job intelligence workbench
- Internship and early-career opportunity workspace for CSE, software, data, and AI candidates
- Broad first-party source adapters, canonical deduplication, liveness checks, and India/remote applicability gates
- Transparent apply, stretch, review, and skip decisions with source provenance and rejection reasons
- Built-in CRM for your job pipeline
- Profile-aware graph and vector matching
- Resume, cover letter, and outreach draft generation
- Bundled backend sidecar
- Mandatory runtime pack as one first-run OTA download
- Runtime pack includes LanceDB, PyArro
- test-2026-07-19Test build 2026-07-19 (dev)pre-release2026-07-18 · 2026-07-18 21:24 UTC
查看更新说明
Windows test build - NOT a production release.
Built from the dev branch (fdbe477) for pre-release testing. This build is unsigned (SmartScreen will warn: More info -> Run anyway), is invisible to the auto-updater, and will be deleted once the real release ships.
What's in it:
- New UI: brand typography, light/dark repaired end to end, motion, app icon
- CachyOS/Linux blank-window fix (#162, #177) - note: this exe is Windows; the Linux fix ships with the real release
- Resume import fidelity: full date ranges, per-role cities, no truncation (#111)
- Resume visual styles: Classic / Harvard / Modern (#90)
- PDF overflow detection (#122), Antigravity CLI provider (#147), Intel-Mac source builds (#63)
Report anything broken on the issue tracker.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Star History
The Short Version
JustHireMe is an AGPL-licensed, local-first desktop workbench for people who are tired of noisy job boards and black-box AI apply tools.
Maintainer
JustHireMe is built and maintained by Vasudev Siddh - full-stack AI engineer, open-source builder, and the person who got tired of bad job boards and built something better.
Sponsor the project - Sponsorship keeps JustHireMe actively maintained, funds source adapter coverage, and supports the local-first architecture that makes this different from every cloud-first alternative.
Current Status
JustHireMe's stable core is the local-first desktop workbench, Python sidecar API, lead ingestion, deterministic ranking, profile-aware matching, local CRM workflows, and document/outreach generation. Every release is built by GitHub Actions from a v* tag and now ships installers for Windows, macOS, and Linux.
| Area | Status |
|---|---|
| Frontend workbench | Stable |
| Python sidecar API | Stable |
| Scraper, ranking, vector matching, and customizer core | Supported open-source scope |
Windows installer (.exe) | Released every version |
macOS installer (.dmg + .app) | Released every version (ad-hoc signed, not yet notarized — Gatekeeper may need "Open Anyway") |
Linux packages (.deb + AppImage) | Released every version |
| Auto-update | Built in; the app updates itself from the latest GitHub release |
| Thin installer + first-run runtime | Installer is ~100 MB; the heavy runtime (browser + vector libs + embedding model) downloads once on first run, then is cached |
| Dark mode | Light / Dark / System, system-aware, shipped |
| Local embeddings | Bundled ONNX model (all-MiniLM-L6-v2) with a deterministic hashing fallback — semantic matching works fully offline, no API key |
| Keyless by default | Discovery, ranking, and generation all run with zero API key — local Ollama or your existing Claude Code / Codex CLI subscription can power every LLM step; keyed providers (OpenAI, Gemini, Groq, and 15+ others) are optional, not required |
| Field-agnostic | Discovery, ranking, and tailoring work for any field (healthcare, trades, finance, law, education, hospitality, creative, software, ...) — scoring is relative to the candidate's own domain, not a fixed tech vocabulary |
| Location-agnostic | Targets any city/region worldwide; location is auto-detected from your résumé (or set explicitly), with remote / hybrid / onsite preference |
| Resume tailoring | Works for any field (engineering, design, finance, healthcare, education, trades, ...) |
| Résumé/profile ingestion | Tolerates real-world profile shapes (PDF/DOCX/TXT/MD, JSON Resume exports, LinkedIn zips, GitHub, portfolio URLs) and shows a transparent import report — what was pulled in, skipped, or capped |
| Explainable matching | Fit scores are backed by GraphRAG proof from your own Kùzu skill/project graph, not just a number |
| Browser automation / auto-apply | Experimental lab, disabled by default |
| API key storage | Local app settings; .env is for development overrides; OS keychain planned |
If you are new here, start with the frontend preview first. If you want to contribute backend behavior, source adapters, or packaging, use the full desktop setup below.
It helps you:
| Stage | What JustHireMe Does | Why It Matters |
|---|---|---|
| Scrape | Collect leads from ATS boards, feeds, communities, APIs, and configured sources | You are not locked into one job board |
| Quality Gate | Reject stale, thin, spammy, senior-only, or low-context leads before they pollute the pipeline | Better signal, less cleanup |
| Rank | Score lead quality and candidate fit with explainable deterministic rules, feedback learning, and optional LLM reasoning | You can see why a role is worth attention |
| Match | Use Kuzu graph data and LanceDB vectors to compare jobs against your profile context | Matching is profile-aware, not keyword-only |
| Customize | Generate tailored resume PDF, cover letter PDF, and outreach drafts | You get a useful package, not just a list of links |
Browser automation and auto-apply code exists in the repository, but it is experimental, opt-in, and unsupported as part of the stable core. The supported open-source core is scraper, ranker, vector matching, and customizer.
Visual Workflow
flowchart LR
A["Import Resume / Profile"] --> B["Profile Graph<br/>Kuzu"]
A --> C["Skill + Project Vectors<br/>LanceDB"]
D["Scraper Sources"] --> E["Normalized Leads"]
E --> F["Lead Quality Gate"]
F --> G["Ranker + Evaluator"]
B --> G
C --> G
G --> H["Lead Pipeline"]
H --> I["Customizer"]
I --> J["Resume PDF"]
I --> K["Cover Letter PDF"]
I --> L["Outreach Drafts"]
flowchart TD
S["Source Adapter"] --> N["Normalize Lead"]
N --> Q{"Quality Gate"}
Q -- "Reject" --> R["Filtered with reason"]
Q -- "Accept" --> C["Local CRM"]
C --> E["Fit Evaluation"]
E --> U["User Review"]
Q:::gate
R:::reject
C:::store
E:::score
classDef gate fill:#e0f2fe,stroke:#0284c7,color:#0f172a
classDef reject fill:#fee2e2,stroke:#dc2626,color:#0f172a
classDef store fill:#dcfce7,stroke:#16a34a,color:#0f172a
classDef score fill:#fef3c7,stroke:#d97706,color:#0f172a
What It Does
Why This Exists
Most job search tools make one of two mistakes:
| Problem | Result |
|---|---|
| They scrape too broadly | Users drown in stale, irrelevant, senior-only, or spammy jobs |
| They automate too aggressively | Users lose control and trust |
| They rank opaquely | Nobody knows why a job was recommended |
| They are cloud-first | Sensitive profile/job data leaves the user's machine |
| They are hard to extend | Contributors cannot easily add new sources or improve ranking |
JustHireMe takes a different path:
More signal.
More explanation.
More local control.
More contributor-friendly source adapters.
Less blind automation.
Product Principles
| Principle | Meaning |
|---|---|
| Local-first | Profile data, lead history, generated docs, graph data, vectors, and settings live locally by default |
| Explainable | Every important ranking and filtering decision should have a visible reason |
| Contributor-friendly | Adding a source adapter should be approachable and testable |
| Human-controlled | Generated materials are drafts for review, not magic submissions |
| Honest fallback | If vectors, models, or source data fail, the app should say so |
| Automation is experimental | Browser automation is a lab area, not the core open-source promise |
Architecture
flowchart TB
subgraph Desktop["Tauri Desktop Shell"]
UI["React + TypeScript UI"]
Bridge["Tauri Commands<br/>Port + API Token"]
end
subgraph Backend["Python Backend Sidecar"]
API["FastAPI + WebSockets"]
Scrapers["Scraper Agents"]
Gate["Lead Quality Gate"]
Ranker["Ranker / Evaluator"]
Customizer["Document + Outreach Generator"]
end
subgraph LocalData["Local Data Layer"]
SQLite["SQLite CRM"]
Kuzu["Kuzu Profile Graph"]
LanceDB["LanceDB Vectors"]
Files["Generated PDFs"]
end
UI --> Bridge --> API
API --> Scrapers --> Gate --> SQLite
API --> Ranker
Ranker --> Kuzu
Ranker --> LanceDB
API --> Customizer --> Files
API --> SQLite
| Area | Technology |
|---|---|
| Desktop shell | Tauri 2 (auto-updating, Light/Dark/System theming) |
| Frontend | React 19, TypeScript, Vite, Tailwind CSS |
| Backend API | Python 3.13, FastAPI, WebSockets |
| Local CRM | SQLite |
| Profile graph | Kuzu |
| Vector store | LanceDB |
| Embeddings | Local ONNX model (all-MiniLM-L6-v2) with a hashing fallback - no API key required |
| LLM providers | Keyless: Ollama, Claude Code CLI, Codex CLI. Keyed (optional): OpenAI, Anthropic, Gemini, Groq, DeepSeek, and 15+ others via a common provider abstraction |
| Matching | Deterministic scoring + GraphRAG proof from the profile graph, local semantic search, optional LLM evaluation |
| Documents | Markdown/PDF rendering |
| Experimental lab | Playwright browser automation |
| Packaging | Thin Tauri installer + first-run runtime pack (Windows / macOS / Linux) |
First-run runtime pack. To keep installers small (~100 MB instead of ~450-700 MB), the heavy runtime - the Playwright browser, vector libraries, and the ONNX embedding model - is not bundled into the installer. The app downloads it once on first run, verifies it, and caches it. The pack is content-versioned, so routine app updates reuse the cached pack instead of re-downloading it.
More detail: docs/ARCHITECTURE.md
Repository Map
JustHireMe/
|-- src/ React frontend workbench
| |-- api/ HTTP/WebSocket API clients and types
| |-- features/ Activity, apply, dashboard, graph, inbox, pipeline, profile, settings
| |-- shared/ Components, hooks, context, utilities
| `-- main.tsx Frontend entrypoint
|-- backend/ Python FastAPI sidecar
| |-- api/ FastAPI app, routers, auth, scheduler, WebSockets
| |-- automation/ Scout scraping orchestration + experimental apply/actuator
| |-- core/ Config, occupation vocab, SSRF guard, telemetry
| |-- data/ SQLite repos, Kùzu graph, LanceDB vectors, migrations
| |-- discovery/ Query generation, dedup, quality gate, source adapters
| |-- gateway/ Async job tracking, discovery config
| |-- generation/ Resume, cover letter, and outreach generators
| |-- graph_service/ Query helpers behind the knowledge-graph view
| |-- llm/ Provider abstraction (keyed + keyless/subscription-CLI), embeddings
| |-- profile/ Resume/LinkedIn/GitHub/portfolio ingestion + normalization
| |-- ranking/ Fit scoring, criteria, semantic/evaluator logic
| `-- tests/ Backend unit, integration, and regression tests
|-- src-tauri/ Tauri Rust shell
| `-- resources/ Bundled sidecar/runtime resources generated for packages
|-- website/ Public website
|-- docs/ Architecture, source adapter, release docs
|-- scripts/ Build scripts
|-- skills/ Agent skill instructions
`-- .github/ CI, issue templates, PR template
Quick Start
Install The Desktop App
Use this path if you are not a developer and just want to run JustHireMe. Open the latest GitHub Release and grab the asset for your platform.
| Platform | Download | Notes |
|---|---|---|
| Windows | JustHireMe_*_x64-setup.exe | If SmartScreen appears, click More info -> Run anyway |
| macOS (Apple Silicon) | JustHireMe_*_aarch64.dmg | Not yet notarized: if macOS says the app is damaged/unverified, allow it in System Settings -> Privacy & Security -> Open Anyway |
| Linux (Debian/Ubuntu) | JustHireMe_*_amd64.deb | sudo dpkg -i the file |
| Linux (portable) | JustHireMe_*_amd64.AppImage | chmod +x then run it |
First launch downloads the runtime pack. The first time you open the app it fetches the runtime (browser + vector libraries + embedding model) over HTTPS and caches it; this is a one-time download. After that, the app starts offline-ready and routine updates do not re-download it.
The app updates itself automatically from the latest GitHub release. Release notes include SHA256 checksums, and every installer is built by GitHub Actions from the release tag so the published binary matches the repository source.
Requirements
| Tool | Version |
|---|---|
| Node.js | 24 recommended; CI uses Node 24 |
| Python | 3.13+ |
| Rust | stable |
| uv | latest stable |
| Git | any modern version |
Optional:
- Ollama for local model experiments
- Playwright browser dependencies only for experimental automation work
Fast Frontend Preview
Use this path if you just want to inspect the UI, design direction, or frontend code.
git clone https://github.com/vasu-devs/JustHireMe.git
cd JustHireMe
npm ci
npm run dev
This starts the Vite frontend only. Backend-backed workflows may show empty, mocked, or unavailable states depending on the screen.
Full Desktop Setup
Use this path if you want the Tauri shell and Python backend sidecar.
git clone https://github.com/vasu-devs/JustHireMe.git
cd JustHireMe
npm ci
cd backend
uv sync --dev
cd ..
Then run:
npm run tauri dev
The Tauri shell starts the frontend and launches the Python backend sidecar/dev process.
Install website dependencies only when working on the public website or running the full local check group:
cd website
npm ci
cd ..
Before Opening An Issue
- Check whether the bug is in supported core behavior or experimental automation.
- Remove API keys, cookies, resumes, local databases, and generated private documents from logs or screenshots.
- For source requests, include a public example URL and expected normalized fields.
- For ranking bugs, include the expected score behavior and sanitized job/profile snippets.
Development Commands
| Task | Command |
|---|---|
| Install frontend dependencies | npm ci |
| Install backend dependencies | cd backend && uv sync --dev |
| Install website dependencies | cd website && npm ci |
| Frontend dev server | npm run dev |
| Website dev server | cd website && npm run dev |
| Desktop dev app | npm run tauri dev |
| Version consistency check | npm run version:check |
| TypeScript check | npm run typecheck |
| Frontend tests | npm test |
| Frontend build | npm run build |
| Backend tests | cd backend && uv run python -m pytest tests -q |
| Backend regression smoke | cd backend && uv run python -m pytest tests/test_regressions.py tests/test_api.py::TestAuthGate |
| Keyless LLM CLI smoke (Ollama/Claude Code/Codex CLI) | npm run smoke:llm-cli |
| Live source connectivity smoke | npm run smoke:live-sources |
| Rust tests | cd src-tauri && cargo test --lib |
| Rust check | cd src-tauri && cargo check |
| Website build | cd website && npm run build |
| All local checks | npm run check |
| Build sidecar | npm run build:sidecar |
| Build frontend, website, and Rust check | npm run build:all |
| Fast release smoke | npm run release:smoke |
| Release preflight | npm run release:preflight |
| Windows installer package rehearsal (requires updater signing env) | npm run release:windows |
| Linux packages | npm run release:linux |
| macOS package | npm run release:macos |
npm run check runs the version check, frontend typecheck, frontend tests, frontend build, website build, backend tests, Rust tests, and Rust check. Run npm ci, cd backend && uv sync --dev, and cd website && npm ci first so every lane has its dependencies.
On Windows PowerShell, use npm.cmd instead of npm if the npm.ps1 shim is blocked by execution policy. If your shell does not support &&, run the cd command and the following command as separate lines.
Standard Procedure
Use this workflow for normal development and pull requests:
- Sync from the lockfiles:
npm ci,cd backend && uv sync --dev, andcd website && npm ciif the website or full check suite is involved. - Keep changes focused. Core product work should preserve local-first storage, explainable ranking, and human-reviewed generation. Browser automation stays experimental and opt-in.
- Run targeted checks for the area you changed, then run
npm run checkbefore opening a PR when practical. - Add or update tests for behavior changes. Use backend regression tests for ranking, source, API, storage, and generation changes.
- Update docs whenever setup, commands, release behavior, user-facing workflows, source adapter contracts, or privacy expectations change.
- Do not commit
.env, API keys, cookies, bearer tokens, private resumes, local databases, graph/vector stores, generated PDFs, app data, or generated sidecar binaries.
Use this release flow for maintainer builds:
- Bump all versioned files with
npm run version:bump -- X.Y.Z. - Run local validation with
npm run check:all,npm run lint,npm run test:coverage,npm run release:smoke, andnpm run smoke:windows-update. - Push a
vX.Y.Ztag and let GitHub Actions build, sign, verify updater metadata, smoke the Windows installer, generate checksums, and publish release assets from CI. - Verify generated updater artifacts with
npm run release:verify-updater -- release-assets vX.Y.Zwhen checking a downloaded CI asset folder.
Detailed release checklists live in docs/MAINTAINER_RELEASE_CHECKLIST.md, docs/windows-release.md, and docs/PRODUCTION_RELEASE_ROADMAP.md.
Agent Skill And MCP
JustHireMe includes two reusable agent surfaces:
- An agent-neutral skill at
skills/justhireme/SKILL.md - A lightweight stdio MCP server at
backend/mcp_server.py
The skill is plain Markdown with YAML frontmatter. It is written to be useful in any AI coding assistant that can load local instructions, including Claude, Codex, IDE agents, and custom agent runners. It tells an agent how to work safely inside this repository: preserve local-first behavior, keep ranking explainable, treat browser automation as experimental, and use the existing backend/frontend patterns.
Use The Skill
Point your agent or assistant at:
skills/justhireme/SKILL.md
If your agent expects skills in a separate directory, copy or symlink the skills/justhireme folder into that tool's skill/instruction location. The skill has no runtime dependency on Codex-specific APIs.
Use The MCP Server
Install backend dependencies first:
cd backend
uv sync --dev
cd ..
Start the MCP server from the repository root on Windows:
backend\.venv\Scripts\python.exe backend\mcp_server.py
Start it on macOS/Linux:
backend/.venv/bin/python backend/mcp_server.py
The MCP server exposes:
| Tool | Purpose |
|---|---|
score_job_fit | Score a raw job posting against a candidate JSON profile |
evaluate_lead_quality | Run the deterministic quality gate for a normalized lead |
extract_lead_intel | Extract company, location, budget, urgency, stack, and signal quality from lead text |
Example MCP client configuration:
{
"mcpServers": {
"justhireme": {
"command": "/absolute/path/to/JustHireMe/backend/.venv/bin/python",
"args": ["/absolute/path/to/JustHireMe/backend/mcp_server.py"],
"cwd": "/absolute/path/to/JustHireMe"
}
}
}
On Windows, use the venv interpreter at backend\\.venv\\Scripts\\python.exe. More detail: docs/MCP.md
Core Concepts
Source Adapters
Source adapters turn external job sources into normalized lead dictionaries.
Implementations live in backend/discovery/sources/ (ATS boards, RSS/Atom, Hacker News, GitHub, Reddit, custom JSON, and a Playwright-backed web fallback); backend/automation/scout.py fans out across them, dedupes, and hands results to the quality gate.
flowchart LR
A["Raw Source"] --> B["Adapter"]
B --> C["Normalized Lead"]
C --> D["Quality Gate"]
D --> E["Local CRM"]
Read: docs/source-adapters.md
Quality Gate
The gate lives in backend/discovery/quality_gate.py.
It checks:
| Signal | Example |
|---|---|
| URL exists | Reject rows with no source/apply URL |
| Posting depth | Penalize thin scraped snippets |
| Freshness | Penalize stale jobs |
| Seniority | Reject senior-only roles in beginner-focused feeds |
| Red flags | Penalize unpaid, commission-only, no-budget, homework, or exposure posts |
| Company/context | Penalize missing company or unclear source context |
Ranking
Ranking combines:
- source signal
- lead quality score
- deterministic fit rubric
- seniority caps
- project and stack evidence
- optional LLM-assisted evaluation
- semantic fit when vectors are available
- feedback learning
Vector Matching
flowchart LR
Resume["Resume / Profile"] --> Graph["Kuzu Graph"]
Resume --> Embed["Embeddings"]
Embed --> Vectors["LanceDB"]
Job["Job Description"] --> Query["Semantic Query"]
Query --> Vectors
Vectors --> Fit["Semantic Fit Signal"]
Graph --> Fit
Customizer
For a strong lead, the customizer produces:
| Output | Purpose |
|---|---|
| Tailored resume PDF | Role-specific resume package |
| Cover letter PDF | Focused application narrative |
| Founder message | Short direct outreach |
| LinkedIn note | Concise connection/message draft |
| Cold email | Longer outreach draft |
| Keyword coverage | Shows what the generated package covers |
| Selected projects | Explains which profile evidence was used |
Configuration And Privacy
Settings are configured inside the desktop app. For v1, API keys are stored in local app settings.
Local data may include:
| Data | Stored Locally |
|---|---|
| Profile graph | yes |
| Vector tables | yes |
| Lead CRM | yes |
| Generated PDFs | yes |
| Settings | yes |
| Activity history | yes |
Do not share screenshots, logs, local app data, issue attachments, or database files that contain API keys, cookies, private resumes, or personal data.
Planned improvement:
- OS keychain-backed API key storage
Release Builds
Every release builds and publishes installers for Windows, macOS, and Linux from a single v* tag via GitHub Actions - never uploaded from a maintainer workstation. The pipeline builds each platform's sidecar and Tauri installer, runs an auto-update smoke test, generates SHA256 checksums, and publishes the assets. Windows and macOS builds are not yet code-signed/notarized, so the OS may warn on first launch (see the install table above); code signing and macOS notarization are the next packaging milestone.
npm run release:smoke
npm run smoke:windows-update
Use npm run release:windows only for an intentional local package rehearsal when Tauri updater signing variables are available. Use npm run release:linux or npm run release:macos for platform-specific local package builds when you are explicitly testing those paths.
Release smoke test and packaging details: docs/windows-release.md, docs/MAINTAINER_RELEASE_CHECKLIST.md, and docs/PRODUCTION_RELEASE_ROADMAP.md.
Contributing
The best first contribution path is scraper/source quality.
Start here:
| Document | Purpose |
|---|---|
| CONTRIBUTING.md | Contribution rules and development workflow |
| CODE_OF_CONDUCT.md | Community standards |
| docs/ARCHITECTURE.md | System design |
| docs/source-adapters.md | Scraper adapter contract |
| docs/FEATURE_TEST_MATRIX.md | Which features are verified and how |
| docs/MAINTAINER_RELEASE_CHECKLIST.md | Release and safety checklist |
| ROADMAP.md | Project direction |
| SECURITY.md | Privacy and responsible reporting |
Please do not open public issues with API keys, resumes, cookies, bearer tokens, or database files.
Experimental Automation
The repository contains browser automation and auto-apply code for experimentation and future plugin work. This is distinct from the scraping scout (backend/automation/scout.py), which is core, supported, and always on — "experimental" here refers specifically to the DOM-fill/vision-based apply actuator, not lead discovery.
| Status | Meaning |
|---|---|
| Disabled by default | Not part of the supported job workflow |
| Unsupported lab | Useful for contributors, not normal users |
| Not marketed as core | The product works without it |
| Potential future plugin | May be separated later |
Roadmap
timeline
title JustHireMe Open-Source Roadmap
Shipped : Quality gate + source adapter docs
: Cross-platform installers (Win / macOS / Linux)
: Thin installer + first-run runtime download
: Auto-update
: Light / Dark / System theming
: Local ONNX embeddings (no API key)
: Any-field resume tailoring
Next : Code signing + macOS notarization
: More ATS adapters and parser fixtures
: OS keychain support for API keys
Later : Ranking evaluation dataset
: Clearer semantic-matching visibility in the UI
: Optional automation plugin
Near-term priorities:
- code signing for Windows and notarization for macOS (remove first-launch security warnings)
- more high-quality ATS/company source adapters
- stronger quality gate tests
- clearer vector matching state in the UI
- contributor-friendly source plugin boundaries
- OS keychain support for API keys
Legal & Privacy
JustHireMe is local-first: your profile, leads, and generated documents stay on your device. The full policies live in docs/legal/:
| Document | Purpose |
|---|---|
| Terms of Use | Rules for using the app and site, your responsibilities, warranty/liability |
| Privacy Policy | What is and isn't collected (almost nothing leaves your machine) |
These policies govern use of the app and site; the source code is licensed separately under AGPL-3.0 (below). Governed by the laws of India; contact [email protected]. See the legal index.
License
JustHireMe is open source under the GNU Affero General Public License v3.0 only.
You may self-host, modify, and use JustHireMe, including with your own API keys, under the terms of the AGPL-3.0 license. If you modify JustHireMe and make it available over a network, the AGPL requires you to provide the corresponding source code for that modified version to users of the network service.
Commercial licenses are available for organizations that want to use JustHireMe outside the AGPL terms, including private forks, proprietary modifications, embedding, white-labeling, or managed deployments. See COMMERCIAL_LICENSE.md for the commercial path.
Maintainer Note
This project is being built in the open because one person cannot cover every job source, every market, every ranking edge case, and every packaging path alone.
The goal is a useful local tool and a welcoming codebase where contributors can add sources, improve ranking, and help job seekers get better signal with less noise.