# Save SuperJob Jobs

Let's consider an example of a robot that automatically saves responses to a created job posting on the SuperJob website. For it to work correctly, you must log into your personal account on the website through the “Google Chrome” browser in advance.

The robot project consists of a single diagram.

The project diagram looks like this (for convenience, the blocks of the diagram are numbered):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfK_hzEpmRiy1wOMJ3OXyyN1NWEDEN-bM6CXe4a5_jx3ZHqPTw4UfYCrjOxtw6Ei9no2WkEE2LUnI1Nb6qthd1KruyHQtuoJBQrvJwteNIA8dznspavPDkMnYaOszjfllguQixwJw?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfIR--E71HTQ2w7h1YnThKGJC6alvyeLUS2axzEchq2DvwWcExJz3ALfMShIR813Pwum3mIFaolquuy8_G3SDi_3HN7Hf1ybkB8yoc5xO8cjGUVFCrkfDto-sP9O4qB8FWaXGP4Bw?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

<br>

1. **Block “Start”** (any diagram begins with this block).
2. **Block “Launch Chrome”** allows you to launch the Google Chrome browser. The following properties are specified for this block:

* URL (the address of the page to be opened at launch, specified using a variable);
* Timeout (the time to wait for the application to launch and the tab to load in seconds).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfEPsUf2DLganLwL3XU3fzmacRJPHRscMnh8Sja5J-EkvQeQy2oj0icjekLXTH5gLkVM01J7H2DprCqPKygywRmFDiB-zMHQ4r4483q-ZtG1q6TDeQChSvixeQIrkLBdHZITZbP?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

