Open-source project
speedyapply/2027-AI-College-Jobs avatar
speedyapply/2027-AI-College-Jobs

speedyapply/2027-AI-College-Jobs: a maintained Markdown board for AI and ML student hiring

2027 AI/ML internship & new graduate job list updated daily

6,360 stars240 forksUnknownLicense varies

At a glance

What is it?
The repository is a daily-updated list of AI, ML and data science internships and new graduate roles, split into four Markdown files by region and seniority. It solves discovery, not application: the value is in the curation cutoff and the table schema, and the cost is that nothing here is verified beyond what the README states.
Who is it for?
Adopt it if you are a student filtering for AI, ML or data roles with a 2027 start and you want a single page you can scan or parse without an account. Skip it if you need application tracking, recruiter contact data, or roles outside the four buckets the README defines.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The gap this fills is discovery, not application

AI and ML student hiring is fragmented across Workday tenants, Ashby boards, and company career sites that each use their own job identifiers. A 2027 internship at Microsoft lives at apply.careers.microsoft.com, a Netflix PhD internship at netflix.wd108.myworkdayjobs.com, a TikTok role at lifeattiktok.com. There is no shared feed. The repository's answer is to flatten all of that into one Markdown table per category, so a reader can scan company, position, location, salary, apply link and age in a single pass. The intended audience is narrow and stated: college students looking for internships or new graduate positions in AI, ML and data science. The README also points readers who want software engineering roles to a separate repository, speedyapply/2027-SWE-College-Jobs, which tells you the maintainers treat AI as its own vertical rather than a tag inside a general board.

Four files, three buckets, and a 120-day rule

The structure is the product. Four Markdown files split the list by geography and seniority: the root README for USA internships, NEW_GRAD_USA.md for USA new graduate roles, INTERN_INTL.md and NEW_GRAD_INTL.md for the international equivalents. Each file is further divided into FAANG+, Quant, and Other, with anchor links at the top so a reader can jump straight to a bucket. The README states the positions are updated daily and that jobs posted within the last 120 days are prioritised. That cutoff is the only freshness mechanism described. It is a prioritisation rule, not a hard filter, and the README does not say what happens to a posting that crosses the boundary. The age column in the tables (0d, 5d, 7d, 9d, 13d, 14d, 18d, 19d, 20d in the sample shown) gives a reader a per-row signal, which is more useful than the aggregate rule, because it lets you decide your own threshold instead of trusting the maintainer's.

The table schema is the real interface

Every row carries six fields: Company, Position, Location, Salary, Posting, Age. Company names are hyperlinks to the corporate careers domain (careers.rivian.com, adobe.com, about.meta.com), not to the specific requisition. The Posting column holds the actual apply URL behind a small image link. Salary appears as an hourly rate where the employer publishes one: $51/hr for the Rivian data engineering internship, $52/hr for several Microsoft data science roles, $55/hr for the Adobe machine learning engineer internship, $60/hr for TikTok, $63/hr for Netflix, $50/hr for Meta research scientist internships. Those figures are what the listing shows, and the README does not describe how salary is normalised or what happens when a posting omits it. Location strings mix single cities with a plus-count convention, for example Palo Alto, CA +1 or San Francisco, CA +4, meaning the role is open in additional locations that the table does not enumerate. If you are filtering by city, that convention will hide options from you.

There is no code here to run

The repository has no releases and no stated primary language, and the README contains no install instructions, no configuration keys, and no CLI. The only executable-looking surfaces are outside the repository: a chart image served from speedyapply.com/api/jobs/chart?repo=ai, a Discord invite, and a Chrome Web Store extension named SpeedyApply Job Application. The README does not document the extension's behaviour, so nothing can be said about what it does with the list. Practically, getting value from this means cloning or fetching the Markdown and reading it: git clone https://github.com/speedyapply/2027-AI-College-Jobs, then open README.md, NEW_GRAD_USA.md, INTERN_INTL.md or NEW_GRAD_INTL.md. The table markers visible in the raw file, such as TABLE_FAANG_START, suggest the tables are generated between markers rather than hand-edited, which is consistent with a daily update cadence, but the generator itself is not in the material provided.

Where a static list breaks down

The failure mode is link rot, and the design does nothing structural to prevent it. A row can sit inside the 120-day window while the underlying requisition has already been filled or pulled, because the age column measures posting age, not liveness. The README does not claim any link checking. A second limitation is categorisation. FAANG+, Quant and Other are coarse buckets, and the README does not define membership criteria for FAANG+ or explain where a large non-FAANG employer lands. If you are targeting a specific segment, say research labs or robotics startups, the Other bucket is where those roles disappear. Third, the salary column is inconsistent by nature: employers that publish hourly intern rates populate it, employers that do not leave it empty, and the README gives no fallback. A reader comparing offers across rows is comparing an incomplete field.

How it differs from a general job board or an aggregator API

A general board such as LinkedIn or Indeed indexes far more roles and lets you save searches, but it does not give you a 120-day curation window, a FAANG+/Quant/Other split, or a salary column pulled into the same row as the apply link. The trade is inverse: those platforms have more coverage and worse signal-to-noise for a student filtering for 2027 AI roles. A programmatic aggregator API gives you structured JSON and lets you build your own filters, but you take on the ingestion, deduplication and freshness work that this repository has already done by hand. The repository also differs from the SWE list it links to, not by format but by scope: same maintainers, same table shape, different vertical. If your search spans both AI and general software engineering, you are reading two repositories with two update cycles.

Maintenance, licence and what is not stated

The last push is 2026-09-09, which is consistent with the daily-update claim. There are no releases, so there is no versioning to track and no changelog to read; the diff between two fetches is your changelog. The licence is not stated in the material provided, and the repository description does not name one either. That matters if you intend to mirror the tables, republish them, or feed them into a product, because without a licence file you have no granted rights beyond viewing the repository on GitHub. Treat redistribution as unresolved until you check the repository for a LICENSE file yourself. Maintenance cost for a reader is near zero: no dependency graph, no upgrade path, no breaking changes. The cost sits with the maintainers, who are absorbing the scraping and normalisation work, and with you, in the form of re-checking links the list cannot verify.

Editorial conclusion

Adopt it if you are a student filtering for AI, ML or data roles with a 2027 start and you want a single page you can scan or parse without an account. Skip it if you need application tracking, recruiter contact data, or roles outside the four buckets the README defines. Before relying on it, open one Apply link from each of the four files and confirm the posting is still live, because the 120-day window is the only freshness rule the README states and nothing in the repository checks the destination.

Official sources

  1. Issues
  2. Project website
  3. README
  4. speedyapply/2027-AI-College-Jobs on GitHub
Community notes

Community notes