python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install ".[test]"
cp config.example.yaml config.yamlEdit config.yaml and set model.base_url, model.api_key, and model.model.
If the resume filename job name differs from the job workbook sheet name, add aliases:
job_aliases:
后端开发工程师: "全栈"
后端开发实习岗: "全栈"resume-screening run --config config.yamlThe tool appends rows to /Users/mac/Downloads/小A科技(北京)组织招聘.xlsx.
It rereads /Users/mac/Downloads/小A自动化岗位说明书_副本.xlsx on every run.
Historical rows are preserved.
Duplicate resume content is still appended and marked red.
The resume folder is scanned recursively. All visible regular files are processed; unsupported formats are appended as 待人工二筛 with an extraction note.
Supported filename formats include 【岗位_地点 薪资】姓名 工龄.pdf and 岗位_地点_薪资_姓名_工龄.pdf.
The job workbook can use the original one-sheet-per-job layout or a tabular layout where each row contains a 岗位名称.
Double-click 启动简历筛选网页版.command from this project folder.
On first launch, the script creates or reuses .venv, installs the tool, creates config.yaml from config.example.yaml if needed, builds the React page if needed, and opens http://127.0.0.1:8765.
The web page has four steps:
- Save model settings.
- Confirm resume folder, job requirements workbook, result workbook paths, and optional job aliases.
- Run a lightweight precheck.
- Start screening and watch live progress, logs, and final statistics.
Build a portable macOS app bundle:
source .venv/bin/activate
bash scripts/build_macos_app.shThe outputs are dist/小A简历筛选.app and dist/小A简历筛选-mac.zip.
The app stores its config at ~/Library/Application Support/小A简历筛选/config.yaml.
When copied to a new Mac, copy 小A简历筛选-mac.zip, unzip it, launch the app, and reselect the local resume folder, job workbook, result workbook, and model API settings.
The app bundles the Python runtime and project dependencies. OCR still depends on a local tesseract installation if image or scanned-PDF recognition is needed.
The app is built for the architecture of the Mac that runs the build script. The current generated package is for Apple Silicon; build again on Intel Mac if an Intel-only Mac needs to run it.
Build Windows packages on Windows:
.\scripts\build_windows_app.ps1 -Python python -InstallerThe outputs are dist\小A简历筛选-windows-x64.zip and dist\小A简历筛选-windows-x64-setup.exe.
The installer checks WebView2 and can download it after the user confirms the selected installer task.
Qwen model weights are not bundled; the app checks the local model environment on first launch and downloads the GGUF model only after the user confirms in the app.
By default, model.fallback_to_local_when_unavailable: true lets the web app switch from an unavailable custom OpenAI-compatible model to the bundled local Qwen model during precheck.
Set model.allow_without_model: true to process files without model calls.
Rows that require model judgment are classified as 待人工二筛.
When base_url, api_key, and model are all set, the tool uses the model first even if fallback mode is enabled.