Faits :
A.
B._ AG (ci-après: la société ou l'employeuse) a engagé A._ (ci-après: l'employé) dès le 1er juin 2008 en qualité d'agent d'escale auxiliaire " xxx " dans le secteur "yyy" à l'aéroport de Genève; l'horaire de travail était de 100 heures par mois.
Le 20 mars 2014, B._ AG a établi un certificat de travail intermédiaire, mettant notamment en évidence les bonnes compétences techniques de l'employé, son esprit d'équipe et d'initiative, ainsi que ses bons rapports de travail avec ses collègues et ses supérieurs.
Le 11 juillet 2014, les parties ont signé un nouveau contrat de travail, valable dès le 1er août 2014. A._ était engagé en qualité d'agent d'escale " xxx " à un taux d'activité de 72.72%, correspondant à une durée moyenne de travail hebdomadaire de 30 heures. Le salaire mensuel brut, versé treize fois l'an, s'élevait à 3'179 fr. Il était précisé que l'employeuse se réservait le droit de confier à l'employé d'autres activités pouvant être raisonnablement exigées de lui.
Selon l'organisation hiérarchique de la société, les supérieurs directs de A._ portaient l'appellation de leadet étaient soumis à l'autorité des duty officers, eux-mêmes dépendant du chef de service.
Le 8 août 2014, l'employé a postulé pour un poste d'agent d'escale à 100% dans le secteur "yyy".
Le 15 août 2014, C._, nouvelle responsable du département des ressources humaines, et D._, duty officer, ont reçu A._. Un rapport d'évaluation des compétences a été établi à cette occasion; sous la rubrique "adéquation valeurs B._", il était noté: "manque de respect envers ses collègues et sups [supérieurs], esprit négatif et difficile pour lui d'accepter l'autorité."
Le poste convoité a été attribué à un collègue de A._.
A sa demande, l'employé a été reçu le 17 septembre 2014 par C._ et E._, son chef de service. Selon la note d'entretien établie par la responsable RH, l'employé s'était senti blessé par le terme "tranchant" qu'elle avait utilisé à son égard; il avait déclaré qu'il ne fallait pas écouter ses supérieurs qui ternissaient son image, mais qu'il était prêt à s'améliorer sur les points signalés; l'impression prévalait que l'employé avait de la peine à accepter les remarques et à prendre du recul; le chef de service avait déclaré que l'employé était très difficile à gérer.
Le 26 septembre 2014, A._ a déposé sa candidature pour un poste d'agent d'escale à 80% au sein du service "yyy".
Par courriel du 10 octobre 2014, C._ a informé l'employé que sa candidature n'avait pas été retenue. Elle avait préalablement requis l'avis de F._, duty officer, lequel lui avait indiqué, par courriel du 9 octobre 2014, que l'employé outrepassait parfois son rôle d'agent, refusait toute autorité et discréditait ses collègues et supérieurs hiérarchiques.
Le 12 mars 2015, C._ a établi un certificat de travail intermédiaire à la demande de A._, qui en avait besoin pour obtenir une autorisation de travail. Parmi les tâches de l'employé, ce document mentionnait la formation occasionnelle de nouveaux agents sur le terrain. Les termes du certificat étaient élogieux, en particulier pour ce qui a trait aux rapports de l'employé avec collègues, supérieurs et passagers, à ses compétences professionnelles et à sa résistance au stress.
Le 31 octobre 2015, l'employé a eu un entretien d'évaluation annuelle avec F._. Selon le rapport établi à cette occasion, l'employé a atteint les exigences relatives au poste de travail et en matière de comportement; par ailleurs, un objectif lui a été fixé, à savoir "respecter les voies de communication et hiérarchiques".
Quelques semaines auparavant, A._ avait déposé une nouvelle postulation pour un emploi d'agent " xxx " à 80% dans le secteur "yyy".
Le 2 novembre 2015, il a participé à un entretien de recrutement en présence de C._ et de D._. Le rapport d'évaluation établi à cette occasion mentionne notamment que l'employé a un "esprit d'équipe insuffisant" et qu'il critique tant ses collègues que ses supérieurs, dont il n'accepte pas les remarques.
Le 26 novembre 2015, un second entretien a eu lieu en présence de C._ et de F._, au cours duquel il a été annoncé à A._ que sa candidature n'avait pas été retenue. La responsable RH a alors expliqué à l'employé que ses postulations avaient été refusées en raison de son attitude critique, de sa manière de s'adresser à certains de ses collègues ainsi qu'à ses supérieurs et de son refus de respecter à plusieurs reprises les directives de ces derniers; la qualité de son travail et ses compétences n'étaient pas remises en cause, mais son comportement devait s'améliorer.
Le 13 avril 2016, G._, lead au secteur "yyy", a demandé à A._ de s'occuper de la formation d'une nouvelle collaboratrice. L'employé a refusé de s'exécuter, au motif que cette tâche ne figurait pas dans son cahier des charges.
Par courriel interne du même jour, G._ s'en est plainte auprès de sa hiérarchie, précisant que ce n'était pas la première fois que A._ avait un comportement irrespectueux envers ses supérieurs directs.
Le 3 septembre 2016, G._ a demandé à l'employé d'interrompre un test de formation qu'il était en train d'effectuer afin de s'occuper du traitement de plusieurs bagages. A._ a refusé d'effectuer cette tâche avant l'achèvement du test. G._ s'est plainte de cette situation dans un courriel interne du même jour. En réponse, H._, également lead au secteur "yyy", a indiqué avoir, à une reprise, surpris l'employé en train de conseiller à un de ses collègues de ne pas suivre une instruction qu'il avait donnée quelques instants plus tôt, au motif que la tâche confiée ne faisait pas partie de son cahier des charges.
Entre les 6 et 11 septembre 2016, J._, duty officer, a adressé trois courriels à I._, chef de service, faisant état de la tenue par A._ de propos dénigrant la société, certains collègues et supérieurs, ainsi que de plusieurs refus de l'employé de respecter ses instructions.
Un entretien de licenciement a eu lieu le 28 septembre 2016 en présence de C._ et I._. Par courrier du même jour remis en mains propres, l'employeuse a résilié le contrat de travail pour le 30 novembre 2016 et libéré A._ de son obligation de travailler pendant le délai de congé; les raisons du licenciement étaient les suivantes: "Cette décision est motivée par votre non-respect de demandes provenant de vos différents leads LL (refus d'effectuer certaines tâches quand elles vous sont demandées, conseil à un de vos collègues de ne pas effectuer la tâche que lui avait demandé son lead), ainsi que votre manque d'esprit d'équipe (par ex. refus de former une de vos nouvelles collègues), attitude critique envers B._, vos collègues et supérieurs."
Par pli recommandé du 19 octobre 2016, A._ a fait opposition à son licenciement, qu'il considérait abusif.
En raison de deux arrêts de travail pour cause de maladie, la fin du contrat de l'employé a été reportée au 28 février 2017.
La caisse de chômage Z._ a octroyé à l'employé des indemnités de chômage à partir du 1er mars 2017, en lui infligeant six jours de suspension pour faute.
Le 4 mai 2017, B._ AG a délivré à A._ un certificat de travail final, après que J._ eut rempli un formulaire d'évaluation.
B.
Par demande du 23 juin 2017, A._ a conclu, en dernier lieu, à la condamnation de B._ AG à lui verser 23'068 fr.15 à titre d'indemnité pour licenciement abusif, 839 fr.10 représentant six jours de pénalité d'indemnités de chômage et 500 fr. correspondant à la pénalité additionnelle due par tous les chômeurs, le tout plus intérêts. L'employé a demandé en outre la délivrance d'un nouveau certificat de travail d'une teneur identique à la pièce n° 37 de son chargé, sous la menace de la peine d'amende prévue par l'<ref-law>.
Par jugement du 25 février 2019, le Tribunal des prud'hommes du canton de Genève a débouté A._ de ses conclusions en paiement d'une indemnité pour licenciement abusif et en remboursement des pénalités appliquées par l'assurance-chômage. Par ailleurs, il a condamné B._ AG à délivrer à l'employé un certificat de travail d'une teneur identique à celle indiquée au considérant 5 du jugement, sous la menace de la peine prévue à l'<ref-law>.
Statuant le 4 février 2020 sur appel de A._, la Chambre des prud'hommes de la Cour de justice du canton de Genève a confirmé le jugement de première instance.
C.
A._ interjette un recours en matière civile. Il reprend ses conclusions en paiement formées devant les instances cantonales et demande la remise par l'employeuse d'un certificat de travail conforme à la teneur de la pièce n° 36 du chargé produit en appel, assortie, faute d'exécution dans les dix jours dès la notification de l'arrêt du Tribunal fédéral, d'une condamnation de l'employeuse à une amende de 500 fr. au plus pour chaque jour d'inexécution.
B._ AG n'a pas été invitée à répondre au recours.

