ホームページ >バックエンド開発 >Python チュートリアル >Python と LLM を使用してスタートアップの求人を検索する

Python と LLM を使用してスタートアップの求人を検索する

DDD
DDDオリジナル
2025-01-27 20:15:13324ブラウズ

Search startup jobs with Python and LLMs

多くの企業 Web サイトでは、主流の求人サイトでは必ずしも見つけられない求人情報が掲載されています。たとえば、遠隔地のスタートアップ企業では求人サイトに掲載されていないこともあるため、仕事を見つけるのは難しい場合があります。これらの求人を見つけるには、次のものが必要です:

  • 可能性のある企業を探しています
  • キャリアページを検索
  • 利用可能な求人情報を分析する
  • ジョブの詳細を手動で記録する

これは非常に時間がかかりますが、自動化します。

準備

Parsera ライブラリを使用してジョブのスクレイピングを自動化します。 Parsera には 2 つの使用オプションがあります:

  • ローカル モード: 選択した LLM を使用してマシン上でページを処理します。
  • API モード: すべての処理は Parsera のサーバーで行われます。
この例では、1 回限りの小規模な抽出であるため、ローカル モードを使用します。

まず、必要なパッケージをインストールします:

<code>pip install parsera
playwright install</code>
ローカルセットアップを実行しているため、LLM 接続が必要です。簡単にするために、OpenAI の gpt-4o-mini を使用し、環境変数を 1 つだけ設定する必要があります:

<code>import os
from parsera import Parsera

os.environ["OPENAI_API_KEY"] = "<your_openai_api_key_here>"

scraper = Parsera(model=llm)
</your_openai_api_key_here></code>
すべてのセットアップが完了したら、クロールを開始できます。

ステップ 1: 最新のシリーズ A 資金調達スタートアップのリストを取得する

まず、興味のある企業とその Web サイトのリストを見つける必要があります。先月、シリーズAで資金調達したスタートアップ100社のリストを見つけた。成長企業や新たな資金調達ラウンドを行った企業は良い選択のようです。

これらの企業の国と Web サイトを取得してみましょう:

<code>url = "https://growthlist.co/series-a-startups/"
elements = {
    "Website": "公司的网站",
    "Country": "公司的国家",
}
all_startups = await scraper.arun(url=url, elements=elements)</code>
国の情報を使用して、興味のある国をフィルタリングできます。検索を米国に絞り込んでみましょう:

<code>us_websites = [
    item["Website"] for item in all_startups if item["Country"] == "United States"
]</code>
ステップ 2: 採用ページを探す

これで、米国のシリーズ A 資金調達スタートアップ Web サイトのリストができました。次のステップは、彼らのキャリアページを見つけることです。採用ページをホームページから直接取得します:

<code>from urllib.parse import urljoin

# 定义我们的目标
careers_target = {"url": "职业页面网址"}

careers_pages = []
for website in us_websites:
    website = "https://" + website
    result = await scraper.arun(url=website, elements=careers_target)
    if len(result) > 0:
        url = result[0]["url"]
        if url.startswith("/") or url.startswith("./"):
            url = urljoin(website, url)
        careers_pages.append(url)</code>
オプションで、このステップを検索 API に置き換え、LLM 呼び出しを検索呼び出しに置き換えることができることに注意してください。

ステップ 3: 募集中の求人を取得する

最後のステップは、Web サイトのキャリア ページから募集中のポジションをすべてロードすることです。ソフトウェア エンジニアリングの仕事を探しているとします。次に、役職、所在地、リンク、およびソフトウェア エンジニアリングに関連しているかどうかを検索します。

<code>jobs_target = {
    "Title": "职位的名称",
    "Location": "职位的所在地",
    "Link": "职位发布的链接",
    "SE": "如果这是软件工程职位,则为True,否则为False",
}

jobs = []
for page in careers_pages:
    result = await scraper.arun(url=page, elements=jobs_target)
    if len(result) > 0:
        for row in result:
            row["url"] = page
            row["Link"] = urljoin(row["url"], row["Link"])
    jobs.extend(result)</code>
すべてのポジションを抽出したら、ソフトウェア エンジニアリング以外のポジションをすべて除外し、.csv ファイルに保存できます。

<code>import csv

engineering_jobs = [job for job in jobs if job["SE"] == "True"]

with open("jobs.csv", "w") as f:
    write = csv.writer(f)
    write.writerow(engineering_jobs[0].keys())
    for job in engineering_jobs:
        write.writerow(job.values())
</code>
最後に、以下に示すように、ポジションのリストを含むテーブルを取得します。

职位名称 所在地 链接 软件工程职位 网址
AI技术主管经理 班加罗尔 https://job-boards.greenhouse.io/enterpret/jobs/6286095003 True https://boards.greenhouse.io/enterpret/
后端开发人员 特拉维夫 https://www.upwind.io/careers/co/tel-aviv/BA.04A/backend-developer/all#jobs True https://www.upwind.io/careers
... ... ... ... ...
結論 ----------

次に、同じプロセスを繰り返して、完全なジョブ リストからさらに多くの情報を抽出します。たとえば、技術スタックを取得したり、リモートのスタートアップでのジョブのフィルターを取得したりできます。これにより、すべてのページを手動で確認する時間を節約できます。リンク フィールドを自分で繰り返して、興味のある要素を抽出してみることができます。

この記事がお役に立てば幸いです。ご質問がございましたらお知らせください。

以上がPython と LLM を使用してスタートアップの求人を検索するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。