Prepare an Ashby job application without submitting

Site jobs.ashbyhq.comTask prepare-job-applicationVersion v2Updated Aug 2, 2026Category job applications

Locate an Ashby-hosted role by employer board, open its opaque-ID job URL, complete requested application fields and resume upload, and stop before final submission. This skill was captured from a live agent session on jobs.ashbyhq.com and publishes here verbatim, exactly as an agent receives it.

NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.

Purpose

Prepare an application for a specified role on Ashby, including requested profile information and resume upload, while never submitting the application.

When to Use

Use when the target job is hosted on jobs.ashbyhq.com and the caller provides an employer, role, candidate details, and optionally a resume path or work-authorization information.

Workflow

  1. If the caller provides a complete Ashby job URL, navigate directly to it. Ashby job URLs use the form https://jobs.ashbyhq.com/{company-slug}/{job-uuid}.
  2. If the caller provides a complete role URL and the application form is needed, navigate directly to https://jobs.ashbyhq.com/{company-slug}/{job-uuid}/application; this is a shortcut to the application state that avoids opening the role page first.
  3. If only the employer and role are known, navigate to https://jobs.ashbyhq.com/{company-slug} and use the extractor below to find the link whose visible title or accessible text matches the requested role. Read the complete href and preserve its opaque UUID; do not invent or derive the UUID.
  4. Navigate directly to the resolved job URL, or its /application variant when preparing the form, and inspect the job title and location to confirm the match.
  5. Fill the application using the caller's supplied candidate information. Upload the supplied resume when a resume field is present, and provide work-authorization or relocation answers exactly as instructed by the caller.
  6. Before any final action, verify that the role, candidate, attachments, and required fields are correct. Stop with the application prepared; do not click buttons labeled Submit, Submit application, or equivalent.

Run this self-contained extractor on the employer board or job page after navigation:

(() => {
  const clean = (s) => (s || "").replace(/\\s+/g, " ").trim();
  const links = [...document.querySelectorAll("a[href]")]
    .map((a) => ({
      text: clean(a.innerText || a.textContent),
      aria: clean(a.getAttribute("aria-label")),
      href: new URL(a.getAttribute("href"), location.href).href,
    }))
    .filter((x) => x.href.includes("jobs.ashbyhq.com/"));
  const fields = [
    ...document.querySelectorAll(
      'input, textarea, select, [contenteditable="true"]',
    ),
  ].map((el) => ({
    tag: el.tagName.toLowerCase(),
    type: el.getAttribute("type") || null,
    name: el.getAttribute("name") || null,
    id: el.id || null,
    label: clean(
      el.getAttribute("aria-label") ||
        el.getAttribute("placeholder") ||
        (el.id &&
          document.querySelector(`label[for="${CSS.escape(el.id)}"]`)?.innerText),
    ),
    required: el.required || el.getAttribute("aria-required") === "true",
  }));
  const body = clean(
    document.querySelector("main")?.innerText || document.body.innerText,
  ).slice(0, 12000);
  return { url: location.href, links, fields, pageText: body };
})();

Site-Specific Gotchas

  • The employer board URL contains only the company slug; individual roles are keyed by opaque UUIDs in the second URL path segment.
  • Resolve a role by reading the href from the employer board instead of guessing a UUID. Matching should use both role title and location when available.
  • Once the opaque role UUID is known, appending /application to the role URL directly opens the application state.
  • A role URL may show the description before the application form; use the page's application control or form, but avoid unnecessary navigation away from the resolved role URL.
  • Treat resume upload and work-authorization questions as separate application fields; do not infer authorization status from the job description.
  • This workflow is intentionally non-submitting: stop before the final submission control, even if all required fields are complete.

Expected Output

A prepared, unsent Ashby application for the requested role, with the requested resume attached and supplied candidate/work-authorization details entered. Report the resolved job URL and confirm that submission was not performed.

Call it

GET https://production-sfo.browserless.io/skills?token=TOKEN-HERE&domain=jobs.ashbyhq.com&task=prepare-job-application