apply — 求人応募自動化システム

Tool

概要

Job Application Automation System(リポジトリ: apply)は、複数ソースから求人情報を自動で集め、ユーザーの履歴書と照合して応募候補を抽出・スコアリングするワークフローを提供するプロジェクトです。READMEによれば175社以上の企業採用ページとAdzuna・Jooble等の求人APIをクロール/取得し、TF-IDFとsentence-transformerを組み合わせた手法で求人と履歴書の相性を定量化します。最終的にFlaskで動くダッシュボード(app.py)から結果を確認でき、スクレイピングはGreenhouse、Lever、Ashby、Workday、SmartRecruitersといった主要ATSに特化した実装と、BS4/Playwrightによる汎用フォールバックを備えます。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 3
  • ファイル数: 23
  • メインの言語: Python

主な特徴

  • 175社以上の採用ページと複数の求人APIからのマルチソース収集
  • TF-IDFとsentence-transformerを組み合わせたハイブリッドな履歴書—求人マッチング
  • Greenhouse/Lever/Workday等のATS専用スクレイパー+BS4/Playwrightフォールバック
  • Flaskベースのダッシュボードで収集結果とスコアを閲覧可能(app.py)

技術的なポイント

このプロジェクトの技術的核は「スケーラブルなスクレイピング」と「意味的・表層的両面でのマッチング」にあります。スクレイピング面では、GreenhouseやLeverなど共通の構造を持つATSには専用パーサーを用意して安定的にジョブデータを抽出し、汎用ケースではBeautifulSoup(静的HTML)とPlaywright(JSレンダリング)を使い分けて動的ページにも対応します。外部求人ソースとしてAdzunaやJoobleのAPIを併用することでカバレッジを拡張しています。

マッチングは二段構成が特徴です。TF-IDFはキーワードベースの重み付けに強く、職務名・スキル名といった表層一致を素早く捉えます。一方でsentence-transformerなどの埋め込みモデルは文脈的・意味的類似性を測れるため、表現の揺らぎや同義語を吸収できます。両者を組み合わせて正規化・スケーリングしたスコアを生成し、コサイン類似度でランキングする実装がREADMEに示唆されています。

実運用上の考慮点としては、ページネーション・重複求人の除去、レートリミットやCAPTCHA対策、スクレイピングのロバストネス確保(ユーザーエージェントローテーション、リトライ、スロットリング)などがあります。デプロイ面ではapp.pyを介したFlaskダッシュボードが可視化層を担い、将来的にはジョブの定期収集をCronやワーカー(Celery等)で自動化し、結果を永続化するためのDB(Postgres/Elasticsearch)を組み込むとより実用性が高まります。READMEに記載の機能群から、アーキテクチャは「収集 → 前処理・正規化 → 埋め込み/TF-IDFベクトル化 → 類似度計算 → ダッシュボード表示」のパイプラインを前提とする設計だと推測できます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • app.py: file
  • app_images: dir

…他 18 ファイル

まとめ

求人データ収集と履歴書マッチングを組み合わせた実用的な自動化ツール。拡張性が高く実運用向けに発展可能。

リポジトリ情報:

READMEの抜粋:

Job Application Automation System

An automated pipeline that scrapes job postings from 175+ company career pages and job board APIs, scores them against your resumes using TF-IDF + sentence-transformer matching, and serves results through a Flask web dashboard.

Features

  • Multi-source scraping — Greenhouse, Lever, Ashby, Workday, SmartRecruiters, plus generic BS4/Playwright fallback
  • Job board APIs — Adzuna and Jooble integration for broader coverage
  • Resume matching — TF-I…