SpeedyApply SWE College Jobs repo 評析:每天自動更新的軟體工程職缺彙整表怎麼運作

speedyapply/2027-SWE-College-Jobs 是 GitHub 上 8600 多顆星追蹤的軟體工程實習與新鮮人職缺每日彙整表,每天中午自動渲染。這篇拆解它的 GitHub Actions 加 Supabase 渲染架構、沒有 LICENSE 檔的授權現實、SpeedyApply 的商用生態位置,以及台灣讀者的使用建議。

用 AI 摘要這篇文章:

在 GitHub 搜「2026 SWE college jobs」或「軟體工程實習職缺」,跳出來最多人追蹤的就是 speedyapply/2027-SWE-College-Jobs 這個倉庫,8600 多顆星、每天更新、把全美與國際軟體工程實習和新鮮人職缺整理成四張大表。它看起來像一個人人可共用的開放職缺資料集,實際走進 repo 結構會看到另一個故事:這份表是 SpeedyApply 這間做求職 autofill 工具的公司對外露出的渲染層,實際職缺資料住在私有 Supabase 後端,而且整包資料沒有任何授權聲明。這篇把它怎麼運作、能不能信任、能不能拿來二次使用一次拆給你。

TechMoon 精選圖|speedyapply 2027-SWE-College-Jobs GitHub 倉庫首頁,顯示 8600 多顆星、README 職缺分區與四個 Markdown 檔結構Pin
speedyapply/2027-SWE-College-Jobs 倉庫首頁,README 把職缺分成美國與國際兩大塊,根目錄四個 Markdown 檔對應四個分區。

每天中午 12 點自動跑的渲染層

.github/workflows/ 目錄打開會看到兩支 GitHub Actions 設定檔,第一支 get-jobs.yml 寫得很直白:排程是 cron: '0 12 * * *',每天世界協調時間 12 點整自動觸發(換算台灣時間晚上 8 點)。流程是 checkout 倉庫、用 oven-sh/setup-bun 裝好 Bun 執行環境、走進 .github/scripts/bun run get-jobs,再把改動 commit 進 README.mdINTERN_INTL.mdNEW_GRAD_USA.mdNEW_GRAD_INTL.md 這四個 Markdown 檔,commit 訊息固定是「chore: update tables」。

這個動作的本質是「重新渲染表格」,不是「去網路上抓職缺」。看 get-jobs.yml 的環境變數會發現它讀 SUPABASE_URLSUPABASE_KEY 兩個 secret,也就是說腳本做的事情是從 SpeedyApply 自己的 Supabase 資料庫把已經整理好的職缺拉出來,重新產成 Markdown 表格再推回 repo(這裡用的 Supabase 是一個以 PostgreSQL 為底、常被開發者拿來當後端即服務的開源服務)。實際去翻最近五個 commit,從 2026 年 7 月底到 8 月初全是 cullenwatson 這位維護者簽名、訊息全是「chore: update tables」,跟排程完全對得上,每日更新這件事作者宣稱屬實。

TechMoon 精選圖|get-jobs.yml 每日 cron 排程設定檔,顯示 0 12 每日觸發、Bun 環境、Supabase 環境變數與 commit 訊息Pin
get-jobs.yml 排程 cron 0 12 每日觸發,用 Bun 從 Supabase 拉資料重新渲染四個 Markdown 檔。

表本身的欄位結構也值得先認識。美國 FAANG+ 與 Quant 兩張表固定是六欄:公司、職稱、地點、薪資、Apply 連結、發布天數(Age);其他職缺表少一個薪資欄。其中 Apply 連結是一張固定圖片,點下去會跳到原公司在 Workday、Greenhouse、Ashby、Lever 或 Workable 等招聘平台上的原頁面,所以這份表的角色是「發現與排序」,真正填表投履歷的動作永遠發生在原平台。Age 欄位標的是該職缺在 Supabase 裡被收錄後過了幾天,不是公司在原平台發布的時間,這兩個時間點有時會差到一兩週,當你想判斷「這個缺還新鮮嗎」時要把這個落差算進去。

職缺資料真正住在哪裡

這裡是這個 repo 最容易被誤讀的地方。倉庫公開、職缺表人人能看,會讓人以為「職缺資料是開放的」,但實際的資料源頭是 SpeedyApply 私有 Supabase 後端,repo 上完全看不到任何負責去爬 Workday、Greenhouse、Ashby、Lever 這些求職平台的爬蟲程式碼。讀者看得到的是已經煮好的表格,煮資料的那套 pipeline 在 SpeedyApply 自己的基礎設施裡,黑箱程度跟任何商用求職平台一樣。

