Processing a company list in which every element is an employee list
Yes, you can simplify this. Let's break down the algorithm needed for this:


Chain all employees into one stream
Chunk this stream into 1000 employees


For each chunk get the salaries

Distribute the salaries back again into the different companies


The first part can be done using itertools.chain.from_iterable. The second one can use e.g. this grouper recipe. And the final part can be easily done with itertools.islice if we keep everything before as generators.

from itertools import chain, islice



def grouper(iterable, n):
    it = iter(iterable)
    return iter(lambda: tuple(islice(it, n)), ())



def get_salaries(employees):
    respone = requests.post(url, json={"input": employees})
    return parse_respone(respone)

def employee_salaries_per_company(company_employees):
    all_employees = chain.from_iterable(company_employees)       
    salaries = chain.from_iterable(get_salaries(employees)
                                   for employees in grouper(all_employees, 1000))
    return [list(islice(salaries, n)) for n in map(len, company_employees)]




Note that in english the plural of employee is employees and not emploices; and the plural of salary is salaries and not salarices.