使用说明
求职者
欢迎来到求职者! 这是一个职位搜索平台原型,使用抓取和API调用聚合来自许多公司和政府组织的职位列表。它正在使用Python、Flask、Kafka、MySQL、Selenium、Docker和其他技术构建。它被设计为一个分布式数据管道,可以从企业和政府门户网站获取、清理和规范非结构化的就业市场列表。它使用Selenium和BeautifulSoup的网络抓取蜘蛛,通过Apache Kafka事件骨干将数据摄取与存储层解耦,以处理速率限制和高吞吐量。它使用Docker进行容器化,集成HashiCorp Vault以实现安全的API令牌管理和凭证抽象。
目录
用法
此应用程序旨在帮助求职者找到更适合他们技能和兴趣的职位。
微服务架构
使用的技术
-
python
-
烧瓶
-
硒
-
Beautifulsoup
-
卡夫卡
-
MySQL
-
Caddy(开发中)
-
Hashicorp保险库(开发中)
-
Hashicorp领事(发展中)
需求
为了运行这个容器化的应用程序,您需要安装Docker和/或Docker Desktop。有关更多详细信息,请浏览您的web浏览器https://docs.docker.com/engine/install了解更多详情。
文件结构
The-Job-Board 2/
├── consumer_service/
│ ├── Dockerfile
│ ├── consumer_main.py
│ ├── consumer_service.py
│ └── requirements.txt
├── frontend/
│ ├── Dockerfile
│ ├── templates/
│ │ └── detail_page.html
│ │ └── index.html
│ ├── app.py
│ ├── Dockerfile
│ ├── models.py
│ └── requirements.txt
├── models/
│ ├── __init__.py
│ ├── init.sql
│ ├── models.py
├── scraper_orchestrator/
│ ├── Dockerfile
│ ├── publisher_service.py
│ ├── publisher_main.py
│ ├── requirements.txt
│ ├── scrapers/
│ │ └── ibm_scraper.py
│ │ └── site1_scraper.py
│ │ └── site2_scraper.py
│ └── requirements.txt
├── clear_kafka_logs.sh
├── docker_build_and_spin_up.sh
├── docker-compose.yml
├── docker_stop_and_clean.sh
安装
要在本地运行此网站,请执行以下步骤:
-
克隆存储库:
使用sh:
git clone git@github.com:tmooney84/job-searcher.git使用https:
git clone https://github.com/tmooney84/job-searcher.git -
导航到项目目录:
cd "The-Job-Board 2" -
要构建和启动服务,请执行以下操作:
$ ./docker_build_and_spin_up.sh -
打开
localhost:6300在您首选的web浏览器中查看应用程序的前端。 -
要关闭应用程序并删除旧容器,请运行:
./docker_stop_and_clean.sh -
享受!
故障排除
导航至 localhost:9000 访问KAFDROP GUI界面,查看sql_queue主题是否设置正确。它应该包括一个名为sql_queue的主题,该主题有3个分区,复制因子为3。如果缺少,请通过KAFDROP GUI按“+新建”按钮并填写主题信息手动添加。
未来改进
- 完成身份验证逻辑,包括OAuth2、授权、双因素身份验证安全、秘密管理(Hashicorp Vault)、服务发现/服务网格(Hashiccorp Consul)
- 构建模型上下文协议服务器、提示、工具和资源
- 使用提示和MCP优化求职功能
- 使用MCP创建自动简历编辑器
贡献
欢迎投稿!请按照以下步骤进行贡献:
- 分叉存储库。
- 创建新分支(
git checkout -b feature-branch). - 进行更改。
- 提交您的更改(
git commit -m 'Add new feature'). - 推到分支(
git push origin feature-branch). - 打开一个pull请求。
许可证
版权所有(c)2026特雷弗·穆尼和安东尼·布朗
特此免费授予任何获得本软件和相关文档文件(“软件”)副本的人在不受限制的情况下处理软件的权限,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许获得软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易而产生或与之相关的任何索赔、损害赔偿或其他责任承担责任,无论是在合同、侵权或其他诉讼中。