貢獻職缺的入口也不是 pull request,是 GitHub Issue。第二支 add-or-update-job.yml 設定成「當有人給某個 issue 貼上 approved 標籤」才觸發,腳本會把職缺寫進 Supabase、再跑一次 get-jobs 重新渲染、最後用 gh issue close 留言「你的貢獻已被核可」把 issue 關掉。實際翻 issues 清單會看到待審的 new 標籤、被關掉的 approved 提交,也會看到「教你怎麼繞過員工監控軟體」這類被直接關掉的垃圾投稿,連「建議加進加拿大職缺資源」這種立意良好的提案也被關掉,理由不會留下。所以這是一套半自動混合制度:社群可以投,但能不能進表由 SpeedyApply 審核關卡決定,審核標準與收錄門檻都沒有寫進 README 或 CONTRIBUTING,連 CONTRIBUTING.md 本身都不存在(404)。對貢獻者來說,等於投了 issue 之後只能等標籤,沒有明確的錄取規則可循。

那 SpeedyApply 又是誰?把 README 裡連到 speedyapply.com 的連結打開,網站標題寫的是「SpeedyApply – Job Application Autofill Tool」,是同一個單位做的 Chrome 擴充功能,主打幫你自動填求職表單(這類瀏覽器擴充的權限與資料邊界,可參考我們對 docu.md Markdown Viewer 的拆解),並且在 README 與首頁都放了自己的 Discord 與 Chrome Web Store 連結。換句話說,這份 8600 多顆星追蹤的職缺表同時是 SpeedyApply 旗下商用產品的曝光通道,讀者拿免費職缺表的同時,也在這個生態系裡被導向付費工具。這不是缺點,但屬於讀完這份表之前應該知道的位置關係。同樣的模式其實是一整套:SpeedyApply 在 GitHub 同時維護 2027-AI-College-Jobs 這類主題式的姊妹倉庫,把求職流量按職類分流收攏,再統一導回同一個 autofill 工具與 Discord 社群,這是當代「免費開放資源當作商用漏斗頂端」很標準的設計。

沒有 LICENSE 檔代表什麼

這個 repo 最硬的一條使用邊界在授權。透過 GitHub API 查 repo 中繼資料,license 欄位是 null,直接打 /contents/LICENSE 回 404。很多人會把「GitHub 公開」直接等同於「可以自由拿來用」,但沒有 LICENSE 檔的公開倉庫在法律上預設是「保留所有權利」,也就是說你可以自己看、可以照著表去投職缺,卻不能把整包職缺資料下載下來塞進自己的求職網站、付費產品或懶人包裡再做散佈。

這條限制對一般求職者影響不大(本來就是拿來找工作),但對想做職缺聚合器、履歷服務、職涯資料產品的開發者就是必須先處理的硬門檻。如果你想合法使用這批資料,得直接找 SpeedyApply 談授權,不能假設「放在 GitHub 上就是 CC0 或 MIT」。同一個誠實軸也適用在職缺內容本身:表上的薪資、地點、職稱是從原招聘平台抄過來的中繼資料,真正的投遞與合約認定永遠要回到 NVIDIA、Citadel、Apple 那些公司自己的 Workday 或 Greenhouse 原頁面,這層是任何聚合服務都共用邊界。

美國為主,加上年度改名的使用現實

資料覆蓋結構上,README 把職缺分成「USA Positions」與「International Positions」兩大塊,再各切實習與新鮮人,所以根目錄才會有四個 Markdown 檔。實際打開會看到美國職缺表最完整,連 FAANG+ 與 Quant 都獨立分區,薪資直接標時薪美元(例如 NVIDIA 每小時 62 美元、Citadel 每小時 125 美元、Jane Street 每小時 120 美元);國際職缺另開 INTERN_INTL.mdNEW_GRAD_INTL.md,身在台灣要找海外機會的多半在這兩個檔裡,而且薪資與地點格式不一定美元化,需要自己換算。

另一個會踩雷的慣例是年度改名。這個倉庫最早叫 2026-SWE-College-Jobs,現在已經改名 2027-SWE-College-Jobs,GitHub 會自動把舊網址轉到新倉庫,所以舊連結打開還是有效,但內容已經整批換成 2027 招聘循環的職缺。這代表兩件事:第一,你在任何地方看到別人引用的 2026 連結,點進去會看到 2027 內容,別誤以為連結壞了;第二,如果你想長期追蹤,與其記 URL,不如追蹤 SpeedyApply 這個 organization 或用 GitHub Watch,因為每年初 URL 都會再換一次。

