Your data
Importing from CSV
Trackur can import jobs from a CSV file — either merging them into your current list or replacing everything you have. The format matches Trackur's own export, so moving data between accounts or restoring a backup is straightforward.
Opening the import dialog
On desktop, click the up-arrow icon in the toolbar (tooltip Import CSV). On mobile, open the toolbar's ... overflow menu and tap Import CSV — see Trackur on mobile for the full mobile layout.
A dialog titled Import Jobs from CSV opens with a dashed upload box labeled Click to select a CSV file. Click the box to open your file picker (filtered to .csv files); once you choose a file, the box shows its filename.
Click to select — no drag-and-drop
The dashed box looks like a drop zone, but dropping a file onto it does nothing. Click it and pick the file instead.
After the file is read, the dialog reports "Found 3 jobs in the file." (with your actual count) and shows two buttons: Merge with existing and Replace all. Cancel closes the dialog without importing. If the file can't be read, a red message says "Failed to parse CSV file. Please check the format."
The expected format
The file needs a header row followed by one row per job. The recognized columns are the same ones Exporting to CSV produces:
id,company,role,stage,dateApplied,todos,notes,postingUrl
,Acme Corp,Frontend Developer,Applied,2026-07-01,"[ ] Follow up with recruiter (2026-07-15); [x] Send application",Referred by Sam,https://example.com/jobs/123
,Globex,Product Manager,Interviewing,2026-06-24,,Second round scheduled,
- All dates —
dateAppliedand any due dates insidetodos— must be inYYYY-MM-DDformat. An invalid date can make the whole import fail with an error toast. - The
todoscell packs a job's next steps into one field:[ ]for open,[x]for done, an optional due date in parentheses, items separated by semicolons. Because semicolons separate items, a step whose own text contains a semicolon gets split into multiple steps on import. - Rows missing both
companyandroleare silently skipped and don't count toward the "Found" number. - Older Trackur exports with
nextActionandnextActionDatecolumns still import — they become a single open next step on the job.
Merge with existing
Merge with existing adds the file's jobs alongside your current ones. Rows whose id matches an existing job are skipped — an import never updates existing jobs. Everything else is added as a new job with a fresh ID. The toast reports exactly what happened: "Imported 2 new jobs, 3 duplicates skipped (12 total)" — or, when every row was a duplicate, "No new jobs imported — all 5 rows already exist (12 total)".
Duplicates are matched by id only
Duplicate detection uses the id column only, so a row with a blank or changed id is always added as a new job, even if its company and role match a job you already have.
Replace all
Replace all deletes every job in your account, then imports the file's rows with fresh IDs. A toast confirms "Replaced with 3 jobs".
Replace all has no undo
There is no confirmation step beyond the button itself and no way to undo. It also wipes all stage history — every imported job starts over with a fresh "Created in" entry. And it works even on a file with zero jobs: replacing with a header-only file deletes everything and imports nothing. Export a backup before you use it.
What to check after importing
- Stage names are case-sensitive and unvalidated. A stage like
applied(lowercase) imports fine, but the job won't appear in any column on the board because it doesn't match a real stage name. The job still exists — you can find it in Table view and fix its stage there. - Resume links are stripped. Imported jobs always arrive with no resume attached — see Attaching resumes to jobs to relink them.
- Every imported job arrives active (not archived) and with empty stage history, regardless of what it was before export.