JOSINT monitors public recruiter job boards, normalizes job advertisements, assigns controlled industry/function labels, and can infer likely hidden employers behind recruiter postings.
It can run locally as a Codex skill or on a server/OpenClaw schedule. Runtime data, reports, state, and secrets are kept outside the source code and resolved from relative workspace paths.
- Crawls enabled recruiter job boards for a date range or the previous business day.
- Stores clean job records in SQLite.
- Keeps job title and JD text in separate fields.
- Labels jobs using fixed industry and function enums.
- Uses MiniMax-M3 plus optional Metaso search to infer likely hidden employers.
- Generates Chinese Markdown reports.
- Optionally syncs results to Feishu Bitable and sends Feishu IM summaries.
- In scheduled Feishu mode, only jobs newly created in Bitable are sent to employer inference; re-seen or updated jobs are deduplicated without re-analysis.
cp skills/web-ad-radar/.env.example .env
python skills/web-ad-radar/scripts/run_radar.py --workspace . --crawl-only
python skills/web-ad-radar/scripts/run_radar.py --workspace . --offline-sample --companies hays --crawl-onlyScheduled/OpenClaw-style run:
python skills/web-ad-radar/scripts/radar_cron.py --workspace .Copy skills/web-ad-radar/.env.example to .env and fill only the integrations you need.
- MiniMax text model is used for extraction/fallback labeling where configured.
- MiniMax-M3 is used for hidden-employer reasoning.
- Metaso is used for evidence search and candidate-employer verification.
- Feishu variables are only required for Bitable/IM sync mode.
FEISHU_ANALYSIS_LOG_TABLE_IDis optional. When configured, each inference result is also appended to a separate analysis log table with reasoning, searches, evidence, and review flags.
reports/josint-YYYY-MM-DD.mddata/jobs.sqlitedata/api_usage.jsonldata/bitable_state.jsonwhen Feishu sync is enabled
The main Bitable keeps one canonical row per job advertisement, deduplicated by URL and normalized url_hash.
monthis set only when a row is first created and is intended for monthly views.last_seen_monthis refreshed whenever a row is seen again.analysis_*,reasoning_summary, and*_jsonfields store the latest hidden-employer inference state.- A separate optional analysis log table can be enabled with
FEISHU_ANALYSIS_LOG_TABLE_IDto preserve the inference trail for every run.
cd skills/web-ad-radar/scripts
python -m unittest discover -s ../tests -vApache License 2.0. See LICENSE.