Skip to content
Notis

Convert Job Specs from Issues into Job Definitions

When you create an issue describing a new role (responsibilities, requirements, seniority level), Notis reads it and creates the job definition in Ashby automatically--no retyping required.

Trigger

Public Team Issue Created

Fires when a new issue is created in a Linear *public* team. For private teams (lock icon in Linear's sidebar) use `LINEAR_PRIVATE_TEAM_ISSUE_CREATED`.

Action

Create Job

Create a new job opening in Ashby ATS. Use this action to: - Add a new role to your organization with a title, department, location, and brand - Set up the job structure before publishing or opening it to candidates - Optionally assign a default interview plan to define the hiring process Important notes: - Newly created jobs start in 'Draft' status and cannot accept applications yet - To open the job for applications, you must set a defaultInterviewPlanId either during creation or update it later - Use LIST_DEPARTMENTS, LIST_LOCATIONS, LIST_BRAND, and LIST_INTERVIEW_PLANS actions to get valid IDs - The job creator is automatically set as the author

Why this helps

Job specifications live as Linear issues initially, then must be manually transcribed into Ashby job definitions, creating duplication and delays.

  • Job specs in issues become Ashby jobs instantly
  • Single source of truth for role details
  • Zero manual transcription work

Setup

Build it in a few focused steps.

  • 1Connect Linear and Ashby integrations to Notis.
  • 2Create an automation named 'Issue Spec to Job Definition'.
  • 3Write your prompt: 'When a new issue is created in a public team and has a label or title containing "job spec" or "role definition", extract the role title, department, seniority level, key responsibilities, and requirements from the issue description, then create a job in Ashby with that information.'
  • 4Select 'Public Team Issue Created' as your trigger and set your notification channel.
  • 5Test by creating an issue titled 'Job Spec: Senior Product Manager' with details, then verify the job appears in Ashby.

Questions about this workflow

What if the issue format varies?

Notis is flexible. Your prompt can specify 'look for headers like ### Responsibilities, ### Requirements' or adapt to whatever format your team uses.

Can it set department, location, and other fields?

Yes, if those details are in the issue. If not, Notis can prompt you to fill them in, or you can set defaults in your prompt.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Linear to Ashby. A trigger fires from one place; an action lands in another.

Linear triggers

Ashby actions

Recurring trigger

Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.

TriggerScheduled

Add Candidate to Project

Add a candidate to a project in Ashby. Projects are sourcing initiatives or recruiting campaigns used to organize and track candidate pipelines. Use this to associate candidates with specific sourcing efforts. Common use cases: - Adding sourced candidates to recruiting campaigns - Organizing candidates by sourcing channel or initiative - Tracking candidates in specific hiring projects Requires candidatesWrite permission. Returns the updated candidate object on success, or error details if the candidate or project is not found.

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

Add Candidate Tag

Add a tag to a candidate in Ashby. Use this to categorize and organize candidates with existing tags from the system. This action allows you to apply labels/tags to candidates for filtering, searching, and organizational purposes. Tags must already exist in the system - use LIST_CANDIDATE_TAGS to view available tags or CREATE_CANDIDATE_TAG to create new ones. The response includes the full updated candidate object when successful, showing the newly added tag in the candidate's tags array. If a candidate already has the tag, the operation will still succeed idempotently.

ActionInstant

Comment Received Trigger

Triggered when a comment is received.

TriggerInstant

Add Hiring Team Member

Add an Ashby user to a hiring team at the application, job, or opening level. Use this when you need to assign a team member to participate in the hiring process with a specific role. Requires the organizationWrite permission.

ActionInstant

Issue Created Trigger

Triggered when a new issue is created.

TriggerInstant

Add User to Interviewer Pool

Add a user to an interviewer pool. Use this to assign interviewers to interview pools for scheduling and coordination. Requires the hiringProcessMetadataWrite permission.

ActionInstant

Issue Updated Trigger

Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.

TriggerInstant

Add Opening Job

Adds a job to an opening (job requisition) in Ashby ATS. An opening represents a position to be filled, while a job defines the role details. This action associates an existing job with an existing opening, allowing multiple jobs to be linked to a single opening. Use this when you need to add job definitions to an opening or when creating multi-role requisitions. Requires the jobsWrite permission. On success, returns the updated opening with the job added to its jobIds array. On failure, returns error details with specific error codes.

ActionInstant

Private Team Comment Created

Fires when a new comment is posted on an issue in a private Linear team (polled with the connected user's token).

TriggerPolling

Add Opening Location

Tool to add a location to an opening (job requisition). Use when you need to associate a location with an existing opening. Requires the jobsWrite permission.

ActionInstant

Private Team Issue Created

Fires when a new issue appears in a private Linear team (polled with the connected user's token).

TriggerPolling

Anonymize Candidate

Anonymize a candidate by removing personally identifiable information. Use this when you need to permanently anonymize a candidate's data. This action cannot be reversed and requires all of the candidate's applications to be in the archived or hired state.

ActionInstant

Private Team Issue Properties Updated

Fires when properties on an issue change in a private Linear team (polled with the connected user's token).

TriggerPolling

Approve Offer

Approve an offer or a specific approval step within an offer's approval process. This action supports two modes: - Complete offer approval: Provide only offerId to approve the entire offer - Step-specific approval: Provide offerId, approvalStepId, and userId to approve a specific step When approving a specific step, both approvalStepId and userId are required together. Requires the 'offersWrite' permission.

ActionInstant

Connect any two apps with Notis in the middle.

Linear and Ashby, or any other combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Ashby.