職位來源:一行 boards 目錄數(shù)據(jù),或?qū)懸粋€(gè)全新的 ATS 適配器)
【免費(fèi)下載鏈接】freehirefreehire — the open-source search engine for job seekers項(xiàng)目地址https://gitcode.com/GitHub_Trending/fr/freehire點(diǎn)擊查看免費(fèi)下載freehire 是一個(gè)開源的 IT 職位搜索引擎它把所有職位直接從公司自己的招聘系統(tǒng)ATS抓取回來。想給它新增一個(gè)職位來源只有兩條路如果目標(biāo)公司用的 ATS 平臺(tái)已經(jīng)支持你只需在 boards 目錄里添加一行數(shù)據(jù)如果它跑在一個(gè)全新的 ATS 平臺(tái)上則要在internal/ingest/sources里寫一個(gè)適配器。兩種方式都不復(fù)雜本文帶你快速走通。freehire 的職位來源是怎么工作的freehire 目前聚合了225 個(gè)在線來源92 個(gè) ATS 平臺(tái)Workday、Greenhouse、Lever 等、100 個(gè)聚合器與招聘網(wǎng)站Adzuna、Telegram 頻道等、30 個(gè)公司自己的招聘頁。完整清單見 docs/sources.md。它的核心設(shè)計(jì)是目錄與適配器分離概念位置說明boards 目錄Postgres 的boards表記錄哪家公司、用哪個(gè) ATS、board id 是什么一行即一個(gè)爬取目標(biāo)來源適配器internal/ingest/sources/每個(gè) ATS 平臺(tái)一個(gè).go文件負(fù)責(zé)抓取并歸一化職位爬取管線cmd/ingest/main.go讀取 boards 表中該 provider 的全部 board逐一抓取、去重、寫入boards 表的 schema 在 migrations/0123_boards.sql核心字段就是providerboardcompany三件套。方式一添加一家公司——只需一行 boards 目錄數(shù)據(jù)這是最常見、也最輕量的貢獻(xiàn)。前提是該公司的 ATS 平臺(tái)已有適配器92 個(gè)平臺(tái)覆蓋了絕大多數(shù)情況。通過網(wǎng)站的 contribute a board 表單提交登錄 freehire 網(wǎng)站在貢獻(xiàn)表單里粘貼該公司的職位鏈接即可。系統(tǒng)會(huì)自動(dòng)識(shí)別鏈接屬于哪個(gè) ATS、提取 board id識(shí)別邏輯在 internal/ingest/atsboard/并寫入 boards 表。首次貢獻(xiàn)會(huì)獲得 AI credits 獎(jiǎng)勵(lì)后續(xù)后臺(tái) worker 會(huì)自動(dòng)完成爬取與激活?;蛘弑镜匾粭l命令完成curator 路徑先把倉庫拉到本地git clone https://gitcode.com/gh_mirrors/fr/freehire cd freehire然后用 cmd/add-board 添加一行 boards 數(shù)據(jù)go run ./cmd/add-board --providergreenhouse --boardacme --companyAcme # 確認(rèn)輸出無誤后加上 --apply 真正寫入 go run ./cmd/add-board --providergreenhouse --boardacme --companyAcme --apply幾個(gè)值得注意的細(xì)節(jié)默認(rèn)是 dry-run不加--apply只打印將要寫入的內(nèi)容寫庫完全可逆寫入前會(huì)校驗(yàn)provider必須已注冊(cè)在適配器目錄中否則直接報(bào)invalid不會(huì)出現(xiàn)目錄里掛著一個(gè)沒人能爬的 board還可以管理 board--retire退役、--rename修正公司名都走同一條命令參數(shù)傳錯(cuò)要小心--provider必須是provider key如greenhouse而不是文件路徑否則該次運(yùn)行讀取 0 個(gè) board 并靜默退出。之后調(diào)度器會(huì)按 provider 自動(dòng)排期只要 boards 表里還有pending/active狀態(tài)的 board這個(gè) provider 就會(huì)被定期爬取。方式二寫一個(gè)全新的 ATS 適配器當(dāng)目標(biāo)公司用的招聘平臺(tái)不在 92 個(gè)已支持列表里才需要這條路。好消息是適配器契約非常小。第 1 步理解 Source 接口所有適配器都實(shí)現(xiàn)同一個(gè)接口定義在 internal/ingest/sources/source.gotype Source interface { Provider() string // 平臺(tái) key如 greenhouse Fetch(ctx context.Context, e CompanyEntry) ([]Job, error) }你只需要把平臺(tái)返回的職位JSON、XML 或 HTML 頁面翻譯成統(tǒng)一的Job結(jié)構(gòu)外部 id、URL、標(biāo)題、公司、地點(diǎn)、描述等。字段很多但都是可選的結(jié)構(gòu)化信號(hào)——平臺(tái)沒聲明的字段留空即可管線有詞典兜底。第 2 步寫一個(gè)適配器文件約定是一個(gè) provider 一個(gè).go文件參考最簡(jiǎn)單的 greenhouse.go一次請(qǐng)求拿回整個(gè) board 的全部職位照葫蘆畫瓢即可。如果職位列表頁不含正文再實(shí)現(xiàn)可選的HydratingSource接口只為新職位請(qǐng)求詳情頁。第 3 步在 sources.All 注冊(cè)一行適配器注冊(cè)表在 internal/ingest/sources/registry.goAll函數(shù)把每個(gè)適配器掛到 provider key 上。你的新平臺(tái)只需要加一行例如NewAcmeAts(c)。第 4 步添加 board 并試跑# 用剛才的 add-board 寫入第一行目錄數(shù)據(jù) go run ./cmd/add-board --provideracmeats --boardacme --companyAcme --apply # 手動(dòng)觸發(fā)一次爬取 go run ./cmd/ingest acmeatscmd/ingest會(huì)按(source, external_id)唯一鍵冪等地 upsert 職位重復(fù)運(yùn)行不會(huì)產(chǎn)生重復(fù)數(shù)據(jù)新職位會(huì)同時(shí)進(jìn)入search_outbox由 cmd/search-drain 定期推入搜索索引。每個(gè) board 的健康狀態(tài)連續(xù)失敗次數(shù)、冷卻時(shí)間記錄在board_health表里失敗會(huì)自動(dòng)退避重試。提交前的檢查清單按 CONTRIBUTING.md 的要求PR 前請(qǐng)確認(rèn)go build ./...、go vet ./...、gofmt -l .、go test ./...全部通過先用真實(shí)平臺(tái)驗(yàn)證 board slug——一個(gè)抓不到數(shù)據(jù)的 board 在日志里和健康的 board 長(zhǎng)得一模一樣必須確認(rèn)能讀到職位不碰核心管線新抽象、多余的配置項(xiàng)都會(huì)被要求精簡(jiǎn)擴(kuò)展點(diǎn)是 source不是 core。相關(guān)文件速查boards 表 schemamigrations/0123_boards.sql添加/退役 board 命令cmd/add-board/main.go適配器契約與 Job 結(jié)構(gòu)internal/ingest/sources/source.go適配器注冊(cè)表internal/ingest/sources/registry.go爬取 workercmd/ingest/main.go來源貢獻(xiàn)規(guī)范internal/ingest/contribution/AGENTS.md貢獻(xiàn)指南含Adding a source章節(jié)CONTRIBUTING.md全部 225 個(gè)來源明細(xì)docs/sources.md給 freehire 加一個(gè)來源的門檻很低多數(shù)公司只需要一行 boards 數(shù)據(jù)即使面對(duì)全新平臺(tái)適配器契約也只有兩個(gè)方法。缺了哪家公司直接去提一個(gè) issue 或 PR這是這個(gè)倉庫最歡迎的貢獻(xiàn)類型。贊分享【免費(fèi)下載鏈接】freehirefreehire — the open-source search engine for job seekers項(xiàng)目地址https://gitcode.com/GitHub_Trending/fr/freehire點(diǎn)擊查看免費(fèi)下載相關(guān)推薦從招聘頁到搜索索引freehire 的 225 個(gè)來源爬取管線與 92 個(gè) ATS 適配器全解析從招聘頁到搜索索引freehire 的 225 個(gè)來源爬取管線與 92 個(gè) ATS 適配器全解析 freehire 是一個(gè)開源的求職搜索引擎open soufreehire 數(shù)據(jù)全景225 個(gè)來源、92 個(gè) ATS 平臺(tái)、29.4 萬家公司的數(shù)據(jù)版圖是怎么搭起來的freehire 數(shù)據(jù)全景225 個(gè)來源、92 個(gè) ATS 平臺(tái)、29.4 萬家公司的數(shù)據(jù)版圖是怎么搭起來的 freehire 是一個(gè)開源的 招聘搜索引擎 同一職位發(fā)在 3 個(gè)平臺(tái) 1 條記錄freehire 歸一化與穩(wěn)定鍵去重設(shè)計(jì)詳解同一職位發(fā)在 3 個(gè)平臺(tái) 1 條記錄freehire 歸一化與穩(wěn)定鍵去重設(shè)計(jì)詳解 freehire 是一個(gè)開源的職位搜索引擎它把來自數(shù)百個(gè)招聘平臺(tái)的職位上一篇看懂圖片與視頻diffusiongemma-26B-A4B-it-GGUF 多模態(tài)輸入完全指南含變分辨率 Token 預(yù)算調(diào)優(yōu)下一篇Streamlit交互式代碼質(zhì)量?jī)x表盤實(shí)戰(zhàn)CoDiver UI 設(shè)計(jì)完全拆解創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考