What you’ll build
An agent that:- Parses your resume PDF to extract structured information
- Logs into a job portal using saved credentials
- Searches for relevant jobs based on your resume
- Extracts a list of matching job postings
- For each job: extracts details, generates tailored answers, and submits the application
Prerequisites
- Skyvern Cloud API key: Get one at app.skyvern.com/settings → API Keys
Sample Job Portal
We’ll use Job Stash, a fake job board website created for agent automation testing. Changejob_portal_url to use your job portal’s URL.

Step 1: Store credentials
Before defining the agent, store the login email and password Skyvern will use. This makes sure your passwords are never stored in the shareable agent definition and never sent to LLMs.- Cloud UI
- API / SDK
1
Open Credentials
Go to Credentials in the sidebar. Choose Password after clicking on + Add.

2
Create a credential
Click Create Credential. Set the name to 
Job Stash, add login page URL, and enter the username (demo@manicule.dev) and password (helloworld). Click Save.
3
Copy the credential ID
Copy the credential ID (here: 
cred_504284876895871734). You’ll use this when configuring the agent.
Step 2: Create a new agent
- Cloud UI
- API / SDK
1
Create the agent
Go to Agents → Create Agent. Name it “Search and Apply for Jobs Workflow”.

Set parameters
Parameters are the inputs your agent accepts. Defining them upfront lets you reuse the same agent against different job portals.- Cloud UI
- API / SDK
On the Start node, add the following parameters:

Step 3: Add agent blocks
The agent chains together several blocks to automate the full job application process:- PDF Parser block: Extracts structured data from your resume
- Login block: Authenticates to the job portal using stored credentials
- Navigation block: Searches for relevant jobs based on your resume
- Extraction block: Extracts a list of job postings from search results
- For loop (Go to URL + Extraction + Action + Extraction + Text Prompt + Navigation): Iterates over each job to extract details, generates tailored answers using an LLM, and submits the application.
blocks array in your agent definition file.
PDF Parser block
Thepdf_parser block extracts structured information from your resume PDF. Skyvern uses AI to identify your name, contact info, work experience, education, and skills.
- Cloud UI
- API / SDK
Add a PDF Parser block. Set File URL to the 
resume parameter.
parsed_resume_output in subsequent blocks.
Login block
Thelogin block authenticates using stored credentials. Skyvern injects the username/password directly into form fields without exposing them to the LLM.
- Cloud UI
- API / SDK
Add a Login block. Configure it as follows:
- URL: set to the
job_portal_urlparameter - Credential: Select the
credentialsparameter - Goal: “Log in using the provided credentials. Handle any cookie consent popups. COMPLETE when on the account dashboard or orders page.”
Search for jobs block
Navigate to the job search and find relevant positions based on the parsed resume.- Cloud UI
- API / SDK
Add a Navigation block. Configure it as follows:
- URL: Leave empty (continues from the current page after login)
- Goal: “Search for a relevant job based on the parsed resume.” The block will automatically reference the
parsed_resume_outputfrom the previous step.
Extract jobs list block
Extract job postings from the search results. Thedata_schema tells Skyvern exactly what structure to return.
- Cloud UI
- API / SDK
Add an Extraction block. Configure it as follows:
- Goal: “Extract all visible job profiles: job page url, title, employer, location, and type (full time, part time, etc)”
- Data Schema: Paste the following JSON schema:
jobs_list_extraction_output.jobs in subsequent blocks.
Apply to jobs loop
Iterate over each job posting and complete the application. This loop contains multiple blocks that work together:- goto_url: Navigate to the job page
- extraction: Extract detailed job information
- action: Click the Apply button
- extraction: Extract application form questions
- text_prompt: Generate tailored answers using AI
- navigation: Fill out and submit the application
- Cloud UI
- API / SDK
Add a For Loop block. Set the Loop Variable to
jobs_list_extraction_output.jobs. Enable Continue on Failure and Next Loop on Failure.Inside the loop, add the following blocks in order:1
Go to URL block
Add a Go to URL block. Set URL to the
current_value.job_page_url variable.2
Extract job details
Add an Extraction block. Set Goal to: “Extract every detail about the job role present on the page.”
3
Click Apply
Add an Action block. Set Goal to: “Find Apply button and click it. COMPLETE when the job application is visible on the screen.”
4
Extract form questions
Add an Extraction block. Set Goal to: “Extract every question in the job application form as a list.”
5
Generate answers
Add a Text Prompt block. Set the Prompt to reference the parsed resume, job details, and extracted questions so the AI generates tailored answers for each field.
6
Fill and submit
Add a Navigation block. Set Goal to: “Fill out all of the form fields using the generated answers, including optional fields. COMPLETE when the application form has been successfully submitted.”
continue_on_failure: true ensures that if one application fails, the agent continues to the next job. Inside the loop, current_value gives you the current job being processed.
Complete agent definition
- Cloud UI
- API / SDK
Here’s a summary of the complete agent you’ve built in the visual editor:
1
Create the agent
Go to Agents → Create Agent. Name it “Search and Apply for Jobs Workflow.” On the Start node, set Proxy Location to Residential and add the parameters:
resume, credentials, and job_portal_url.2
Block 1: PDF Parser
Add a PDF Parser block. Set File URL to the
resume parameter.3
Block 2: Login
Add a Login block. Set URL to the
job_portal_url parameter. Select the credentials parameter. Set the goal: “Log in using the provided credentials. Handle any cookie consent popups. COMPLETE when on the account dashboard or orders page.”4
Block 3: Navigation (search for jobs)
Add a Navigation block. Leave URL empty. Set the goal: “Search for a relevant job based on the parsed resume.”
5
Block 4: Extraction (job listings)
Add an Extraction block. Set the goal: “Extract all visible job profiles: job page url, title, employer, location, and type.” Paste the jobs JSON schema into Data Schema.
6
Block 5: For Loop (apply to each job)
Add a For Loop block. Set Loop Variable to
jobs_list_extraction_output.jobs. Enable Continue on Failure and Next Loop on Failure. Inside the loop, add six blocks in order: Go to URL (job page), Extraction (job details), Action (click Apply), Extraction (form questions), Text Prompt (generate answers), Navigation (fill and submit the form).Step 4: Run and monitor
Create the agent from your definition file and execute it.- Cloud UI
- API / SDK
1
Run the agent
Click Run in the agent editor. Fill in the parameters:
- resume: URL to your resume PDF
- job_portal_url:
https://job-stash.vercel.app - credentials: Select the
Job Stashcredential
2
Monitor the run
Watch the run in real time. Each block shows its status as it executes. The for loop will iterate over each job posting, and you can see the AI filling out application forms in the browser recording.
Resources
Agent Blocks Reference
Complete parameter reference for all block types
Credential Management
Securely store and use login credentials
File Operations
Upload and parse files in agents
Error Handling
Handle failures and retries in production

