Initial Setup & Migrations
...
Bulk Import
Bulk Import Options
35 min
this guide will teach you how to upload candidate data using the email importer or the bulk importer if you want to import data from your legacy ats, we may be able to achieve this with one of the migration options we support see docid 5b1bivkknuzghxjcfbqyz for more information bulk import options overview there are two ways users can bulk import data into ashby view the table below for more information on when to use each option import option upload candidates? upload openings? upload employees? use this option if… email import 🟢 🔴 🔴 you want to import small batches of resume files csv import 🟢 🟢 🟢 you want to import structured data like candidate demographics or headcount plans email import overview if you’d like to add candidates to ashby via email, the email import feature supports creating candidate profiles by forwarding resume files to a specific address you can attach up to 10 resumes per email to be uploaded a common use case for this feature is sharing the upload links with external recruiters then, if a candidate sends their resume over to a recruiter via email, they can send the resume over to ashby via the import email address if you have many resume files you’d like to upload, contact mailto\ support\@ashbyhq com this is something we can assist with on the backend accessing the feature there are both job specific, and general candidate upload email addresses these email addresses can be accessed in two places all email addresses including the general email address can be found on the https //app ashbyhq com/admin/data import/email import page in admin, in the data management section to access the general candidate upload email address, select upload candidate on the email import page uploading candidates via the general candidate upload email address will add them as a lead without considering them for a specific job job specific email addresses can also be found on the settings page of the corresponding job these email addresses are only active/available on a job when the job is open anyone with access to these email addresses can use them, so be thoughtful about who you share them with we advise against sharing the email address directly with candidates or on your job board to avoid spam applications upload confirmations you’ll receive a confirmation email letting you know if the resume file you imported was successfully uploaded unsuccessful uploads occur when our parsing service can’t parse a file the reasons files wouldn’t be able to be parsed are the file is an image of a pdf (someone took a picture and converted it to a pdf) the file is in a unique format (the candidate’s demographic information is in an unexpected place in the file) if a file can’t be parsed, you’ll need to manually upload that file and create a candidate profile even when manually uploaded, the candidate’s data won’t be parsed from the file reviewing uploaded candidates when resumes are uploaded, a candidate profile is created, the resume details are parsed and stored in the summary tab of the candidate profile, and the resume file is stored in a viewable format next to the summary tab candidates uploaded using the general candidate upload url will be added to your account as leads and can be found using candidate search candidates uploaded using job specific urls will be added to the application review stage of the job they were uploaded to csv import overview the csv import feature supports creating candidate profiles and openings in bulk by uploading a csv file containing the details you want to be uploaded there is no explicit limit to the number of candidates or openings that can be uploaded at once large files will be uploaded in batches once the upload starts you can leave the page and return when it is complete common use cases for this feature include migrating candidates from your legacy ats (if ashby doesn’t support an alternative) uploading your annual headcount plan uploading leads from projects or talent pools in your legacy sourcing tool accessing the feature see the table below for information on the roles that have access to bulk import data using a csv file access role has access? limited access ❌ agency users ❌ elevated access external recruiter (not linked to an agency) ❌ elevated access analyst ❌ elevated access hiring team member ❌ elevated access hiring manager ❌ elevated access admin ❌ elevated access admin private ❌ organization admin ✅ only organization admins can import csv files by default elevated access users can be given access to bulk import data if needed more on this at docid\ mhy0txb4sxnqye9xkvn8e the csv import option can be accessed within admin > data management > https //app ashbyhq com/admin/data import/bulk import prepare your file the quality of the data you import into ashby impacts the quality of data you get out of it to ensure high quality, we recommend preparing your file before uploading it to ashby before you start, ensure your file meets the csv file requirements file uses the csv file format file has headers for every column file uses comma delimiters file has the same number columns in every row data quality suggestions data is complete (are there gaps in your data? if so, consider resolving this before importing) data is accurate (is this data correct?) data is relevant (are there data points that don’t add to your knowledge about the candidates? if so, consider archiving outside of ashby) data is timely (is this historical data that will be frustrating to filter out later? if so, consider archiving outside of ashby) additional tips use google sheet’s cleaning tools make sure there isn’t any formatting, just data make sure there isn’t any unexpected metadata at the top or bottom of the file if you are importing information into a custom checkbox field (more on {{custom fields}} at docid\ qpgklrscmzgwc 7krbwds ), then be sure to use a semi colon if multiple values are being added (for example remote; in office; hybrid) how to import a csv file once you’re ready to upload your data, you’ll do so in four stages import mapping import summary import to import a file, click upload csv in the top right corner of the https //app ashbyhq com/admin/data import/bulk import page next, select the import type, then locate the file on your computer manage import settings next, select the settings options import mode this setting allows you to determine whether the import should only create new candidates, only update existing candidates, or both create new candidates and update existing ones enable email enrichment? you have the option to enrich profiles with emails in bulk this option requires the candidate name and linkedin url to be included in the import only match open jobs by default we only map applications to open jobs but you can opt to uncheck this checkbox to map applications to all jobs mapping the mapping step allows you to match any structured candidate field to a corresponding column in your file if there are columns you don’t want to upload, ignore them (by clicking the ignore this column button) and the importer will skip them please ensure to check that all fields you’d like to import have been mapped if a field is defaulting to being ignored initially, click select field on candidate to then determine the field the value should be mapped to you can use the following templates as a starting point (optional) https //docs google com/spreadsheets/d/1szman605 5z5ooql38bf4 kbsejyy fzae2rmvxyte0/edit#gid=1204658108 https //docs google com/spreadsheets/d/1w82ibspyndem92 j9ebjmvxlcnmrm36zn zgzflxn7s/edit#gid=1347042328 mapping gif gif import once you’ve initiated an import, it can take some time to complete there are no explicit limits on the number of candidates or openings you can upload at once if your list is large, they’ll be uploaded in batches and will take longer to complete you can leave the page and come back later once an upload finishes import gif gif summary the summary view will show a list of the candidates or openings you’ve uploaded, any skipped due to errors, and allows you to delete the upload if something went wrong for candidates, you have a variety of bulk actions you can take on the candidate profiles that are generated summary gif gif importing candidates using this option creates individual candidate profiles in general, you can csv upload data located on the left side of the candidate profile (except for files) feed data like emails, feedback forms, applications, resumes and surveys cannot be uploaded using the bulk csv import feature many structured data fields can be uploaded so review the upload options in ashby before completing your upload if you’re unsure, confirm by reaching out to mailto\ support\@ashbyhq com you can https //docs google com/spreadsheets/d/1szman605 5z5ooql38bf4 kbsejyy fzae2rmvxyte0/edit#gid=1204658108 to ensure your data is formatted correctly before uploading to import data like the job and stage a candidate is associated with or the source of their application, you’ll need first to ensure that information exists in ashby if you’d like to include your candidate’s source, you must include both a source type and a source column in your file source types are top level values that sources are nested under to simplify reporting to add a source, you must also include a source type these should already be added https //app ashbyhq com/admin/organizational settings/sources in ashby admin before importing if you’d like to upload candidates to specific jobs, those jobs must be set up in ashby first the name of the job in ashby must exactly match the name of the job in the csv you can archive any historical jobs once the import is complete when adding or updating existing candidates, ensure that each row contains the candidate’s name and an identifying field an identifying field can be an email address, a phone number or social profile urls (for example, linkedin or github) if two rows contain the same identifying data (for example, two candidate rows having the same email address), you will get an error please ensure that each candidate is only listed once in the csv file to avoid this issue if importing any dates as part of your candidate data, the date/time should be an iso 8601 compliant string (e g , 1982 05 25, 2017 04 22t20 47 05 335 04 00) generally speaking, if you have any concerns about your data quality before importing, we suggest starting fresh with ashby, and archiving your historical candidates’ data somewhere you can find it candidate attribution credited to and source are collectively known as the ‘attribution’ fields candidates may have attribution fields individual applications may have attribution fields they may not necessarily be the same the candidate’s attribution fields are intended to be the original source for that candidate’s entry into ashby therefore ashby attempts to keep the candidate source from being updated as you consider candidates for new jobs or make changes to applications in those cases the application’s attribution fields will be updated the attribution fields in the csv uploader reflect this behavior if the information being imported will create a new candidate, then the attribution fields in the import file will always apply to the candidate if a candidate already exists in ashby for the information being imported and information about an application is also being imported, then only the application’s attribution field will be updated if you would like to update a candidate’s attribution fields, then only include candidate information in your import if you are updating the credited to field, include the email of the user/employee who the candidate should be credited to, not the user/employee's name this field will only accept email addresses post upload options once candidates are imported, you can take bulk actions on the import list to complete these actions, select individual candidates, or all candidates, then click the button that corresponds with the action you’d like to take if there’s an issue with the upload, you can delete it and try again bulk actions supported consider for job add candidates to a job consideration (if the file didn't include the job consideration already) add to project add candidates to a project projects are a simple way to keep track of candidates that are not currently interviewing but whom you want to stay in touch with for the future set tags add tags to candidate profiles email send candidates a one off email using a shared email template or one of your personal email templates enroll in sequence add candidates to an email sequence request review more transfer anonymize delete remove from project mark as do not contact set tags send data consent request add to event importing candidate follow ups you can bulk add follow ups across candidate profiles by importing them via the bulk data import option navigate to admin > data management > bulk data import click upload csv , then select candidate follow up select your csv file and map your data before starting the import when it comes to mapping data after uploading your csv file, the following data fields can be mapped field name description formatting notes example candidate email the email of the candidate to follow up with abbye\@learn ashby com date the date when the follow up is due the date/time should be an iso 8601 compliant string (e g , 1982 05 25, 2017 04 22t20 47 05 335 04 00) 2025 10 31 note notes for the follow up please reach out to this candidate status the status of the follow up the following are imported as resolved completed resolved done cancelled skipped expired follow ups with all other statuses will be imported as pending completed assignee name the name of the assignee of the follow up emily example assignee email the email of the assignee of the follow up abbye\@learn ashby com once the import is complete, the follow up tasks will appear on the candidate’s feed if the follow up is due, the follow up will also show on the assignee user’s home page as a task importing jobs if you need to add or update jobs in bulk, you can now upload them by doing the following click upload csv in the bulk upload section of admin, then jobs select your csv file to start uploading it choose create or update to determine whether the import will create new jobs or update existing jobs (please note that create & update is not available for importing jobs if both creating and updating jobs, you will need to do two separate imports) you can then map your file fields to fields in ashby before clicking start import to kick off the import if you are looking to update jobs that are already in ashby, be sure to include either the {{requisition id}} or the ashby job id fields in your csv file you can use https //docs google com/spreadsheets/d/1bpk7li58foqtyp4 ek4wc8xn0dcwyq19uox68qlyrbg/edit?gid=0#gid=0 to ensure your data is formatted correctly before uploading, or check out the info below on exporting a csv of existing job data to use as a template for an import to update jobs the following fields can be mapped and imported for creating and updating jobs in ashby field description formatting notes example title the title of the job backend engineer team the department or team connected to the job must exactly match an existing team in your ashby account product location the location connected to the job must exactly match an existing location in your ashby account new york requisition id the requisition id linked to the job 123 ashby job id the internal job id within ashby this field should only be used for updating jobs employment type the type of employment linked to the job full time, part time, contractor closed at if the job has been closed, the date that the job was closed at the date/time should be an iso 8601 compliant string (e g , 1982 05 25, 2017 04 22t20 47 05 335 04 00) 2025 05 25 hiring manager the hiring manager linked to the job (must be an active user in ashby please add in the user’s email address) multiple hiring managers should be added as comma separated values abbye\@learn ashby com, jared\@learn ashby com recruiter the recruiter linked to the job (must be an active user in ashby please add in the user’s email address) multiple recruiters should be added as comma separated values abbye\@learn ashby com, jared\@learn ashby com recruiting coordinator the recruiting coordinator linked to the job (must be an active user in ashby please add in the user’s email address) multiple recruiting coordinators should be added as comma separated values abbye\@learn ashby com, jared\@learn ashby com sourcer the sourcer linked to the job (must be an active user in ashby please add in the user’s email address) multiple sourcers should be added as comma separated values abbye\@learn ashby com, jared\@learn ashby com custom fields see custom fields for more information on supported field types ensure that the fields are in the appropriate format to match the job specific custom field (for example, importing yes/no answers into a yes/no custom field) high priority (y/n)? creating jobs when creating jobs via bulk import option, the job title, team and location are required ensure that these fields are included in your csv file updating jobs when updating jobs via bulk import, either the job ashby id or requisition id is required (the job title, location, and team are not required) if both are provided in the import, then ashby job id will be used, and requisition id can then be updated via the bulk import the template above can also be used for updating job details, or you can opt to create a job export using the steps below creating a csv export of job data for bulk updates please note that custom reports are not available on the foundations plan to create a csv export of job data to use as a base to update your jobs in ashby head to reports > build reports select the custom list report option set the subject to jobs use the filters to determine the jobs you’d like to export (for example, filtering by the job department) click add field to show to select the specific job fields you’d like to bulk update be sure to include the ashby job id and/or requisition id fields in your report, as one of these fields must be provided to update your jobs click export csv (listed above your results on the right hand side) to export the data in the csv format manually location the ashby job id in addition to using csv exports, you can locate the job id by heading to jobs > admin, clicking into the job in question and then copying the id number from the url the requisition id is listed within the settings section of the job if you do not have requisition ids assigned to your jobs, use the ashby job id instead mapping your job fields for updating jobs when mapping your job data, map only the field with the job or requisition id and any fields with updated data to the fields on your jobs click ignore this column beside any fields that you don’t want to import/update on your jobs you will need to ensure that all fields in your csv are mapped or ignored before you’ll have the option to start your import post upload actions we don’t currently support taking bulk actions on jobs after they’ve been uploaded to manage your jobs in ashby, navigate to jobs > admin and select the job in question to make amendments importing openings review docid\ ksxxwi1zugaw8lrp8jwxz for more information on how to use the {{openings}} feature https //docs google com/spreadsheets/d/18p7whfsgph1irtfd8rpjaqhsp6zqo830popbx1j6y7s/edit?usp=sharing to ensure your data is formatted correctly before uploading using this option creates individual openings on the openings tab in jobs admin the table below outlines the supported fields and corresponding formatting examples field name description formatting notes formatting example opening id (required) numeric or alphanumeric id associated with a unique opening there shouldn’t be any duplicate ids ashby 1 status the opening's current status can be one of draft, approved, open, closed or filled draft description one line text field describing the opening limited to 240 characters senior backend engineer team the name of the existing team in ashby the format is case sensitive and should exactly match an existing team in ashby engineering job(s) expects one or more jobs multiple jobs should be added as comma separated values senior backend engineer (emea),senior backend engineer(amer) location(s) expects a comma separated list of names of locations that already exist in ashby multiple jobs should be added as comma separated values europe,north and south america recruiter(s) (role) email address(es) of the recruiter(s) associated with the opening multiple recruiters should be added as comma separated values ravan\@learn ashby com recruiting coordinator(s) (role) email address(es) of the recruiting coordinator(s) associated with the opening multiple recruiting coordinators should be added as comma separated values abbye\@learn ashby com,jared\@learn ashby com hiring manager(s) (role) email address(es) of the hiring manager(s) associated with the opening multiple hiring managers should be added as comma separated values kelsey\@learn ashbyhq com sourcer(s) (role) email address(es) of the sourcer(s) associated with the opening multiple sourcers should be added as comma separated values joel\@learn ashby com employment type type of employment associated with the role expects one of the following values full time part time intern temporary contract full time is backfill? indicates if this opening is a backfill expects common boolean values yes/no y/n 1/0 yes target hire date date an offer is expected to be accepted the date/time should be an iso 8601 compliant string (e g , 1982 05 25, 2017 04 22t20 47 05 335 04 00) 2023 04 22 target start date date the hire is expected to start the date/time should be an iso 8601 compliant string (e g , 1982 05 25, 2017 04 22t20 47 05 335 04 00) 2023 05 29 compensation range the compensation range associated with the opening see docid 0zkrmoq 22rnbdt3kwgum for more information about the compensation feature expects a string formatted as min value/max value/currency code/interval requires at least one of min or max value (for exact salary include just one value) the currency code should be an iso 4217 compliant alphabetic code (e g , usd, jpy) accepted interval values include once per hour per day per week bi weekly per month per year per half year per half month per quarter e g 70000/80000/usd/per year 70000//usd/per year /80000/usd/per year | additional custom fields expects values that align with the custom fields your team creates see docid\ qpgklrscmzgwc 7krbwds for more information about the field types supported tier 3 post upload actions we don’t currently support taking bulk actions on openings after they’ve been uploaded to manage your uploaded openings, visit the https //app ashbyhq com/openings page in jobs admin bulk updating openings via bulk import if you’d like to bulk update openings, this can be done by importing a csv of updated opening data the template docid\ sorncj66lghrflracxetj can also be used for adding opening details when bulk importing updates for openings, be sure to check the following the opening ids in the csv match the ids of the openings you are looking to update ensure that the names of teams/departments and locations exactly match those you have set up in ashby when mapping your opening data, map only the field with the opening id and any fields with updated data to the fields on your openings click ignore this column beside any fields that you don’t want to import you will need to ensure that all fields in your csv are mapped or ignored before you’ll have the option to start your import importing employees ☝ you can now create or update employees via the bulk csv importer tool the employee import is intended for importing key interviewer information into employee profiles including the following fields can be imported into name email (this field is required to accurately match data to the correct profile if updating existing users) custom fields (learn more in docid\ qpgklrscmzgwc 7krbwds ) job title linkedin url daily interview limit weekly interview limit interviewer pools (learn more in ) employee status employment status you can also import an employee’s status (as activated or deactivated) to update their profile status in ashby if you’re interested in importing additional employee fields reach out to mailto\ support\@ashbyhq com to submit a feature request you can https //docs google com/spreadsheets/d/1nh8h0 ys3tgn8iuljfmge4gk6agvxbqa4qrmjyh49w0/edit?usp=sharing to ensure your data is formatted correctly before uploading field name description formatting notes formatting example name the name of an employee ravan charles email (required) the email address of an existing employee must exactly match the email of an existing user if updating employees job title the employee’s job title no character limit this title may be shown to candidates this person interviews project manager daily interview limit the greatest number of interviews the employee can be booked for in a day via direct booking must be a positive integer greater than or equal to zero 3 weekly interview limit the greatest number of interviews the employee can be booked for in a week via direct booking must be a positive integer greater than or equal to the daily interview limit 7 interviewer pools see for more information multiple pools should be added as comma separated values business operations,managers linkedin profile url the employee’s linkedin profile url https //www linkedin com/in/abbye eva 908364ab/ custom fields see for more information on supported field types people manager (y/n)? faq w hat candidate data can be uploaded via the bulk csv import feature? things you can import candidate demographics current job application the current interview plan stage current status things you can’t import resumes other files notes long text fields resume files can be uploaded separately by the ashby team, reach out to support\@ashbyhq com to request this w hat opening data can be uploaded via the bulk import feature? opening id (required) description team expects the name of an existing team in ashby jobs expects a comma separated list of titles of job that already exist in ashby locations expects a comma separated list of names of locations that already exist in ashby roles expects a comma separated list of emails of existing ashby users employment type expects one of the following values full time, part time, intern, temporary, contract spelling is case insensitive and multi word values can be separated with spaces, dashes, or underscores (i e full time, full time, full time are all acceptable values) is backfill expects a true/false value accepted true values true, yes, y, 1 (case insensitive) accepted false values false, no, n, 0 (case insensitive) target hire date expects an iso 8601 compliant string (ex 1982 05 25, 2017 04 22t20 47 05 335 04 00, 2017 04 22t20 47 05 335) target start date expects an iso 8601 compliant string (ex 1982 05 25, 2017 04 22t20 47 05 335 04 00, 2017 04 22t20 47 05 335) compensation range expects a string formatted as min value/max value/currency code/interval at least one of min value or max value must be provided currency code should be a 3 character code as appear in the currency dropdown menus accepted interval values once, per hour, per day, per week, bi weekly, per month, per year, per half year, per half month, per quarter spelling is case insensitive and multi word values can be separated with spaces, dashes, or underscores (i e per hour, per hour, per hour are all acceptable values) additional custom fields how are duplicate candidates handled? the bulk import feature catches duplicates by checking across candidate information including urls and emails if matches are found it won't create a new candidate and will update the existing candidate with any new information if you are using the email import feature and sending over a resume for a candidate profile that already exists, the duplicate will be flagged and you will receive an error something went wrong; how do i undo the upload? if you’d like to undo your upload, there’s an option to delete all uploaded candidates or openings at the bottom of the summary page once an upload is completed this will not affect candidates or openings that were only updated during the import c an i give a user access to import candidates via the bulk csv importer? this is now an additional permission option for users with elevated access, yes when amending a user’s permissions, scroll to additional user permissions and check the bulk data imports option please note if the import would take actions that require additional user admin permissions (e g creating tags, creating sources), then the user must have those permissions if they do not, the import row will fail with an error message duplicate candidates may appear if existing candidates exist on roles the user does not have access to c an i import data into custom fields when importing via the bulk csv importer? you can, yes custom fields can be selected at the mapping stage more information on custom fields can be found in our docid\ qpgklrscmzgwc 7krbwds guide c an i set up auto forwarding for importing candidates via email? this currently isn’t possible resumes would need to be sent over to the provided email addresses manually to create candidates c an i import a candidate and consider them for multiple jobs as part of the import process? no, when importing candidates, they can only be added to the pipeline of one job further job considerations would need to be added to the candidate’s profile post import h ow can candidates email to submit their resume? we advise against sharing the candidate upload or job specific email addresses on your job board or directly with candidates to avoid spam applications we would recommend advising candidates to send resumes to an internal company email address and then the resumes can be forwarded over to ashby manually using the docid\ sorncj66lghrflracxetj i have multiple jobs with the same job title how do i ensure the candidate is imported to the correct role? if you have multiple jobs with the same job title in ashby, you can do the following to map the candidate to the correct job based on requisition id add an existing or create a new requisition id within the requisition id field within the job you can add a requisition id to a job in ashby by navigating to jobs > admin , then head to the settings tab within the job or jobs in question ensure that the requisition id is also added to your csv file (if you didn’t have a requisition id for the role to begin with) import your candidates and opt to map the requisition id field in your csv file to the job consideration’s job title field