3. **Block “Get Text”** allows you to retrieve the text or attribute value of a specified web page element (header, link, editable field, text block, etc.). This block is recorded using the “[Recording](https://docs.sherparpa.ru/en/sherpa-rpa/sherpa-designer/rabota-v-sherpa-designer/osnovnoe-menyu/panel-razrabotka/menyu-zapis/zapis-deistvii-polzovatelya)” tool. The following properties are specified for it:

* Selector (identifier of the browser window and web page element);
* Value Type (selection of the type of value to be extracted);
* Auto-scrolling (if the flag is set, automatic scrolling to the element will occur);
* Process ID (a variable that stores the process and tab identifier used by this block. If the property is left empty, or if the "Process ID" variable was not previously assigned at the time of opening the browser, the application and browser tab will be determined from the contents of the corresponding selector line.);
* Delay Before (delay in seconds before executing the block);
* Delay After (delay in seconds after executing the block);
* Timeout (maximum wait time for the specified element in seconds).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdGVvy6JnNrEvWzush1xuxL6ZnN_oRqwMN5KABaiS5Hnngb5TrkAMDgAUJkYXcqJeDU6WmobUcWXSuSUYfh89Y4fk5NpKcZV6X-QCF1faGDcymCIFp1Vle9hLy95yHaCVP5P2sg3Q?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

4. **Block “Condition”** checks the specified condition for truth, after which the scenario execution continues towards the “Yes” exit (if the condition is met) or towards the “No” exit (if the condition is not met).

The condition is written in the format: “variable” equals (==)/ greater than (>)/ less than (<) “value”.

For example: $a == “Hello”, that is, if the value of variable $a equals “Hello”, then the exit is “Yes”, otherwise – the exit is “No”.

$Result > 5, that is, if the value of variable $Result is less than 5, then the exit is “Yes”, otherwise – the exit is “No”.

In this case, the condition is set as: $Result != "Entry". That is, the variable is not equal to “Entry”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdV2DsTUGFcMTi8BZAkG63LY_WSUgSVLyV3VqtkqN6awkG_Oq8zR6GFidBJ-N2ZRTLm-Xt5QQkf8_Dd_1jsSiMAdjmseXwRGKqPkkNg5uZwyCzrA4EAz-ki8AgzMBdvpIy9NuI3dg?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

5. **Block “Log”** allows you to output arbitrary messages and/or variable values to the log during the robot's scenario execution. The property “Value” is specified for this block. A text constant is indicated in quotes, and the variable name starts with the symbol $. That is, this block logs the message “Clicking responses” and displays it in the status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeuYCSWrKjo-1qCdfzexw-r3md7csh0jHNuYemMtFD9k-9cu7TpqPVomNaRGeNcejwXN7B6VCRNUCillqfyW1A7DG6PIWsU_BRhBVRS_SKdiTK36gljhwJSDeSdPaHoJNnf2Lue?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

6. and 7. **Blocks “Mouse Click”** perform a click on the specified application element.
7. **Block “Count Elements”** allows you to get the number of similar elements on the web page based on the specified selector. This block is recorded using the “Recording” tool. The following properties are specified for it:

* Selector (identifier of the browser window and web page element, common for all sought similar elements);
* Process ID (a variable that stores the process and tab identifier used by this block);
* Timeout (maximum time to count elements in seconds).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf01e97QbqjNTifgfq_FZdlWYaQcQvvttDHOKukp5Fsz8KK2HWp9Kn83NEI930u1G_UmVjQOy9Ln6nhWeLuWIVo_Uv3NZMw69XrxZX-_iilllBBm9RMAEuiaX43KkjErRNTYh7fNA?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

9. **Block “Loop”** allows you to repeat a chain of actions (blocks) several times while counting the number of loop iterations, storing the current count in a special variable (specified in the “Loop” property), which can then be used in other blocks. Upon first entry into the block, the value of the variable from the “Loop” property is set to “Initial Value” (in this case, it is equal to 0), and then the scenario execution continues towards the “Loop” exit of this block (into the so-called “loop body”). As soon as the scenario execution reaches this block again, the value of the “Loop” variable will increase by the “Step” value (in this case, it is equal to 1), and the transition will again occur towards the “Loop” exit. Once the value of the “Loop” variable becomes greater than or equal to the “Final Value” (in this case, it is set to the variable $CountItem), the scenario execution will continue towards the lower exit of the block. Don’t forget to connect the exit of the last block in the loop body to the entry of this block or any of the preceding blocks.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeQ9xm7fmPCW02z7Qy31SFVYwxN4tCjuMEpm_4cNVOl5tv13LPN8VgxJSnoclWWDeAe0FUGHPaFilm2MAEnL1g-GwGk2FTjIBSrRI-QNxcwYmG19WlLqPHpc0XYnajEeguF6KexBg?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

Blocks 10. - 13. are recorded using the “Recording” tool.

14. **Block “Close Browser Tab”** allows you to close the specified tab of the indicated browser. The Process ID is specified for this block (a variable that stores the process and tab identifier used by this block).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdzjoIA64wrTYj_1ryBX5BOhEnig8zhclSQ5MV9V5UBg1p4gMn8A4O1S_CXaOnA7S7IXhiTz6NzSczKlPVJ14cikaw3tfklB_rhgNfAvnS1Mx-oszaLbzbbAfFnxxX_IkvglGfZYQ?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

15. **Block “Log”** allows you to output arbitrary messages and/or variable values to the log during the robot's scenario execution. The property “Value” is specified for this block. A text constant is indicated in quotes, and the variable name starts with the symbol $. That is, this block logs the message “Authorization error”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd55HUl-vrPVUecbK3MqXmPZp-jcV9QhxPk1PgNg3TcoHGaOL1a6c-k7O7_Wd_CEKSaS3wXWyUNAo71OpJsyyumfMF7DORkjKie2M7K5ok0OYhRArb5_QsFqqH3SjyC6CngT0SC3A?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

16. **Block “Clear Selector Cache”** allows you to clear the internal cache of selectors. When using selectors to speed up the search for elements on the page, an internal cache is used. Information about an element is stored in the cache after it is successfully identified, and when searching for an element, the cache is checked first. If the cache contains information for this selector, it is retrieved from there, which significantly speeds up the robot's operation. However, in some cases, this cache can negatively affect the scenario's operation. This is often observed when cyclically processing similar elements on one page, such as search results. In such cases, we recommend clearing the cache at the start of each iteration of traversing similar elements on the page.

Blocks 17. - 21. are recorded using the “Recording” tool. These blocks contain a series of emulated mouse clicks and keyboard presses.

22. **Block “Condition”** checks the specified condition for truth, after which the scenario execution continues towards the “Yes” exit (if the condition is met) or towards the “No” exit (if the condition is not met).

The condition is written in the format: “variable” equals (==)/ greater than (>)/ less than (<) “value”.

For example: $a == “Hello”, that is, if the value of variable $a equals “Hello”, then the exit is “Yes”, otherwise – the exit is “No”.

$Result > 5, that is, if the value of variable $Result is less than 5, then the exit is “Yes”, otherwise – the exit is “No”.

In this case, the condition is set as: $Result. That is, if just a variable is specified, it is checked for $true or $false.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfQ-i1YDcxwYpLrgzRqFG4EmpIzZk1WrraPm3s4WnjoGGmEPRGNEIXQ2RAqShS2X49dQxiJdXUQG7aq2RwC8ngyuUkTkNZOJhWVQygHZAwlJpnNBTdSPNRaHrG3L7riE9ATJUoV?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

23. **Block “Log”** allows you to output arbitrary messages and/or variable values to the log during the robot's scenario execution. The property “Value” is specified for this block. A text constant is indicated in quotes, and the variable name starts with the symbol $. That is, this block logs the message “Authorization” and displays it in the status.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc5CCnP2IopfotGUA8Z36YnPpVnCO2Wj-3Gnvv-8T-woH8shZs29LLR8u0K-WAT4B_Ov3MIwa_9gz3Rfqm7i6GN2RfOjtJF16pOk7DNlQwbismHx0hlvReyCul92SRIAIFFoGOt?key=FxLA9F3yW7bqYX87nSO7VZ4G" alt=""><figcaption></figcaption></figure>

24. and 25. **Block “End”** (this block concludes the scenario execution or returns the subprocess diagram to the main process).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/en/sherpa-rpa/sherpa-designer/primery-robotov/save-superjob-jobs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