README 裡還嵌了一張從 speedyapply.com/api/jobs/chart 動態產生的職缺市場走勢圖,這張圖每次有人打開 README 時都會從 SpeedyApply 伺服器即時拉資料,所以你看見的圖與職缺表是兩個獨立的即時性來源:表格是每天中午由 GitHub Actions 重渲染後寫死的 Markdown,走勢圖則是讀者載入頁面當下從 SpeedyApply 網站拉的。這也再次說明這個 repo 與 SpeedyApply 後端的依賴關係,README 一旦少了那張圖或那個 API 端點失效,圖就會破掉,但表格內容不受影響,因為它已經 commit 進 Markdown 了。

README 開頭列的數字(例如美國實習 160 個、新鮮人 549 個、國際實習 270 個)是作者在 README 裡宣稱的當下計數,作者也明言職缺以「最近 120 天內發布」為優先,加上每天中午自動重渲染,這些數字你看的時候幾乎一定對不上。把它們當覆蓋量級的參考就好,不要引用成穩定事實,比較務實的用法是看「量級有沒有突然掉一半」,那通常代表當週招聘平台集體關缺或 Supabase 那端出問題,而不是看絕對數字。

怎麼用最有價值,怎麼用會踩雷

對在找美國軟體工程實習或新鮮人職缺的學生,這份表的實際用法是「每日追蹤 + 直接點 Apply 回原平台投」,它的價值在於幫你把數十個招聘平台上的校園職缺收進一個可排序的單一介面,FAANG+ 與 Quant 分區還能幫你快速定位高薪區段。搭配 GitHub Watch 或把 repo clone 下來每天 git pull,就能拿到接近即時的更新,比手動一個個平台切換省得多(如果你想為這類自動化工作流程找更通用的管理介面,可以參考我們評過的 Vibe Kanban AI coding agent 看怎麼把多個任務收進一個面板)。若你的目標是國際職缺(含亞洲、歐洲),改讀 INTERN_INTL.mdNEW_GRAD_INTL.md 兩個檔。

實際挑職缺時有兩個篩選動作特別好用。一是用 Quant 分區快速看高薪區段:美國 Quant 實習時薪普遍落在 75 到 145 美元之間(Hudson River Trading、Jump Trading、Jane Street 都在 120 美元以上),FAANG+ 則多在 47 到 62 美元,兩者差距將近一倍,先決定要走高薪高壓的量化交易,還是相對穩定的大廠工程線,再決定要往哪張表集中火力。二是搭配 Age 欄位判斷急迫性:README 標明優先收錄 120 天內發布的職缺,但實際錄取滾動制(rolling basis)的職缺常常滿額就關,看到 Age 在兩週內的新職缺最好當天就投,超過 60 天的就要有「可能已關缺」的心理準備,點 Apply 連結驗證原頁面還在不在再決定要不要花時間寫履歷。

會踩雷的用法也有幾種。最容易出事的是把整份表搬進自己的產品裡商用,前面講過沒有 LICENSE,這條路得先談授權。另一種是把表的薪資、職稱當成「已驗證事實」寫進論文或商業報告,這份資料是聚合層的中繼資料,原始真實性永遠在原招聘頁。還有一種誤用是拿表上的「Age」欄位(職缺發布天數)判斷這個職缺還活不活,README 雖然標明優先收錄 120 天內的職缺,但實際職缺關閉時程完全看原公司,表上 30 天的職缺點進去可能早就關了,這層只能靠點 Apply 連結驗證。

如果你要的不是職缺本身,而是把這個 repo 當「GitHub Actions + Bun + Supabase + Markdown 自動渲染」的範例來學,.github/workflows/.github/scripts/ 兩個目錄是很好的參考,能學到怎麼用 cron 排程、用 Bun 跑 TypeScript 腳本、把 Supabase 資料重生成靜態 Markdown,再讓 GitHub 自動 commit。只是這套渲染腳本本身沒有 LICENSE,學架構可以,逐字複製貼進自家專案前先看清楚授權狀態(同樣與 GitHub 生態圈工具的授權與資料邊界議題,我們在 SmartHostsTool GitHub hosts 最佳化工具 一文也討論過)。

整體看,這份 repo 對目標放在美國市場的軟體工程校園求職者是值得每天追蹤的資源,覆蓋廣、更新自動、分區清楚,尤其想衝刺量化交易或一線大廠暑期實習的人,FAANG+ 與 Quant 兩張表能幫你把分散在十幾個招聘平台上的機會收攏成一個可排序的清單。但要記得它的真實身份是 SpeedyApply 商用生態系的對外渲染層,職缺資料源頭閉源、整包沒有授權、每年 URL 會換,把它當「方便的發現工具」用最合理,把它當「可自由搬用的開放資料集」就會踩到法律與事實兩條邊界。對身在台灣、想找海外機會的讀者,記得改讀國際那兩個檔,並把薪資與地點自行換算回本地條件再決定是否值得跨境投遞。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 762

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...