From get-offers
Automates job/mentor application campaigns: intakes applicant facts, scrapes targets, tailors LaTeX resumes and cover letters, and generates email drafts for review.
How this skill is triggered — by the user, by Claude, or both
Slash command
/get-offers:get-offersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to turn applicant facts plus target descriptions into tailored application materials and reviewable delivery drafts. Default to human-reviewed drafts; do not send automatically unless the user explicitly asks and confirms the exact batch.
agents/openai.yamlassets/resume-template/resume.clsintegrations/browser_capture_seed_urls.jsonintegrations/external_tools.jsonintegrations/faculty_sources.jsonintegrations/public_job_sources.jsonintegrations/runtime_support.jsonintegrations/source_strategies.jsonintegrations/web_sources.jsonreferences/browser-agent-capture-audit-2026-06-29.mdreferences/delivery.mdreferences/environment.mdreferences/full-audit-2026-06-29.mdreferences/material-guidelines.mdreferences/repository.mdreferences/support-matrix.mdreferences/target-sources.mdreferences/test-report.mdreferences/workflow.mdscripts/agent_chrome_capture.pyUse this skill to turn applicant facts plus target descriptions into tailored application materials and reviewable delivery drafts. Default to human-reviewed drafts; do not send automatically unless the user explicitly asks and confirms the exact batch.
For the full workspace contract and command sequence, read references/workflow.md.
For environment, dependency, supported website, university, Chrome helper, and Agent host details, read references/support-matrix.md. Agent hosts may read the structured version at integrations/runtime_support.json. Release validation results are recorded in references/test-report.md.
Before rewriting resumes, read references/material-guidelines.md and the four repository-level Chinese resume guides when present:
简历参考编写指南(通用岗).md简历参考编写指南(技术岗).md简历参考编写指南(非技术).md简历参考编写指南(求学).mdChoose the closest guide by target type: technical jobs use 技术岗, business/operation/design/content roles use 非技术, academic applications and mentor outreach use 求学, and mixed or unclear cases use 通用岗 plus the specialized guide.
python3 skills/get-offers/scripts/init_application_project.py \
--project-dir /path/to/project \
--project-name "campaign name"
When targets have already been collected or imported, prefer the local pipeline for a full reviewable run:
python3 skills/get-offers/scripts/run_campaign_pipeline.py \
--project-dir /path/to/project \
--target-input /path/to/project/targets/imported_targets.csv \
--target-input /path/to/project/targets/faculty/targets_raw.csv \
--resume-file /path/to/project/input/source_resume.md \
--applicant-name "Applicant Name" \
--campaign-name "campaign name" \
--from "Applicant <[email protected]>" \
--compile-resume-pdf
The pipeline creates local merged targets, match reports, material drafts, target-specific LaTeX resumes, optional resume PDFs, Chrome helper JSON, delivery package JSON, and optional .eml review drafts. It does not upload drafts, send mail, or operate website apply buttons.
Intake applicant facts and create an initial optimized resume.
references/material-guidelines.md before tailoring materials.resume.md before target-specific matching. This is the stable facts version; later target-specific resumes should tailor emphasis, not invent new facts.Collect and normalize targets.
references/target-sources.md when scraping or normalizing jobs/mentors.integrations/external_tools.json or list_external_integrations.py to choose optional external collectors or Chrome helpers by platform.integrations/source_strategies.json or plan_collection_strategy.py to choose public API, static HTML, faculty listing, import, or browser-helper strategy.collect_web_targets.py for public URLs.collect_web_targets.py --source-id ... or --tag ... for registered public web sources in integrations/web_sources.json, including 国聘, 中国公共招聘网,省级人才网, and university HR/recruitment entrances.fetch_sii_mentors.py for specific institutions.collect_faculty_targets.py for public school/lab faculty listing pages that expose mentor links, or --source-id entries from integrations/faculty_sources.json such as pku-cs, nju-cs-professors, ustc-cs-professors, and tsinghua-cs.fetch_ncss_jobs.py for 国家大学生就业服务平台 / NCSS public job list JSON and detail pages.fetch_tencent_jobs.py for Tencent Careers public JSON/API job posts.fetch_huawei_jobs.py for Huawei Careers public JSON/API job posts.fetch_baidu_jobs.py for Baidu Talent public JSON/API or SSR job posts.fetch_netease_jobs.py for NetEase Careers public JSON/API job posts.fetch_360_jobs.py for 360 Careers public JSON/API job posts; live results may be empty when no public positions are open.fetch_bytedance_jobs.py, fetch_alibaba_jobs.py, fetch_meituan_jobs.py, fetch_jd_jobs.py, fetch_xiaomi_jobs.py, fetch_bilibili_jobs.py, fetch_mihoyo_jobs.py, fetch_ant_jobs.py, fetch_sensetime_jobs.py, fetch_zhipu_jobs.py, fetch_moonshot_jobs.py, and fetch_minimax_jobs.py. They share fetch_public_jobs.py; use --input-json or --input-html when a site requires normal browser context but exposes public JSON in the user's browser.fetch_shixiseng_jobs.py for Shixiseng public internship search HTML; review rows marked FONT_OBFUSCATED on the original page.process_chrome_captures.py or import_jd_targets.py --profile chrome-visible-capture.import_jd_targets.py --profile ... for CSV/JSON/JSONL/XLSX exports from registered browser plugins, Agent CLIs, or manual tables.merge_target_sources.py when a campaign has outputs from multiple collectors or external tools.python3 skills/get-offers/scripts/import_jd_targets.py \
/path/to/jobs.json \
--profile boss-auto-apply \
--output-csv /path/to/project/targets/imported_targets.csv
python3 skills/get-offers/scripts/import_jd_targets.py \
--list-profiles
python3 skills/get-offers/scripts/list_external_integrations.py \
--platform boss \
--format commands
python3 skills/get-offers/scripts/plan_collection_strategy.py \
--platform boss \
--format commands
python3 skills/get-offers/scripts/merge_target_sources.py \
/path/to/project/targets/imported_targets.csv \
/path/to/project/targets/faculty/targets_raw.csv \
--output-csv /path/to/project/targets/merged_targets.csv \
--report-md /path/to/project/targets/merged_targets_report.md
Deep-read public mentor profile pages after collect_faculty_targets.py when academic outreach needs richer evidence:
python3 skills/get-offers/scripts/deep_read_faculty_profiles.py \
--targets-csv /path/to/project/targets/faculty/targets_raw.csv \
--output-dir /path/to/project/targets/faculty_deep_read
python3 skills/get-offers/scripts/match_resume_to_targets.py \
--targets-csv /path/to/project/targets/merged_targets.csv \
--resume-file /path/to/project/input/resume.md \
--output-csv /path/to/project/targets/matched_targets.csv \
--report-md /path/to/project/targets/match_report.md
Generate reviewable material drafts when the user wants a first pass before manual editing:
python3 skills/get-offers/scripts/make_material_drafts.py \
--targets-csv /path/to/project/targets/matched_targets.csv \
--resume-file /path/to/project/input/resume.md \
--output-dir /path/to/project \
--applicant-name "Applicant Name"
Use --applicant-profile /path/to/applicant_profile.json instead of or in addition to --resume-file when the user provides structured facts rather than an existing resume.
Export tasks for the optional Chrome helper:
python3 skills/get-offers/scripts/export_browser_tasks.py \
--targets-csv /path/to/project/targets/matched_targets.csv \
--campaign-name "campaign name" \
--output-json /path/to/project/targets/chrome_tasks.json
When material drafts already exist, export a richer delivery package with the reviewed greeting, application letter body, and local material paths:
python3 skills/get-offers/scripts/export_delivery_package.py \
--index /path/to/project/application_index.md \
--campaign-name "campaign name" \
--output-json /path/to/project/targets/delivery_package.json
Import reviewed browser status after the user exports it from the Chrome helper:
python3 skills/get-offers/scripts/import_browser_status.py \
--targets-csv /path/to/project/targets/matched_targets.csv \
--status-json /path/to/get-offers-status.json \
--output-csv /path/to/project/targets/matched_targets_with_status.csv
application_index.md.python3 skills/get-offers/scripts/make_application_index.py \
--targets-csv /path/to/project/targets/matched_targets.csv \
--output-dir /path/to/project \
--applicant-name "Applicant Name" \
--create-stubs
target_context.md and applicant profile.fit_score, suggested_focus, matched_keywords, missing_keywords, and greeting_draft if present.make_material_drafts.py output as a grounded first draft, not as final proofread material.application_letter.md.tailored_resume.tex with the built-in resume template.tailored_resume.pdf with compile_latex_resume.py.--resume-filename-template "{applicant_name}_{application_type}.pdf" or a role-specific template such as "{applicant_name}_{role_or_direction}.pdf".python3 skills/get-offers/scripts/export_resume_images.py \
--materials-dir /path/to/project/materials \
--overwrite
references/environment.md for LaTeX and Python dependencies.python3 skills/get-offers/scripts/make_email_drafts.py \
--index /path/to/project/application_index.md \
--output-dir /path/to/project/drafts \
--from "Applicant <[email protected]>" \
--applicant-name "Applicant" \
--subject-template "{applicant_name} - {role_or_direction}申请"
python3 skills/get-offers/scripts/check_email_drafts.py \
--draft-dir /path/to/project/drafts \
--expected-attachments 1
Use make_email_drafts.py --allow-missing-resume only for early body review when target-specific resume PDFs are not ready. Delivery steps should use the reviewed PDF attachment unless the user intentionally chooses a no-attachment message.
references/delivery.md before uploading or sending.upload_email_drafts.py for IMAP Drafts.send_email_messages.py for confirmed SMTP batches.chrome-extension/get-offers-helper and can import chrome_tasks.json or delivery_package.json.When the user asks to publish or upload the plugin, read references/repository.md. Prepare a local git repository, validate the plugin, and push to the configured remote or the remote the user provides.
Run validate_workflow_smoke.py after changing import, matching, browser task, status, or index scripts.
npx claudepluginhub kola-official/get-offersWrites tailored cover letters for job postings from URLs or recent jobs, using resume and profile data to highlight achievements. Saves as Markdown.
Generates personalized answers for job application forms, cover letters, and custom questions using profile.yml, resume.md, evaluations, and company research. Never auto-submits.
Generates ATS-optimized resumes tailored to job postings from master resumes or experience data, producing .docx files via Python rendering.