CSV import and export
Import companies and job alert subscribers via CSV, and export subscriber data for use in email tools or analytics.
Import companies and job alert subscribers into Cavuno using CSV files, or export your subscriber list for backup and analysis. This is the fastest way to migrate from another platform or manage data in bulk.
Import companies
Add employer profiles in bulk by uploading a CSV. Useful when migrating from another job board or seeding a new board with companies.
Prepare your CSV
Create a CSV file with a header row. Column names are case-insensitive.
| Column | Required | Description |
|---|---|---|
name | Yes | Company name |
is_published | Yes* | Set to true, 1, or yes to import. Rows without a truthy value are skipped. |
site_url | No | Company website URL (used for domain deduplication) |
logo_url | No | URL to the company logo (downloaded and stored automatically) |
tagline | No | Short summary displayed in listings (truncated to 280 characters) |
description_html | No | Full company description in HTML |
twitter_handle | No | X/Twitter handle, username, or full URL |
linkedin_url | No | LinkedIn profile URL |
facebook_url | No | Facebook page URL |
email | No | Contact email (stored but not displayed publicly) |
tax_id | No | Tax identifier |
Unrecognized columns are ignored. Column order does not matter.
How fields are processed
- Website URLs are normalized. Bare domains like
example.combecomehttps://example.com - Tagline is truncated to 280 characters with an ellipsis if it exceeds the limit
- X/Twitter accepts a handle (
@acmecorp), bare username (acmecorp), or full URL. Handles are converted tohttps://x.com/acmecorp - Logo images are downloaded from the provided URL and stored in Cavuno's asset storage. If the download fails, the company is created without a logo
- Domain deduplication prevents importing two companies with the same website domain. The first occurrence wins, and duplicates are skipped
Example CSV
123name,site_url,tagline,is_published,twitter_handle"Acme Corp",https://acme.com,"Building better widgets",true,@acmecorp"Globex Inc",https://globex.com,"Innovation at scale",true,globex
Upload the file
- Go to Companies in the sidebar
- Click Import
- Select your
.csvfile - Click Import to start
The import runs in the background. Large files process without blocking the UI.
Import job alert subscribers
Bring an existing email list into Cavuno so subscribers start receiving job alert digests.
Prepare your CSV
| Column | Required | Description |
|---|---|---|
email | Yes | Subscriber email address |
frequency | No | Alert frequency: daily or weekly (defaults to weekly) |
unsubscribed | No | Any non-empty value skips the row |
The frequency column also accepts aliases like everyday, day, week, biweekly, and 2x/week. Unrecognized values default to weekly.
Example CSV
123email,frequencyjane@example.com,dailybob@example.com,weekly
Upload the file
- Go to Job Alerts in the sidebar
- Click Import
- Select your
.csvfile - Click Import to start
Imported subscribers are auto-confirmed. No confirmation email is sent. They begin receiving alerts on the next scheduled digest. Only import subscribers who have given you consent.
Export job alert subscribers
Download your full subscriber list as a CSV for backup, analysis, or import into other tools.
- Go to Job Alerts in the sidebar
- Click the download icon in the toolbar
- Your browser downloads
job-alert-subscribers-{board-slug}.csv
Exported columns
| Column | Description |
|---|---|
subscription_id | Unique identifier |
email | Subscriber email address |
status | Current status: active, pending_confirmation, unsubscribed, or paused |
confirmed | Whether the subscriber confirmed their email |
is_active | Whether the subscription is active |
confirmed_at | Timestamp of email confirmation |
unsubscribed_at | Timestamp of unsubscribe (empty if still subscribed) |
last_digest_sent_at | When the last alert email was sent |
preferences | Alert preferences and frequency |
created_at | When the subscription was created |
updated_at | When the subscription was last modified |
The export includes all subscribers regardless of status: active, pending, and unsubscribed.
File format requirements
- Format: Standard CSV with comma delimiters
- Encoding: UTF-8 (files with a BOM are handled automatically)
- Header row: The first row must contain column names
- Quoting: Wrap values containing commas or quotes in double quotes. Escape literal quotes by doubling them (
"") - Extension:
.csv
Troubleshooting
Company import skips rows
- Missing name: Every row needs a
namevalue - Not published: Rows where
is_publishedis missing, empty,false,0, ornoare skipped - Duplicate domain: Two rows with the same website domain are deduplicated (the first occurrence wins). Companies whose domain already exists on your board are also skipped
- Logo download failed: The company is still created without a logo. Check that the
logo_urlpoints to a publicly accessible image
Subscriber import skips rows
- Invalid email: Emails that fail validation are skipped
- Unsubscribed flag: Rows with a non-empty
unsubscribedvalue are intentionally skipped
General issues
- Wrong file type: Only
.csvfiles are accepted. Convert.xlsxor.tsvfiles to CSV first - Encoding errors: Save as UTF-8. Some spreadsheet applications default to other encodings
- Empty file: The file must contain at least a header row and one data row