Considérant en droit :
1.
Le recours est dirigé contre une décision finale (<ref-law>) rendue en matière civile (<ref-law>) par le tribunal supérieur institué comme autorité cantonale de dernière instance, lequel a statué sur recours (<ref-law>). La valeur litigieuse excède le minimum légal de 15'000 fr. prévu en matière de droit du travail (<ref-law>). Le recourant a pris part à l'instance précédente et succombé dans ses conclusions (<ref-law>). Le recours a été déposé en temps utile (<ref-law>) et dans la forme prévue par l'<ref-law>.
2.
2.1. Le recours en matière civile peut être exercé pour violation du droit fédéral (<ref-law>), y compris le droit constitutionnel (<ref-ruling> consid. 2.1 p. 247; <ref-ruling> consid. 2.4 p. 313). Le Tribunal fédéral applique le droit d'office (<ref-law>). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), le Tribunal fédéral n'examine en principe que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes. Il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 2 p. 88 s., 115 consid. 2 p. 116; <ref-ruling> consid. 1.3). Par exception à la règle selon laquelle il applique le droit d'office, il n'examine la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de façon détaillée (<ref-law>; <ref-ruling> consid. 2.3; <ref-ruling> consid. 1.3; <ref-ruling> consid. 1.4 in fine).
2.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). "Manifestement inexactes" signifie ici "arbitraires" (<ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>). La critique de l'état de fait retenu est soumise au principe strict de l'allégation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 p. 266 et les références).
La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes en conformité avec les règles de procédure les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2 p. 90). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1 p. 18). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (<ref-law>).
En matière de constatations de fait et d'appréciation des preuves, le Tribunal fédéral se montre réservé, vu le large pouvoir qu'il reconnaît en ce domaine aux autorités cantonales. Il n'intervient, du chef de l'art. 9 Cst., que si le juge du fait n'a manifestement pas compris le sens et la portée d'un moyen de preuve, a omis sans raisons objectives de tenir compte des preuves pertinentes ou a effectué, sur la base des éléments recueillis, des déductions insoutenables (<ref-ruling> consid. 2.3 p. 265; <ref-ruling> consid. 4.2; <ref-ruling> consid. 4.2; <ref-ruling> consid. 4.3; <ref-ruling> consid. 1.4.3; <ref-ruling> consid. 2.1).
3.
Le litige porte tout d'abord sur le caractère abusif ou non du congé signifié au recourant.
Le contrat de travail de durée indéterminée peut être résilié par chacune des parties (<ref-law>). En droit suisse du travail, la liberté de résiliation prévaut de sorte que, pour être valable, un congé n'a en principe pas besoin de reposer sur un motif particulier. Le droit de chaque cocontractant de mettre fin au contrat unilatéralement est toutefois limité par les dispositions sur le congé abusif (<ref-law>; <ref-ruling> consid. 2.3 p. 514; <ref-ruling> consid. 2.1 p. 116; <ref-ruling> consid. 4.1 p. 538). L'art. 336 al. 1 et 2 CO énumère des cas dans lesquels la résiliation est abusive. Cette liste n'est pas exhaustive; elle concrétise avant tout l'interdiction générale de l'abus de droit. Un congé peut donc se révéler abusif dans d'autres situations que celles énoncées par la loi; elles doivent toutefois apparaître comparables, par leur gravité, aux hypothèses expressément envisagées (<ref-ruling> consid. 2.3 p. 514 s.; <ref-ruling> consid. 2.1 p. 116; <ref-ruling> consid. 4.2 p. 538).
Pour pouvoir examiner si la résiliation ordinaire est abusive ou non (<ref-law>), il faut déterminer quel est le motif de congé invoqué par la partie qui a résilié (ATF <ref-ruling> consid. 2 p. 116; <ref-ruling> consid. 4 p. 537; <ref-ruling> consid. 2 p. 72). Le motif de la résiliation relève du fait (<ref-ruling> consid. 4.1 p. 702 s.) et les constatations de l'arrêt attaqué à ce sujet ne peuvent être attaquées que dans la mesure restreinte permise par l'<ref-law>, à savoir pour arbitraire (art. 9 Cst.) dans l'établissement des faits et l'appréciation des preuves. En revanche, savoir si le motif ainsi établi donne lieu à un congé abusif ou non relève de l'application du droit, que le Tribunal fédéral revoit librement.
Il incombe en principe au destinataire de la résiliation de démontrer que celle-ci est abusive. Le juge peut toutefois présumer en fait l'existence d'un congé abusif lorsque l'employé parvient à présenter des indices suffisants pour faire apparaître comme non réel le motif avancé par l'employeur. Ce dernier ne peut alors rester inactif, n'ayant d'autre issue que de fournir des preuves à l'appui de ses propres allégations quant au motif de congé (<ref-ruling> consid. 4.1 p. 703; <ref-ruling> consid. 4b).
4.
4.1. Selon l'état de fait de l'arrêt attaqué, le licenciement était motivé par le refus du recourant de respecter certaines instructions de ses supérieurs, par une attitude inadéquate à l'égard de ses collègues et supérieurs, ainsi que par un manque d'esprit d'équipe.
La cour cantonale a retenu que ces motifs étaient réels après avoir apprécié les témoignages de plusieurs supérieurs du recourant, les déclarations de la responsable RH, les rapports d'évaluation d'août 2014 et de novembre 2015, la note d'entretien du 26 novembre 2015, ainsi que plusieurs courriels internes émanant de leads ou de duty officers.
Elle a écarté au surplus la thèse selon laquelle le licenciement serait abusif parce que l'employeuse aurait violé son obligation de protéger la personnalité de l'employé dans le cadre de conflits internes en omettant de prendre les mesures idoines. Elle observe tout d'abord que la question des difficultés relationnelles rencontrées avec le recourant a été abordée à diverses reprises, lors des entretiens en lien avec les postulations présentées. Par ailleurs, aucun élément du dossier ne permet de retenir que l'employé aurait subi de la part d'autres collaborateurs ou de supérieurs des atteintes dont l'intimée aurait manqué de le préserver. Enfin, la cour cantonale n'a pas vu une atteinte à la personnalité du recourant dans la pression exercée par l'employeuse en raison de problèmes récurrents de manque de personnel, dont le représentant du syndicat entendu comme témoin avait fait état.
4.2. Le recourant s'en prend aux motifs de licenciement retenus par la cour cantonale, qui aurait apprécié les preuves de manière arbitraire.
Il invoque la contradiction flagrante qui existerait entre, d'une part, les motifs invoqués par l'employeuse et, d'autre part, les certificats de travail établis pendant les rapports de travail ainsi que le rapport d'évaluation annuelle du 31 octobre 2015, lesquels seraient élogieux et ne comporteraient aucune remarque sur un comportement prétendument inadéquat.
Pour établir les motifs du licenciement, la cour cantonale se serait fondée sur des témoignages, déclarations et courriels émanant de personnes non crédibles, sans tenir compte de l'absence de témoignages négatifs des collègues travaillant quotidiennement aux côtés de l'employé.
Selon le recourant, le secteur "yyy" souffrait d'un manque de personnel, dû au nombre important d'employés qui se mettaient fréquemment en arrêt maladie, parfois de manière abusive. Le recourant aurait dénoncé ses "collègues abuseurs", qui entravaient la bonne marche de l'entreprise. Ces doléances auraient fortement déplu à ses supérieurs hiérarchiques, lesquels, dans leur majorité, entretiendraient de longue date des liens d'amitié entre eux et avec les collaborateurs dénoncés. Les intéressés auraient alors décidé que l'entreprise devait se débarrasser très rapidement du recourant. Les courriels échangés entre supérieurs hiérarchiques et les rapports négatifs établis peu avant le licenciement auraient ainsi été destinés à justifier celui-ci. En particulier, les supérieurs se seraient employés à donner des directives contradictoires au recourant afin de pouvoir établir des rapports négatifs à son sujet. Un faisceau d'indices concordants établirait ainsi que la hiérarchie du recourant a monté de toutes pièces un dossier artificiel afin de justifier le congé, qui serait dès lors abusif.
Le recourant soutient par ailleurs que, entendus comme témoins, ses supérieurs hiérarchiques - en particulier H._ et I._ - se seraient concertés avant leur audition. Quant à la responsable RH, entendue à titre de représentante de l'employeuse, elle n'aurait pas assisté aux prétendus comportements inadéquats du recourant et n'aurait donné suite à aucune des demandes d'entretien formulées par l'employé. En outre, elle aurait, après la notification du congé, modifié de manière péjorative les notes du formulaire d'évaluation final rempli mais non signé par J._.
4.3. L'argumentation du recourant s'épuise largement dans une critique appellatoire, dénuée de toute démonstration d'arbitraire de l'appréciation des preuves et de l'établissement des faits par la cour cantonale. La thèse selon laquelle le congé litigieux résulterait en réalité d'une cabale des supérieurs hiérarchiques de l'employé repose sur de simples allégations.
En revanche, les difficultés du recourant avec l'autorité, se manifestant par des refus de suivre des instructions de ses supérieurs, ressortent de manière constante des témoignages de trois de ses supérieurs (G._, D._ et I._) ainsi que des déclarations de la responsable RH; même K._, le chef de service dont le recourant se prévaut du témoignage, a déclaré que l'employé avait, à une occasion, refusé d'exécuter les ordres qu'il lui avait donnés. Cette attitude d'opposition est en plus corroborée non seulement par les courriels internes de septembre 2016 (G._, J._ et H._), échangés peu avant le licenciement, mais avait déjà été relevée dès août 2014 en rapport avec les trois postulations du recourant (rapports d'évaluation d'août 2014, courriel F._ d'octobre 2014, rapport d'évaluation et note d'entretien de novembre 2015).
De même, le comportement inadéquat du recourant envers ses collègues et supérieurs, qu'il critiquait ou dénigrait, ressort de plusieurs moyens de preuve (rapport d'évaluation d'août 2014, courriel F._ d'octobre 2014, rapport d'évaluation et note d'entretien de novembre 2015, courriels J._ de septembre 2016, témoignage D._).
Certes, le témoin K._ a déclaré que le recourant s'entendait bien, de manière générale, avec ses collègues malgré des tensions de temps à autre. Les certificats de travail intermédiaires remis au recourant ne font pas non plus état de problèmes de comportement. Et il n'est pas contesté que l'employé fournissait des prestations de travail de très bonne qualité. Ces éléments ne sauraient toutefois faire apparaître comme arbitraire l'appréciation des preuves au terme de laquelle la cour cantonale a tenu pour établis les motifs de licenciement invoqués par l'intimée.
Le grief tiré d'une violation de l'art. 9 Cst. se révèle dès lors mal fondé.
4.4. Même s'il soulève le grief de "violation et application arbitraire de l'<ref-law>", le recourant ne prétend pas que le congé donné pour les motifs établis dans l'arrêt attaqué serait abusif.
Il s'ensuit que la cour cantonale n'a pas violé le droit fédéral en rejetant les prétentions du recourant en paiement d'une indemnité pour licenciement abusif.
5.
5.1. Invoquant une "constatation arbitraire des faits" ainsi qu'une "violation et application arbitraire de l'<ref-law>", le recourant reproche aux juges genevois de n'avoir pas admis ses conclusions en rectification du certificat de travail, par l'adjonction de la phrase: "Digne de confiance, fidèle, il a toujours été prêt à rendre service."
5.2. Selon l'arrêt attaqué, les témoignages G._, H._ et J._, relatant plusieurs refus du recourant d'exécuter les tâches demandées, ne permettent pas de retenir que la phrase susmentionnée est conforme à la vérité.
Le recourant motive son grief uniquement par la prétendue inconsistance des éléments ressortant des témoignages de ses supérieurs hiérarchiques, ainsi que par la soi-disant concertation de ceux-ci dans le montage d'un dossier de toutes pièces pour justifier le licenciement.
Comme relevé plus haut (consid. 4.3), il ne s'agit là que de simples allégations et la cour cantonale n'a pas versé dans l'arbitraire lors de l'appréciation de ces témoignages. Il s'ensuit que, sur ce point également, le recours est mal fondé.
6.
Sur le vu de ce qui précède, le recours sera rejeté.
Le recourant prendra à sa charge les frais judiciaires (<ref-law>), fixés selon le tarif réduit (art. 65 al. 4 let. c LTF). Il ne sera pas alloué de dépens à l'intimée, qui n'a pas été invitée à se déterminer sur le recours.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 1'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre des prud'hommes de la Cour de justice du canton de Genève.
Lausanne, le 30 octobre 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann