Maison >développement back-end >Tutoriel Python >Recherchez des travaux de démarrage avec Python et LLMS

Recherchez des travaux de démarrage avec Python et LLMS

DDD
DDDoriginal
2025-01-27 20:15:13327parcourir

Search startup jobs with Python and LLMs

De nombreux sites Web d'entreprises publient des informations sur les offres d'emploi qui ne se trouvent pas toujours sur les sites Web de recherche d'emploi traditionnels. Par exemple, trouver un emploi dans des startups distantes peut être difficile car ces entreprises peuvent même ne pas être répertoriées sur les sites d'emploi. Pour trouver ces emplois dont vous avez besoin :

  • Recherche d'entreprises à potentiel
  • Recherchez leur page carrières
  • Analyser les offres d'emploi disponibles
  • Enregistrer manuellement les détails du travail

Cela prend beaucoup de temps mais nous allons l'automatiser.

Préparation

Nous utiliserons la bibliothèque Parsera pour automatiser le job scraping. Parsera propose deux options d'utilisation :

  • Mode Local : Traitez la page sur votre machine en utilisant le LLM de votre choix
  • Mode API : Tous les traitements sont effectués sur les serveurs de Parsera.

Dans cet exemple, nous utiliserons le mode local car il s'agit d'une extraction unique à petite échelle.

Tout d'abord, installez les packages requis :

<code>pip install parsera
playwright install</code>

Puisque nous exécutons une configuration locale, une connexion LLM est requise. Pour plus de simplicité, nous utiliserons gpt-4o-mini d'OpenAI et n'aurons besoin de définir qu'une seule variable d'environnement :

<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>

Une fois que tout est configuré, nous pouvons commencer à explorer.

Étape 1 : Obtenez la liste des dernières startups financées en série A

Tout d'abord, nous devons trouver une liste des entreprises qui nous intéressent et leurs sites Web. J'ai trouvé une liste de 100 startups qui ont levé des fonds de série A le mois dernier. Les entreprises en croissance et les entreprises bénéficiant de nouveaux tours de table semblent être de bons choix.

Obtenons les pays et les sites Web de ces entreprises :

<code>url = "https://growthlist.co/series-a-startups/"
elements = {
    "Website": "公司的网站",
    "Country": "公司的国家",
}
all_startups = await scraper.arun(url=url, elements=elements)</code>

Grâce aux informations sur les pays, nous pouvons filtrer les pays qui nous intéressent. Limitons notre recherche aux États-Unis :

<code>us_websites = [
    item["Website"] for item in all_startups if item["Country"] == "United States"
]</code>

Étape 2 : Rechercher des pages de carrière

Nous avons maintenant une liste de sites Web de startups de financement de série A aux États-Unis. La prochaine étape consiste à trouver leur page de carrière. Nous extrairons la page des carrières directement depuis leur page d'accueil :

<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>

Notez que vous pouvez éventuellement remplacer cette étape par l'API de recherche et l'appel LLM par un appel de recherche.

Étape 3 : Récupérez les emplois ouverts

La dernière étape consiste à charger tous les postes ouverts depuis la page carrière du site Web. Disons que nous recherchons un emploi en génie logiciel, alors nous rechercherons le titre du poste, le lieu, le lien, et s'il est lié au génie logiciel :

<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>

Une fois tous les postes extraits, nous pouvons filtrer tous les postes non liés à l'ingénierie logicielle et les enregistrer dans un fichier .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>

Enfin, nous obtenons un tableau avec une liste de postes, comme indiqué ci-dessous :

职位名称 所在地 链接 软件工程职位 网址
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
... ... ... ... ...
Conclusion ----------

Ensuite, nous pouvons répéter le même processus pour extraire plus d'informations de la liste complète des tâches. Par exemple, obtenez la pile technologique ou filtrez les emplois dans les startups à distance. Cela permettra de gagner du temps en examinant manuellement toutes les pages. Vous pouvez essayer de parcourir vous-même le champ Lien et d'extraire les éléments qui vous intéressent.

J'espère que vous avez trouvé cet article utile et n'hésitez pas à me faire savoir si vous avez des questions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn