Skip to content

What columns does the roles CSV need?

Three required columns: external_role_id, name and category (Tech or Non-Tech). Role text, status and budget are optional; unknown columns are ignored.

Updated October 16, 2026 · 4 min read

Column reference

ColumnTypeDescription
external_role_idtextRequiredYour own ID for the role. Applicants attach to it through the same column in the applicants CSV, and a re-upload with the same ID updates that role instead of adding another.
nametextRequiredThe role title.
categorytextRequiredTech or Non-Tech, spelled exactly like that.
job_descriptiontextOptionalThe job description. The rubric is drafted from the role text. Markdown and line breaks are supported.
job_requirementtextOptionalThe requirements. Markdown and line breaks are supported.
role_overviewtextOptionalA short overview of the role.
employment_typetextOptionalFull-time or Contract.
work_settingstextOptionalWFO, WFA or Hybrid.
statustextOptionalDraft, Active or Closed. Blank means Active. A new Active role that would go over your plan’s active-role limit is imported as Draft. A re-upload never changes the status of a role that already exists.
budget_minnumberOptionalBottom of the salary range. Commas and spaces are ignored.
budget_maxnumberOptionalTop of the salary range. Commas and spaces are ignored.
currencytextOptionalISO 4217 code for the budget, such as SGD or IDR. Blank means IDR.

A minimal file

Comma-separated, UTF-8, with a header row. Header case and column order do not matter. Quote any field that contains a comma or a line break.

external_role_id,name,category,status,job_description
BE-2026-01,Backend Engineer,Tech,Closed,"Build and run our payments API in Go."
OPS-2026-02,Operations Lead,Non-Tech,Active,"Run onboarding for new clients."
A role is created only if at least one applicant in the same upload is attached to it. Imported roles start unlisted, so they stay off the public job board unless you list them. HyreTech drafts a rubric for each one from its role text and scores its applicants whatever the status, at one credit per applicant.

Upload limits, and the columns the applicants file needs, are in what columns the applicants CSV needs.

Errors you might see

Missing required external_role_id or name.
The row has a blank in one of those columns, or the header is misspelled. The role is skipped, and so are its applicants.
Missing category (must be Tech or Non-Tech).
Add a category to the row.
Invalid category "…" (must be Tech or Non-Tech).
The value is spelled differently, for example "Technical". Use Tech or Non-Tech exactly.
Invalid status "…" (must be Draft, Active, or Closed).
Use one of the three values exactly, or leave it blank. employment_type and work_settings are checked the same way against the values in the table above, and an invalid value skips the role.

Still stuck? Email support@hyretech.ai and mention this article.