Add or update an entry in data/. The user's request: $ARGUMENTS
Steps
Identify the company file. Files are kebab-case of the company name with a
.yamlextension (e.g.data/citadel-securities.yaml,data/hudson-river-trading.yaml). If the file exists, add to it; otherwise create it. Filename determines README position (ASCII sort), so name it after the company. Sections that must appear first/last can be named aptly asaa-something.yamlorzz-something.yaml.Verify the URLs. Prefer links on the firm's own careers domain; if given a Greenhouse/Lever/Ashby/Workday ATS link, check for an equivalent page on the firm's official site, but the ATS link is fine when none exists. Job-board APIs (e.g.
https://boards-api.greenhouse.io/v1/boards/<company>/jobs) are useful for enumerating postings when careers pages are JavaScript-rendered. If a role is described without a URL, search the firm's careers site for the posting. For companies with a lot of postings, spawn an agent to independently verify your links are correct. All postings must be verifiably based in the United States.Write the entry following the schema exactly (field names come from
src/lib/types.ml; a wrong field name silently drops the company from the README):name: "Anonymous Trading Firm" website: "https://www.example.com/" locations: "Boston" notes: "One-liner of community knowledge about the firm." roles: - role_type: "QT" links: - url: "link" - role_type: "QR" links: - url: "link" - url: "link" label: "PhD"Conventions:
- Double-quote all scalar values; two-space indentation; blank line between roles.
role_typemust be one of the accepted categories:SWE,QT,QD,QR,PhD,HW,FPGA.- One block per category: all links for a category go under a single
role_typeentry (seedata/optiver.yaml). Never repeat arole_typein the same file — when adding a link for a category that already exists, append it to that block'slinks. labelonly when arole_typehas multiple links and they need disambiguating (e.g. "Chicago", "Austin (PhD)"); omit otherwise.- No open roles yet:
roles: [](the field is required — never omit it). - Do not touch
README.md; CI regenerates it after merge.
Validate: run
yamllint -d relaxed data/<file>.yaml(same check as CI). If the OCaml toolchain is available,cd src && dune exec internships > /dev/nullalso confirms the file parses — check stderr for a dropped-file warning mentioning the company.Report which file changed and which roles/links were added. Commit messages follow the existing style, e.g.
Add IMC and Optiver postings for 2027.